From 3b06faad26fdb1485c542970374ff8bbcb0e01c4 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Mon, 9 Sep 2019 22:10:58 +0200 Subject: Make closures impl closure traits --- crates/ra_hir/src/ty/tests.rs | 55 ++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 27 deletions(-) (limited to 'crates/ra_hir/src/ty/tests.rs') 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 u128>(f: F) { fn closure_1() { assert_snapshot!( infer(r#" +#[lang = "fn_once"] trait FnOnce { type Output; } @@ -4000,39 +4001,39 @@ impl Option { } fn test() { - let x = Option::Some(1i32); + let x = Option::Some(1u32); x.map(|v| v + 1); x.map(|_v| 1u64); let y: Option = x.map(|_v| 1); } "#), @r###" - [128; 132) 'self': Option - [134; 135) 'f': F - [145; 147) '{}': () - [161; 280) '{ ... 1); }': () - [171; 172) 'x': Option - [175; 187) 'Option::Some': Some(T) -> Option - [175; 193) 'Option...(1i32)': Option - [188; 192) '1i32': i32 - [199; 200) 'x': Option - [199; 215) 'x.map(...v + 1)': {unknown} - [205; 214) '|v| v + 1': |{unknown}| -> i32 - [206; 207) 'v': {unknown} - [209; 210) 'v': {unknown} - [209; 214) 'v + 1': i32 - [213; 214) '1': i32 - [221; 222) 'x': Option - [221; 237) 'x.map(... 1u64)': {unknown} - [227; 236) '|_v| 1u64': |{unknown}| -> u64 - [228; 230) '_v': {unknown} - [232; 236) '1u64': u64 - [247; 248) 'y': Option - [264; 265) 'x': Option - [264; 277) 'x.map(|_v| 1)': Option - [270; 276) '|_v| 1': |{unknown}| -> i32 - [271; 273) '_v': {unknown} - [275; 276) '1': i32 + [148; 152) 'self': Option + [154; 155) 'f': F + [165; 167) '{}': () + [181; 300) '{ ... 1); }': () + [191; 192) 'x': Option + [195; 207) 'Option::Some': Some(T) -> Option + [195; 213) 'Option...(1u32)': Option + [208; 212) '1u32': u32 + [219; 220) 'x': Option + [219; 235) 'x.map(...v + 1)': {unknown} + [225; 234) '|v| v + 1': |u32| -> i32 + [226; 227) 'v': u32 + [229; 230) 'v': u32 + [229; 234) 'v + 1': i32 + [233; 234) '1': i32 + [241; 242) 'x': Option + [241; 257) 'x.map(... 1u64)': {unknown} + [247; 256) '|_v| 1u64': |u32| -> u64 + [248; 250) '_v': u32 + [252; 256) '1u64': u64 + [267; 268) 'y': Option + [284; 285) 'x': Option + [284; 297) 'x.map(|_v| 1)': Option + [290; 296) '|_v| 1': |u32| -> i32 + [291; 293) '_v': u32 + [295; 296) '1': i32 "### ); } -- cgit v1.2.3