From 5648dcd36e65dde9c8f41884eed64a7e1a1d2073 Mon Sep 17 00:00:00 2001 From: Marcus Klaas de Vries Date: Tue, 15 Jan 2019 18:47:37 +0100 Subject: Implement type inference for tuples and refs --- crates/ra_hir/src/ty/tests.rs | 11 +++++++++++ crates/ra_hir/src/ty/tests/data/pattern.txt | 15 +++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 crates/ra_hir/src/ty/tests/data/pattern.txt (limited to 'crates/ra_hir/src/ty') diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index fc1e5b09c..a55551cbb 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs @@ -362,11 +362,22 @@ fn test(x: &str, y: isize) { fn infer_pattern() { check_inference( r#" +enum E { A { x: usize }, B } + fn test(x: &i32) { let y = x; let &z = x; let a = z; let (c, d) = (1, "hello"); + + let e = E::A { x: 3 }; + if let E::A { x: x } = e { + x + }; + match e { + E::A { x } => x, + E::B => 1, + }; } "#, "pattern.txt", diff --git a/crates/ra_hir/src/ty/tests/data/pattern.txt b/crates/ra_hir/src/ty/tests/data/pattern.txt new file mode 100644 index 000000000..cca521833 --- /dev/null +++ b/crates/ra_hir/src/ty/tests/data/pattern.txt @@ -0,0 +1,15 @@ +[9; 10) 'x': &i32 +[18; 98) '{ ...o"); }': () +[28; 29) 'y': &i32 +[32; 33) 'x': &i32 +[43; 45) '&z': &i32 +[44; 45) 'z': i32 +[48; 49) 'x': &i32 +[59; 60) 'a': i32 +[63; 64) 'z': i32 +[74; 80) '(c, d)': (i32, &str) +[75; 76) 'c': i32 +[78; 79) 'd': &str +[83; 95) '(1, "hello")': (i32, &str) +[84; 85) '1': i32 +[87; 94) '"hello"': &str -- cgit v1.2.3