aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/lower.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* Introduce QuantifiedWhereClause and DynTy analogous to ChalkFlorian Diebold2021-03-211-19/+36
| | | | | This introduces a bunch of new binders in lots of places, which we have to be careful about, but we had to add them at some point.
* Merge #8133bors[bot]2021-03-211-6/+19
|\ | | | | | | | | | | | | | | | | | | 8133: Ignore type bindings in generic_predicates_for_param (fix panic on ena and crates depending on it) r=flodiebold a=flodiebold This allows us to handle more cases without a query cycle, which includes certain cases that rustc accepted. That in turn means we avoid triggering salsa-rs/salsa#257 on valid code (it will still happen if the user writes an actual cycle). We actually accept more definitions than rustc now; that's because rustc only ignores bindings when looking up super traits, whereas we now also ignore them when looking for predicates to disambiguate associated type shorthand. We could introduce a separate query for super traits if necessary, but for now I think this should be fine. Co-authored-by: Florian Diebold <[email protected]>
| * Ignore type bindings in generic_predicates_for_paramFlorian Diebold2021-03-211-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to handle more cases without a query cycle, which includes certain cases that rustc accepted. That in turn means we avoid triggering salsa-rs/salsa#257 on valid code (it will still happen if the user writes an actual cycle). We actually accept more definitions than rustc now; that's because rustc only ignores bindings when looking up super traits, whereas we now also ignore them when looking for predicates to disambiguate associated type shorthand. We could introduce a separate query for super traits if necessary, but for now I think this should be fine.
* | remove more redundant clones (clippy::redundant_clone())Matthias Krüger2021-03-211-2/+1
|/
* Remove WhereClause::ErrorFlorian Diebold2021-03-201-5/+2
| | | | | Chalk doesn't have it, and judging from the removed code, it wasn't useful anyway.
* Rename GenericPredicate -> WhereClauseFlorian Diebold2021-03-201-20/+17
|
* Replace Projection variant in GenericPredicate with AliasEqLukas Wirth2021-03-191-5/+5
|
* Chalkify TraitRefFlorian Diebold2021-03-181-11/+11
|
* Rename Substs -> SubstitutionFlorian Diebold2021-03-161-21/+25
|
* Use SmallVec for SubstsFlorian Diebold2021-03-151-4/+5
| | | | | Doesn't help as much as I hoped, but it helps a bit and I also did some refactorings that were necessary anyway.
* Don't use Substs for Ref/Raw/Array/SliceFlorian Diebold2021-03-141-6/+4
|
* Make Ty wrap TyKind in an ArcFlorian Diebold2021-03-141-1/+1
| | | | | | | | ... like it will be in Chalk. We still keep `interned_mut` and `into_inner` methods that will probably not exist with Chalk. This worsens performance slightly (5ginstr inference on RA), but doesn't include other simplifications we can do yet.
* More renamingFlorian Diebold2021-03-141-2/+5
|
* Use chalk_ir::FnSigFlorian Diebold2021-03-141-2/+2
|
* Rename some fields to their Chalk namesFlorian Diebold2021-03-141-6/+6
|
* Move type lowering methods to TyLoweringContextFlorian Diebold2021-03-131-275/+235
|
* Create TraitEnvironment through a queryFlorian Diebold2021-03-131-44/+44
|
* Use chalk_ir::OpaqueTyIdFlorian Diebold2021-03-131-7/+5
|
* Use chalk_ir::PlaceholderIndexFlorian Diebold2021-03-131-6/+11
|
* Use chalk_ir::FnDefIdFlorian Diebold2021-03-131-3/+12
|
* Use chalk_ir::AssocTypeIdFlorian Diebold2021-03-131-3/+7
|
* Use chalk_ir::ForeignDefIdFlorian Diebold2021-03-131-1/+1
|
* Separate `Ty` and `TyKind` like in ChalkFlorian Diebold2021-03-131-51/+71
| | | | | Currently `Ty` just wraps `TyKind`, but this allows us to change most places to already use `intern` / `interned`.
* Use Chalk Environment more directlyFlorian Diebold2021-03-121-8/+23
|
* Delete `ContainerId`Jonas Schievink2021-03-091-2/+2
|
* Use upstream cov-markLaurențiu Nicola2021-03-081-3/+2
|
* Use chalk_ir::AdtIdLukas Wirth2021-03-041-1/+1
|
* Use chalk_ir::MutabilityLukas Wirth2021-03-011-2/+10
|
* Introduce Ty::AliasLukas Wirth2021-03-011-16/+19
|
* Lift FnPointer into a structLukas Wirth2021-02-281-8/+12
|
* Remove Substs from Ty::ForeignTypeLukas Wirth2021-02-281-2/+2
|
* Turn Ty::Tuple variant into a tuple-variantLukas Wirth2021-02-281-1/+1
|
* Inline TypeCtor into TyLukas Wirth2021-02-281-20/+13
|
* Don't lower TypeBound::Lifetime as GenericPredicate::ErrorLukas Wirth2021-02-201-18/+16
|
* Wrap `BuiltinType` in code modelJonas Schievink2021-02-111-13/+1
|
* Make `ModuleId`'s `krate` field privateJonas Schievink2021-01-221-1/+1
|
* Remove map module from la-arena public APIAramis Razzaghipour2021-01-151-1/+1
| | | | | | It’s unlikely that more items will be added to the module, so it’s simpler for users if `ArenaMap` is re-exported and the module made private.
* prepare to publish el libro de arenaAleksey Kladov2021-01-141-1/+1
|
* Fixed typos in local bindingsVincent Esche2021-01-091-3/+3
|
* Add ConstParams to the HIRLukas Wirth2021-01-011-3/+12
|
* Higher-ranked trait bounds for where clausesLukas Wirth2020-12-171-9/+9
|
* Ignore lifetime params in substitutionsLukas Wirth2020-12-131-1/+7
|
* Add Lifetimes to the HIRLukas Wirth2020-12-111-26/+40
|
* Use Ty::apply instead of simple and fix method resolution.Charles Lew2020-09-161-5/+5
|
* Lower extern type alias as foreign opaque type.Charles Lew2020-09-161-2/+6
|
* Rename ra_hir_ty -> hir_tyAleksey Kladov2020-08-131-0/+1242