aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/tests.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-09-09 21:10:58 +0100
committerFlorian Diebold <[email protected]>2019-09-24 22:05:12 +0100
commit3b06faad26fdb1485c542970374ff8bbcb0e01c4 (patch)
tree370ec4c128b6160b2fd72351eb3875f04e3a94fd /crates/ra_hir/src/ty/tests.rs
parent619a8185a607b216c64b58d230c3949ccef98a37 (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.rs55
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) {
3990fn closure_1() { 3990fn closure_1() {
3991 assert_snapshot!( 3991 assert_snapshot!(
3992 infer(r#" 3992 infer(r#"
3993#[lang = "fn_once"]
3993trait FnOnce<Args> { 3994trait FnOnce<Args> {
3994 type Output; 3995 type Output;
3995} 3996}
@@ -4000,39 +4001,39 @@ impl<T> Option<T> {
4000} 4001}
4001 4002
4002fn test() { 4003fn 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}