Skip to content

Commit ddc4072

Browse files
committed
Rust: Type inference test
1 parent 70d8c1c commit ddc4072

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,27 @@ mod regression3 {
106106
z
107107
}
108108
}
109+
110+
mod regression4 {
111+
trait MyTrait {
112+
// MyTrait::m
113+
fn m(self);
114+
}
115+
116+
impl<T> MyTrait for &T {
117+
// RefAsMyTrait::m
118+
fn m(self) {}
119+
}
120+
121+
struct S<T>(T);
122+
123+
impl<T> S<T> {
124+
fn call_m(self)
125+
where
126+
T: MyTrait,
127+
{
128+
let S(s) = self;
129+
s.m(); // $ MISSING: target=MyTrait::m $ SPURIOUS: target=RefAsMyTrait::m
130+
}
131+
}
132+
}

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5083,6 +5083,15 @@ inferCertainType
50835083
| regressions.rs:99:22:99:22 | x | | regressions.rs:99:18:99:19 | T2 |
50845084
| regressions.rs:103:5:107:5 | { ... } | | regressions.rs:99:18:99:19 | T2 |
50855085
| regressions.rs:104:33:104:33 | x | | regressions.rs:99:18:99:19 | T2 |
5086+
| regressions.rs:113:14:113:17 | SelfParam | | regressions.rs:111:5:114:5 | Self [trait MyTrait] |
5087+
| regressions.rs:118:14:118:17 | SelfParam | | {EXTERNAL LOCATION} | & |
5088+
| regressions.rs:118:14:118:17 | SelfParam | TRef | regressions.rs:116:10:116:10 | T |
5089+
| regressions.rs:118:20:118:21 | { ... } | | {EXTERNAL LOCATION} | () |
5090+
| regressions.rs:124:19:124:22 | SelfParam | | regressions.rs:121:5:121:19 | S |
5091+
| regressions.rs:124:19:124:22 | SelfParam | T | regressions.rs:123:10:123:10 | T |
5092+
| regressions.rs:127:9:130:9 | { ... } | | {EXTERNAL LOCATION} | () |
5093+
| regressions.rs:128:24:128:27 | self | | regressions.rs:121:5:121:19 | S |
5094+
| regressions.rs:128:24:128:27 | self | T | regressions.rs:123:10:123:10 | T |
50865095
inferType
50875096
| associated_types.rs:5:15:5:18 | SelfParam | | associated_types.rs:1:1:2:21 | Wrapper |
50885097
| associated_types.rs:5:15:5:18 | SelfParam | A | associated_types.rs:4:6:4:6 | A |
@@ -15135,4 +15144,18 @@ inferType
1513515144
| regressions.rs:105:33:105:33 | y | T | regressions.rs:99:14:99:15 | T1 |
1513615145
| regressions.rs:105:33:105:33 | y | T | regressions.rs:99:18:99:19 | T2 |
1513715146
| regressions.rs:106:9:106:9 | z | | regressions.rs:99:18:99:19 | T2 |
15147+
| regressions.rs:113:14:113:17 | SelfParam | | regressions.rs:111:5:114:5 | Self [trait MyTrait] |
15148+
| regressions.rs:118:14:118:17 | SelfParam | | {EXTERNAL LOCATION} | & |
15149+
| regressions.rs:118:14:118:17 | SelfParam | TRef | regressions.rs:116:10:116:10 | T |
15150+
| regressions.rs:118:20:118:21 | { ... } | | {EXTERNAL LOCATION} | () |
15151+
| regressions.rs:124:19:124:22 | SelfParam | | regressions.rs:121:5:121:19 | S |
15152+
| regressions.rs:124:19:124:22 | SelfParam | T | regressions.rs:123:10:123:10 | T |
15153+
| regressions.rs:127:9:130:9 | { ... } | | {EXTERNAL LOCATION} | () |
15154+
| regressions.rs:128:17:128:20 | S(...) | | regressions.rs:121:5:121:19 | S |
15155+
| regressions.rs:128:17:128:20 | S(...) | T | regressions.rs:123:10:123:10 | T |
15156+
| regressions.rs:128:19:128:19 | s | | regressions.rs:123:10:123:10 | T |
15157+
| regressions.rs:128:24:128:27 | self | | regressions.rs:121:5:121:19 | S |
15158+
| regressions.rs:128:24:128:27 | self | T | regressions.rs:123:10:123:10 | T |
15159+
| regressions.rs:129:13:129:13 | s | | regressions.rs:123:10:123:10 | T |
15160+
| regressions.rs:129:13:129:17 | s.m() | | {EXTERNAL LOCATION} | () |
1513815161
testFailures

0 commit comments

Comments
 (0)