Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | internal: rename hypothetical -> speculative | Aleksey Kladov | 2021-05-24 | 1 | -1/+1 |
| | | | | | Lets steal this good naming from Roslyn before I forget about it yet again. | ||||
* | internal: intern `TypeBound`s | Jonas Schievink | 2021-05-24 | 1 | -1/+2 |
| | | | | | Doesn't save much memory (~2 mb), but interning things is generally a good pattern to follow | ||||
* | Rework obligation handling | Florian Diebold | 2021-05-21 | 1 | -1/+3 |
| | | | | | | | | We can't do the easy hack that we did before anymore, where we kept track of whether any inference variables changed since the last time we rechecked obligations. Instead, we store the obligations in canonicalized form; that way we can easily check the inference variables to see whether they have changed since the goal was canonicalized. | ||||
* | Address final feedback | Jade | 2021-05-16 | 1 | -12/+7 |
| | | | | | * rename ConstExtension->ConstExt * refactor a manual construction of a Const | ||||
* | Add lowering of array lengths in types | Jade | 2021-05-13 | 1 | -10/+16 |
| | | | | | | | | | | | Now e.g. ```rust fn a(b: [u8; 2]) { } ``` will know about the length of b. | ||||
* | Add basic support for array lengths in types | Jade | 2021-05-11 | 1 | -0/+2 |
| | | | | | | | | | | This recognizes `let a = [1u8, 2, 3]` as having type `[u8; 3]` instead of the previous `[u8; _]`. Byte strings and `[0u8; 2]` kinds of range array declarations are unsupported as before. I don't know why a bunch of our rustc tests had single quotes inside strings un-escaped by `UPDATE_EXPECT=1 cargo t`, but I don't think it's bad? Maybe something in a nightly? | ||||
* | Don't look in super traits for <T as Trait>::Assoc | Florian Diebold | 2021-04-29 | 1 | -7/+6 |
| | | | | | | | This isn't actually how it works, you have to specify the exact trait that has the associated type. Fixes #8686. | ||||
* | Handle cycles in generic_defaults more gracefully | Florian Diebold | 2021-04-29 | 1 | -0/+21 |
| | |||||
* | hir_ty: cleanups and extend infinitely_recursive_macro_type test | cynecx | 2021-04-18 | 1 | -3/+5 |
| | |||||
* | hir_ty: keep body::Expander in TyLoweringContext | cynecx | 2021-04-18 | 1 | -14/+57 |
| | |||||
* | hir_def: refactor expand_macro_type and cleanups | cynecx | 2021-04-17 | 1 | -3/+3 |
| | |||||
* | hir_ty: Expand macros at type position | cynecx | 2021-04-17 | 1 | -1/+11 |
| | |||||
* | Move ToChalk -> mapping | Florian Diebold | 2021-04-09 | 1 | -4/+4 |
| | |||||
* | Reorganize hir_ty modules | Florian Diebold | 2021-04-09 | 1 | -1/+2 |
| | | | | | Chalk isn't really a 'traits' thing anymore, so it doesn't make sense to have all the Chalk-related stuff in submodules of `traits`. | ||||
* | Remove unused | Florian Diebold | 2021-04-08 | 1 | -1/+1 |
| | |||||
* | Remove identity impls for ToChalk | Florian Diebold | 2021-04-08 | 1 | -3/+2 |
| | |||||
* | Replace some `fold` calls | Florian Diebold | 2021-04-08 | 1 | -16/+10 |
| | |||||
* | Fix shifted_{in,out} calls | Florian Diebold | 2021-04-08 | 1 | -3/+3 |
| | |||||
* | Add HasInterner bounds | Florian Diebold | 2021-04-08 | 1 | -2/+2 |
| | |||||
* | Move hir_trait_id to extension trait | Florian Diebold | 2021-04-07 | 1 | -1/+1 |
| | |||||
* | infer: remove `record_field_resolutions` field | Jonas Schievink | 2021-04-06 | 1 | -3/+2 |
| | | | | | It stores no useful data, since we can derive all fields from `variant_resolutions` | ||||
* | Add chalk_ir::Const to TyKind::Array | Lukas Wirth | 2021-04-06 | 1 | -2/+2 |
| | |||||
* | Use a constructor function for Static lifetimes | Lukas Wirth | 2021-04-06 | 1 | -6/+5 |
| | |||||
* | Add Lifetime to DynTy | Lukas Wirth | 2021-04-06 | 1 | -1/+3 |
| | |||||
* | Add Lifetime to TyKind::Ref | Lukas Wirth | 2021-04-06 | 1 | -2/+4 |
| | |||||
* | Fix shifting of binders in FnPointer | Florian Diebold | 2021-04-05 | 1 | -2/+3 |
| | | | | | | | | | - don't shift in/out for Chalk mapping (we want to have the same binders now) - do shift in when creating the signature for a closure (though it shouldn't matter much) - do shift in when lowering a `fn()` type - correctly deal with the implied binder in TypeWalk | ||||
* | Align FnPointer with Chalk | Florian Diebold | 2021-04-05 | 1 | -5/+5 |
| | |||||
* | Binders::wrap_empty -> wrap_empty_binders | Florian Diebold | 2021-04-05 | 1 | -3/+5 |
| | |||||
* | Rename shift_bound_vars{_out} to align with Chalk | Florian Diebold | 2021-04-05 | 1 | -9/+9 |
| | |||||
* | Get rid of subst_bound_vars uses | Florian Diebold | 2021-04-05 | 1 | -1/+1 |
| | |||||
* | Get rid of some walk_mut uses | Florian Diebold | 2021-04-05 | 1 | -4/+6 |
| | |||||
* | Add Interner parameter to Binders::substitute | Florian Diebold | 2021-04-05 | 1 | -4/+4 |
| | |||||
* | Binders::subst -> substitute | Florian Diebold | 2021-04-05 | 1 | -4/+4 |
| | |||||
* | Use VariableKinds in Binders | Florian Diebold | 2021-04-05 | 1 | -41/+41 |
| | |||||
* | Hide Binders internals more | Florian Diebold | 2021-04-05 | 1 | -10/+13 |
| | |||||
* | Pass interner to TraitRef::self_type_parameter | Laurențiu Nicola | 2021-04-05 | 1 | -1/+2 |
| | |||||
* | Rename TyKind::ForeignType to Foreign | Laurențiu Nicola | 2021-04-05 | 1 | -1/+1 |
| | |||||
* | Rename TyKind::Unknown to Error | Laurențiu Nicola | 2021-04-05 | 1 | -19/+19 |
| | |||||
* | Replace Substitution::type_params | Florian Diebold | 2021-04-04 | 1 | -3/+4 |
| | |||||
* | Replace Substitution::bound_vars and ::type_params_for_generics | Florian Diebold | 2021-04-04 | 1 | -16/+8 |
| | |||||
* | Use TyBuilder in another place | Florian Diebold | 2021-04-04 | 1 | -4/+3 |
| | |||||
* | Move Ty::builtin to TyBuilder | Florian Diebold | 2021-04-04 | 1 | -1/+1 |
| | |||||
* | Add TyBuilder::adt | Florian Diebold | 2021-04-04 | 1 | -4/+5 |
| | |||||
* | Use bitflags to compress function properties | Jonas Schievink | 2021-04-03 | 1 | -1/+1 |
| | | | | Very minor savings, only 1 MB or so | ||||
* | Introduce `GenericArg` like in Chalk | Florian Diebold | 2021-04-03 | 1 | -8/+9 |
| | | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters. | ||||
* | Merge #8284 | bors[bot] | 2021-04-02 | 1 | -1/+1 |
|\ | | | | | | | | | | | | | | | 8284: Reduce memory usage by using global `Arc`-based interning r=jonas-schievink a=jonas-schievink This saves around 50 mb when running `analysis-stats` on r-a itself. Not a lot, but this infra can be easily reused to intern more stuff. Co-authored-by: Jonas Schievink <[email protected]> | ||||
| * | Global TypeRef/TraitRef interning | Jonas Schievink | 2021-04-01 | 1 | -1/+1 |
| | | |||||
* | | Don't allocate in `associated_type_shorthand_candidates` | Lukas Wirth | 2021-04-02 | 1 | -36/+33 |
| | | |||||
* | | Resolve associated types with type anchors | Lukas Wirth | 2021-04-01 | 1 | -1/+1 |
|/ | |||||
* | Remove TraitRef::Error | Lukas Wirth | 2021-03-29 | 1 | -4/+1 |
| |