mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-03 15:15:24 +00:00
Sort ranges in type inference tests
Also rename the files to remove the numbers (they don't serve a purpose now that there are only the data files).
This commit is contained in:
parent
6210e82041
commit
cf49a11263
9 changed files with 98 additions and 97 deletions
|
@ -4,7 +4,6 @@ use std::path::{PathBuf, Path};
|
||||||
use std::fs;
|
use std::fs;
|
||||||
|
|
||||||
use salsa::Database;
|
use salsa::Database;
|
||||||
use rustc_hash::FxHashMap;
|
|
||||||
|
|
||||||
use ra_db::SyntaxDatabase;
|
use ra_db::SyntaxDatabase;
|
||||||
use ra_syntax::ast::{self, AstNode};
|
use ra_syntax::ast::{self, AstNode};
|
||||||
|
@ -35,7 +34,7 @@ fn test(a: u32, b: isize, c: !, d: &str) {
|
||||||
"test";
|
"test";
|
||||||
1.0f32;
|
1.0f32;
|
||||||
}"#,
|
}"#,
|
||||||
"0001_basics.txt",
|
"basics.txt",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +48,7 @@ fn test() {
|
||||||
let c = b;
|
let c = b;
|
||||||
}
|
}
|
||||||
}"#,
|
}"#,
|
||||||
"0002_let.txt",
|
"let.txt",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +67,7 @@ fn test() {
|
||||||
b::c();
|
b::c();
|
||||||
}
|
}
|
||||||
}"#,
|
}"#,
|
||||||
"0003_paths.txt",
|
"paths.txt",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +90,7 @@ fn test() {
|
||||||
a.c;
|
a.c;
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
"0004_struct.txt",
|
"struct.txt",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +112,7 @@ fn test(a: &u32, b: &mut u32, c: *const u32, d: *mut u32) {
|
||||||
*d;
|
*d;
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
"0005_refs.txt",
|
"refs_and_ptrs.txt",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +133,7 @@ fn test() -> &mut &f64 {
|
||||||
&mut &c
|
&mut &c
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
"0006_backwards.txt",
|
"backwards.txt",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +152,7 @@ impl S {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
"0007_self.txt",
|
"self.txt",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +176,7 @@ fn test() {
|
||||||
10 < 3
|
10 < 3
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
"0008_boolean_op.txt",
|
"boolean_op.txt",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,14 +194,14 @@ fn infer(content: &str) -> String {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let inference_result = func.infer(&db).unwrap();
|
let inference_result = func.infer(&db).unwrap();
|
||||||
let body_syntax_mapping = func.body_syntax_mapping(&db).unwrap();
|
let body_syntax_mapping = func.body_syntax_mapping(&db).unwrap();
|
||||||
let mut types = FxHashMap::default();
|
let mut types = Vec::new();
|
||||||
for (pat, ty) in &inference_result.type_of_pat {
|
for (pat, ty) in &inference_result.type_of_pat {
|
||||||
let syntax_ptr = if let Some(sp) = body_syntax_mapping.pat_syntax(*pat) {
|
let syntax_ptr = if let Some(sp) = body_syntax_mapping.pat_syntax(*pat) {
|
||||||
sp
|
sp
|
||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
types.insert(syntax_ptr, ty);
|
types.push((syntax_ptr, ty));
|
||||||
}
|
}
|
||||||
for (expr, ty) in &inference_result.type_of_expr {
|
for (expr, ty) in &inference_result.type_of_expr {
|
||||||
let syntax_ptr = if let Some(sp) = body_syntax_mapping.expr_syntax(*expr) {
|
let syntax_ptr = if let Some(sp) = body_syntax_mapping.expr_syntax(*expr) {
|
||||||
|
@ -210,8 +209,10 @@ fn infer(content: &str) -> String {
|
||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
types.insert(syntax_ptr, ty);
|
types.push((syntax_ptr, ty));
|
||||||
}
|
}
|
||||||
|
// sort ranges for consistency
|
||||||
|
types.sort_by_key(|(ptr, _)| (ptr.range().start(), ptr.range().end()));
|
||||||
for (syntax_ptr, ty) in &types {
|
for (syntax_ptr, ty) in &types {
|
||||||
let node = syntax_ptr.resolve(&source_file);
|
let node = syntax_ptr.resolve(&source_file);
|
||||||
write!(
|
write!(
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
[22; 24) '{}': ()
|
|
||||||
[14; 15) 'x': u32
|
[14; 15) 'x': u32
|
||||||
[142; 158) 'unknow...nction': [unknown]
|
[22; 24) '{}': ()
|
||||||
[228; 229) 'c': f64
|
|
||||||
[198; 216) 'unknow...tion()': f64
|
|
||||||
[126; 127) 'a': u32
|
|
||||||
[198; 214) 'unknow...nction': [unknown]
|
|
||||||
[222; 229) '&mut &c': &mut &f64
|
|
||||||
[166; 184) 'S { i3...d: b }': S
|
|
||||||
[194; 195) 'c': f64
|
|
||||||
[92; 110) 'unknow...tion()': u32
|
|
||||||
[142; 160) 'unknow...tion()': i32
|
|
||||||
[92; 108) 'unknow...nction': [unknown]
|
|
||||||
[116; 128) 'takes_u32(a)': ()
|
|
||||||
[78; 231) '{ ...t &c }': &mut &f64
|
[78; 231) '{ ...t &c }': &mut &f64
|
||||||
[227; 229) '&c': &f64
|
|
||||||
[88; 89) 'a': u32
|
[88; 89) 'a': u32
|
||||||
[181; 182) 'b': i32
|
[92; 108) 'unknow...nction': [unknown]
|
||||||
|
[92; 110) 'unknow...tion()': u32
|
||||||
[116; 125) 'takes_u32': fn(u32,) -> ()
|
[116; 125) 'takes_u32': fn(u32,) -> ()
|
||||||
|
[116; 128) 'takes_u32(a)': ()
|
||||||
|
[126; 127) 'a': u32
|
||||||
[138; 139) 'b': i32
|
[138; 139) 'b': i32
|
||||||
|
[142; 158) 'unknow...nction': [unknown]
|
||||||
|
[142; 160) 'unknow...tion()': i32
|
||||||
|
[166; 184) 'S { i3...d: b }': S
|
||||||
|
[181; 182) 'b': i32
|
||||||
|
[194; 195) 'c': f64
|
||||||
|
[198; 214) 'unknow...nction': [unknown]
|
||||||
|
[198; 216) 'unknow...tion()': f64
|
||||||
|
[222; 229) '&mut &c': &mut &f64
|
||||||
|
[227; 229) '&c': &f64
|
||||||
|
[228; 229) 'c': f64
|
|
@ -1,13 +1,13 @@
|
||||||
|
[9; 10) 'a': u32
|
||||||
|
[17; 18) 'b': isize
|
||||||
|
[27; 28) 'c': !
|
||||||
[33; 34) 'd': &[unknown]
|
[33; 34) 'd': &[unknown]
|
||||||
[88; 94) '1isize': [unknown]
|
[42; 121) '{ ...f32; }': ()
|
||||||
[48; 49) 'a': u32
|
[48; 49) 'a': u32
|
||||||
[55; 56) 'b': isize
|
[55; 56) 'b': isize
|
||||||
[112; 118) '1.0f32': [unknown]
|
|
||||||
[76; 82) '1usize': [unknown]
|
|
||||||
[9; 10) 'a': u32
|
|
||||||
[27; 28) 'c': !
|
|
||||||
[62; 63) 'c': !
|
[62; 63) 'c': !
|
||||||
[17; 18) 'b': isize
|
|
||||||
[42; 121) '{ ...f32; }': ()
|
|
||||||
[100; 106) '"test"': [unknown]
|
|
||||||
[69; 70) 'd': &[unknown]
|
[69; 70) 'd': &[unknown]
|
||||||
|
[76; 82) '1usize': [unknown]
|
||||||
|
[88; 94) '1isize': [unknown]
|
||||||
|
[100; 106) '"test"': [unknown]
|
||||||
|
[112; 118) '1.0f32': [unknown]
|
|
@ -1,31 +1,31 @@
|
||||||
[28; 32) '0i32': i32
|
|
||||||
[22; 34) '{ 0i32 }': i32
|
|
||||||
[6; 7) 'x': [unknown]
|
[6; 7) 'x': [unknown]
|
||||||
[201; 205) '3i32': bool
|
[22; 34) '{ 0i32 }': i32
|
||||||
[127; 134) 'CONST_1': [unknown]
|
[28; 32) '0i32': i32
|
||||||
[76; 77) 'y': bool
|
[46; 237) '{ ... < 3 }': bool
|
||||||
|
[56; 57) 'x': bool
|
||||||
|
[60; 61) 'a': bool
|
||||||
[60; 66) 'a && b': bool
|
[60; 66) 'a && b': bool
|
||||||
[65; 66) 'b': bool
|
[65; 66) 'b': bool
|
||||||
[229; 231) '10': [unknown]
|
[76; 77) 'y': bool
|
||||||
[127; 145) 'CONST_...ONST_2': bool
|
|
||||||
[182; 183) 'd': [unknown]
|
|
||||||
[209; 222) '"hello world"': bool
|
|
||||||
[229; 235) '10 < 3': bool
|
|
||||||
[186; 187) 'b': [unknown]
|
|
||||||
[56; 57) 'x': bool
|
|
||||||
[159; 172) 'f(z || y) + 5': [unknown]
|
|
||||||
[112; 113) 'y': bool
|
|
||||||
[234; 235) '3': [unknown]
|
|
||||||
[201; 222) '3i32 &...world"': bool
|
|
||||||
[138; 145) 'CONST_2': [unknown]
|
|
||||||
[80; 93) 'true || false': bool
|
|
||||||
[46; 237) '{ ... < 3 }': bool
|
|
||||||
[197; 198) 'e': bool
|
|
||||||
[107; 113) 'x == y': bool
|
|
||||||
[88; 93) 'false': bool
|
|
||||||
[155; 156) 'c': [unknown]
|
|
||||||
[123; 124) 'h': bool
|
|
||||||
[80; 84) 'true': bool
|
[80; 84) 'true': bool
|
||||||
|
[80; 93) 'true || false': bool
|
||||||
|
[88; 93) 'false': bool
|
||||||
[103; 104) 'z': bool
|
[103; 104) 'z': bool
|
||||||
[60; 61) 'a': bool
|
|
||||||
[107; 108) 'x': bool
|
[107; 108) 'x': bool
|
||||||
|
[107; 113) 'x == y': bool
|
||||||
|
[112; 113) 'y': bool
|
||||||
|
[123; 124) 'h': bool
|
||||||
|
[127; 134) 'CONST_1': [unknown]
|
||||||
|
[127; 145) 'CONST_...ONST_2': bool
|
||||||
|
[138; 145) 'CONST_2': [unknown]
|
||||||
|
[155; 156) 'c': [unknown]
|
||||||
|
[159; 172) 'f(z || y) + 5': [unknown]
|
||||||
|
[182; 183) 'd': [unknown]
|
||||||
|
[186; 187) 'b': [unknown]
|
||||||
|
[197; 198) 'e': bool
|
||||||
|
[201; 205) '3i32': bool
|
||||||
|
[201; 222) '3i32 &...world"': bool
|
||||||
|
[209; 222) '"hello world"': bool
|
||||||
|
[229; 231) '10': [unknown]
|
||||||
|
[229; 235) '10 < 3': bool
|
||||||
|
[234; 235) '3': [unknown]
|
|
@ -1,7 +1,7 @@
|
||||||
[21; 22) 'a': [unknown]
|
|
||||||
[52; 53) '1': usize
|
|
||||||
[11; 71) '{ ...= b; }': ()
|
[11; 71) '{ ...= b; }': ()
|
||||||
[63; 64) 'c': usize
|
[21; 22) 'a': [unknown]
|
||||||
[25; 31) '1isize': [unknown]
|
[25; 31) '1isize': [unknown]
|
||||||
[41; 42) 'b': usize
|
[41; 42) 'b': usize
|
||||||
|
[52; 53) '1': usize
|
||||||
|
[63; 64) 'c': usize
|
||||||
[67; 68) 'b': usize
|
[67; 68) 'b': usize
|
|
@ -1,9 +1,9 @@
|
||||||
[15; 20) '{ 1 }': u32
|
[15; 20) '{ 1 }': u32
|
||||||
[17; 18) '1': u32
|
[17; 18) '1': u32
|
||||||
[50; 51) '1': u32
|
|
||||||
[48; 53) '{ 1 }': u32
|
[48; 53) '{ 1 }': u32
|
||||||
[82; 88) 'b::c()': u32
|
[50; 51) '1': u32
|
||||||
[67; 91) '{ ...c(); }': ()
|
[67; 91) '{ ...c(); }': ()
|
||||||
[73; 74) 'a': fn() -> u32
|
[73; 74) 'a': fn() -> u32
|
||||||
[73; 76) 'a()': u32
|
[73; 76) 'a()': u32
|
||||||
[82; 86) 'b::c': fn() -> u32
|
[82; 86) 'b::c': fn() -> u32
|
||||||
|
[82; 88) 'b::c()': u32
|
|
@ -1,23 +1,23 @@
|
||||||
[115; 117) '&b': &&mut u32
|
|
||||||
[88; 94) '&mut a': &mut &u32
|
|
||||||
[146; 147) 'd': *mut u32
|
|
||||||
[145; 147) '*d': u32
|
|
||||||
[65; 66) 'a': &u32
|
|
||||||
[46; 47) 'd': *mut u32
|
|
||||||
[59; 150) '{ ... *d; }': ()
|
|
||||||
[116; 117) 'b': &mut u32
|
|
||||||
[72; 74) '*a': u32
|
|
||||||
[131; 132) 'c': *const u32
|
|
||||||
[130; 132) '*c': u32
|
|
||||||
[107; 109) '*b': u32
|
|
||||||
[108; 109) 'b': &mut u32
|
|
||||||
[9; 10) 'a': &u32
|
[9; 10) 'a': &u32
|
||||||
[18; 19) 'b': &mut u32
|
[18; 19) 'b': &mut u32
|
||||||
|
[31; 32) 'c': *const u32
|
||||||
|
[46; 47) 'd': *mut u32
|
||||||
|
[59; 150) '{ ... *d; }': ()
|
||||||
|
[65; 66) 'a': &u32
|
||||||
|
[72; 74) '*a': u32
|
||||||
|
[73; 74) 'a': &u32
|
||||||
|
[80; 82) '&a': &&u32
|
||||||
|
[81; 82) 'a': &u32
|
||||||
|
[88; 94) '&mut a': &mut &u32
|
||||||
[93; 94) 'a': &u32
|
[93; 94) 'a': &u32
|
||||||
[100; 101) 'b': &mut u32
|
[100; 101) 'b': &mut u32
|
||||||
[81; 82) 'a': &u32
|
[107; 109) '*b': u32
|
||||||
[80; 82) '&a': &&u32
|
[108; 109) 'b': &mut u32
|
||||||
|
[115; 117) '&b': &&mut u32
|
||||||
|
[116; 117) 'b': &mut u32
|
||||||
[123; 124) 'c': *const u32
|
[123; 124) 'c': *const u32
|
||||||
[73; 74) 'a': &u32
|
[130; 132) '*c': u32
|
||||||
[31; 32) 'c': *const u32
|
[131; 132) 'c': *const u32
|
||||||
[138; 139) 'd': *mut u32
|
[138; 139) 'd': *mut u32
|
||||||
|
[145; 147) '*d': u32
|
||||||
|
[146; 147) 'd': *mut u32
|
|
@ -1,6 +1,6 @@
|
||||||
[50; 54) 'self': &S
|
|
||||||
[34; 38) 'self': &S
|
[34; 38) 'self': &S
|
||||||
[40; 61) '{ ... }': ()
|
[40; 61) '{ ... }': ()
|
||||||
|
[50; 54) 'self': &S
|
||||||
|
[75; 79) 'self': &S
|
||||||
[88; 109) '{ ... }': ()
|
[88; 109) '{ ... }': ()
|
||||||
[98; 102) 'self': &S
|
[98; 102) 'self': &S
|
||||||
[75; 79) 'self': &S
|
|
|
@ -1,16 +1,16 @@
|
||||||
[86; 90) 'C(1)': [unknown]
|
|
||||||
[121; 122) 'B': B
|
|
||||||
[86; 87) 'C': [unknown]
|
|
||||||
[107; 108) 'a': A
|
|
||||||
[129; 130) '1': [unknown]
|
|
||||||
[127; 128) 'C': [unknown]
|
|
||||||
[139; 142) 'a.b': B
|
|
||||||
[114; 133) 'A { b:...C(1) }': A
|
|
||||||
[148; 151) 'a.c': C
|
|
||||||
[148; 149) 'a': A
|
|
||||||
[139; 140) 'a': A
|
|
||||||
[72; 154) '{ ...a.c; }': ()
|
[72; 154) '{ ...a.c; }': ()
|
||||||
[96; 97) 'B': [unknown]
|
|
||||||
[88; 89) '1': [unknown]
|
|
||||||
[82; 83) 'c': [unknown]
|
[82; 83) 'c': [unknown]
|
||||||
|
[86; 87) 'C': [unknown]
|
||||||
|
[86; 90) 'C(1)': [unknown]
|
||||||
|
[88; 89) '1': [unknown]
|
||||||
|
[96; 97) 'B': [unknown]
|
||||||
|
[107; 108) 'a': A
|
||||||
|
[114; 133) 'A { b:...C(1) }': A
|
||||||
|
[121; 122) 'B': B
|
||||||
|
[127; 128) 'C': [unknown]
|
||||||
[127; 131) 'C(1)': C
|
[127; 131) 'C(1)': C
|
||||||
|
[129; 130) '1': [unknown]
|
||||||
|
[139; 140) 'a': A
|
||||||
|
[139; 142) 'a.b': B
|
||||||
|
[148; 149) 'a': A
|
||||||
|
[148; 151) 'a.c': C
|
Loading…
Add table
Add a link
Reference in a new issue