mirror of
https://github.com/github/codeql.git
synced 2026-04-25 08:45:14 +02:00
Rust: Add type inference tests for impl Trait
This commit is contained in:
@@ -1670,6 +1670,37 @@ mod async_ {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
mod impl_trait {
|
||||
struct S1;
|
||||
|
||||
trait Trait1 {
|
||||
fn f1(&self) {} // Trait1f1
|
||||
}
|
||||
|
||||
trait Trait2 {
|
||||
fn f2(&self) {} // Trait2f2
|
||||
}
|
||||
|
||||
impl Trait1 for S1 {
|
||||
fn f1(&self) {} // S1f1
|
||||
}
|
||||
|
||||
impl Trait2 for S1 {
|
||||
fn f2(&self) {} // S1f2
|
||||
}
|
||||
|
||||
fn f1() -> impl Trait1 + Trait2 {
|
||||
S1
|
||||
}
|
||||
|
||||
pub fn f() {
|
||||
let x = f1();
|
||||
x.f1(); // $ MISSING: method=Trait1f1
|
||||
x.f2(); // $ MISSING: method=Trait2f2
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
field_access::f();
|
||||
method_impl::f();
|
||||
@@ -1690,4 +1721,5 @@ fn main() {
|
||||
builtins::f();
|
||||
operators::f();
|
||||
async_::f();
|
||||
impl_trait::f();
|
||||
}
|
||||
|
||||
@@ -2393,8 +2393,18 @@ inferType
|
||||
| main.rs:1662:41:1664:5 | { ... } | | main.rs:1652:5:1652:14 | S2 |
|
||||
| main.rs:1663:9:1663:10 | S2 | | main.rs:1652:5:1652:14 | S2 |
|
||||
| main.rs:1667:9:1667:12 | f1(...) | | main.rs:1636:5:1636:14 | S1 |
|
||||
| main.rs:1675:5:1675:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo |
|
||||
| main.rs:1676:5:1676:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo |
|
||||
| main.rs:1676:20:1676:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo |
|
||||
| main.rs:1676:41:1676:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo |
|
||||
| main.rs:1678:15:1678:19 | SelfParam | | file://:0:0:0:0 | & |
|
||||
| main.rs:1678:15:1678:19 | SelfParam | &T | main.rs:1677:5:1679:5 | Self [trait Trait1] |
|
||||
| main.rs:1682:15:1682:19 | SelfParam | | file://:0:0:0:0 | & |
|
||||
| main.rs:1682:15:1682:19 | SelfParam | &T | main.rs:1681:5:1683:5 | Self [trait Trait2] |
|
||||
| main.rs:1686:15:1686:19 | SelfParam | | file://:0:0:0:0 | & |
|
||||
| main.rs:1686:15:1686:19 | SelfParam | &T | main.rs:1675:5:1675:14 | S1 |
|
||||
| main.rs:1690:15:1690:19 | SelfParam | | file://:0:0:0:0 | & |
|
||||
| main.rs:1690:15:1690:19 | SelfParam | &T | main.rs:1675:5:1675:14 | S1 |
|
||||
| main.rs:1693:37:1695:5 | { ... } | | main.rs:1675:5:1675:14 | S1 |
|
||||
| main.rs:1694:9:1694:10 | S1 | | main.rs:1675:5:1675:14 | S1 |
|
||||
| main.rs:1706:5:1706:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo |
|
||||
| main.rs:1707:5:1707:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo |
|
||||
| main.rs:1707:20:1707:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo |
|
||||
| main.rs:1707:41:1707:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo |
|
||||
testFailures
|
||||
|
||||
Reference in New Issue
Block a user