Florian Diebold
429bbbd39a
Make ToChalk implementations identity
2021-04-08 14:08:54 +02:00
Florian Diebold
9b4ecd3723
Fix return type of self_type_parameter
2021-04-07 20:41:52 +02:00
Florian Diebold
6777a4975d
Move hir_trait_id to extension trait
2021-04-07 20:40:01 +02:00
Florian Diebold
b03969cda9
Remove SolutionVariables
, add ConstrainedSubst analogous to Chalk
...
... just missing the constraints.
2021-04-06 23:46:32 +02:00
Florian Diebold
d280538174
Clean up Chalk mapping a bit
2021-04-06 21:10:22 +02:00
Lukas Wirth
9fbba7bc45
Add chalk_ir::Const to TyKind::Array
2021-04-06 11:45:41 +02:00
Lukas Wirth
08dc69599e
Use a constructor function for Static lifetimes
2021-04-06 10:50:55 +02:00
Lukas Wirth
b98c681cb7
Always use Static lifetimes in chalk mapping
2021-04-06 10:45:34 +02:00
Lukas Wirth
9da191c7e0
Add Lifetime to DynTy
2021-04-06 10:45:34 +02:00
Lukas Wirth
96756f1b1d
Add Lifetime to TyKind::Ref
2021-04-06 10:45:30 +02:00
Florian Diebold
1ae967bf8e
Fix shifting of binders in FnPointer
...
- 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
2021-04-05 23:00:50 +02:00
Florian Diebold
edc59d897d
Align FnPointer with Chalk
2021-04-05 22:23:30 +02:00
Florian Diebold
788533d380
Move ProjectionTy methods to extension trait
2021-04-05 21:58:01 +02:00
Florian Diebold
a316d58360
Rename shift_bound_vars{_out} to align with Chalk
2021-04-05 19:21:03 +02:00
Florian Diebold
30a339e038
Add Interner parameter to Binders::substitute
2021-04-05 19:21:01 +02:00
Florian Diebold
05eba0db3d
Binders::subst -> substitute
2021-04-05 19:20:28 +02:00
Florian Diebold
ad20f00844
Use VariableKinds in Binders
2021-04-05 19:19:18 +02:00
Florian Diebold
69714d36e6
Hide Binders internals more
2021-04-05 19:19:18 +02:00
Laurențiu Nicola
d7546d8c23
Pass interner to TraitRef::self_type_parameter
2021-04-05 17:38:37 +03:00
Laurențiu Nicola
aefcbf2758
Pass interner to ProjectionTy::self_type_parameter
2021-04-05 17:37:24 +03:00
Laurențiu Nicola
72c54c53cd
Rename TyKind::ForeignType to Foreign
2021-04-05 15:39:06 +03:00
Laurențiu Nicola
65c2e51940
Rename TyKind::Unknown to Error
2021-04-05 15:39:06 +03:00
Florian Diebold
645a9c3a27
Move things from traits
module to types
as well
2021-04-04 20:27:40 +02:00
Florian Diebold
508a1ecad3
Move things in hir_ty into submodules
...
- all the types that will be replaced by Chalk go to `types`
- `TypeWalk` impls go to `walk`
2021-04-04 20:22:00 +02:00
Florian Diebold
e480d81988
Introduce GenericArg
like in Chalk
...
Plus some more adaptations to Substitution.
Lots of `assert_ty_ref` that we should revisit when introducing
lifetime/const parameters.
2021-04-03 11:17:13 +02:00
Florian Diebold
c4fd3f47f5
Align InEnvironment with Chalk
...
This in particular means storing a chalk_ir::Environment, not our
TraitEnvironment. This makes InEnvironment not usable for Type, where we
need to keep the full TraitEnvironment.
2021-03-21 20:19:07 +01:00
Florian Diebold
f7be314579
Align Canonical more with Chalk's version
...
In particular, use chalk_ir::CanonicalVarKinds.
2021-03-21 20:05:38 +01:00
Florian Diebold
1d5c4a77fb
Use QuantifiedWhereClause in generic_predicates as well
...
Still far too much binder skipping going on; I find it hard to imagine
this is all correct, but the tests pass.
2021-03-21 18:01:14 +01:00
Florian Diebold
590c416359
Introduce QuantifiedWhereClause and DynTy analogous to Chalk
...
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.
2021-03-21 18:01:14 +01:00
Florian Diebold
7ec3b66f7a
Turn Obligation into something similar to chalk_ir::DomainGoal
...
This includes starting to make use of Chalk's `Cast` trait.
2021-03-20 12:47:12 +01:00
Florian Diebold
8e7e405f6a
Remove WhereClause::Error
...
Chalk doesn't have it, and judging from the removed code, it wasn't
useful anyway.
2021-03-20 10:51:00 +01:00
Florian Diebold
7a5fb37cf1
Rename GenericPredicate -> WhereClause
2021-03-20 10:46:36 +01:00
Lukas Wirth
8996b1a235
Replace Projection variant in GenericPredicate with AliasEq
2021-03-19 12:12:18 +01:00
Florian Diebold
7a7e47eab7
Chalkify TraitRef
2021-03-18 21:53:19 +01:00
Matthias Krüger
966c23f529
avoid converting types into themselves via .into() (clippy::useless-conversion)
...
example: let x: String = String::from("hello world").into();
2021-03-17 01:27:56 +01:00
Florian Diebold
ce2cae45b5
Rename Substs -> Substitution
2021-03-16 17:58:17 +01:00
Florian Diebold
42217738e0
Don't use Substs for Ref/Raw/Array/Slice
2021-03-14 20:21:05 +01:00
Florian Diebold
af466f8542
Make Ty wrap TyKind in an Arc
...
... 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.
2021-03-14 17:31:08 +01:00
Florian Diebold
1954147834
More renaming
2021-03-14 16:33:27 +01:00
Florian Diebold
eea777c714
Use chalk_ir::FnSig
2021-03-14 16:30:43 +01:00
Florian Diebold
3411fe3e84
Rename some fields to their Chalk names
2021-03-14 16:30:43 +01:00
Florian Diebold
b035c314b4
Use chalk_ir::OpaqueTyId
2021-03-13 20:05:47 +01:00
Florian Diebold
1bf6b7360c
Use chalk_ir::PlaceholderIndex
2021-03-13 19:47:34 +01:00
Florian Diebold
2d69eb131f
Use chalk_ir::ClosureId
2021-03-13 19:27:09 +01:00
Florian Diebold
9719ce9fc7
Use chalk_ir::FnDefId
2021-03-13 17:56:48 +01:00
Florian Diebold
19664e276a
Use chalk_ir::AssocTypeId
2021-03-13 17:56:48 +01:00
Florian Diebold
dfafcd926a
Use chalk_ir::ForeignDefId
2021-03-13 17:56:48 +01:00
Florian Diebold
6c32bbf3ca
Separate Ty
and TyKind
like in Chalk
...
Currently `Ty` just wraps `TyKind`, but this allows us to change most
places to already use `intern` / `interned`.
2021-03-13 16:17:15 +01:00
Florian Diebold
ec70387a4c
Use Chalk Environment more directly
2021-03-12 19:12:17 +01:00
Lukas Wirth
50e01d2bc7
Use chalk_ir::AdtId
2021-03-04 19:38:02 +01:00