Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-diagnostics/src/handlers/incorrect_generics_len.rs')
| -rw-r--r-- | crates/ide-diagnostics/src/handlers/incorrect_generics_len.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/crates/ide-diagnostics/src/handlers/incorrect_generics_len.rs b/crates/ide-diagnostics/src/handlers/incorrect_generics_len.rs index 25220704e0..2a31a41fbc 100644 --- a/crates/ide-diagnostics/src/handlers/incorrect_generics_len.rs +++ b/crates/ide-diagnostics/src/handlers/incorrect_generics_len.rs @@ -43,6 +43,8 @@ struct Bar<T, U>(T, U); fn foo() { let _ = Bar::<()>; // ^^^^^^ error: this struct takes 2 generic arguments but 1 generic argument was supplied + // ^^^^^^^^^ error: type annotations needed + // | full type: `fn Bar<(), {unknown}>((), {unknown}) -> Bar<(), {unknown}>` } "#, @@ -51,6 +53,10 @@ fn foo() { #[test] fn enum_variant() { + // FIXME: We should not have a "type annotations needed" error here, but to do that + // we'll need to have access to the `InferenceContext` in `TyLoweringContext`, to + // generate the infer var with a dummy span (instead of inserting it after the fact + // with a non-dummy span). check_diagnostics( r#" enum Enum<T, U> { @@ -60,8 +66,12 @@ enum Enum<T, U> { fn foo() { let _ = Enum::<()>::Variant; // ^^^^^^ error: this enum takes 2 generic arguments but 1 generic argument was supplied + // ^^^^^^^^^^^^^^^^^^^ error: type annotations needed + // | full type: `fn Variant<(), {unknown}>((), {unknown}) -> Enum<(), {unknown}>` let _ = Enum::Variant::<()>; // ^^^^^^ error: this enum takes 2 generic arguments but 1 generic argument was supplied + // ^^^^^^^^^^^^^^^^^^^ error: type annotations needed + // | full type: `fn Variant<(), {unknown}>((), {unknown}) -> Enum<(), {unknown}>` } "#, @@ -127,6 +137,8 @@ struct Bar<T, const N: usize>(T); fn bar() { let _ = Bar::<()>; // ^^^^^^ error: this struct takes 2 generic arguments but 1 generic argument was supplied + // ^^^^^^^^^ error: type annotations needed + // | full type: `fn Bar<(), _>(()) -> Bar<(), _>` } "#, ); |