@@ -68,21 +68,6 @@ private module Impl {
6868 )
6969 }
7070
71- private Element getImmediateChildOfUnresolvedElement (
72- UnresolvedElement e , int index , string partialPredicateCall
73- ) {
74- exists ( int b , int bElement , int n |
75- b = 0 and
76- bElement = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfElement ( e , i , _) ) | i ) and
77- n = bElement and
78- (
79- none ( )
80- or
81- result = getImmediateChildOfElement ( e , index - b , partialPredicateCall )
82- )
83- )
84- }
85-
8671 private Element getImmediateChildOfAstNode ( AstNode e , int index , string partialPredicateCall ) {
8772 exists ( int b , int bLocatable , int n |
8873 b = 0 and
@@ -180,6 +165,21 @@ private module Impl {
180165 )
181166 }
182167
168+ private Element getImmediateChildOfUnresolvedElement (
169+ UnresolvedElement e , int index , string partialPredicateCall
170+ ) {
171+ exists ( int b , int bLocatable , int n |
172+ b = 0 and
173+ bLocatable = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfLocatable ( e , i , _) ) | i ) and
174+ n = bLocatable and
175+ (
176+ none ( )
177+ or
178+ result = getImmediateChildOfLocatable ( e , index - b , partialPredicateCall )
179+ )
180+ )
181+ }
182+
183183 private Element getImmediateChildOfUnspecifiedElement (
184184 UnspecifiedElement e , int index , string partialPredicateCall
185185 ) {
@@ -962,14 +962,17 @@ private module Impl {
962962 private Element getImmediateChildOfAppliedPropertyWrapperExpr (
963963 AppliedPropertyWrapperExpr e , int index , string partialPredicateCall
964964 ) {
965- exists ( int b , int bExpr , int n |
965+ exists ( int b , int bExpr , int n , int nValue |
966966 b = 0 and
967967 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
968968 n = bExpr and
969+ nValue = n + 1 and
969970 (
970971 none ( )
971972 or
972973 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
974+ or
975+ index = n and result = e .getImmediateValue ( ) and partialPredicateCall = "Value()"
973976 )
974977 )
975978 }
@@ -1592,8 +1595,8 @@ private module Impl {
15921595 )
15931596 }
15941597
1595- private Element getImmediateChildOfOverloadSetRefExpr (
1596- OverloadSetRefExpr e , int index , string partialPredicateCall
1598+ private Element getImmediateChildOfOverloadedDeclRefExpr (
1599+ OverloadedDeclRefExpr e , int index , string partialPredicateCall
15971600 ) {
15981601 exists ( int b , int bExpr , int n |
15991602 b = 0 and
@@ -1842,18 +1845,21 @@ private module Impl {
18421845 private Element getImmediateChildOfUnresolvedSpecializeExpr (
18431846 UnresolvedSpecializeExpr e , int index , string partialPredicateCall
18441847 ) {
1845- exists ( int b , int bExpr , int bUnresolvedElement , int n |
1848+ exists ( int b , int bExpr , int bUnresolvedElement , int n , int nSubExpr |
18461849 b = 0 and
18471850 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
18481851 bUnresolvedElement =
18491852 bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
18501853 n = bUnresolvedElement and
1854+ nSubExpr = n + 1 and
18511855 (
18521856 none ( )
18531857 or
18541858 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
18551859 or
18561860 result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1861+ or
1862+ index = n and result = e .getImmediateSubExpr ( ) and partialPredicateCall = "SubExpr()"
18571863 )
18581864 )
18591865 }
@@ -2588,15 +2594,19 @@ private module Impl {
25882594 private Element getImmediateChildOfObjectLiteralExpr (
25892595 ObjectLiteralExpr e , int index , string partialPredicateCall
25902596 ) {
2591- exists ( int b , int bLiteralExpr , int n |
2597+ exists ( int b , int bLiteralExpr , int n , int nArgument |
25922598 b = 0 and
25932599 bLiteralExpr =
25942600 b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfLiteralExpr ( e , i , _) ) | i ) and
25952601 n = bLiteralExpr and
2602+ nArgument = n + 1 + max ( int i | i = - 1 or exists ( e .getImmediateArgument ( i ) ) | i ) and
25962603 (
25972604 none ( )
25982605 or
25992606 result = getImmediateChildOfLiteralExpr ( e , index - b , partialPredicateCall )
2607+ or
2608+ result = e .getImmediateArgument ( index - n ) and
2609+ partialPredicateCall = "Argument(" + ( index - n ) .toString ( ) + ")"
26002610 )
26012611 )
26022612 }
@@ -2617,22 +2627,6 @@ private module Impl {
26172627 )
26182628 }
26192629
2620- private Element getImmediateChildOfOverloadedDeclRefExpr (
2621- OverloadedDeclRefExpr e , int index , string partialPredicateCall
2622- ) {
2623- exists ( int b , int bOverloadSetRefExpr , int n |
2624- b = 0 and
2625- bOverloadSetRefExpr =
2626- b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfOverloadSetRefExpr ( e , i , _) ) | i ) and
2627- n = bOverloadSetRefExpr and
2628- (
2629- none ( )
2630- or
2631- result = getImmediateChildOfOverloadSetRefExpr ( e , index - b , partialPredicateCall )
2632- )
2633- )
2634- }
2635-
26362630 private Element getImmediateChildOfParenExpr ( ParenExpr e , int index , string partialPredicateCall ) {
26372631 exists ( int b , int bIdentityExpr , int n |
26382632 b = 0 and
@@ -5024,6 +5018,8 @@ private module Impl {
50245018 or
50255019 result = getImmediateChildOfOtherConstructorDeclRefExpr ( e , index , partialAccessor )
50265020 or
5021+ result = getImmediateChildOfOverloadedDeclRefExpr ( e , index , partialAccessor )
5022+ or
50275023 result = getImmediateChildOfPackExpr ( e , index , partialAccessor )
50285024 or
50295025 result = getImmediateChildOfPropertyWrapperValuePlaceholderExpr ( e , index , partialAccessor )
@@ -5136,8 +5132,6 @@ private module Impl {
51365132 or
51375133 result = getImmediateChildOfOptionalTryExpr ( e , index , partialAccessor )
51385134 or
5139- result = getImmediateChildOfOverloadedDeclRefExpr ( e , index , partialAccessor )
5140- or
51415135 result = getImmediateChildOfParenExpr ( e , index , partialAccessor )
51425136 or
51435137 result = getImmediateChildOfPointerToPointerExpr ( e , index , partialAccessor )
0 commit comments