Skip to content

Commit aa9cfde

Browse files
paldepindDilan Bhalla
authored andcommitted
Rust: Rename type inference test inline expectation tag
1 parent 68f3c9d commit aa9cfde

5 files changed

Lines changed: 59 additions & 57 deletions

File tree

rust/ql/lib/utils/test/internal/InlineExpectationsTestImpl.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ private import codeql.util.test.InlineExpectationsTest
44

55
module Impl implements InlineExpectationsTestSig {
66
class ExpectationComment extends R::Comment {
7+
ExpectationComment() { this.fromSource() }
8+
79
/** Gets the contents of the given comment, _without_ the preceding comment marker (`//`). */
810
string getContents() { result = this.getCommentText() }
911
}

rust/ql/test/library-tests/type-inference/dereference.rs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,73 +30,73 @@ impl<T> Deref for MySmartPointer<T> {
3030
fn explicit_monomorphic_dereference() {
3131
// Dereference with method call
3232
let a1 = MyIntPointer { value: 34i64 };
33-
let _b1 = a1.deref(); // $ method=MyIntPointer::deref type=_b1:&T.i64
33+
let _b1 = a1.deref(); // $ target=MyIntPointer::deref type=_b1:&T.i64
3434

3535
// Dereference with overloaded dereference operator
3636
let a2 = MyIntPointer { value: 34i64 };
37-
let _b2 = *a2; // $ method=MyIntPointer::deref type=_b2:i64
37+
let _b2 = *a2; // $ target=MyIntPointer::deref type=_b2:i64
3838

3939
// Call method on explicitly dereferenced value
4040
let a3 = MyIntPointer { value: 34i64 };
41-
let _b3 = (*a3).is_positive(); // $ method=MyIntPointer::deref method=is_positive type=_b3:bool
41+
let _b3 = (*a3).is_positive(); // $ target=MyIntPointer::deref target=is_positive type=_b3:bool
4242
}
4343

4444
fn explicit_polymorphic_dereference() {
4545
// Explicit dereference with type parameter
4646
let c1 = MySmartPointer { value: 'a' };
47-
let _d1 = c1.deref(); // $ method=MySmartPointer::deref type=_d1:&T.char
47+
let _d1 = c1.deref(); // $ target=MySmartPointer::deref type=_d1:&T.char
4848

4949
// Explicit dereference with type parameter
5050
let c2 = MySmartPointer { value: 'a' };
51-
let _d2 = *c2; // $ method=MySmartPointer::deref type=_d2:char
51+
let _d2 = *c2; // $ target=MySmartPointer::deref type=_d2:char
5252

5353
// Call method on explicitly dereferenced value with type parameter
5454
let c3 = MySmartPointer { value: 34i64 };
55-
let _d3 = (*c3).is_positive(); // $ method=MySmartPointer::deref method=is_positive type=_d3:bool
55+
let _d3 = (*c3).is_positive(); // $ target=MySmartPointer::deref target=is_positive type=_d3:bool
5656
}
5757

5858
fn explicit_ref_dereference() {
5959
// Explicit dereference with type parameter
6060
let e1 = &'a';
61-
let _f1 = e1.deref(); // $ method=deref MISSING: type=_f1:&T.char
61+
let _f1 = e1.deref(); // $ target=deref MISSING: type=_f1:&T.char
6262

6363
// Explicit dereference with type parameter
6464
let e2 = &'a';
65-
let _f2 = *e2; // $ method=deref type=_f2:char
65+
let _f2 = *e2; // $ target=deref type=_f2:char
6666

6767
// Call method on explicitly dereferenced value with type parameter
6868
let e3 = &34i64;
69-
let _f3 = (*e3).is_positive(); // $ method=deref method=is_positive type=_f3:bool
69+
let _f3 = (*e3).is_positive(); // $ target=deref target=is_positive type=_f3:bool
7070
}
7171

7272
fn explicit_box_dereference() {
7373
// Explicit dereference with type parameter
74-
let g1: Box<char> = Box::new('a'); // $ method=new
75-
let _h1 = g1.deref(); // $ method=deref type=_h1:&T.char
74+
let g1: Box<char> = Box::new('a'); // $ target=new
75+
let _h1 = g1.deref(); // $ target=deref type=_h1:&T.char
7676

7777
// Explicit dereference with type parameter
78-
let g2: Box<char> = Box::new('a'); // $ method=new
79-
let _h2 = *g2; // $ method=deref type=_h2:char
78+
let g2: Box<char> = Box::new('a'); // $ target=new
79+
let _h2 = *g2; // $ target=deref type=_h2:char
8080

8181
// Call method on explicitly dereferenced value with type parameter
82-
let g3: Box<i64> = Box::new(34i64); // $ method=new
83-
let _h3 = (*g3).is_positive(); // $ method=deref method=is_positive type=_h3:bool
82+
let g3: Box<i64> = Box::new(34i64); // $ target=new
83+
let _h3 = (*g3).is_positive(); // $ target=deref target=is_positive type=_h3:bool
8484
}
8585

8686
fn implicit_dereference() {
8787
// Call method on implicitly dereferenced value
8888
let x = MyIntPointer { value: 34i64 };
89-
let _y = x.is_positive(); // $ MISSING: method=is_positive type=_y:bool
89+
let _y = x.is_positive(); // $ MISSING: target=is_positive type=_y:bool
9090

9191
// Call method on implicitly dereferenced value
9292
let x = MySmartPointer { value: 34i64 };
93-
let _y = x.is_positive(); // $ MISSING: method=is_positive type=_y:bool
93+
let _y = x.is_positive(); // $ MISSING: target=is_positive type=_y:bool
9494
}
9595

9696
pub fn test() {
97-
explicit_monomorphic_dereference(); // $ method=explicit_monomorphic_dereference
98-
explicit_polymorphic_dereference(); // $ method=explicit_polymorphic_dereference
99-
explicit_ref_dereference(); // $ method=explicit_ref_dereference
100-
explicit_box_dereference(); // $ method=explicit_box_dereference
101-
implicit_dereference(); // $ method=implicit_dereference
97+
explicit_monomorphic_dereference(); // $ target=explicit_monomorphic_dereference
98+
explicit_polymorphic_dereference(); // $ target=explicit_polymorphic_dereference
99+
explicit_ref_dereference(); // $ target=explicit_ref_dereference
100+
explicit_box_dereference(); // $ target=explicit_box_dereference
101+
implicit_dereference(); // $ target=implicit_dereference
102102
}

rust/ql/test/library-tests/type-inference/loop/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ trait T1<T>: T2<S<T>> {
99

1010
trait T2<T>: T1<S<T>> {
1111
fn bar(self) {
12-
self.foo() // $ method=foo
12+
self.foo() // $ target=foo
1313
}
1414
}

rust/ql/test/library-tests/type-inference/pattern_matching.rs

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ pub fn f() -> Option<()> {
2323
}
2424
None => (),
2525
};
26-
let mesg = value.unwrap(); // $ method=unwrap
26+
let mesg = value.unwrap(); // $ target=unwrap
2727
let mesg = mesg; // $ type=mesg:i32
2828
println!("{mesg}");
2929
let mesg = value?; // $ type=mesg:i32
@@ -108,21 +108,21 @@ pub fn f() -> Option<()> {
108108
_ => (),
109109
}
110110

111-
let opt1 = Some(Default::default()); // $ type=opt1:T.i32 method=default
111+
let opt1 = Some(Default::default()); // $ type=opt1:T.i32 target=default
112112
#[rustfmt::skip]
113113
let _ = if let Some::<i32>(x) = opt1
114114
{
115115
x; // $ type=x:i32
116116
};
117117

118-
let opt2 = Some(Default::default()); // $ type=opt2:T.i32 method=default
118+
let opt2 = Some(Default::default()); // $ type=opt2:T.i32 target=default
119119
#[rustfmt::skip]
120120
let _ = if let Option::Some::<i32>(x) = opt2
121121
{
122122
x; // $ type=x:i32
123123
};
124124

125-
let opt3 = Some(Default::default()); // $ type=opt3:T.i32 method=default
125+
let opt3 = Some(Default::default()); // $ type=opt3:T.i32 target=default
126126
#[rustfmt::skip]
127127
let _ = if let Option::<i32>::Some(x) = opt3
128128
{
@@ -240,7 +240,7 @@ pub fn identifier_patterns() {
240240
match mutable_value {
241241
mut x => {
242242
let mut_bound = x; // $ type=mut_bound:i32
243-
x += 1; // $ method=add_assign
243+
x += 1; // $ target=add_assign
244244
println!("Mutable identifier: {}", mut_bound);
245245
}
246246
}
@@ -270,7 +270,7 @@ pub fn identifier_patterns() {
270270
match &mut ref_mut_val {
271271
ref mut x => {
272272
let ref_mut_bound = x; // $ type=ref_mut_bound:&T.&T.i32
273-
**ref_mut_bound += 1; // $ method=deref method=add_assign
273+
**ref_mut_bound += 1; // $ target=deref target=add_assign
274274
println!("Ref mut pattern");
275275
}
276276
}
@@ -698,7 +698,7 @@ pub fn complex_nested_patterns() {
698698
);
699699
}
700700
// Or pattern with tuple and wildcard
701-
(Point { x, .. }, MyOption::None) | (Point { x: x@0, .. }, _) => {
701+
(Point { x, .. }, MyOption::None) | (Point { x: x @ 0, .. }, _) => {
702702
let alt_complex_x = x; // $ type=alt_complex_x:i32
703703
println!("Alternative complex: x={:?}", alt_complex_x);
704704
}
@@ -766,15 +766,16 @@ pub fn patterns_in_function_parameters() {
766766

767767
// Call the functions to use them
768768
let point = Point { x: 5, y: 10 };
769-
let extracted = extract_point(point); // $ method=extract_point MISSING: type=extracted:?
769+
let extracted = extract_point(point); // $ target=extract_point MISSING: type=extracted:?
770770

771771
let color = Color(200, 100, 50);
772-
let red = extract_color(color); // $ method=extract_color type=red:u8
772+
let red = extract_color(color); // $ target=extract_color type=red:u8
773773

774774
let tuple = (42i32, 3.14f64, true);
775-
let tuple_extracted = extract_tuple(tuple); // $ method=extract_tuple MISSING: type=tuple_extracted:?
775+
let tuple_extracted = extract_tuple(tuple); // $ target=extract_tuple MISSING: type=tuple_extracted:?
776776
}
777777

778+
#[rustfmt::skip]
778779
pub fn patterns_in_control_flow() {
779780
// Patterns in for loops
780781
let points = vec![Point { x: 1, y: 2 }, Point { x: 3, y: 4 }];
@@ -793,15 +794,15 @@ pub fn patterns_in_control_flow() {
793794

794795
// Patterns in while let
795796
let mut stack: Vec<i32> = vec![1i32, 2, 3];
796-
while let Some(x) = stack.pop() { // $ method=pop
797+
while let Some(x) = stack.pop() { // $ target=pop
797798
let while_let_x = x; // $ type=while_let_x:i32
798799
println!("Popped: {}", while_let_x);
799800
}
800801

801802
// Patterns in match guards
802803
let value = 42i32;
803804
match value {
804-
x if x > 0 => { // $ method=gt
805+
x if x > 0 => { // $ target=gt
805806
let guard_x = x; // $ type=guard_x:i32
806807
println!("Positive: {}", guard_x);
807808
}
@@ -810,24 +811,23 @@ pub fn patterns_in_control_flow() {
810811
}
811812

812813
pub fn test_all_patterns() {
813-
f(); // $ method=f
814-
literal_patterns(); // $ method=literal_patterns
815-
identifier_patterns(); // $ method=identifier_patterns
816-
wildcard_patterns(); // $ method=wildcard_patterns
817-
range_patterns(); // $ method=range_patterns
818-
reference_patterns(); // $ method=reference_patterns
819-
record_patterns(); // $ method=record_patterns
820-
tuple_struct_patterns(); // $ method=tuple_struct_patterns
821-
tuple_patterns(); // $ method=tuple_patterns
822-
parenthesized_patterns(); // $ method=parenthesized_patterns
823-
slice_patterns(); // $ method=slice_patterns
824-
path_patterns(); // $ method=path_patterns
825-
or_patterns(); // $ method=or_patterns
826-
rest_patterns(); // $ method=rest_patterns
827-
macro_patterns(); // $ method=macro_patterns
828-
complex_nested_patterns(); // $ method=complex_nested_patterns
829-
patterns_in_let_statements(); // $ method=patterns_in_let_statements
830-
patterns_in_function_parameters(); // $ method=patterns_in_function_parameters
831-
patterns_in_control_flow(); // $ method=patterns_in_control_flow
814+
f(); // $ target=f
815+
literal_patterns(); // $ target=literal_patterns
816+
identifier_patterns(); // $ target=identifier_patterns
817+
wildcard_patterns(); // $ target=wildcard_patterns
818+
range_patterns(); // $ target=range_patterns
819+
reference_patterns(); // $ target=reference_patterns
820+
record_patterns(); // $ target=record_patterns
821+
tuple_struct_patterns(); // $ target=tuple_struct_patterns
822+
tuple_patterns(); // $ target=tuple_patterns
823+
parenthesized_patterns(); // $ target=parenthesized_patterns
824+
slice_patterns(); // $ target=slice_patterns
825+
path_patterns(); // $ target=path_patterns
826+
or_patterns(); // $ target=or_patterns
827+
rest_patterns(); // $ target=rest_patterns
828+
macro_patterns(); // $ target=macro_patterns
829+
complex_nested_patterns(); // $ target=complex_nested_patterns
830+
patterns_in_let_statements(); // $ target=patterns_in_let_statements
831+
patterns_in_function_parameters(); // $ target=patterns_in_function_parameters
832+
patterns_in_control_flow(); // $ target=patterns_in_control_flow
832833
}
833-

rust/ql/test/library-tests/type-inference/type-inference.ql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ query predicate inferType(AstNode n, TypePath path, Type t) {
1212
}
1313

1414
module ResolveTest implements TestSig {
15-
string getARelevantTag() { result = ["method", "fieldof"] }
15+
string getARelevantTag() { result = ["target", "fieldof"] }
1616

1717
private predicate functionHasValue(Function f, string value) {
1818
f.getAPrecedingComment().getCommentText() = value and
@@ -34,7 +34,7 @@ module ResolveTest implements TestSig {
3434
functionHasValue(target, value) and
3535
// `isFromMacroExpansion` does not always work
3636
not target.(Function).getName().getText() = ["panic_fmt", "_print", "format", "must_use"] and
37-
tag = "method"
37+
tag = "target"
3838
or
3939
target = resolveStructFieldExpr(source) and
4040
any(Struct s | s.getStructField(_) = target).getName().getText() = value and

0 commit comments

Comments
 (0)