aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Move `equals_ctor` to `TyExt`Florian Diebold2021-04-071-31/+1
| | | | | | I'd prefer getting rid of it, but it's used in the impl search and not super easy to replace there (I think ideally the impl search would do proper unification, but that's a bit more complicated).
* Remove Ty::substs{_mut}Florian Diebold2021-04-071-28/+0
| | | | | | Almost all uses actually only care about ADT substs, so it's better to be explicit. The methods were a bad abstraction anyway since they already didn't include the inner types of e.g. `TyKind::Ref` anymore.
* Move Ty::builtin_derefLukas Wirth2021-04-071-8/+0
|
* Align `InferenceVar` to ChalkFlorian Diebold2021-04-061-1/+1
|
* Move Ty accessors to TyExtLukas Wirth2021-04-061-211/+3
|
* Add chalk_ir::Const to TyKind::ArrayLukas Wirth2021-04-061-3/+26
|
* Use a constructor function for Static lifetimesLukas Wirth2021-04-061-0/+4
|
* Add Lifetime to TyKind::RefLukas Wirth2021-04-061-4/+4
|
* Align FnPointer with ChalkFlorian Diebold2021-04-051-6/+7
|
* Substitution::prefix -> subst_prefixFlorian Diebold2021-04-051-4/+3
| | | | I probably want to get rid of this function completely later.
* Get rid of Substitution::suffixFlorian Diebold2021-04-051-6/+0
|
* Remove some unused methods, move some to types.rsFlorian Diebold2021-04-051-29/+0
|
* Binders::wrap_empty -> wrap_empty_bindersFlorian Diebold2021-04-051-7/+5
|
* Substitution::single -> from1Florian Diebold2021-04-051-9/+0
|
* Move ProjectionTy methods to extension traitFlorian Diebold2021-04-051-24/+2
|
* Replace unused hir_ty::Lifetime with chalk equivalentsLukas Wirth2021-04-051-2/+12
|
* Rename shift_bound_vars{_out} to align with ChalkFlorian Diebold2021-04-051-2/+3
|
* Add Interner parameter to Binders::substituteFlorian Diebold2021-04-051-5/+5
|
* Binders::subst -> substituteFlorian Diebold2021-04-051-4/+4
|
* Use VariableKinds in BindersFlorian Diebold2021-04-051-10/+16
|
* Hide Binders internals moreFlorian Diebold2021-04-051-33/+11
|
* Pass interner to TraitRef::self_type_parameterLaurențiu Nicola2021-04-051-3/+5
|
* Pass interner to ProjectionTy::self_type_parameterLaurențiu Nicola2021-04-051-3/+3
|
* Rename TyKind::ForeignType to ForeignLaurențiu Nicola2021-04-051-2/+2
|
* Rename TyKind::Unknown to ErrorLaurențiu Nicola2021-04-051-1/+1
|
* Move things from `traits` module to `types` as wellFlorian Diebold2021-04-041-1/+1
|
* Move things in hir_ty into submodulesFlorian Diebold2021-04-041-680/+15
| | | | | - all the types that will be replaced by Chalk go to `types` - `TypeWalk` impls go to `walk`
* Replace Substitution::type_paramsFlorian Diebold2021-04-041-7/+1
|
* Replace Substitution::bound_vars and ::type_params_for_genericsFlorian Diebold2021-04-041-26/+2
|
* Move TyBuilder to its own moduleFlorian Diebold2021-04-041-204/+10
|
* Replace last uses of SubstsBuilder by TyBuilderFlorian Diebold2021-04-041-50/+16
|
* Remove CallableSig::from_substsFlorian Diebold2021-04-041-11/+1
|
* Some more TyBuilder useFlorian Diebold2021-04-041-4/+0
|
* Replace remaining uses of Substitution::build_for_defFlorian Diebold2021-04-041-8/+38
|
* Add and start using TraitRef and ProjectionTy buildersFlorian Diebold2021-04-041-0/+29
|
* Move Ty::builtin to TyBuilderFlorian Diebold2021-04-041-17/+17
|
* Add TyBuilder::adtFlorian Diebold2021-04-041-5/+82
|
* Move Ty::fn_ptr to TyBuilderFlorian Diebold2021-04-041-7/+7
|
* Add TyBuilder::unit() and TyExt::is_unit()Florian Diebold2021-04-041-5/+5
|
* Add TyBuilderFlorian Diebold2021-04-041-0/+6
|
* Rename Ty::interned to Ty::kindFlorian Diebold2021-04-031-20/+20
| | | | ... since that's the actual method on Chalk side that matches the signature.
* Introduce `GenericArg` like in ChalkFlorian Diebold2021-04-031-48/+125
| | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters.
* completion relevance consider if types can be unifiedJosh Mcguigan2021-03-261-1/+1
|
* Fix chalk_ir assertionFlorian Diebold2021-03-241-7/+26
| | | | Fixes #8150.
* Align Canonical more with Chalk's versionFlorian Diebold2021-03-211-2/+10
| | | | In particular, use chalk_ir::CanonicalVarKinds.
* Use QuantifiedWhereClause in generic_predicates as wellFlorian Diebold2021-03-211-2/+5
| | | | | Still far too much binder skipping going on; I find it hard to imagine this is all correct, but the tests pass.
* Introduce QuantifiedWhereClause and DynTy analogous to ChalkFlorian Diebold2021-03-211-16/+57
| | | | | 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.
* Ignore type bindings in generic_predicates_for_paramFlorian Diebold2021-03-211-2/+11
| | | | | | | | | | | | | 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.
* Test for a Salsa bugFlorian Diebold2021-03-211-0/+4
|
* Turn Obligation into something similar to chalk_ir::DomainGoalFlorian Diebold2021-03-201-2/+5
| | | | This includes starting to make use of Chalk's `Cast` trait.