Florian Diebold
a4d7bdf1c8
Replace Substitution::bound_vars and ::type_params_for_generics
2021-04-04 13:16:39 +02:00
Florian Diebold
b0fe3d929f
Add TyBuilder::unit() and TyExt::is_unit()
2021-04-04 13:16:38 +02:00
Florian Diebold
c551604b5a
Rename Ty::interned to Ty::kind
...
... since that's the actual method on Chalk side that matches the signature.
2021-04-03 13:08:29 +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
Laurențiu Nicola
9787bddac5
Use arrayvec 0.6
2021-03-25 21:03:20 +02:00
bors[bot]
3af1885bd2
Merge #8144
...
8144: bail out early for source code closures r=Veykril a=hi-rustin
close https://github.com/rust-analyzer/rust-analyzer/issues/8084
Co-authored-by: hi-rustin <rustin.liu@gmail.com>
2021-03-22 12:35:44 +00:00
hi-rustin
2e09714dfe
bail out early for source code closures
...
add closure error
2021-03-22 19:40:07 +08: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
d8f8b495ad
Ignore type bindings in generic_predicates_for_param
...
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.
2021-03-21 15:29:03 +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
Florian Diebold
ce2cae45b5
Rename Substs -> Substitution
2021-03-16 17:58:17 +01:00
oxalica
ef416e0154
Impl HirDisplay for function hover message
2021-03-16 01:04:20 +08:00
Florian Diebold
42217738e0
Don't use Substs for Ref/Raw/Array/Slice
2021-03-14 20:21:05 +01:00
Florian Diebold
1954147834
More renaming
2021-03-14 16:33:27 +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
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
Jonas Schievink
b885e6bdee
Delete ContainerId
2021-03-09 19:09:02 +01:00
Lukas Wirth
50e01d2bc7
Use chalk_ir::AdtId
2021-03-04 19:38:02 +01:00
Lukas Wirth
7072f59fc6
Use chalk_ir::Mutability
2021-03-01 19:57:36 +01:00
Lukas Wirth
5d121cdb45
Introduce Ty::Alias
2021-03-01 14:24:00 +01:00
Lukas Wirth
11a1f13cd1
Being Ty::InferenceVar closes to chalk equivalent
2021-03-01 12:41:29 +01:00
Lukas Wirth
407196b8c0
Lift FnPointer into a struct
2021-02-28 23:53:21 +01:00
Lukas Wirth
a3fd2faba5
Remove Substs from Ty::ForeignType
2021-02-28 20:44:09 +01:00
Lukas Wirth
0e995adcf6
Turn Ty::Tuple variant into a tuple-variant
2021-02-28 20:39:43 +01:00
Lukas Wirth
faf2dd49e4
Fix code_model::Type::walk not walking all types
2021-02-28 20:15:56 +01:00
Lukas Wirth
a3f5491a1a
Inline TypeCtor into Ty
2021-02-28 19:13:37 +01:00
Lukas Wirth
7c2dd85a32
Use chalk_ir::Scalar directly
2021-02-28 11:06:37 +01:00
Lukas Wirth
5183c9f083
Introduce TypeCtor::Scalar
2021-02-28 01:20:04 +01:00
Lukas Wirth
0799288f01
Don't write trailing whitespace when formatting empty GenericPredicates
2021-02-20 20:43:04 +01:00
Jonas Schievink
3de8f57c51
Make ModuleId
's krate
field private
2021-01-22 18:09:55 +01:00
Lukas Wirth
3d6480bc31
Render Fn* trait objects and impl types as rust does
2021-01-13 13:29:47 +01:00
Aleksey Kladov
f9707cde68
Rename expr -> tail_expr
2021-01-05 15:51:13 +03:00
Lukas Wirth
47900dd3bc
Impl hovering for TypeParams
2021-01-04 12:24:47 +01:00
bors[bot]
a15d19619e
Merge #6845
...
6845: Don't HirDisplay unknown types when displaying for source r=Veykril a=Veykril
Was wondering why the add missing impl assist didn't do anything here:
![Code_JCA1Qo0V9P](https://user-images.githubusercontent.com/3757771/101990300-7af44a80-3ca6-11eb-8431-e5eb4de4e78c.png )
Turns out me forgetting to set the Index::Idx type in the trait causes RA to panic due to it trying to to create an unparsable type in the `make` module.
Now we get this instead which imo is definitely better to have.
![Code_MUFPJUCULY](https://user-images.githubusercontent.com/3757771/101990347-c9094e00-3ca6-11eb-9c6a-146bddf64b7c.png )
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-12 18:06:36 +00:00
Lukas Wirth
69b78edb5e
Don't HirDisplay unknown types when displaying for source
2020-12-12 19:05:00 +01:00
Lukas Wirth
11f8664182
Add Lifetimes to the HIR
2020-12-12 00:56:52 +01:00
Jonas Schievink
dedd888570
Implement HirDisplay for FnSig
...
This could be useful for diagnostics, but isn't used right now
2020-12-09 18:06:56 +01:00
Benjamin Coenen
7322a69cf6
refactor(hir_ty): do not override DisplayTarget in hir_fmt
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-28 17:58:16 +01:00
Benjamin Coenen
ec3638adb9
do not use associated types placeholder for inlay hint
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-28 15:42:51 +01:00
Benjamin Coenen
0aca7b78de
do not use associated types placeholder for inlay hint
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-28 15:23:23 +01:00