Skip to content

Commit fb469c3

Browse files
committed
labelled break test
1 parent 5f72254 commit fb469c3

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

crates/ra_hir_ty/src/tests/simple.rs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1943,3 +1943,57 @@ fn test() {
19431943
"###
19441944
);
19451945
}
1946+
1947+
#[test]
1948+
fn infer_labelled_break_with_val() {
1949+
assert_snapshot!(
1950+
infer(r#"
1951+
fn foo() {
1952+
let _x = || 'outer: loop {
1953+
let inner = 'inner: loop {
1954+
let i = Default::default();
1955+
if (break 'outer i) {
1956+
loop { break 'inner 5i8; };
1957+
} else if true {
1958+
break 'inner 6;
1959+
}
1960+
break 7;
1961+
};
1962+
break inner < 8;
1963+
};
1964+
}
1965+
"#),
1966+
@r###"
1967+
10..336 '{ ... }; }': ()
1968+
20..22 '_x': || -> bool
1969+
25..333 '|| 'ou... }': || -> bool
1970+
28..333 ''outer... }': bool
1971+
41..333 '{ ... }': ()
1972+
55..60 'inner': i32
1973+
63..301 ''inner... }': i32
1974+
76..301 '{ ... }': ()
1975+
94..95 'i': i32
1976+
98..114 'Defaul...efault': {unknown}
1977+
98..116 'Defaul...ault()': i32
1978+
130..270 'if (br... }': ()
1979+
134..148 'break 'outer i': !
1980+
147..148 'i': i32
1981+
150..209 '{ ... }': ()
1982+
168..194 'loop {...5i8; }': i8
1983+
173..194 '{ brea...5i8; }': ()
1984+
175..191 'break ...er 5i8': !
1985+
188..191 '5i8': i8
1986+
215..270 'if tru... }': ()
1987+
218..222 'true': bool
1988+
223..270 '{ ... }': ()
1989+
241..255 'break 'inner 6': !
1990+
254..255 '6': i32
1991+
283..290 'break 7': !
1992+
289..290 '7': i32
1993+
311..326 'break inner < 8': !
1994+
317..322 'inner': i32
1995+
317..326 'inner < 8': bool
1996+
325..326 '8': i32
1997+
"###
1998+
);
1999+
}

0 commit comments

Comments
 (0)