diff options
author | Florian Diebold <[email protected]> | 2019-09-09 21:10:58 +0100 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2019-09-24 22:05:12 +0100 |
commit | 3b06faad26fdb1485c542970374ff8bbcb0e01c4 (patch) | |
tree | 370ec4c128b6160b2fd72351eb3875f04e3a94fd /crates/ra_hir/src/ty/tests.rs | |
parent | 619a8185a607b216c64b58d230c3949ccef98a37 (diff) |
Make closures impl closure traits
Diffstat (limited to 'crates/ra_hir/src/ty/tests.rs')
-rw-r--r-- | crates/ra_hir/src/ty/tests.rs | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index eb8770ec4..13090f89d 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs | |||
@@ -3990,6 +3990,7 @@ fn test<F: FnOnce(u32, u64) -> u128>(f: F) { | |||
3990 | fn closure_1() { | 3990 | fn closure_1() { |
3991 | assert_snapshot!( | 3991 | assert_snapshot!( |
3992 | infer(r#" | 3992 | infer(r#" |
3993 | #[lang = "fn_once"] | ||
3993 | trait FnOnce<Args> { | 3994 | trait FnOnce<Args> { |
3994 | type Output; | 3995 | type Output; |
3995 | } | 3996 | } |
@@ -4000,39 +4001,39 @@ impl<T> Option<T> { | |||
4000 | } | 4001 | } |
4001 | 4002 | ||
4002 | fn test() { | 4003 | fn test() { |
4003 | let x = Option::Some(1i32); | 4004 | let x = Option::Some(1u32); |
4004 | x.map(|v| v + 1); | 4005 | x.map(|v| v + 1); |
4005 | x.map(|_v| 1u64); | 4006 | x.map(|_v| 1u64); |
4006 | let y: Option<i64> = x.map(|_v| 1); | 4007 | let y: Option<i64> = x.map(|_v| 1); |
4007 | } | 4008 | } |
4008 | "#), | 4009 | "#), |
4009 | @r###" | 4010 | @r###" |
4010 | [128; 132) 'self': Option<T> | 4011 | [148; 152) 'self': Option<T> |
4011 | [134; 135) 'f': F | 4012 | [154; 155) 'f': F |
4012 | [145; 147) '{}': () | 4013 | [165; 167) '{}': () |
4013 | [161; 280) '{ ... 1); }': () | 4014 | [181; 300) '{ ... 1); }': () |
4014 | [171; 172) 'x': Option<i32> | 4015 | [191; 192) 'x': Option<u32> |
4015 | [175; 187) 'Option::Some': Some<i32>(T) -> Option<T> | 4016 | [195; 207) 'Option::Some': Some<u32>(T) -> Option<T> |
4016 | [175; 193) 'Option...(1i32)': Option<i32> | 4017 | [195; 213) 'Option...(1u32)': Option<u32> |
4017 | [188; 192) '1i32': i32 | 4018 | [208; 212) '1u32': u32 |
4018 | [199; 200) 'x': Option<i32> | 4019 | [219; 220) 'x': Option<u32> |
4019 | [199; 215) 'x.map(...v + 1)': {unknown} | 4020 | [219; 235) 'x.map(...v + 1)': {unknown} |
4020 | [205; 214) '|v| v + 1': |{unknown}| -> i32 | 4021 | [225; 234) '|v| v + 1': |u32| -> i32 |
4021 | [206; 207) 'v': {unknown} | 4022 | [226; 227) 'v': u32 |
4022 | [209; 210) 'v': {unknown} | 4023 | [229; 230) 'v': u32 |
4023 | [209; 214) 'v + 1': i32 | 4024 | [229; 234) 'v + 1': i32 |
4024 | [213; 214) '1': i32 | 4025 | [233; 234) '1': i32 |
4025 | [221; 222) 'x': Option<i32> | 4026 | [241; 242) 'x': Option<u32> |
4026 | [221; 237) 'x.map(... 1u64)': {unknown} | 4027 | [241; 257) 'x.map(... 1u64)': {unknown} |
4027 | [227; 236) '|_v| 1u64': |{unknown}| -> u64 | 4028 | [247; 256) '|_v| 1u64': |u32| -> u64 |
4028 | [228; 230) '_v': {unknown} | 4029 | [248; 250) '_v': u32 |
4029 | [232; 236) '1u64': u64 | 4030 | [252; 256) '1u64': u64 |
4030 | [247; 248) 'y': Option<i64> | 4031 | [267; 268) 'y': Option<i64> |
4031 | [264; 265) 'x': Option<i32> | 4032 | [284; 285) 'x': Option<u32> |
4032 | [264; 277) 'x.map(|_v| 1)': Option<i64> | 4033 | [284; 297) 'x.map(|_v| 1)': Option<i64> |
4033 | [270; 276) '|_v| 1': |{unknown}| -> i32 | 4034 | [290; 296) '|_v| 1': |u32| -> i32 |
4034 | [271; 273) '_v': {unknown} | 4035 | [291; 293) '_v': u32 |
4035 | [275; 276) '1': i32 | 4036 | [295; 296) '1': i32 |
4036 | "### | 4037 | "### |
4037 | ); | 4038 | ); |
4038 | } | 4039 | } |