From 2d73c909fe03c799b488aa0f97a588e13bbd7006 Mon Sep 17 00:00:00 2001 From: Lenard Pratt Date: Wed, 3 Apr 2019 23:23:58 +0100 Subject: Added inference of array length --- crates/ra_hir/src/expr.rs | 15 +++++++++++++-- crates/ra_hir/src/ty.rs | 6 +++++- crates/ra_hir/src/ty/.tests.rs.pending-snap | 28 ++++++++++++++++++++++++++++ crates/ra_hir/src/ty/infer.rs | 11 ++++++++++- crates/ra_syntax/src/ast/generated.rs | 4 ++++ crates/ra_syntax/src/grammar.ron | 3 ++- 6 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 crates/ra_hir/src/ty/.tests.rs.pending-snap (limited to 'crates') diff --git a/crates/ra_hir/src/expr.rs b/crates/ra_hir/src/expr.rs index cfa824458..3e6578651 100644 --- a/crates/ra_hir/src/expr.rs +++ b/crates/ra_hir/src/expr.rs @@ -240,6 +240,7 @@ pub enum Expr { }, Array { exprs: Vec, + repeat: Option, }, Literal(Literal), } @@ -348,11 +349,20 @@ impl Expr { | Expr::UnaryOp { expr, .. } => { f(*expr); } - Expr::Tuple { exprs } | Expr::Array { exprs } => { + Expr::Tuple { exprs } => { for expr in exprs { f(*expr); } } + Expr::Array { exprs, repeat } => { + for expr in exprs { + f(*expr); + } + + if let Some(expr) = repeat { + f(*expr) + } + } Expr::Literal(_) => {} } } @@ -725,7 +735,8 @@ impl ExprCollector { } ast::ExprKind::ArrayExpr(e) => { let exprs = e.exprs().map(|expr| self.collect_expr(expr)).collect(); - self.alloc_expr(Expr::Array { exprs }, syntax_ptr) + let repeat = e.repeat().map(|e| self.collect_expr(e)); + self.alloc_expr(Expr::Array { exprs, repeat }, syntax_ptr) } ast::ExprKind::Literal(e) => { let lit = match e.kind() { diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index d42c61e9d..77690309a 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs @@ -353,10 +353,14 @@ impl HirDisplay for ApplicationTy { TypeCtor::Int(t) => write!(f, "{}", t)?, TypeCtor::Float(t) => write!(f, "{}", t)?, TypeCtor::Str => write!(f, "str")?, - TypeCtor::Slice | TypeCtor::Array => { + TypeCtor::Slice => { let t = self.parameters.as_single(); write!(f, "[{}]", t.display(f.db))?; } + TypeCtor::Array => { + let t = self.parameters.as_single(); + write!(f, "[{};usize]", t.display(f.db))?; + } TypeCtor::RawPtr(m) => { let t = self.parameters.as_single(); write!(f, "*{}{}", m.as_keyword_for_ptr(), t.display(f.db))?; diff --git a/crates/ra_hir/src/ty/.tests.rs.pending-snap b/crates/ra_hir/src/ty/.tests.rs.pending-snap new file mode 100644 index 000000000..7c7e825fd --- /dev/null +++ b/crates/ra_hir/src/ty/.tests.rs.pending-snap @@ -0,0 +1,28 @@ +{"run_id":"a9369f17-d487-4cdb-8762-6d57bb38dfd6","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:49:23.327579Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} +{"run_id":"a9369f17-d487-4cdb-8762-6d57bb38dfd6","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:49:23.380284Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} +{"run_id":"a9369f17-d487-4cdb-8762-6d57bb38dfd6","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:49:23.280012Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} +{"run_id":"a9369f17-d487-4cdb-8762-6d57bb38dfd6","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:49:23.362700Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} +{"run_id":"be772ce1-85a5-4a66-9759-d2f2ec500485","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:53:07.383521Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown},usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} +{"run_id":"be772ce1-85a5-4a66-9759-d2f2ec500485","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:53:07.344395Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8,usize]\n[30; 50) '[0, b'...b'\\n']': [u8,usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} +{"run_id":"be772ce1-85a5-4a66-9759-d2f2ec500485","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:53:07.386674Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown}),usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} +{"run_id":"be772ce1-85a5-4a66-9759-d2f2ec500485","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:53:07.295710Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str,usize]\n[42; 45) '[x]': [&str,usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str,usize],usize]\n[59; 65) '[a, a]': [[&str,usize],usize]\n[60; 61) 'a': [&str,usize]\n[60; 61) 'a': [&str,usize]\n[63; 64) 'a': [&str,usize]\n[75; 76) 'c': [[[&str,usize],usize],usize]\n[79; 85) '[b, b]': [[[&str,usize],usize],usize]\n[80; 81) 'b': [[&str,usize],usize]\n[80; 81) 'b': [[&str,usize],usize]\n[83; 84) 'b': [[&str,usize],usize]\n[96; 97) 'd': [isize,usize]\n[100; 112) '[y, 1, 2, 3]': [isize,usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize,usize]\n[126; 138) '[1, y, 2, 3]': [isize,usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize,usize]\n[152; 155) '[y]': [isize,usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize,usize],usize]\n[169; 175) '[d, d]': [[isize,usize],usize]\n[170; 171) 'd': [isize,usize]\n[170; 171) 'd': [isize,usize]\n[173; 174) 'd': [isize,usize]\n[185; 186) 'g': [[isize,usize],usize]\n[189; 195) '[e, e]': [[isize,usize],usize]\n[190; 191) 'e': [isize,usize]\n[190; 191) 'e': [isize,usize]\n[193; 194) 'e': [isize,usize]\n[206; 207) 'h': [i32,usize]\n[210; 216) '[1, 2]': [i32,usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str,usize]\n[230; 240) '[\"a\", \"b\"]': [&str,usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str,usize],usize]\n[255; 265) '[a, [\"b\"]]': [[&str,usize],usize]\n[256; 257) 'a': [&str,usize]\n[256; 257) 'a': [&str,usize]\n[259; 264) '[\"b\"]': [&str,usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8,usize]\n[288; 290) '[]': [u8,usize]\n[300; 301) 'z': &[u8,usize]\n[311; 321) '&[1, 2, 3]': &[u8,usize]\n[312; 321) '[1, 2, 3]': [u8,usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} +{"run_id":"4d89ad2b-517f-40ee-a338-ac0fb94c41c3","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:54:08.012093Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} +{"run_id":"4d89ad2b-517f-40ee-a338-ac0fb94c41c3","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:54:07.959973Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} +{"run_id":"4d89ad2b-517f-40ee-a338-ac0fb94c41c3","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:54:08.052226Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} +{"run_id":"4d89ad2b-517f-40ee-a338-ac0fb94c41c3","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:54:08.050113Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown};usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} +{"run_id":"ef95f672-4bc0-4043-ba09-cc828ec0b621","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:56:55.243233Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': usize\n[25; 32) 'unknown': usize\n[38; 45) '[y, &y]': [usize;usize]\n[39; 40) 'y': usize\n[39; 40) 'y': usize\n[42; 44) '&y': &usize\n[43; 44) 'y': usize"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} +{"run_id":"ef95f672-4bc0-4043-ba09-cc828ec0b621","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:56:55.206265Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} +{"run_id":"ef95f672-4bc0-4043-ba09-cc828ec0b621","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:56:55.243908Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} +{"run_id":"ef95f672-4bc0-4043-ba09-cc828ec0b621","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:56:55.153183Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} +{"run_id":"60c5ca56-4eac-4d4e-ad2d-ce03a3fa5542","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:13:33.069257Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown};usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} +{"run_id":"60c5ca56-4eac-4d4e-ad2d-ce03a3fa5542","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:13:33.030720Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} +{"run_id":"60c5ca56-4eac-4d4e-ad2d-ce03a3fa5542","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:13:33.072018Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} +{"run_id":"60c5ca56-4eac-4d4e-ad2d-ce03a3fa5542","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:13:32.980464Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} +{"run_id":"7b325bb3-e7ef-41e2-a9b1-392a58487127","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:15:41.060507Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} +{"run_id":"7b325bb3-e7ef-41e2-a9b1-392a58487127","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:15:41.112220Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} +{"run_id":"7b325bb3-e7ef-41e2-a9b1-392a58487127","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:15:41.110089Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown};usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} +{"run_id":"7b325bb3-e7ef-41e2-a9b1-392a58487127","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:15:40.976255Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} +{"run_id":"8caa20b9-896a-42b5-848e-43f673f897e9","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:17:29.024807Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown};usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} +{"run_id":"8caa20b9-896a-42b5-848e-43f673f897e9","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:17:29.026807Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} +{"run_id":"8caa20b9-896a-42b5-848e-43f673f897e9","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:17:28.985591Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} +{"run_id":"8caa20b9-896a-42b5-848e-43f673f897e9","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:17:28.933671Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs index 887153484..d8f4ce9f8 100644 --- a/crates/ra_hir/src/ty/infer.rs +++ b/crates/ra_hir/src/ty/infer.rs @@ -1074,7 +1074,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { Ty::apply(TypeCtor::Tuple, Substs(ty_vec.into())) } - Expr::Array { exprs } => { + Expr::Array { exprs, repeat } => { let elem_ty = match &expected.ty { Ty::Apply(a_ty) => match a_ty.ctor { TypeCtor::Slice | TypeCtor::Array => { @@ -1089,6 +1089,15 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { self.infer_expr(*expr, &Expectation::has_type(elem_ty.clone())); } + if let Some(expr) = repeat { + self.infer_expr( + *expr, + &Expectation::has_type(Ty::simple(TypeCtor::Int( + primitive::UncertainIntTy::Known(primitive::IntTy::usize()), + ))), + ); + } + Ty::apply_one(TypeCtor::Array, elem_ty) } Expr::Literal(lit) => match lit { diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs index 0376c91c8..39b760551 100644 --- a/crates/ra_syntax/src/ast/generated.rs +++ b/crates/ra_syntax/src/ast/generated.rs @@ -108,6 +108,10 @@ impl ArrayExpr { pub fn exprs(&self) -> impl Iterator { super::children(self) } + + pub fn repeat(&self) -> Option<&Expr> { + super::child_opt(self) + } } // ArrayType diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron index 0a35e25d5..c7116c69b 100644 --- a/crates/ra_syntax/src/grammar.ron +++ b/crates/ra_syntax/src/grammar.ron @@ -395,7 +395,8 @@ Grammar( collections: [["exprs", "Expr"]] ), "ArrayExpr": ( - collections: [["exprs", "Expr"]] + collections: [["exprs", "Expr"]], + options:[["repeat","Expr"]] ), "ParenExpr": (options: ["Expr"]), "PathExpr": (options: ["Path"]), -- cgit v1.2.3 From e175921932615cb97eaa5cfd11d940cbd1473cac Mon Sep 17 00:00:00 2001 From: Lenard Pratt Date: Thu, 4 Apr 2019 23:29:21 +0100 Subject: Added ArrayExprKind, changed the display for fixed array types, Added Array Enum to ra_hir/expr --- crates/ra_hir/src/expr.rs | 49 ++++++++++++++++++++--------- crates/ra_hir/src/ty.rs | 2 +- crates/ra_hir/src/ty/infer.rs | 30 ++++++++++-------- crates/ra_syntax/src/ast.rs | 4 +-- crates/ra_syntax/src/ast/expr_extensions.rs | 22 +++++++++++++ 5 files changed, 76 insertions(+), 31 deletions(-) (limited to 'crates') diff --git a/crates/ra_hir/src/expr.rs b/crates/ra_hir/src/expr.rs index 3e6578651..589a9b2db 100644 --- a/crates/ra_hir/src/expr.rs +++ b/crates/ra_hir/src/expr.rs @@ -6,7 +6,7 @@ use rustc_hash::FxHashMap; use ra_arena::{Arena, RawId, impl_arena_id, map::ArenaMap}; use ra_syntax::{ SyntaxNodePtr, AstPtr, AstNode, - ast::{self, LoopBodyOwner, ArgListOwner, NameOwner, LiteralKind, TypeAscriptionOwner} + ast::{self, LoopBodyOwner, ArgListOwner, NameOwner, LiteralKind,ArrayExprKind, TypeAscriptionOwner} }; use crate::{ @@ -238,15 +238,17 @@ pub enum Expr { Tuple { exprs: Vec, }, - Array { - exprs: Vec, - repeat: Option, - }, + Array(Array), Literal(Literal), } pub use ra_syntax::ast::PrefixOp as UnaryOp; pub use ra_syntax::ast::BinOp as BinaryOp; +#[derive(Debug, Clone, Eq, PartialEq)] +pub enum Array { + ElementList(Vec), + Repeat { initializer: ExprId, repeat: ExprId }, +} #[derive(Debug, Clone, Eq, PartialEq)] pub struct MatchArm { @@ -354,15 +356,17 @@ impl Expr { f(*expr); } } - Expr::Array { exprs, repeat } => { - for expr in exprs { - f(*expr); + Expr::Array(a) => match a { + Array::ElementList(exprs) => { + for expr in exprs { + f(*expr); + } } - - if let Some(expr) = repeat { - f(*expr) + Array::Repeat { initializer, repeat } => { + f(*initializer); + f(*repeat) } - } + }, Expr::Literal(_) => {} } } @@ -733,11 +737,26 @@ impl ExprCollector { let exprs = e.exprs().map(|expr| self.collect_expr(expr)).collect(); self.alloc_expr(Expr::Tuple { exprs }, syntax_ptr) } + ast::ExprKind::ArrayExpr(e) => { - let exprs = e.exprs().map(|expr| self.collect_expr(expr)).collect(); - let repeat = e.repeat().map(|e| self.collect_expr(e)); - self.alloc_expr(Expr::Array { exprs, repeat }, syntax_ptr) + let kind = e.kind(); + + match kind { + ArrayExprKind::ElementList(e) => { + let exprs = e.map(|expr| self.collect_expr(expr)).collect(); + self.alloc_expr(Expr::Array(Array::ElementList(exprs)), syntax_ptr) + } + ArrayExprKind::Repeat { initializer, repeat } => { + let initializer = self.collect_expr_opt(initializer); + let repeat = self.collect_expr_opt(repeat); + self.alloc_expr( + Expr::Array(Array::Repeat { initializer, repeat }), + syntax_ptr, + ) + } + } } + ast::ExprKind::Literal(e) => { let lit = match e.kind() { LiteralKind::IntNumber { suffix } => { diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 77690309a..20e55d92d 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs @@ -359,7 +359,7 @@ impl HirDisplay for ApplicationTy { } TypeCtor::Array => { let t = self.parameters.as_single(); - write!(f, "[{};usize]", t.display(f.db))?; + write!(f, "[{};_]", t.display(f.db))?; } TypeCtor::RawPtr(m) => { let t = self.parameters.as_single(); diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs index d8f4ce9f8..9ace6b13a 100644 --- a/crates/ra_hir/src/ty/infer.rs +++ b/crates/ra_hir/src/ty/infer.rs @@ -32,7 +32,7 @@ use crate::{ DefWithBody, ImplItem, type_ref::{TypeRef, Mutability}, - expr::{Body, Expr, BindingAnnotation, Literal, ExprId, Pat, PatId, UnaryOp, BinaryOp, Statement, FieldPat, self}, + expr::{Body, Expr, BindingAnnotation, Literal, ExprId, Pat, PatId, UnaryOp, BinaryOp, Statement, FieldPat,Array, self}, generics::GenericParams, path::{GenericArgs, GenericArg}, adt::VariantDef, @@ -1074,7 +1074,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { Ty::apply(TypeCtor::Tuple, Substs(ty_vec.into())) } - Expr::Array { exprs, repeat } => { + Expr::Array(array) => { let elem_ty = match &expected.ty { Ty::Apply(a_ty) => match a_ty.ctor { TypeCtor::Slice | TypeCtor::Array => { @@ -1085,17 +1085,21 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { _ => self.new_type_var(), }; - for expr in exprs.iter() { - self.infer_expr(*expr, &Expectation::has_type(elem_ty.clone())); - } - - if let Some(expr) = repeat { - self.infer_expr( - *expr, - &Expectation::has_type(Ty::simple(TypeCtor::Int( - primitive::UncertainIntTy::Known(primitive::IntTy::usize()), - ))), - ); + match array { + Array::ElementList(items) => { + for expr in items.iter() { + self.infer_expr(*expr, &Expectation::has_type(elem_ty.clone())); + } + } + Array::Repeat { initializer, repeat } => { + self.infer_expr(*initializer, &Expectation::has_type(elem_ty.clone())); + self.infer_expr( + *repeat, + &Expectation::has_type(Ty::simple(TypeCtor::Int( + primitive::UncertainIntTy::Known(primitive::IntTy::usize()), + ))), + ); + } } Ty::apply_one(TypeCtor::Array, elem_ty) diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs index a06a6375d..970b89825 100644 --- a/crates/ra_syntax/src/ast.rs +++ b/crates/ra_syntax/src/ast.rs @@ -17,8 +17,8 @@ pub use self::{ generated::*, traits::*, tokens::*, - extensions::{PathSegmentKind, StructKind, FieldKind, SelfParamKind}, - expr_extensions::{ElseBranch, PrefixOp, BinOp, LiteralKind}, + extensions::{PathSegmentKind, StructKind, SelfParamKind}, + expr_extensions::{ElseBranch, PrefixOp, BinOp, LiteralKind,ArrayExprKind}, }; /// The main trait to go from untyped `SyntaxNode` to a typed ast. The diff --git a/crates/ra_syntax/src/ast/expr_extensions.rs b/crates/ra_syntax/src/ast/expr_extensions.rs index 1d8313810..d21ec80c3 100644 --- a/crates/ra_syntax/src/ast/expr_extensions.rs +++ b/crates/ra_syntax/src/ast/expr_extensions.rs @@ -193,6 +193,28 @@ impl ast::BinExpr { } } +pub enum ArrayExprKind<'a> { + Repeat { initializer: Option<&'a ast::Expr>, repeat: Option<&'a ast::Expr> }, + ElementList(AstChildren<'a, ast::Expr>), +} + +impl ast::ArrayExpr { + pub fn kind(&self) -> ArrayExprKind { + if self.is_repeat() { + ArrayExprKind::Repeat { + initializer: children(self).nth(0), + repeat: children(self).nth(2), + } + } else { + ArrayExprKind::ElementList(children(self)) + } + } + + fn is_repeat(&self) -> bool { + self.syntax().children_with_tokens().any(|it| it.kind() == SEMI) + } +} + #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub enum LiteralKind { String, -- cgit v1.2.3 From b27fa33a9f459feb442682026670ca8e6001a424 Mon Sep 17 00:00:00 2001 From: Lenard Pratt Date: Fri, 5 Apr 2019 11:19:25 +0100 Subject: updated snapshots --- crates/ra_hir/src/ty/.tests.rs.pending-snap | 28 ---------- crates/ra_hir/src/ty/tests.rs | 82 ++++++++++++++--------------- crates/ra_syntax/src/ast.rs | 2 +- crates/ra_syntax/src/ast/expr_extensions.rs | 2 +- crates/ra_syntax/src/ast/generated.rs | 4 -- crates/ra_syntax/src/grammar.ron | 3 +- 6 files changed, 44 insertions(+), 77 deletions(-) delete mode 100644 crates/ra_hir/src/ty/.tests.rs.pending-snap (limited to 'crates') diff --git a/crates/ra_hir/src/ty/.tests.rs.pending-snap b/crates/ra_hir/src/ty/.tests.rs.pending-snap deleted file mode 100644 index 7c7e825fd..000000000 --- a/crates/ra_hir/src/ty/.tests.rs.pending-snap +++ /dev/null @@ -1,28 +0,0 @@ -{"run_id":"a9369f17-d487-4cdb-8762-6d57bb38dfd6","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:49:23.327579Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} -{"run_id":"a9369f17-d487-4cdb-8762-6d57bb38dfd6","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:49:23.380284Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} -{"run_id":"a9369f17-d487-4cdb-8762-6d57bb38dfd6","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:49:23.280012Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} -{"run_id":"a9369f17-d487-4cdb-8762-6d57bb38dfd6","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:49:23.362700Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} -{"run_id":"be772ce1-85a5-4a66-9759-d2f2ec500485","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:53:07.383521Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown},usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} -{"run_id":"be772ce1-85a5-4a66-9759-d2f2ec500485","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:53:07.344395Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8,usize]\n[30; 50) '[0, b'...b'\\n']': [u8,usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} -{"run_id":"be772ce1-85a5-4a66-9759-d2f2ec500485","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:53:07.386674Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown}),usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} -{"run_id":"be772ce1-85a5-4a66-9759-d2f2ec500485","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:53:07.295710Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str,usize]\n[42; 45) '[x]': [&str,usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str,usize],usize]\n[59; 65) '[a, a]': [[&str,usize],usize]\n[60; 61) 'a': [&str,usize]\n[60; 61) 'a': [&str,usize]\n[63; 64) 'a': [&str,usize]\n[75; 76) 'c': [[[&str,usize],usize],usize]\n[79; 85) '[b, b]': [[[&str,usize],usize],usize]\n[80; 81) 'b': [[&str,usize],usize]\n[80; 81) 'b': [[&str,usize],usize]\n[83; 84) 'b': [[&str,usize],usize]\n[96; 97) 'd': [isize,usize]\n[100; 112) '[y, 1, 2, 3]': [isize,usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize,usize]\n[126; 138) '[1, y, 2, 3]': [isize,usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize,usize]\n[152; 155) '[y]': [isize,usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize,usize],usize]\n[169; 175) '[d, d]': [[isize,usize],usize]\n[170; 171) 'd': [isize,usize]\n[170; 171) 'd': [isize,usize]\n[173; 174) 'd': [isize,usize]\n[185; 186) 'g': [[isize,usize],usize]\n[189; 195) '[e, e]': [[isize,usize],usize]\n[190; 191) 'e': [isize,usize]\n[190; 191) 'e': [isize,usize]\n[193; 194) 'e': [isize,usize]\n[206; 207) 'h': [i32,usize]\n[210; 216) '[1, 2]': [i32,usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str,usize]\n[230; 240) '[\"a\", \"b\"]': [&str,usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str,usize],usize]\n[255; 265) '[a, [\"b\"]]': [[&str,usize],usize]\n[256; 257) 'a': [&str,usize]\n[256; 257) 'a': [&str,usize]\n[259; 264) '[\"b\"]': [&str,usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8,usize]\n[288; 290) '[]': [u8,usize]\n[300; 301) 'z': &[u8,usize]\n[311; 321) '&[1, 2, 3]': &[u8,usize]\n[312; 321) '[1, 2, 3]': [u8,usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} -{"run_id":"4d89ad2b-517f-40ee-a338-ac0fb94c41c3","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:54:08.012093Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} -{"run_id":"4d89ad2b-517f-40ee-a338-ac0fb94c41c3","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:54:07.959973Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} -{"run_id":"4d89ad2b-517f-40ee-a338-ac0fb94c41c3","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:54:08.052226Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} -{"run_id":"4d89ad2b-517f-40ee-a338-ac0fb94c41c3","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:54:08.050113Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown};usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} -{"run_id":"ef95f672-4bc0-4043-ba09-cc828ec0b621","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:56:55.243233Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': usize\n[25; 32) 'unknown': usize\n[38; 45) '[y, &y]': [usize;usize]\n[39; 40) 'y': usize\n[39; 40) 'y': usize\n[42; 44) '&y': &usize\n[43; 44) 'y': usize"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} -{"run_id":"ef95f672-4bc0-4043-ba09-cc828ec0b621","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:56:55.206265Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} -{"run_id":"ef95f672-4bc0-4043-ba09-cc828ec0b621","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:56:55.243908Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} -{"run_id":"ef95f672-4bc0-4043-ba09-cc828ec0b621","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T21:56:55.153183Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} -{"run_id":"60c5ca56-4eac-4d4e-ad2d-ce03a3fa5542","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:13:33.069257Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown};usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} -{"run_id":"60c5ca56-4eac-4d4e-ad2d-ce03a3fa5542","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:13:33.030720Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} -{"run_id":"60c5ca56-4eac-4d4e-ad2d-ce03a3fa5542","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:13:33.072018Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} -{"run_id":"60c5ca56-4eac-4d4e-ad2d-ce03a3fa5542","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:13:32.980464Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} -{"run_id":"7b325bb3-e7ef-41e2-a9b1-392a58487127","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:15:41.060507Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} -{"run_id":"7b325bb3-e7ef-41e2-a9b1-392a58487127","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:15:41.112220Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} -{"run_id":"7b325bb3-e7ef-41e2-a9b1-392a58487127","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:15:41.110089Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown};usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} -{"run_id":"7b325bb3-e7ef-41e2-a9b1-392a58487127","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:15:40.976255Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} -{"run_id":"8caa20b9-896a-42b5-848e-43f673f897e9","line":1545,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:17:29.024807Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let y = unknown;\n [y, &y];\n}\n\"#)"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown};usize]\n[39; 40) 'y': &{unknown}\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 48) '{ ...&y]; }': ()\n[21; 22) 'y': &{unknown}\n[25; 32) 'unknown': &{unknown}\n[38; 45) '[y, &y]': [&&{unknown}]\n[39; 40) 'y': &{unknown}\n[42; 44) '&y': &&{unknown}\n[43; 44) 'y': &{unknown}"}} -{"run_id":"8caa20b9-896a-42b5-848e-43f673f897e9","line":1567,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:17:29.026807Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test() {\n let x = unknown;\n let y = unknown;\n [(x, y), (&y, &x)];\n}\n\"#)"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});usize]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[11; 80) '{ ...x)]; }': ()\n[21; 22) 'x': &&{unknown}\n[25; 32) 'unknown': &&{unknown}\n[42; 43) 'y': &&{unknown}\n[46; 53) 'unknown': &&{unknown}\n[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})]\n[60; 66) '(x, y)': (&&{unknown}, &&{unknown})\n[61; 62) 'x': &&{unknown}\n[64; 65) 'y': &&{unknown}\n[68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown})\n[69; 71) '&y': &&&{unknown}\n[70; 71) 'y': &&{unknown}\n[73; 75) '&x': &&&{unknown}\n[74; 75) 'x': &&{unknown}"}} -{"run_id":"8caa20b9-896a-42b5-848e-43f673f897e9","line":1665,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:17:28.985591Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test_line_buffer() {\n &[0, b'\\n', 1, b'\\n'];\n}\n\"#)"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8;usize]\n[30; 50) '[0, b'...b'\\n']': [u8;usize]\n[31; 32) '0': u8\n[31; 32) '0': usize\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[23; 53) '{ ...n']; }': ()\n[29; 50) '&[0, b...b'\\n']': &[u8]\n[30; 50) '[0, b'...b'\\n']': [u8]\n[31; 32) '0': u8\n[34; 39) 'b'\\n'': u8\n[41; 42) '1': u8\n[44; 49) 'b'\\n'': u8"}} -{"run_id":"8caa20b9-896a-42b5-848e-43f673f897e9","line":675,"new":{"module_name":"tests","metadata":{"created":"2019-04-03T22:17:28.933671Z","creator":"insta@0.7.4","source":"crates/ra_hir/src/ty/tests.rs","expression":"infer(r#\"\nfn test(x: &str, y: isize) {\n let a = [x];\n let b = [a, a];\n let c = [b, b];\n\n let d = [y, 1, 2, 3];\n let d = [1, y, 2, 3];\n let e = [y];\n let f = [d, d];\n let g = [e, e];\n\n let h = [1, 2];\n let i = [\"a\", \"b\"];\n\n let b = [a, [\"b\"]];\n let x: [u8; 0] = [];\n let z: &[u8] = &[1, 2, 3];\n}\n\"#)"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str;usize]\n[42; 45) '[x]': [&str;usize]\n[43; 44) 'x': &str\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str;usize];usize]\n[59; 65) '[a, a]': [[&str;usize];usize]\n[60; 61) 'a': [&str;usize]\n[60; 61) 'a': [&str;usize]\n[63; 64) 'a': [&str;usize]\n[75; 76) 'c': [[[&str;usize];usize];usize]\n[79; 85) '[b, b]': [[[&str;usize];usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[80; 81) 'b': [[&str;usize];usize]\n[83; 84) 'b': [[&str;usize];usize]\n[96; 97) 'd': [isize;usize]\n[100; 112) '[y, 1, 2, 3]': [isize;usize]\n[101; 102) 'y': isize\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize;usize]\n[126; 138) '[1, y, 2, 3]': [isize;usize]\n[127; 128) '1': isize\n[127; 128) '1': usize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize;usize]\n[152; 155) '[y]': [isize;usize]\n[153; 154) 'y': isize\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize;usize];usize]\n[169; 175) '[d, d]': [[isize;usize];usize]\n[170; 171) 'd': [isize;usize]\n[170; 171) 'd': [isize;usize]\n[173; 174) 'd': [isize;usize]\n[185; 186) 'g': [[isize;usize];usize]\n[189; 195) '[e, e]': [[isize;usize];usize]\n[190; 191) 'e': [isize;usize]\n[190; 191) 'e': [isize;usize]\n[193; 194) 'e': [isize;usize]\n[206; 207) 'h': [i32;usize]\n[210; 216) '[1, 2]': [i32;usize]\n[211; 212) '1': i32\n[211; 212) '1': usize\n[214; 215) '2': i32\n[226; 227) 'i': [&str;usize]\n[230; 240) '[\"a\", \"b\"]': [&str;usize]\n[231; 234) '\"a\"': &str\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str;usize];usize]\n[255; 265) '[a, [\"b\"]]': [[&str;usize];usize]\n[256; 257) 'a': [&str;usize]\n[256; 257) 'a': [&str;usize]\n[259; 264) '[\"b\"]': [&str;usize]\n[260; 263) '\"b\"': &str\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8;usize]\n[288; 290) '[]': [u8;usize]\n[300; 301) 'z': &[u8;usize]\n[311; 321) '&[1, 2, 3]': &[u8;usize]\n[312; 321) '[1, 2, 3]': [u8;usize]\n[313; 314) '1': u8\n[313; 314) '1': usize\n[316; 317) '2': u8\n[319; 320) '3': u8"},"old":{"module_name":"tests","metadata":{"created":"2019-04-03T20:30:58.397743505Z"},"snapshot":"\n[9; 10) 'x': &str\n[18; 19) 'y': isize\n[28; 324) '{ ... 3]; }': ()\n[38; 39) 'a': [&str]\n[42; 45) '[x]': [&str]\n[43; 44) 'x': &str\n[55; 56) 'b': [[&str]]\n[59; 65) '[a, a]': [[&str]]\n[60; 61) 'a': [&str]\n[63; 64) 'a': [&str]\n[75; 76) 'c': [[[&str]]]\n[79; 85) '[b, b]': [[[&str]]]\n[80; 81) 'b': [[&str]]\n[83; 84) 'b': [[&str]]\n[96; 97) 'd': [isize]\n[100; 112) '[y, 1, 2, 3]': [isize]\n[101; 102) 'y': isize\n[104; 105) '1': isize\n[107; 108) '2': isize\n[110; 111) '3': isize\n[122; 123) 'd': [isize]\n[126; 138) '[1, y, 2, 3]': [isize]\n[127; 128) '1': isize\n[130; 131) 'y': isize\n[133; 134) '2': isize\n[136; 137) '3': isize\n[148; 149) 'e': [isize]\n[152; 155) '[y]': [isize]\n[153; 154) 'y': isize\n[165; 166) 'f': [[isize]]\n[169; 175) '[d, d]': [[isize]]\n[170; 171) 'd': [isize]\n[173; 174) 'd': [isize]\n[185; 186) 'g': [[isize]]\n[189; 195) '[e, e]': [[isize]]\n[190; 191) 'e': [isize]\n[193; 194) 'e': [isize]\n[206; 207) 'h': [i32]\n[210; 216) '[1, 2]': [i32]\n[211; 212) '1': i32\n[214; 215) '2': i32\n[226; 227) 'i': [&str]\n[230; 240) '[\"a\", \"b\"]': [&str]\n[231; 234) '\"a\"': &str\n[236; 239) '\"b\"': &str\n[251; 252) 'b': [[&str]]\n[255; 265) '[a, [\"b\"]]': [[&str]]\n[256; 257) 'a': [&str]\n[259; 264) '[\"b\"]': [&str]\n[260; 263) '\"b\"': &str\n[275; 276) 'x': [u8]\n[288; 290) '[]': [u8]\n[300; 301) 'z': &[u8]\n[311; 321) '&[1, 2, 3]': &[u8]\n[312; 321) '[1, 2, 3]': [u8]\n[313; 314) '1': u8\n[316; 317) '2': u8\n[319; 320) '3': u8"}} diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index f0164f7ea..f6a325033 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs @@ -697,58 +697,58 @@ fn test(x: &str, y: isize) { [9; 10) 'x': &str [18; 19) 'y': isize [28; 324) '{ ... 3]; }': () -[38; 39) 'a': [&str] -[42; 45) '[x]': [&str] +[38; 39) 'a': [&str;_] +[42; 45) '[x]': [&str;_] [43; 44) 'x': &str -[55; 56) 'b': [[&str]] -[59; 65) '[a, a]': [[&str]] -[60; 61) 'a': [&str] -[63; 64) 'a': [&str] -[75; 76) 'c': [[[&str]]] -[79; 85) '[b, b]': [[[&str]]] -[80; 81) 'b': [[&str]] -[83; 84) 'b': [[&str]] -[96; 97) 'd': [isize] -[100; 112) '[y, 1, 2, 3]': [isize] +[55; 56) 'b': [[&str;_];_] +[59; 65) '[a, a]': [[&str;_];_] +[60; 61) 'a': [&str;_] +[63; 64) 'a': [&str;_] +[75; 76) 'c': [[[&str;_];_];_] +[79; 85) '[b, b]': [[[&str;_];_];_] +[80; 81) 'b': [[&str;_];_] +[83; 84) 'b': [[&str;_];_] +[96; 97) 'd': [isize;_] +[100; 112) '[y, 1, 2, 3]': [isize;_] [101; 102) 'y': isize [104; 105) '1': isize [107; 108) '2': isize [110; 111) '3': isize -[122; 123) 'd': [isize] -[126; 138) '[1, y, 2, 3]': [isize] +[122; 123) 'd': [isize;_] +[126; 138) '[1, y, 2, 3]': [isize;_] [127; 128) '1': isize [130; 131) 'y': isize [133; 134) '2': isize [136; 137) '3': isize -[148; 149) 'e': [isize] -[152; 155) '[y]': [isize] +[148; 149) 'e': [isize;_] +[152; 155) '[y]': [isize;_] [153; 154) 'y': isize -[165; 166) 'f': [[isize]] -[169; 175) '[d, d]': [[isize]] -[170; 171) 'd': [isize] -[173; 174) 'd': [isize] -[185; 186) 'g': [[isize]] -[189; 195) '[e, e]': [[isize]] -[190; 191) 'e': [isize] -[193; 194) 'e': [isize] -[206; 207) 'h': [i32] -[210; 216) '[1, 2]': [i32] +[165; 166) 'f': [[isize;_];_] +[169; 175) '[d, d]': [[isize;_];_] +[170; 171) 'd': [isize;_] +[173; 174) 'd': [isize;_] +[185; 186) 'g': [[isize;_];_] +[189; 195) '[e, e]': [[isize;_];_] +[190; 191) 'e': [isize;_] +[193; 194) 'e': [isize;_] +[206; 207) 'h': [i32;_] +[210; 216) '[1, 2]': [i32;_] [211; 212) '1': i32 [214; 215) '2': i32 -[226; 227) 'i': [&str] -[230; 240) '["a", "b"]': [&str] +[226; 227) 'i': [&str;_] +[230; 240) '["a", "b"]': [&str;_] [231; 234) '"a"': &str [236; 239) '"b"': &str -[251; 252) 'b': [[&str]] -[255; 265) '[a, ["b"]]': [[&str]] -[256; 257) 'a': [&str] -[259; 264) '["b"]': [&str] +[251; 252) 'b': [[&str;_];_] +[255; 265) '[a, ["b"]]': [[&str;_];_] +[256; 257) 'a': [&str;_] +[259; 264) '["b"]': [&str;_] [260; 263) '"b"': &str -[275; 276) 'x': [u8] -[288; 290) '[]': [u8] -[300; 301) 'z': &[u8] -[311; 321) '&[1, 2, 3]': &[u8] -[312; 321) '[1, 2, 3]': [u8] +[275; 276) 'x': [u8;_] +[288; 290) '[]': [u8;_] +[300; 301) 'z': &[u8;_] +[311; 321) '&[1, 2, 3]': &[u8;_] +[312; 321) '[1, 2, 3]': [u8;_] [313; 314) '1': u8 [316; 317) '2': u8 [319; 320) '3': u8"### @@ -1553,7 +1553,7 @@ fn test() { [11; 48) '{ ...&y]; }': () [21; 22) 'y': &{unknown} [25; 32) 'unknown': &{unknown} -[38; 45) '[y, &y]': [&&{unknown}] +[38; 45) '[y, &y]': [&&{unknown};_] [39; 40) 'y': &{unknown} [42; 44) '&y': &&{unknown} [43; 44) 'y': &{unknown}"### @@ -1578,7 +1578,7 @@ fn test() { [25; 32) 'unknown': &&{unknown} [42; 43) 'y': &&{unknown} [46; 53) 'unknown': &&{unknown} -[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown})] +[59; 77) '[(x, y..., &x)]': [(&&{unknown}, &&{unknown});_] [60; 66) '(x, y)': (&&{unknown}, &&{unknown}) [61; 62) 'x': &&{unknown} [64; 65) 'y': &&{unknown} @@ -1670,8 +1670,8 @@ fn test_line_buffer() { "#), @r###" [23; 53) '{ ...n']; }': () -[29; 50) '&[0, b...b'\n']': &[u8] -[30; 50) '[0, b'...b'\n']': [u8] +[29; 50) '&[0, b...b'\n']': &[u8;_] +[30; 50) '[0, b'...b'\n']': [u8;_] [31; 32) '0': u8 [34; 39) 'b'\n'': u8 [41; 42) '1': u8 diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs index 970b89825..c2ab19d97 100644 --- a/crates/ra_syntax/src/ast.rs +++ b/crates/ra_syntax/src/ast.rs @@ -17,7 +17,7 @@ pub use self::{ generated::*, traits::*, tokens::*, - extensions::{PathSegmentKind, StructKind, SelfParamKind}, + extensions::{PathSegmentKind, StructKind,FieldKind, SelfParamKind}, expr_extensions::{ElseBranch, PrefixOp, BinOp, LiteralKind,ArrayExprKind}, }; diff --git a/crates/ra_syntax/src/ast/expr_extensions.rs b/crates/ra_syntax/src/ast/expr_extensions.rs index d21ec80c3..9484c3b9b 100644 --- a/crates/ra_syntax/src/ast/expr_extensions.rs +++ b/crates/ra_syntax/src/ast/expr_extensions.rs @@ -203,7 +203,7 @@ impl ast::ArrayExpr { if self.is_repeat() { ArrayExprKind::Repeat { initializer: children(self).nth(0), - repeat: children(self).nth(2), + repeat: children(self).nth(1), } } else { ArrayExprKind::ElementList(children(self)) diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs index 39b760551..0376c91c8 100644 --- a/crates/ra_syntax/src/ast/generated.rs +++ b/crates/ra_syntax/src/ast/generated.rs @@ -108,10 +108,6 @@ impl ArrayExpr { pub fn exprs(&self) -> impl Iterator { super::children(self) } - - pub fn repeat(&self) -> Option<&Expr> { - super::child_opt(self) - } } // ArrayType diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron index c7116c69b..0a35e25d5 100644 --- a/crates/ra_syntax/src/grammar.ron +++ b/crates/ra_syntax/src/grammar.ron @@ -395,8 +395,7 @@ Grammar( collections: [["exprs", "Expr"]] ), "ArrayExpr": ( - collections: [["exprs", "Expr"]], - options:[["repeat","Expr"]] + collections: [["exprs", "Expr"]] ), "ParenExpr": (options: ["Expr"]), "PathExpr": (options: ["Path"]), -- cgit v1.2.3