@@ -2272,7 +2272,11 @@ private module Input3 implements InputSig3 {
22722272 BoolType ( ) { this .getTypeItem ( ) instanceof Builtins:: Bool }
22732273 }
22742274
2275- class AstNode = Rust:: AstNode ;
2275+ class AstNode extends Rust:: AstNode {
2276+ AstNode getParent ( ) { result = this .getParentNode ( ) }
2277+ }
2278+
2279+ AstNode getTypeParameterScope ( TypeParameter tp ) { result = tp .getDeclaringItem ( ) }
22762280
22772281 final class Expr = ExprImpl ;
22782282
@@ -2286,13 +2290,13 @@ private module Input3 implements InputSig3 {
22862290 TypeMention getType ( ) { result = this .getTypeRepr ( ) }
22872291 }
22882292
2289- class Switch extends Rust:: MatchExpr {
2293+ class Switch extends Expr , Rust:: MatchExpr {
22902294 Expr getExpr ( ) { result = this .getScrutinee ( ) }
22912295
22922296 Case getCase ( int index ) { result = this .getArm ( index ) }
22932297 }
22942298
2295- class Case extends Rust:: MatchArm {
2299+ class Case extends AstNode , Rust:: MatchArm {
22962300 AstNode getAPattern ( ) { result = this .getPat ( ) }
22972301
22982302 AstNode getBody ( ) { result = this .getExpr ( ) }
@@ -2453,8 +2457,8 @@ private module Input3 implements InputSig3 {
24532457 // mutual recursion; resolving fields requires resolving types and vice versa
24542458 result =
24552459 [
2456- resolveStructFieldExpr ( this , _) .( AstNode ) ,
2457- resolveTupleFieldExpr ( this , _)
2460+ resolveStructFieldExpr ( this , _) .( Field ) ,
2461+ resolveTupleFieldExpr ( this , _) . ( Field )
24582462 ]
24592463 }
24602464 }
@@ -2484,7 +2488,7 @@ private module Input3 implements InputSig3 {
24842488 )
24852489 }
24862490
2487- class Return extends ReturnExpr {
2491+ class Return extends Expr , ReturnExpr {
24882492 Expr getExpr ( ) { result = super .getExpr ( ) }
24892493 }
24902494
@@ -2587,15 +2591,15 @@ private module Input3 implements InputSig3 {
25872591 override TypeItem getTypeItem ( ) { result = this }
25882592
25892593 override Parameter getParameter ( int i ) {
2590- result = [ super .getTupleField ( i ) .( AstNode ) , super .getNthStructField ( i ) ]
2594+ result = [ super .getTupleField ( i ) .( Parameter ) , super .getNthStructField ( i ) . ( Parameter ) ]
25912595 }
25922596 }
25932597
25942598 private class VariantConstructor extends ConstructorImpl instanceof Variant {
25952599 override TypeItem getTypeItem ( ) { result = super .getEnum ( ) }
25962600
25972601 override Parameter getParameter ( int i ) {
2598- result = [ super .getTupleField ( i ) .( AstNode ) , super .getNthStructField ( i ) ]
2602+ result = [ super .getTupleField ( i ) .( Parameter ) , super .getNthStructField ( i ) . ( Parameter ) ]
25992603 }
26002604 }
26012605
@@ -3161,7 +3165,7 @@ module Consistency = M3::Consistency;
31613165
31623166module CachedStage = M3:: CachedStage;
31633167
3164- private predicate typeTestAstNodeRepr ( AstNode n , string repr ) {
3168+ private predicate typeTestAstNodeRepr ( Input3 :: AstNode n , string repr ) {
31653169 repr = [ n .toString ( ) , n .( IdentPat ) .getName ( ) .getText ( ) ]
31663170}
31673171
0 commit comments