aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/lower.rs
Commit message (Collapse)AuthorAgeFilesLines
* Address final feedbackJade2021-05-161-12/+7
| | | | | * rename ConstExtension->ConstExt * refactor a manual construction of a Const
* Add lowering of array lengths in typesJade2021-05-131-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 typesJade2021-05-111-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>::AssocFlorian Diebold2021-04-291-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 gracefullyFlorian Diebold2021-04-291-0/+21
|
* hir_ty: cleanups and extend infinitely_recursive_macro_type testcynecx2021-04-181-3/+5
|
* hir_ty: keep body::Expander in TyLoweringContextcynecx2021-04-181-14/+57
|
* hir_def: refactor expand_macro_type and cleanupscynecx2021-04-171-3/+3
|
* hir_ty: Expand macros at type positioncynecx2021-04-171-1/+11
|
* Move ToChalk -> mappingFlorian Diebold2021-04-091-4/+4
|
* Reorganize hir_ty modulesFlorian Diebold2021-04-091-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 unusedFlorian Diebold2021-04-081-1/+1
|
* Remove identity impls for ToChalkFlorian Diebold2021-04-081-3/+2
|
* Replace some `fold` callsFlorian Diebold2021-04-081-16/+10
|
* Fix shifted_{in,out} callsFlorian Diebold2021-04-081-3/+3
|
* Add HasInterner boundsFlorian Diebold2021-04-081-2/+2
|
* Move hir_trait_id to extension traitFlorian Diebold2021-04-071-1/+1
|
* infer: remove `record_field_resolutions` fieldJonas Schievink2021-04-061-3/+2
| | | | | It stores no useful data, since we can derive all fields from `variant_resolutions`
* Add chalk_ir::Const to TyKind::ArrayLukas Wirth2021-04-061-2/+2
|
* Use a constructor function for Static lifetimesLukas Wirth2021-04-061-6/+5
|
* Add Lifetime to DynTyLukas Wirth2021-04-061-1/+3
|
* Add Lifetime to TyKind::RefLukas Wirth2021-04-061-2/+4
|
* Fix shifting of binders in FnPointerFlorian Diebold2021-04-051-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 ChalkFlorian Diebold2021-04-051-5/+5
|
* Binders::wrap_empty -> wrap_empty_bindersFlorian Diebold2021-04-051-3/+5
|
* Rename shift_bound_vars{_out} to align with ChalkFlorian Diebold2021-04-051-9/+9
|
* Get rid of subst_bound_vars usesFlorian Diebold2021-04-051-1/+1
|
* Get rid of some walk_mut usesFlorian Diebold2021-04-051-4/+6
|
* Add Interner parameter to Binders::substituteFlorian Diebold2021-04-051-4/+4
|
* Binders::subst -> substituteFlorian Diebold2021-04-051-4/+4
|
* Use VariableKinds in BindersFlorian Diebold2021-04-051-41/+41
|
* Hide Binders internals moreFlorian Diebold2021-04-051-10/+13
|
* Pass interner to TraitRef::self_type_parameterLaurențiu Nicola2021-04-051-1/+2
|
* Rename TyKind::ForeignType to ForeignLaurențiu Nicola2021-04-051-1/+1
|
* Rename TyKind::Unknown to ErrorLaurențiu Nicola2021-04-051-19/+19
|
* Replace Substitution::type_paramsFlorian Diebold2021-04-041-3/+4
|
* Replace Substitution::bound_vars and ::type_params_for_genericsFlorian Diebold2021-04-041-16/+8
|
* Use TyBuilder in another placeFlorian Diebold2021-04-041-4/+3
|
* Move Ty::builtin to TyBuilderFlorian Diebold2021-04-041-1/+1
|
* Add TyBuilder::adtFlorian Diebold2021-04-041-4/+5
|
* Use bitflags to compress function propertiesJonas Schievink2021-04-031-1/+1
| | | | Very minor savings, only 1 MB or so
* Introduce `GenericArg` like in ChalkFlorian Diebold2021-04-031-8/+9
| | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters.
* Merge #8284bors[bot]2021-04-021-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 interningJonas Schievink2021-04-011-1/+1
| |
* | Don't allocate in `associated_type_shorthand_candidates`Lukas Wirth2021-04-021-36/+33
| |
* | Resolve associated types with type anchorsLukas Wirth2021-04-011-1/+1
|/
* Remove TraitRef::ErrorLukas Wirth2021-03-291-4/+1
|
* Rename target_ty to self_tyLukas Wirth2021-03-291-1/+1
|
* Lower traits to TraitRef instead of TypeRefLukas Wirth2021-03-291-7/+6
|
* Fix chalk_ir assertionFlorian Diebold2021-03-241-4/+7
| | | | Fixes #8150.