mirror of
https://github.com/github/codeql.git
synced 2026-04-28 02:05:14 +02:00
Rust: Handle captured self parameter in variable implementation
This commit is contained in:
@@ -139,6 +139,9 @@ module Impl {
|
||||
*/
|
||||
IdentPat getPat() { variableDecl(definingNode, result, name) }
|
||||
|
||||
/** Gets the enclosing CFG scope for this variable declaration. */
|
||||
CfgScope getEnclosingCfgScope() { result = definingNode.getEnclosingCfgScope() }
|
||||
|
||||
/** Gets the `let` statement that introduces this variable, if any. */
|
||||
LetStmt getLetStmt() { this.getPat() = result.getPat() }
|
||||
|
||||
@@ -452,7 +455,7 @@ module Impl {
|
||||
Variable getVariable() { result = v }
|
||||
|
||||
/** Holds if this access is a capture. */
|
||||
predicate isCapture() { this.getEnclosingCfgScope() != v.getPat().getEnclosingCfgScope() }
|
||||
predicate isCapture() { this.getEnclosingCfgScope() != v.getEnclosingCfgScope() }
|
||||
|
||||
override string toString() { result = name }
|
||||
|
||||
|
||||
@@ -136,7 +136,9 @@ definition
|
||||
| variables.rs:462:9:462:9 | x | variables.rs:462:9:462:9 | x |
|
||||
| variables.rs:482:15:482:23 | SelfParam | variables.rs:482:20:482:23 | self |
|
||||
| variables.rs:486:11:486:14 | SelfParam | variables.rs:486:11:486:14 | self |
|
||||
| variables.rs:490:18:490:26 | SelfParam | variables.rs:490:23:490:26 | self |
|
||||
| variables.rs:491:13:491:17 | f | variables.rs:491:17:491:17 | f |
|
||||
| variables.rs:491:21:494:9 | <captured entry> self | variables.rs:490:23:490:26 | self |
|
||||
| variables.rs:491:22:491:22 | n | variables.rs:491:22:491:22 | n |
|
||||
| variables.rs:510:9:510:13 | a | variables.rs:510:13:510:13 | a |
|
||||
| variables.rs:514:5:514:5 | a | variables.rs:510:13:510:13 | a |
|
||||
@@ -268,6 +270,7 @@ read
|
||||
| variables.rs:486:11:486:14 | SelfParam | variables.rs:486:11:486:14 | self | variables.rs:487:9:487:12 | self |
|
||||
| variables.rs:491:13:491:17 | f | variables.rs:491:17:491:17 | f | variables.rs:495:9:495:9 | f |
|
||||
| variables.rs:491:13:491:17 | f | variables.rs:491:17:491:17 | f | variables.rs:496:9:496:9 | f |
|
||||
| variables.rs:491:21:494:9 | <captured entry> self | variables.rs:490:23:490:26 | self | variables.rs:493:13:493:16 | self |
|
||||
| variables.rs:491:22:491:22 | n | variables.rs:491:22:491:22 | n | variables.rs:493:25:493:25 | n |
|
||||
| variables.rs:510:9:510:13 | a | variables.rs:510:13:510:13 | a | variables.rs:511:15:511:15 | a |
|
||||
| variables.rs:510:9:510:13 | a | variables.rs:510:13:510:13 | a | variables.rs:512:5:512:5 | a |
|
||||
@@ -376,6 +379,7 @@ firstRead
|
||||
| variables.rs:482:15:482:23 | SelfParam | variables.rs:482:20:482:23 | self | variables.rs:483:16:483:19 | self |
|
||||
| variables.rs:486:11:486:14 | SelfParam | variables.rs:486:11:486:14 | self | variables.rs:487:9:487:12 | self |
|
||||
| variables.rs:491:13:491:17 | f | variables.rs:491:17:491:17 | f | variables.rs:495:9:495:9 | f |
|
||||
| variables.rs:491:21:494:9 | <captured entry> self | variables.rs:490:23:490:26 | self | variables.rs:493:13:493:16 | self |
|
||||
| variables.rs:491:22:491:22 | n | variables.rs:491:22:491:22 | n | variables.rs:493:25:493:25 | n |
|
||||
| variables.rs:510:9:510:13 | a | variables.rs:510:13:510:13 | a | variables.rs:511:15:511:15 | a |
|
||||
| variables.rs:514:5:514:5 | a | variables.rs:510:13:510:13 | a | variables.rs:515:15:515:15 | a |
|
||||
@@ -483,6 +487,7 @@ lastRead
|
||||
| variables.rs:482:15:482:23 | SelfParam | variables.rs:482:20:482:23 | self | variables.rs:483:16:483:19 | self |
|
||||
| variables.rs:486:11:486:14 | SelfParam | variables.rs:486:11:486:14 | self | variables.rs:487:9:487:12 | self |
|
||||
| variables.rs:491:13:491:17 | f | variables.rs:491:17:491:17 | f | variables.rs:496:9:496:9 | f |
|
||||
| variables.rs:491:21:494:9 | <captured entry> self | variables.rs:490:23:490:26 | self | variables.rs:493:13:493:16 | self |
|
||||
| variables.rs:491:22:491:22 | n | variables.rs:491:22:491:22 | n | variables.rs:493:25:493:25 | n |
|
||||
| variables.rs:510:9:510:13 | a | variables.rs:510:13:510:13 | a | variables.rs:513:15:513:15 | a |
|
||||
| variables.rs:514:5:514:5 | a | variables.rs:510:13:510:13 | a | variables.rs:515:15:515:15 | a |
|
||||
|
||||
@@ -496,9 +496,11 @@ capturedVariable
|
||||
| variables.rs:418:13:418:13 | y |
|
||||
| variables.rs:426:13:426:13 | z |
|
||||
| variables.rs:436:13:436:13 | i |
|
||||
| variables.rs:490:23:490:26 | self |
|
||||
capturedAccess
|
||||
| variables.rs:403:19:403:19 | x |
|
||||
| variables.rs:413:19:413:19 | x |
|
||||
| variables.rs:421:9:421:9 | y |
|
||||
| variables.rs:429:9:429:9 | z |
|
||||
| variables.rs:438:9:438:9 | i |
|
||||
| variables.rs:493:13:493:16 | self |
|
||||
|
||||
Reference in New Issue
Block a user