@@ -135,6 +135,21 @@ private module Impl {
135135 )
136136 }
137137
138+ private Element getImmediateChildOfErrorElement (
139+ ErrorElement e , int index , string partialPredicateCall
140+ ) {
141+ exists ( int b , int bLocatable , int n |
142+ b = 0 and
143+ bLocatable = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfLocatable ( e , i , _) ) | i ) and
144+ n = bLocatable and
145+ (
146+ none ( )
147+ or
148+ result = getImmediateChildOfLocatable ( e , index - b , partialPredicateCall )
149+ )
150+ )
151+ }
152+
138153 private Element getImmediateChildOfUnknownFile (
139154 UnknownFile e , int index , string partialPredicateCall
140155 ) {
@@ -165,32 +180,18 @@ private module Impl {
165180 )
166181 }
167182
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 ) {
186- exists ( int b , int bLocatable , int n |
186+ exists ( int b , int bErrorElement , int n |
187187 b = 0 and
188- bLocatable = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfLocatable ( e , i , _) ) | i ) and
189- n = bLocatable and
188+ bErrorElement =
189+ b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
190+ n = bErrorElement and
190191 (
191192 none ( )
192193 or
193- result = getImmediateChildOfLocatable ( e , index - b , partialPredicateCall )
194+ result = getImmediateChildOfErrorElement ( e , index - b , partialPredicateCall )
194195 )
195196 )
196197 }
@@ -1215,14 +1216,18 @@ private module Impl {
12151216 }
12161217
12171218 private Element getImmediateChildOfErrorExpr ( ErrorExpr e , int index , string partialPredicateCall ) {
1218- exists ( int b , int bExpr , int n |
1219+ exists ( int b , int bExpr , int bErrorElement , int n |
12191220 b = 0 and
12201221 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1221- n = bExpr and
1222+ bErrorElement =
1223+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1224+ n = bErrorElement and
12221225 (
12231226 none ( )
12241227 or
12251228 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
1229+ or
1230+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
12261231 )
12271232 )
12281233 }
@@ -1592,14 +1597,18 @@ private module Impl {
15921597 private Element getImmediateChildOfOverloadedDeclRefExpr (
15931598 OverloadedDeclRefExpr e , int index , string partialPredicateCall
15941599 ) {
1595- exists ( int b , int bExpr , int n |
1600+ exists ( int b , int bExpr , int bErrorElement , int n |
15961601 b = 0 and
15971602 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1598- n = bExpr and
1603+ bErrorElement =
1604+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1605+ n = bErrorElement and
15991606 (
16001607 none ( )
16011608 or
16021609 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
1610+ or
1611+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
16031612 )
16041613 )
16051614 }
@@ -1744,38 +1753,38 @@ private module Impl {
17441753 private Element getImmediateChildOfUnresolvedDeclRefExpr (
17451754 UnresolvedDeclRefExpr e , int index , string partialPredicateCall
17461755 ) {
1747- exists ( int b , int bExpr , int bUnresolvedElement , int n |
1756+ exists ( int b , int bExpr , int bErrorElement , int n |
17481757 b = 0 and
17491758 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1750- bUnresolvedElement =
1751- bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
1752- n = bUnresolvedElement and
1759+ bErrorElement =
1760+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1761+ n = bErrorElement and
17531762 (
17541763 none ( )
17551764 or
17561765 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
17571766 or
1758- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1767+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
17591768 )
17601769 )
17611770 }
17621771
17631772 private Element getImmediateChildOfUnresolvedDotExpr (
17641773 UnresolvedDotExpr e , int index , string partialPredicateCall
17651774 ) {
1766- exists ( int b , int bExpr , int bUnresolvedElement , int n , int nBase |
1775+ exists ( int b , int bExpr , int bErrorElement , int n , int nBase |
17671776 b = 0 and
17681777 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1769- bUnresolvedElement =
1770- bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
1771- n = bUnresolvedElement and
1778+ bErrorElement =
1779+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1780+ n = bErrorElement and
17721781 nBase = n + 1 and
17731782 (
17741783 none ( )
17751784 or
17761785 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
17771786 or
1778- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1787+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
17791788 or
17801789 index = n and result = e .getImmediateBase ( ) and partialPredicateCall = "Base()"
17811790 )
@@ -1785,38 +1794,38 @@ private module Impl {
17851794 private Element getImmediateChildOfUnresolvedMemberExpr (
17861795 UnresolvedMemberExpr e , int index , string partialPredicateCall
17871796 ) {
1788- exists ( int b , int bExpr , int bUnresolvedElement , int n |
1797+ exists ( int b , int bExpr , int bErrorElement , int n |
17891798 b = 0 and
17901799 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1791- bUnresolvedElement =
1792- bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
1793- n = bUnresolvedElement and
1800+ bErrorElement =
1801+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1802+ n = bErrorElement and
17941803 (
17951804 none ( )
17961805 or
17971806 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
17981807 or
1799- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1808+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
18001809 )
18011810 )
18021811 }
18031812
18041813 private Element getImmediateChildOfUnresolvedPatternExpr (
18051814 UnresolvedPatternExpr e , int index , string partialPredicateCall
18061815 ) {
1807- exists ( int b , int bExpr , int bUnresolvedElement , int n , int nSubPattern |
1816+ exists ( int b , int bExpr , int bErrorElement , int n , int nSubPattern |
18081817 b = 0 and
18091818 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1810- bUnresolvedElement =
1811- bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
1812- n = bUnresolvedElement and
1819+ bErrorElement =
1820+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1821+ n = bErrorElement and
18131822 nSubPattern = n + 1 and
18141823 (
18151824 none ( )
18161825 or
18171826 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
18181827 or
1819- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1828+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
18201829 or
18211830 index = n and result = e .getImmediateSubPattern ( ) and partialPredicateCall = "SubPattern()"
18221831 )
@@ -1826,19 +1835,19 @@ private module Impl {
18261835 private Element getImmediateChildOfUnresolvedSpecializeExpr (
18271836 UnresolvedSpecializeExpr e , int index , string partialPredicateCall
18281837 ) {
1829- exists ( int b , int bExpr , int bUnresolvedElement , int n , int nSubExpr |
1838+ exists ( int b , int bExpr , int bErrorElement , int n , int nSubExpr |
18301839 b = 0 and
18311840 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1832- bUnresolvedElement =
1833- bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
1834- n = bUnresolvedElement and
1841+ bErrorElement =
1842+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1843+ n = bErrorElement and
18351844 nSubExpr = n + 1 and
18361845 (
18371846 none ( )
18381847 or
18391848 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
18401849 or
1841- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1850+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
18421851 or
18431852 index = n and result = e .getImmediateSubExpr ( ) and partialPredicateCall = "SubExpr()"
18441853 )
@@ -2805,45 +2814,43 @@ private module Impl {
28052814 private Element getImmediateChildOfUnresolvedMemberChainResultExpr (
28062815 UnresolvedMemberChainResultExpr e , int index , string partialPredicateCall
28072816 ) {
2808- exists ( int b , int bIdentityExpr , int bUnresolvedElement , int n |
2817+ exists ( int b , int bIdentityExpr , int bErrorElement , int n |
28092818 b = 0 and
28102819 bIdentityExpr =
28112820 b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfIdentityExpr ( e , i , _) ) | i ) and
2812- bUnresolvedElement =
2821+ bErrorElement =
28132822 bIdentityExpr + 1 +
2814- max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
2815- n = bUnresolvedElement and
2823+ max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
2824+ n = bErrorElement and
28162825 (
28172826 none ( )
28182827 or
28192828 result = getImmediateChildOfIdentityExpr ( e , index - b , partialPredicateCall )
28202829 or
2821- result =
2822- getImmediateChildOfUnresolvedElement ( e , index - bIdentityExpr , partialPredicateCall )
2830+ result = getImmediateChildOfErrorElement ( e , index - bIdentityExpr , partialPredicateCall )
28232831 )
28242832 )
28252833 }
28262834
28272835 private Element getImmediateChildOfUnresolvedTypeConversionExpr (
28282836 UnresolvedTypeConversionExpr e , int index , string partialPredicateCall
28292837 ) {
2830- exists ( int b , int bImplicitConversionExpr , int bUnresolvedElement , int n |
2838+ exists ( int b , int bImplicitConversionExpr , int bErrorElement , int n |
28312839 b = 0 and
28322840 bImplicitConversionExpr =
28332841 b + 1 +
28342842 max ( int i | i = - 1 or exists ( getImmediateChildOfImplicitConversionExpr ( e , i , _) ) | i ) and
2835- bUnresolvedElement =
2843+ bErrorElement =
28362844 bImplicitConversionExpr + 1 +
2837- max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
2838- n = bUnresolvedElement and
2845+ max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
2846+ n = bErrorElement and
28392847 (
28402848 none ( )
28412849 or
28422850 result = getImmediateChildOfImplicitConversionExpr ( e , index - b , partialPredicateCall )
28432851 or
28442852 result =
2845- getImmediateChildOfUnresolvedElement ( e , index - bImplicitConversionExpr ,
2846- partialPredicateCall )
2853+ getImmediateChildOfErrorElement ( e , index - bImplicitConversionExpr , partialPredicateCall )
28472854 )
28482855 )
28492856 }
@@ -3838,14 +3845,18 @@ private module Impl {
38383845 }
38393846
38403847 private Element getImmediateChildOfErrorType ( ErrorType e , int index , string partialPredicateCall ) {
3841- exists ( int b , int bType , int n |
3848+ exists ( int b , int bType , int bErrorElement , int n |
38423849 b = 0 and
38433850 bType = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfType ( e , i , _) ) | i ) and
3844- n = bType and
3851+ bErrorElement =
3852+ bType + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
3853+ n = bErrorElement and
38453854 (
38463855 none ( )
38473856 or
38483857 result = getImmediateChildOfType ( e , index - b , partialPredicateCall )
3858+ or
3859+ result = getImmediateChildOfErrorElement ( e , index - bType , partialPredicateCall )
38493860 )
38503861 )
38513862 }
@@ -3993,18 +4004,18 @@ private module Impl {
39934004 private Element getImmediateChildOfUnresolvedType (
39944005 UnresolvedType e , int index , string partialPredicateCall
39954006 ) {
3996- exists ( int b , int bType , int bUnresolvedElement , int n |
4007+ exists ( int b , int bType , int bErrorElement , int n |
39974008 b = 0 and
39984009 bType = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfType ( e , i , _) ) | i ) and
3999- bUnresolvedElement =
4000- bType + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
4001- n = bUnresolvedElement and
4010+ bErrorElement =
4011+ bType + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
4012+ n = bErrorElement and
40024013 (
40034014 none ( )
40044015 or
40054016 result = getImmediateChildOfType ( e , index - b , partialPredicateCall )
40064017 or
4007- result = getImmediateChildOfUnresolvedElement ( e , index - bType , partialPredicateCall )
4018+ result = getImmediateChildOfErrorElement ( e , index - bType , partialPredicateCall )
40084019 )
40094020 )
40104021 }
0 commit comments