Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/tests/simple.rs')
-rw-r--r--crates/hir-ty/src/tests/simple.rs56
1 files changed, 37 insertions, 19 deletions
diff --git a/crates/hir-ty/src/tests/simple.rs b/crates/hir-ty/src/tests/simple.rs
index c0b8d93b47..b54ed08031 100644
--- a/crates/hir-ty/src/tests/simple.rs
+++ b/crates/hir-ty/src/tests/simple.rs
@@ -135,7 +135,7 @@ fn test(a: u32, b: isize, c: !, d: &str) {
16..17 'b': isize
26..27 'c': !
32..33 'd': &'? str
- 41..120 '{ ...f32; }': ()
+ 41..120 '{ ...f32; }': !
47..48 'a': u32
54..55 'b': isize
61..62 'c': !
@@ -1018,14 +1018,14 @@ fn foo() {
28..32 'true': bool
33..50 '{ ... }': i32
43..44 '1': i32
- 56..79 '{ ... }': i32
+ 56..79 '{ ... }': !
66..72 'return': !
89..92 '_x2': i32
95..148 'if tru... }': i32
98..102 'true': bool
103..120 '{ ... }': i32
113..114 '2': i32
- 126..148 '{ ... }': !
+ 126..148 '{ ... }': i32
136..142 'return': !
158..161 '_x3': i32
164..246 'match ... }': i32
@@ -1034,7 +1034,7 @@ fn foo() {
185..189 'true': bool
193..194 '3': i32
204..205 '_': bool
- 209..240 '{ ... }': i32
+ 209..240 '{ ... }': !
223..229 'return': !
256..259 '_x4': i32
262..319 'match ... }': i32
@@ -1939,7 +1939,7 @@ fn closure_return() {
16..58 '{ ...; }; }': u32
26..27 'x': impl Fn() -> usize
30..55 '|| -> ...n 1; }': impl Fn() -> usize
- 42..55 '{ return 1; }': usize
+ 42..55 '{ return 1; }': !
44..52 'return 1': !
51..52 '1': usize
"#]],
@@ -1958,7 +1958,7 @@ fn closure_return_unit() {
16..47 '{ ...; }; }': u32
26..27 'x': impl Fn()
30..44 '|| { return; }': impl Fn()
- 33..44 '{ return; }': ()
+ 33..44 '{ return; }': !
35..41 'return': !
"#]],
);
@@ -2434,10 +2434,10 @@ fn infer_loop_break_with_val() {
59..168 '{ ... }; }': ()
69..70 'x': Option<bool>
73..165 'loop {... }': Option<bool>
- 78..165 '{ ... }': ()
+ 78..165 '{ ... }': !
88..132 'if fal... }': ()
91..96 'false': bool
- 97..132 '{ ... }': ()
+ 97..132 '{ ... }': !
111..121 'break None': !
117..121 'None': Option<bool>
142..158 'break ...(true)': !
@@ -2470,7 +2470,7 @@ fn infer_loop_break_without_val() {
78..133 '{ ... }': ()
88..127 'if fal... }': ()
91..96 'false': bool
- 97..127 '{ ... }': ()
+ 97..127 '{ ... }': !
111..116 'break': !
"#]],
);
@@ -2500,24 +2500,24 @@ fn infer_labelled_break_with_val() {
19..21 '_x': impl Fn() -> bool
24..332 '|| 'ou... }': impl Fn() -> bool
27..332 ''outer... }': bool
- 40..332 '{ ... }': ()
+ 40..332 '{ ... }': !
54..59 'inner': i8
62..300 ''inner... }': i8
- 75..300 '{ ... }': ()
+ 75..300 '{ ... }': !
93..94 'i': bool
97..113 'Defaul...efault': {unknown}
97..115 'Defaul...ault()': bool
129..269 'if (br... }': ()
133..147 'break 'outer i': !
146..147 'i': bool
- 149..208 '{ ... }': ()
+ 149..208 '{ ... }': !
167..193 'loop {...5i8; }': !
- 172..193 '{ brea...5i8; }': ()
+ 172..193 '{ brea...5i8; }': !
174..190 'break ...er 5i8': !
187..190 '5i8': i8
214..269 'if tru... }': ()
217..221 'true': bool
- 222..269 '{ ... }': ()
+ 222..269 '{ ... }': !
240..254 'break 'inner 6': !
253..254 '6': i8
282..289 'break 7': !
@@ -2566,12 +2566,12 @@ fn foo() {
140..270 'if (br... }': ()
144..158 'break 'outer i': !
157..158 'i': bool
- 160..209 '{ ... }': ()
+ 160..209 '{ ... }': !
178..194 'break ...er 5i8': !
191..194 '5i8': i8
215..270 'if tru... }': ()
218..222 'true': bool
- 223..270 '{ ... }': ()
+ 223..270 '{ ... }': !
241..255 'break 'inner 6': !
254..255 '6': i8
283..313 'break ... { 0 }': !
@@ -2666,7 +2666,7 @@ fn generic_default_in_struct_literal() {
}
"#,
expect![[r#"
- 99..319 '{ ...32); }': ()
+ 99..319 '{ ...32); }': !
109..110 'x': Thing<!>
113..133 'Thing ...p {} }': Thing<!>
124..131 'loop {}': !
@@ -3254,9 +3254,9 @@ fn main() {
expect![[r#"
104..108 'self': &'? Box<T>
188..192 'self': &'a Box<Foo<T>>
- 218..220 '{}': &'a T
+ 218..220 '{}': &'? T
242..246 'self': &'a Box<Foo<T>>
- 275..277 '{}': &'a Foo<T>
+ 275..277 '{}': &'? Foo<T>
297..301 'self': Box<Foo<T>>
322..324 '{}': Foo<T>
338..559 '{ ...r(); }': ()
@@ -4305,3 +4305,21 @@ enum Enum {
"#]],
);
}
+
+#[test]
+fn labelled_block_break() {
+ check_types(
+ r#"
+//- minicore: option
+fn foo() {
+ 'a: {
+ if false {
+ break 'a Some(1);
+ }
+ None
+ // ^^^^ Option<i32>
+ };
+}
+ "#,
+ );
+}