mirror of
https://github.com/github/codeql.git
synced 2026-04-21 23:14:03 +02:00
Rust: Resolve Self path in trait type of implementation
This commit is contained in:
@@ -373,6 +373,8 @@ abstract class ImplOrTraitItemNode extends ItemNode {
|
||||
/** Gets an item that may refer to this node using `Self`. */
|
||||
pragma[nomagic]
|
||||
ItemNode getAnItemInSelfScope() {
|
||||
result = this
|
||||
or
|
||||
result.getImmediateParent() = this
|
||||
or
|
||||
exists(ItemNode mid |
|
||||
|
||||
@@ -532,7 +532,7 @@ mod m23 {
|
||||
|
||||
#[rustfmt::skip]
|
||||
impl Trait1<
|
||||
Self // $ MISSING: item=I4
|
||||
Self // $ item=I4
|
||||
> // $ item=I2
|
||||
for S { // $ item=I4
|
||||
fn f(&self) {
|
||||
|
||||
@@ -236,6 +236,7 @@ resolvePath
|
||||
| main.rs:517:21:517:29 | ...::A | main.rs:499:13:499:13 | A |
|
||||
| main.rs:518:21:518:28 | MyStruct | main.rs:502:9:502:28 | struct MyStruct |
|
||||
| main.rs:534:10:536:5 | Trait1::<...> | main.rs:524:5:529:5 | trait Trait1 |
|
||||
| main.rs:535:7:535:10 | Self | main.rs:531:5:531:13 | struct S |
|
||||
| main.rs:537:11:537:11 | S | main.rs:531:5:531:13 | struct S |
|
||||
| main.rs:545:17:545:17 | S | main.rs:531:5:531:13 | struct S |
|
||||
| main.rs:551:5:551:6 | my | main.rs:1:1:1:7 | mod my |
|
||||
|
||||
Reference in New Issue
Block a user