rust/src/librustc_metadata
bors 3cb24bd37b Auto merge of #44275 - eddyb:deferred-ctfe, r=nikomatsakis
Evaluate fixed-length array length expressions lazily.

This is in preparation for polymorphic array lengths (aka `[T; T::A]`) and const generics.
We need deferred const-evaluation to break cycles when array types show up in positions which require knowing the array type to typeck the array length, e.g. the array type is in a `where` clause.

The final step - actually passing bounds in scope to array length expressions from the parent - is not done because it still produces cycles when *normalizing* `ParamEnv`s, and @nikomatsakis' in-progress lazy normalization work is needed to deal with that uniformly.

However, the changes here are still useful to unlock work on const generics, which @EpicatSupercell manifested interest in, and I might be mentoring them for that, but we need this baseline first.

r? @nikomatsakis cc @oli-obk
2017-09-12 04:14:07 +00:00
..
astencode.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
build.rs rustc: Add some build scripts for librustc crates 2017-07-22 22:04:13 -07:00
Cargo.toml Move unused-extern-crate to late pass 2017-08-27 19:02:24 +09:00
creader.rs rustc: Remove DepGraph handling from rustc_metadata 2017-09-09 21:11:25 -07:00
cstore_impl.rs Auto merge of #44435 - alexcrichton:in-scope, r=michaelwoerister 2017-09-11 15:35:35 +00:00
cstore.rs rustc: Remove DepGraph handling from rustc_metadata 2017-09-09 21:11:25 -07:00
decoder.rs rustc: introduce ty::Const { ConstVal, Ty }. 2017-09-11 08:41:15 +03:00
diagnostics.rs Clarify failure condition on tests 2017-09-05 11:55:01 -07:00
encoder.rs Auto merge of #44275 - eddyb:deferred-ctfe, r=nikomatsakis 2017-09-12 04:14:07 +00:00
index_builder.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
index.rs rustc: Remove some dead code 2017-08-19 13:27:16 +03:00
isolated_encoder.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
lib.rs rustc: Remove a number of mutable fields in cstore 2017-09-05 07:37:28 -07:00
link_args.rs rustc: Remove a number of mutable fields in cstore 2017-09-05 07:37:28 -07:00
locator.rs rustc: Remove some dead code 2017-08-19 13:27:16 +03:00
native_libs.rs rustc: Remove a number of mutable fields in cstore 2017-09-05 07:37:28 -07:00
schema.rs rustc: Remove DepGraph handling from rustc_metadata 2017-09-09 21:11:25 -07:00