| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2017-08-15 | use field init shorthand EVERYWHERE | Zack M. Davis | -1/+1 | |
| Like #43008 (f668999), but _much more aggressive_. | ||||
| 2017-08-14 | Auto merge of #43740 - michaelwoerister:local-id-in-typecktables, r=arielb1 | bors | -2/+2 | |
| Use hir::ItemLocalId as keys in TypeckTables. This PR makes `TypeckTables` use `ItemLocalId` instead of `NodeId` as key. This is needed for incremental compilation -- for stable hashing and for being able to persist and reload these tables. The PR implements the most important part of https://github.com/rust-lang/rust/issues/40303. Some notes on the implementation: * The PR adds the `HirId` to HIR nodes where needed (`Expr`, `Local`, `Block`, `Pat`) which obviates the need to store a `NodeId -> HirId` mapping in crate metadata. Thanks @eddyb for the suggestion! In the future the `HirId` should completely replace the `NodeId` in HIR nodes. * Before something is read or stored in one of the various `TypeckTables` subtables, the entry's key is validated via the new `TypeckTables::validate_hir_id()` method. This makes sure that we are not mixing information from different items in a single table. That last part could be made a bit nicer by either (a) new-typing the table-key and making `validate_hir_id()` the only way to convert a `HirId` to the new-typed key, or (b) just encapsulate sub-table access a little better. This PR, however, contents itself with not making things significantly worse. Also, there's quite a bit of switching around between `NodeId`, `HirId`, and `DefIndex`. These conversions are cheap except for `HirId -> NodeId`, so if the valued reviewer finds such an instance in a performance critical place, please let me know. Ideally we convert more and more code from `NodeId` to `HirId` in the future so that there are no more `NodeId`s after HIR lowering anywhere. Then the amount of switching should be minimal again. r? @eddyb, maybe? | ||||
| 2017-08-12 | Fix some typos | Bastien Orivel | -1/+1 | |
| 2017-08-11 | Use ItemLocalId as key for node_types, node_substs, and adjustments in ↵ | Michael Woerister | -1/+1 | |
| TypeckTables. | ||||
| 2017-08-11 | Make TypeckTables::type_dependent_defs use ItemLocalId instead of NodeId. | Michael Woerister | -1/+1 | |
| 2017-08-02 | rustc_const_math: use apfloat::ieee::{Single,Double} in ConstFloat. | Eduard-Mihai Burtescu | -28/+27 | |
| 2017-07-27 | rustc_const_eval: keep track of the appropriate ParamEnv. | Eduard-Mihai Burtescu | -35/+33 | |
| 2017-07-27 | rustc_const_eval: always require correct Substs. | Eduard-Mihai Burtescu | -38/+15 | |
| 2017-07-19 | Implement const fn {size,align}_of. | Eduard-Mihai Burtescu | -0/+23 | |
| 2017-06-13 | On-demand is_const_fn | Taylor Cramer | -1/+1 | |
| 2017-06-10 | rustc: make the comon case of tcx.infer_ctxt(()) nicer. | Eduard-Mihai Burtescu | -1/+1 | |
| 2017-06-01 | strip param-env from infcx | Niko Matsakis | -1/+3 | |
| 2017-06-01 | move projection mode into parameter environment | Niko Matsakis | -1/+1 | |
| 2017-06-01 | rustc: remove unnecessary ItemSubsts wrapper. | Eduard-Mihai Burtescu | -2/+1 | |
| 2017-05-04 | trait_of_item | achernyak | -1/+1 | |
| 2017-04-27 | query for describe_def | achernyak | -1/+1 | |
| 2017-04-24 | rustc: use tcx.at(span) to set the location of a query. | Eduard-Mihai Burtescu | -1/+1 | |
| 2017-04-24 | rustc: expose the common DUMMY_SP query case as tcx methods. | Eduard-Mihai Burtescu | -2/+2 | |
| 2017-04-24 | rustc: rename some of the queries to match tcx methods. | Eduard-Mihai Burtescu | -3/+3 | |
| 2017-04-23 | rustc_const_eval: support all unit enum variants. | Eduard-Mihai Burtescu | -44/+33 | |
| 2017-04-23 | rustc_const_eval: CallOn isn't needed, typeck/const-qualif handle those cases. | Eduard-Mihai Burtescu | -1/+1 | |
| 2017-04-23 | rustc: make the const-eval cache polymorphic. | Eduard-Mihai Burtescu | -104/+81 | |
| 2017-04-16 | rustc: use monomorphic const_eval for cross-crate enum discriminants. | Eduard-Mihai Burtescu | -4/+7 | |
| 2017-04-16 | rustc: expose monomorphic const_eval through on-demand. | Eduard-Mihai Burtescu | -34/+15 | |
| 2017-04-16 | rustc_const_eval: move ConstEvalErr to the rustc crate. | Eduard-Mihai Burtescu | -170/+6 | |
| 2017-03-31 | Don't warn about `char` comparisons in constexprs | Matthew Jasper | -0/+11 | |
| 2017-02-25 | rustc_const_eval: demand that the MIR qualify_consts ran on each evaluated body. | Eduard-Mihai Burtescu | -1/+2 | |
| 2017-02-25 | rustc_const_eval: always demand typeck_tables for evaluating constants. | Eduard-Mihai Burtescu | -469/+224 | |
| 2017-02-25 | rustc_typeck: rework coherence to be almost completely on-demand. | Eduard-Mihai Burtescu | -1/+1 | |
| 2017-02-25 | rustc_typeck: hook up collect and item/body check to on-demand. | Eduard-Mihai Burtescu | -4/+2 | |
| 2017-02-25 | rustc: introduce a query system for type information in ty::maps. | Eduard Burtescu | -1/+1 | |
| 2017-02-25 | rustc: consolidate dep-tracked hashmaps in tcx.maps. | Eduard-Mihai Burtescu | -5/+5 | |
| 2017-02-04 | More snap cleanup | Simonas Kazlauskas | -6/+3 | |
| 2017-02-03 | Bump version, upgrade bootstrap | Alex Crichton | -2/+0 | |
| This commit updates the version number to 1.17.0 as we're not on that version of the nightly compiler, and at the same time this updates src/stage0.txt to bootstrap from freshly minted beta compiler and beta Cargo. | ||||
| 2017-01-31 | use suggestions instead of helps with code in them | Oliver Schneider | -2/+0 | |
| 2017-01-26 | rustc: don't call the HIR AST. | Eduard-Mihai Burtescu | -5/+5 | |
| 2017-01-26 | rustc: rename TyCtxt's `map` field to `hir`. | Eduard-Mihai Burtescu | -18/+18 | |
| 2017-01-25 | rename `Tables` to `TypeckTables` | Niko Matsakis | -7/+7 | |
| 2017-01-11 | Fix two const-eval issues related to i128 negation | Simonas Kazlauskas | -13/+16 | |
| First issue here was the fact that we’d only allow negating integers in i64 range in case the integer was not infered yes. While this is not the direct cause of the issue, its still good to fix it. The real issue here is the code handling specifically the `min_value` literals. While I128_OVERFLOW has the expected value (0x8000_..._0000), match using this value as a pattern is handled incorrectly by the stage1 compiler (it seems to be handled correctly, by the stage2 compiler). So what we do here is extract this pattern into an explicit `==` until the next snapshot. Fixes #38987 | ||||
| 2017-01-06 | rustc: store ty::Tables separately for each body (except closures'). | Eduard-Mihai Burtescu | -29/+43 | |
| 2017-01-06 | rustc: keep track of tables everywhere as if they were per-body. | Eduard-Mihai Burtescu | -181/+179 | |
| 2017-01-01 | rustc_const_eval: convert constants to Pattern instead of hir::Pat. | Eduard-Mihai Burtescu | -127/+3 | |
| 2016-12-30 | Such large. Very 128. Much bits. | Simonas Kazlauskas | -37/+52 | |
| This commit introduces 128-bit integers. Stage 2 builds and produces a working compiler which understands and supports 128-bit integers throughout. The general strategy used is to have rustc_i128 module which provides aliases for iu128, equal to iu64 in stage9 and iu128 later. Since nowhere in rustc we rely on large numbers being supported, this strategy is good enough to get past the first bootstrap stages to end up with a fully working 128-bit capable compiler. In order for this strategy to work, number of locations had to be changed to use associated max_value/min_value instead of MAX/MIN constants as well as the min_value (or was it max_value?) had to be changed to use xor instead of shift so both 64-bit and 128-bit based consteval works (former not necessarily producing the right results in stage1). This commit includes manual merge conflict resolution changes from a rebase by @est31. | ||||
| 2016-12-28 | rustc: always print nested nodes where a HIR map is available. | Eduard-Mihai Burtescu | -1/+2 | |
| 2016-12-28 | rustc: simplify constant cross-crate loading and rustc_passes::consts. | Eduard-Mihai Burtescu | -75/+17 | |
| 2016-12-28 | rustc: move function arguments into hir::Body. | Eduard-Mihai Burtescu | -11/+9 | |
| 2016-12-28 | rustc: separate bodies for static/(associated)const and embedded constants. | Eduard-Mihai Burtescu | -20/+27 | |
| 2016-12-28 | rustc: separate TraitItem from their parent Item, just like ImplItem. | Eduard-Mihai Burtescu | -1/+1 | |
| 2016-11-29 | Fix rebase breakage | Florian Diebold | -3/+6 | |
| 2016-11-29 | Refactor inlined items some more | Florian Diebold | -19/+28 | |
| They don't implement FnLikeNode anymore, instead are handled differently further up in the call tree. Also, keep less information (just def ids for the args). | ||||
