rust/src/librustc/middle
bors f65d96fe3f Auto merge of #35340 - michaelwoerister:incr-comp-cli-args, r=nikomatsakis
Take commandline arguments into account for incr. comp.

Implements the conservative strategy described in https://github.com/rust-lang/rust/issues/33727.

From now one, every time a new commandline option is added, one has to specify if it influences the incremental compilation cache. I've tried to implement this as automatic as possible: One just has to added either the `[TRACKED]` or the `[UNTRACKED]` marker next to the field. The `Options`, `CodegenOptions`, and `DebuggingOptions` definitions in `session::config` show plenty of examples.

The PR removes some cruft from `session::config::Options`, mostly unnecessary copies of flags also present in `DebuggingOptions` or `CodeGenOptions` in the same struct.

One notable removal is the `cfg` field that contained the values passed via `--cfg` commandline arguments. I chose to remove it because (1) its content is only a subset of what later is stored in `hir::Crate::config` and it's pretty likely that reading the cfgs from `Options` would not be what you wanted, and (2) we could not incorporate it into the dep-tracking hash of the `Options` struct because of how the test framework works, leaving us with a piece of untracked but vital data.

It is now recommended (just as before) to access the crate config via the `krate()` method in the HIR map.

Because the `cfg` field is not present in the `Options` struct any more, some methods in the `CompilerCalls` trait now take the crate config as an explicit parameter -- which might constitute a breaking change for plugin authors.
2016-08-15 08:35:18 -07:00
..
astconv_util.rs Rollup merge of #35374 - mrabault:e0229_format, r=jonathandturner 2016-08-06 15:01:22 +03:00
const_qualif.rs move more checks out of librustc 2016-01-21 10:52:37 +01:00
const_val.rs rustc_const_eval: work around double rounding. 2016-06-05 19:18:28 +03:00
cstore.rs Add the notion of a dependency tracking status to commandline arguments. 2016-08-11 09:56:00 -04:00
dataflow.rs prefer if let to match with None => {} arm in some places 2016-07-03 16:27:02 -07:00
dead.rs Move errors from libsyntax to its own crate 2016-06-23 08:07:35 -04:00
dependency_format.rs prefer if let to match with None => {} arm in some places 2016-07-03 16:27:02 -07:00
effect.rs Update E0133 to new format 2016-08-10 15:29:45 +08:00
entry.rs Update E0138 to new format 2016-08-11 10:18:23 +08:00
expr_use_visitor.rs move during_closure_kind_inference flag to mc 2016-07-25 10:18:16 -04:00
free_region.rs rustc_typeck: Generalize over 'tcx != 'gcx. 2016-05-11 04:14:58 +03:00
intrinsicck.rs rustc: rename ProjectionMode and its variant to be more memorable. 2016-08-12 06:43:34 +03:00
lang_items.rs Implement ARM personality routine in Rust. 2016-07-24 01:53:27 -07:00
liveness.rs rustc: rename ProjectionMode and its variant to be more memorable. 2016-08-12 06:43:34 +03:00
mem_categorization.rs move during_closure_kind_inference flag to mc 2016-07-25 10:18:16 -04:00
privacy.rs Retire rustdocs ANALYSISKEY 2016-04-13 19:39:17 +02:00
reachable.rs Introduce TyCtxt::expect_def/expect_resolution helpers and use them where possible 2016-06-10 01:03:54 +03:00
recursion_limit.rs
region.rs Move errors from libsyntax to its own crate 2016-06-23 08:07:35 -04:00
resolve_lifetime.rs Auto merge of #35567 - creativcoder:e0261, r=jonathandturner 2016-08-15 05:12:35 -07:00
stability.rs ignore deprecation for items deprecated by the same attribute 2016-08-04 23:15:52 +02:00
weak_lang_items.rs prefer if let to match with None => {} arm in some places 2016-07-03 16:27:02 -07:00