Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/tests/regression.rs')
-rw-r--r--crates/hir-ty/src/tests/regression.rs58
1 files changed, 43 insertions, 15 deletions
diff --git a/crates/hir-ty/src/tests/regression.rs b/crates/hir-ty/src/tests/regression.rs
index 35079e7094..2ad9a7fe52 100644
--- a/crates/hir-ty/src/tests/regression.rs
+++ b/crates/hir-ty/src/tests/regression.rs
@@ -644,7 +644,7 @@ fn issue_4953() {
"#,
expect![[r#"
58..72 '{ Self(0i64) }': Foo
- 60..64 'Self': Foo(i64) -> Foo
+ 60..64 'Self': extern "rust-call" Foo(i64) -> Foo
60..70 'Self(0i64)': Foo
65..69 '0i64': i64
"#]],
@@ -658,7 +658,7 @@ fn issue_4953() {
"#,
expect![[r#"
64..78 '{ Self(0i64) }': Foo<i64>
- 66..70 'Self': Foo<i64>(i64) -> Foo<i64>
+ 66..70 'Self': extern "rust-call" Foo<i64>(i64) -> Foo<i64>
66..76 'Self(0i64)': Foo<i64>
71..75 '0i64': i64
"#]],
@@ -858,7 +858,7 @@ fn main() {
94..96 '{}': ()
109..160 '{ ...10); }': ()
119..120 's': S<i32>
- 123..124 'S': S<i32>() -> S<i32>
+ 123..124 'S': extern "rust-call" S<i32>() -> S<i32>
123..126 'S()': S<i32>
132..133 's': S<i32>
132..144 's.g(|_x| {})': ()
@@ -1689,18 +1689,18 @@ fn main() {
}
"#,
expect![[r#"
- 27..85 '{ ...1,); }': ()
- 37..48 'S(.., a, b)': S
- 43..44 'a': usize
- 46..47 'b': {unknown}
- 51..52 'S': S(usize) -> S
- 51..55 'S(1)': S
- 53..54 '1': usize
- 65..75 '(.., a, b)': (i32, {unknown})
- 70..71 'a': i32
- 73..74 'b': {unknown}
- 78..82 '(1,)': (i32,)
- 79..80 '1': i32
+ 27..85 '{ ...1,); }': ()
+ 37..48 'S(.., a, b)': S
+ 43..44 'a': usize
+ 46..47 'b': {unknown}
+ 51..52 'S': extern "rust-call" S(usize) -> S
+ 51..55 'S(1)': S
+ 53..54 '1': usize
+ 65..75 '(.., a, b)': (i32, {unknown})
+ 70..71 'a': i32
+ 73..74 'b': {unknown}
+ 78..82 '(1,)': (i32,)
+ 79..80 '1': i32
"#]],
);
}
@@ -2012,3 +2012,31 @@ fn rustc_test_issue_52437() {
"#,
);
}
+
+#[test]
+fn incorrect_variant_form_through_alias_caught() {
+ check_types(
+ r#"
+enum Enum { Braced {}, Unit, Tuple() }
+type Alias = Enum;
+
+fn main() {
+ Alias::Braced;
+ //^^^^^^^^^^^^^ {unknown}
+ let Alias::Braced = loop {};
+ //^^^^^^^^^^^^^ !
+ let Alias::Braced(..) = loop {};
+ //^^^^^^^^^^^^^^^^^ Enum
+
+ Alias::Unit();
+ //^^^^^^^^^^^^^ {unknown}
+ Alias::Unit{};
+ //^^^^^^^^^^^^^ Enum
+ let Alias::Unit() = loop {};
+ //^^^^^^^^^^^^^ Enum
+ let Alias::Unit{} = loop {};
+ //^^^^^^^^^^^^^ Enum
+}
+"#,
+ )
+}