aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/tests/simple.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_ty/src/tests/simple.rs')
-rw-r--r--crates/ra_hir_ty/src/tests/simple.rs28
1 files changed, 27 insertions, 1 deletions
diff --git a/crates/ra_hir_ty/src/tests/simple.rs b/crates/ra_hir_ty/src/tests/simple.rs
index a600b947d..c2f1ded2f 100644
--- a/crates/ra_hir_ty/src/tests/simple.rs
+++ b/crates/ra_hir_ty/src/tests/simple.rs
@@ -521,7 +521,7 @@ fn test() -> &mut &f64 {
521 [88; 89) 'a': u32 521 [88; 89) 'a': u32
522 [92; 108) 'unknow...nction': {unknown} 522 [92; 108) 'unknow...nction': {unknown}
523 [92; 110) 'unknow...tion()': u32 523 [92; 110) 'unknow...tion()': u32
524 [116; 125) 'takes_u32': fn takes_u32(u32) -> () 524 [116; 125) 'takes_u32': fn takes_u32(u32)
525 [116; 128) 'takes_u32(a)': () 525 [116; 128) 'takes_u32(a)': ()
526 [126; 127) 'a': u32 526 [126; 127) 'a': u32
527 [138; 139) 'b': i32 527 [138; 139) 'b': i32
@@ -1729,3 +1729,29 @@ fn foo() -> u32 {
1729 "### 1729 "###
1730 ); 1730 );
1731} 1731}
1732
1733#[test]
1734fn fn_pointer_return() {
1735 assert_snapshot!(
1736 infer(r#"
1737struct Vtable {
1738 method: fn(),
1739}
1740
1741fn main() {
1742 let vtable = Vtable { method: || {} };
1743 let m = vtable.method;
1744}
1745"#),
1746 @r###"
1747 [48; 121) '{ ...hod; }': ()
1748 [58; 64) 'vtable': Vtable
1749 [67; 91) 'Vtable...| {} }': Vtable
1750 [84; 89) '|| {}': || -> ()
1751 [87; 89) '{}': ()
1752 [101; 102) 'm': fn()
1753 [105; 111) 'vtable': Vtable
1754 [105; 118) 'vtable.method': fn()
1755 "###
1756 );
1757}