Esteban Küber
13e9b3deb4
Deduplicate closure type errors
...
Closure typing obligations flow in both direcitons to properly infer
types. Because of this, we will get 2 type errors whenever there's
an unfulfilled obligation. To avoid this, we deduplicate them in the
`InferCtxt`.
2019-09-30 17:48:22 -07:00
Mazdak Farrokhzad
4db233e454
Rollup merge of #64781 - Mark-Simulacrum:no-global-tcx, r=eddyb
...
Remove stray references to the old global tcx
2019-09-28 05:37:43 +02:00
Mazdak Farrokhzad
dfd365f3e4
cleanup dead ast-borrowck / migrate-mode code.
2019-09-27 19:48:07 +02:00
Mark Rousskov
d540d44c71
Remove global_tcx from TyCtxt
...
The non-global context was removed; there's only one context now. This
is a noop method that only serves to confuse readers -- remove it.
2019-09-27 13:33:48 -04:00
varkor
bea3d67c77
Rename subst::Kind
to subst::GenericArg
2019-09-26 11:48:05 +01:00
varkor
93df1bb517
Fix rebase
2019-09-25 15:57:54 +01:00
varkor
e2e0f9af85
Rename sty
to kind
2019-09-25 15:50:04 +01:00
Nicholas Nethercote
3eae7f6291
Upgrade to ena-0.13.1 and use the new inlined_probe_value
function.
...
This is a big speed win for `keccak` and `inflate`.
2019-09-20 11:24:30 +10:00
Nicholas Nethercote
acf7d4dcdb
Specialize the stalled_on
handling in process_obligation()
.
...
Optimizing for the common numbers of entries in `stalled_on` wins about
4% on `keccak` and `inflate`.
2019-09-20 09:51:52 +10:00
bors
9b9d2aff8d
Auto merge of #64545 - nnethercote:ObligForest-more, r=nmatsakis
...
More `ObligationForest` improvements
Following on from #64500 , these commits alsomake the code both nicer and faster.
r? @nikomatsakis
2019-09-19 06:53:54 +00:00
Nicholas Nethercote
3b85597d22
Add a specialized version of shallow_resolve()
.
...
The super-hot call site of `inlined_shallow_resolve()` basically does
`r.inlined_shallow_resolve(ty) != ty`. This commit introduces a
version of that function specialized for that particular call pattern,
`shallow_resolve_changed()`. Incredibly, this reduces the instruction
count for `keccak` by 5%.
The commit also renames `inlined_shallow_resolve()` as
`shallow_resolve()` and removes the `inline(always)` annotation, as it's
no longer nearly so hot.
2019-09-19 06:36:06 +10:00
Nicholas Nethercote
7f0637da51
Shrink SubregionOrigin
.
...
It's currently 120 bytes on x86-64, due to one oversized variant
(`Subtype`). This commit boxes `Subtype`'s contents, reducing the size
of `SubregionOrigin` to 32 bytes.
The change speeds things up by avoiding lots of `memcpy` calls, mostly
relating to `RegionConstraintData::constraints`, which is a `BTreeMap`
with `SubregionOrigin` values.
2019-09-12 13:36:01 +10:00
Alexander Regueiro
c1d29ee3c7
Aggregation of cosmetic changes made during work on REPL PRs: librustc
2019-09-07 16:27:19 +01:00
Yuki Okushi
82f2b37635
Add Option<Span> to require_lang_item
2019-08-28 07:11:12 +09:00
varkor
87e73c1f82
Remove redundant method with const variable resolution
2019-07-31 01:51:20 +01:00
Niko Matsakis
eca55b58d6
rename to "member constraints"
2019-07-02 12:25:22 -04:00
Niko Matsakis
e6b6873525
switch to Lrc
2019-07-02 12:25:22 -04:00
Niko Matsakis
adba6a8f90
address nits by mattewjasper
2019-07-02 12:25:21 -04:00
Niko Matsakis
0b15a66a80
account for the pick-constraint edges when reporting errors
...
Also, thread through better span info to improve the error message to
something tolerable.
2019-07-02 12:25:21 -04:00
Niko Matsakis
d6ec0ae777
enforce and report pick-constraint errors
...
The error message here is not great.
2019-07-02 12:15:19 -04:00
Niko Matsakis
02609b85e3
rename from "in constraint" to "pick constraint"
2019-07-02 12:15:19 -04:00
Niko Matsakis
14e23a5835
introduce an "in" constraint instead of error
2019-07-02 12:15:19 -04:00
John Kåre Alsaker
c9325181d6
Don't use lift to detect local types
2019-06-26 13:04:05 +02:00
Mazdak Farrokhzad
c5e6069194
Rollup merge of #62055 - matthewjasper:fix-error-counting, r=pnkfelix
...
Fix error counting
Count duplicate errors for `track_errors` and other error counting checks.
Add FIXMEs to make it clear that we should be moving away from this kind of logic.
Closes #61663
2019-06-25 17:15:31 +02:00
Matthew Jasper
95a32157af
Count all errors for track_errors
2019-06-22 15:36:24 +01:00
ljedrz
f6eb39203b
replace NodeId with HirId in infer::SubregionOrigin
2019-06-20 12:47:25 +02:00
Eduard-Mihai Burtescu
b25b466a88
rustc: remove 'x: 'y bounds (except from comments/strings).
2019-06-18 18:10:21 +03:00
Eduard-Mihai Burtescu
f3f9d6dfd9
Unify all uses of 'gcx and 'tcx.
2019-06-14 18:58:23 +03:00
John Kåre Alsaker
d3e1181b1c
Use a single lifetime for MIR construction
2019-06-12 19:27:00 +02:00
Eduard-Mihai Burtescu
17cdd356da
rustc: replace TyCtxt<'tcx, 'gcx, 'tcx>
with TyCtxt<'gcx, 'tcx>
.
2019-06-12 13:38:27 +03:00
Eduard-Mihai Burtescu
2441253508
Fix fallout from deny(unused_lifetimes)
.
2019-06-12 13:38:27 +03:00
Eduard-Mihai Burtescu
37799a5552
rustc: replace TyCtxt<'a, 'gcx, 'tcx>
with TyCtxt<'tcx, 'gcx, 'tcx>
.
2019-06-12 13:38:27 +03:00
bors
740668dbd9
Auto merge of #57428 - alexreg:associated_type_bounds, r=nikomatsakis,Centril
...
Implementation of RFC 2289 (associated_type_bounds)
This PR implements the [`asociated_type_bounds` feature](https://github.com/rust-lang/rfcs/blob/master/text/2289-associated-type-bounds.md ).
Associated type bounds are implemented in:
- function/method arguments and return types
- structs, enums, unions
- associated items in traits
- type aliases
- type parameter defaults
- trait objects
- let bindings
CC @nikomatsakis @centril
2019-06-06 03:56:22 +00:00
Alexander Regueiro
35585c499f
Aggregation of drive-by cosmetic changes.
2019-06-05 21:09:26 +01:00
varkor
8577bb49bf
Refactor ConstVariableOrigin
into ConstVariableOrigin
and ConstVariableOriginKind
2019-06-05 16:45:16 +01:00
varkor
4dcc49c685
Refactor TypeVariableOrigin
into TypeVariableOrigin
and TypeVariableOriginKind
2019-06-05 16:45:16 +01:00
John Kåre Alsaker
66a376ea4f
Store CtxtInterners for local values in AllArenas
2019-05-31 10:21:34 +02:00
varkor
c94ba6382d
Rename OpportunisticTypeResolver
to OpportunisticVarResolver
2019-05-28 21:34:42 +01:00
varkor
9a2772aff0
Implement ToTrace
for ty::Const
2019-05-06 15:07:46 +01:00
Eduard-Mihai Burtescu
8d9f4a128c
rustc: rename all occurences of "freevar" to "upvar".
2019-05-05 18:49:32 +03:00
Mazdak Farrokhzad
ffc33b3733
Rollup merge of #60513 - chrisvittal:remove-borrowck-compare, r=matthewjasper
...
Remove -Z borrowck=compare flag
This is the start of the work that needs to be done on #59193 . It just removes the flag and updates
the tests.
r? @matthewjasper
2019-05-04 09:21:26 +02:00
Christopher Vittal
db6f7a9d1a
Update help message
2019-05-03 17:34:17 -04:00
Mazdak Farrokhzad
bfa22cfbca
Rollup merge of #60401 - JohnTitor:rename-log, r=davidtwco
...
Rename `RUST_LOG` to `RUSTC_LOG`
cc: #57985
I think we should also change these submodules:
- rustc-guide
- Cargo (rename to `CARGO_LOG`, cc: https://github.com/rust-lang/cargo/pull/6605 , https://github.com/rust-lang/cargo/issues/6189 )
- miri
- rls
- rustfmt
r? @davidtwco
2019-05-03 16:25:00 +02:00
Christopher Vittal
7da9eeeaa7
Remove BorrowckMode::Compare
2019-05-02 15:35:49 -04:00
varkor
541de81f8e
Create ShallowResolver
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:11:20 +01:00
varkor
5cf45bc27a
Fix rebase issue
2019-05-01 23:11:19 +01:00
varkor
fc16b0a147
Fix rebase from LazyConst removal
2019-05-01 23:11:19 +01:00
varkor
c888af52be
Replace ConstVariableTable with UnificationTable
2019-05-01 23:10:58 +01:00
varkor
cf1a719c19
Implement fold_const for BoundVarReplacer
2019-05-01 23:10:57 +01:00
varkor
7d71a1c8a4
Add const generics to unification tables
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:57 +01:00