Niko Matsakis
8535a4a32c
add helper for_each_free_region that iterates over free regions
2017-10-31 12:41:38 -04:00
Niko Matsakis
0e67d17358
make erase_regions use a query instead of an ad-hoc cache
2017-10-17 11:24:46 -04:00
Eduard-Mihai Burtescu
74349fa288
rustc: evaluate fixed-length array length expressions lazily.
2017-09-11 08:41:16 +03:00
Tobias Schottdorf
687ee7fee4
Downgrade ProjectionTy's TraitRef to its substs
...
Addresses the second part of #42171 by removing the `TraitRef` from
`ProjectionTy`, and directly storing its `Substs`.
Closes #42171 .
2017-07-11 10:33:09 -04:00
Zack M. Davis
f668999153
use field init shorthand in src/librustc
...
The field init shorthand syntax was stabilized in 1.17.0 (aebd94f ); we
are now free to use it in the compiler.
2017-07-05 22:37:10 -07:00
Eduard-Mihai Burtescu
c0e8fffcbf
rustc: remove unused TypeFolder methods.
2017-06-01 08:59:47 +03:00
Niko Matsakis
4464dcc7ce
remove the cell from type flags completely
2017-05-22 15:37:10 -04:00
Eduard-Mihai Burtescu
ea1c6df81e
rustc: stop interning CodeExtent, it's small enough.
2017-05-13 17:43:32 +03:00
Eduard-Mihai Burtescu
74c6788d9c
rustc: move liberate_late_bound_regions to rustc_typeck.
2017-05-13 17:42:59 +03:00
Eduard-Mihai Burtescu
6d4c2141b5
rustc: use DefId instead of CodeExtent for FreeRegion's scope.
2017-05-13 17:42:59 +03:00
Niko Matsakis
c7dc39dbf0
intern CodeExtents
...
Make a `CodeExtent<'tcx>` be something allocated in an arena
instead of an index into the `RegionMaps`.
2017-04-30 17:02:59 -04:00
Niko Matsakis
55d6066c05
remove ROOT_CODE_EXTENT and DUMMY_CODE_EXTENT
...
Instead, thread around `Option<CodeExtent>` where applicable.
2017-04-30 17:02:58 -04:00
Ariel Ben-Yehuda
e1377a4f47
avoid calling mk_region unnecessarily
...
this improves typeck & trans performance by 1%. This looked hotter on
callgrind than it is on a CPU.
2017-04-22 21:00:50 +03:00
Eduard-Mihai Burtescu
91374f8fe4
rustc: combine BareFnTy and ClosureTy into FnSig.
2017-02-25 17:47:15 +02:00
Eduard-Mihai Burtescu
36d33d6b71
rustc_privacy: visit Ty instead of HIR types in EmbargoVisitor.
2016-11-28 05:09:28 +02:00
Nicholas Nethercote
00e48affde
Replace FnvHasher use with FxHasher.
...
This speeds up compilation by 3--6% across most of rustc-benchmarks.
2016-11-08 15:14:59 +11:00
Eduard Burtescu
0d7201ef46
rustc: record the target type of every adjustment.
2016-11-02 04:00:02 +02:00
Niko Matsakis
567b11fc3a
only remove keys that mention skolemized regions
2016-10-21 11:13:36 -04:00
Niko Matsakis
58b75f7aa3
loosen assertion against proj in collector
...
The collector was asserting a total absence of projections, but some
projections are expected, even in trans: in particular, projections
containing higher-ranked regions, which we don't currently normalize.
2016-10-03 11:52:36 -04:00
Eduard Burtescu
dffd238f8b
rustc: pass ty::Region behind an interned 'tcx reference.
2016-08-27 01:15:06 +03:00
Eduard Burtescu
4158673ad7
rustc: reduce Substs and Generics to a simple immutable API.
2016-08-17 05:50:57 +03:00
Eduard Burtescu
4b25f08512
rustc: move trait objects from TraitRef to ExistentialTraitRef.
2016-08-17 05:50:57 +03:00
Andrew Cann
ed02344fbc
Remove obsolete divergence related stuff
...
Replace FnOutput with Ty
Replace FnConverging(ty) with ty
Purge FnDiverging, FunctionRetTy::NoReturn and FunctionRetTy::None
2016-08-13 21:37:09 +08:00
Eduard Burtescu
ef11d4e3c7
rustc: add TyAnon (impl Trait) to the typesystem.
2016-08-12 06:43:34 +03:00
Zack M. Davis
d37edef9dd
prefer if let to match with None => {} arm in some places
...
This is a spiritual succesor to #34268/8531d581, in which we replaced a
number of matches of None to the unit value with `if let` conditionals
where it was judged that this made for clearer/simpler code (as would be
recommended by Manishearth/rust-clippy's `single_match` lint). The same
rationale applies to matches of None to the empty block.
2016-07-03 16:27:02 -07:00
Eduard Burtescu
bcec7a5848
rustc: add ReErased to be used by trait selection, MIR and trans.
2016-06-05 13:58:51 +03:00
Michael Woerister
4386d19185
trans::collector: Remove some redundant calls to erase_regions().
2016-05-23 10:21:50 -04:00
Niko Matsakis
ccfb74e800
warn for where/return-types that reference regions
...
This is a step towards fixing #32330 . The full fix would be a breaking
change, so we begin by issuing warnings for scenarios that will break.
2016-05-17 20:25:18 -04:00
Eduard Burtescu
20652162ca
rustc: More interning for data used in Ty<'tcx>.
2016-05-11 04:14:58 +03:00
Eduard Burtescu
8f72d8127f
rustc: Generalize a minimum set of functions over 'tcx != 'gcx.
2016-05-11 04:14:58 +03:00
Eduard Burtescu
76affa5d6f
rustc: Split 'tcx into 'gcx and 'tcx for InferCtxt and its users.
2016-05-11 04:14:58 +03:00
Eduard Burtescu
513d392f7e
rustc: Replace &'a TyCtxt<'tcx> with a TyCtxt<'a, 'tcx> wrapper.
2016-05-11 04:14:58 +03:00
Ariel Ben-Yehuda
babb5df529
refactor the handling of builtin candidates
2016-05-03 18:30:10 +03:00
Jeffrey Seyfried
588e0f9873
Remove the implicit binder from VecPerParamSpace
2016-03-27 03:26:28 +00:00
Eduard Burtescu
5efdde0de1
rustc: move cfg, infer, traits and ty from middle to top-level.
2016-03-27 01:05:54 +02:00