Aleksey Kladov
5c9f31d4c2
internal: move diagnostics to hir
...
The idea here is to eventually get rid of `dyn Diagnostic` and
`DiagnosticSink` infrastructure altogether, and just have a `enum
hir::Diagnostic` instead.
The problem with `dyn Diagnostic` is that it is defined in the lowest
level of the stack (hir_expand), but is used by the highest level (ide).
As a first step, we free hir_expand and hir_def from `dyn Diagnostic`
and kick the can up to `hir_ty`, as an intermediate state. The plan is
then to move DiagnosticSink similarly to the hir crate, and, as final
third step, remove its usage from the ide.
One currently unsolved problem is testing. You can notice that the test
which checks precise diagnostic ranges, unresolved_import_in_use_tree,
was moved to the ide layer. Logically, only IDE should have the infra to
render a specific range.
At the same time, the range is determined with the data produced in
hir_def and hir crates, so this layering is rather unfortunate. Working
on hir_def shouldn't require compiling `ide` for testing.
2021-05-25 17:49:59 +03:00
Florian Diebold
4a6cdd776d
Record method call substs and use them in call info
2021-05-23 18:24:21 +02:00
Florian Diebold
a88c7c04d2
Add last remaining module docstring
2021-05-22 16:39:56 +02:00
Dawer
e2b1c69f74
Check patterns for type match recursively.
2021-05-19 11:08:59 +05:00
Dawer
472317c008
internal: Record mismatches of pattern types.
2021-05-19 11:08:59 +05:00
Daniel McNab
ebbcf9f458
Fix inference with conditionally compiled tails
...
Fixes #8378
2021-05-03 14:13:05 +01:00
Jonas Schievink
e9752308bb
infer: remove record_field_resolutions
field
...
It stores no useful data, since we can derive all fields from
`variant_resolutions`
2021-04-06 17:59:18 +02:00
Lukas Wirth
96756f1b1d
Add Lifetime to TyKind::Ref
2021-04-06 10:45:30 +02:00
Florian Diebold
69714d36e6
Hide Binders internals more
2021-04-05 19:19:18 +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
Jonas Schievink
9436436d20
Improve test
2021-03-17 18:35:17 +01:00
Jonas Schievink
6356ea24dd
Add test for #[cfg]
on function params
2021-03-17 18:28:27 +01:00
Jonas Schievink
cb530e7c97
Handle #[cfg]
on call arguments
2021-03-17 15:10:46 +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
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
Lukas Wirth
50e01d2bc7
Use chalk_ir::AdtId
2021-03-04 19:38:02 +01:00
Lukas Wirth
a3f5491a1a
Inline TypeCtor into Ty
2021-02-28 19:13:37 +01:00
Phil Ellison
65a5ea581d
Update tests to register the required standard library types
2021-01-23 07:40:25 +00:00
Phil Ellison
8c7ccdc29d
Identify methods using functions ids rather than string names
2021-01-23 07:40:25 +00:00
Phil Ellison
1ff860b93c
Implement fix, add tests
2021-01-23 07:40:25 +00:00
Phil Ellison
1316422a7c
Add diagnostic for filter_map followed by next
2021-01-23 07:40:24 +00:00
Vincent Esche
c8c2bd097a
Fixed typos in local bindings
2021-01-09 15:41:29 +01:00
Phil Ellison
554ee6ea02
cargo fmt
2021-01-07 19:01:33 +00:00
Phil Ellison
b2dbe6e43a
Add fix to wrap return expression in Some
2021-01-07 19:01:33 +00:00
Florian Diebold
29acd39800
Don't emit arg count diagnostics for method calls with unknown receiver
...
Fixes #7098 .
2021-01-01 20:49:18 +01:00
ivan770
bbb0bc7b04
Cast to ExprStmt, style fixes
2020-12-10 18:10:39 +02:00
ivan770
35006eba79
Apply rustfmt changes
2020-12-09 08:22:13 +00:00
ivan770
86c183716c
Apply suggestions from code review
...
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2020-12-09 10:17:28 +02:00
ivan770
7738467e0a
Format code
2020-12-08 19:25:21 +00:00
ivan770
581567a4c8
Remove use via super
2020-12-08 20:50:13 +02:00
ivan770
cb66bb8ff9
Remove this semicolon
2020-12-08 20:47:20 +02:00
Aleksey Kladov
b610118453
Deny unreachable-pub
...
It's very useful when `pub` is equivalent to "this is crate's public
API", let's enforce this!
Ideally, we should enforce it for local `cargo test`, and only during
CI, but that needs https://github.com/rust-lang/cargo/issues/5034 .
2020-11-02 14:07:08 +01:00
CAD97
c822bb68ce
Fix missing match arm false error on unknown type
2020-08-17 13:27:12 -04:00
Aleksey Kladov
6a77ec7bbe
Rename ra_hir_ty -> hir_ty
2020-08-13 16:35:29 +02:00