Add more tests

This commit is contained in:
Jonas Schievink 2021-02-10 15:54:21 +01:00
parent a00fa0c06f
commit 3c5734712a
2 changed files with 84 additions and 8 deletions

View File

@ -2427,13 +2427,38 @@ fn infer_inner_type() {
}
"#,
expect![[r#"
9..89 '{ ...eld; }': ()
47..48 's': S
51..65 'S { field: 0 }': S
62..63 '0': u32
75..76 'f': u32
79..80 's': S
79..86 's.field': u32
"#]],
9..89 '{ ...eld; }': ()
47..48 's': S
51..65 'S { field: 0 }': S
62..63 '0': u32
75..76 'f': u32
79..80 's': S
79..86 's.field': u32
"#]],
);
}
#[test]
fn infer_nested_inner_type() {
check_infer(
r#"
fn foo() {
{
let s = S { field: 0 };
let f = s.field;
}
struct S { field: u32 }
}
"#,
expect![[r#"
9..109 '{ ...32 } }': ()
15..79 '{ ... }': ()
29..30 's': S
33..47 'S { field: 0 }': S
44..45 '0': u32
61..62 'f': u32
65..66 's': S
65..72 's.field': u32
"#]],
);
}

View File

@ -3151,3 +3151,54 @@ fn test() {
"#,
);
}
#[test]
fn inner_use() {
check_types(
r#"
mod m {
pub trait Tr {
fn method(&self) -> u8 { 0 }
}
impl Tr for () {}
}
fn f() {
use m::Tr;
().method();
//^^^^^^^^^^^ u8
}
"#,
);
}
#[test]
fn inner_use_in_block() {
check_types(
r#"
mod m {
pub trait Tr {
fn method(&self) -> u8 { 0 }
}
impl Tr for () {}
}
fn f() {
{
use m::Tr;
().method();
//^^^^^^^^^^^ u8
}
{
().method();
//^^^^^^^^^^^ {unknown}
}
}
"#,
);
}