@@ -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 }
@@ -1221,14 +1222,18 @@ private module Impl {
12211222 }
12221223
12231224 private Element getImmediateChildOfErrorExpr ( ErrorExpr e , int index , string partialPredicateCall ) {
1224- exists ( int b , int bExpr , int n |
1225+ exists ( int b , int bExpr , int bErrorElement , int n |
12251226 b = 0 and
12261227 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1227- n = bExpr and
1228+ bErrorElement =
1229+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1230+ n = bErrorElement and
12281231 (
12291232 none ( )
12301233 or
12311234 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
1235+ or
1236+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
12321237 )
12331238 )
12341239 }
@@ -1598,14 +1603,18 @@ private module Impl {
15981603 private Element getImmediateChildOfOverloadedDeclRefExpr (
15991604 OverloadedDeclRefExpr e , int index , string partialPredicateCall
16001605 ) {
1601- exists ( int b , int bExpr , int n |
1606+ exists ( int b , int bExpr , int bErrorElement , int n |
16021607 b = 0 and
16031608 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1604- n = bExpr and
1609+ bErrorElement =
1610+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1611+ n = bErrorElement and
16051612 (
16061613 none ( )
16071614 or
16081615 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
1616+ or
1617+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
16091618 )
16101619 )
16111620 }
@@ -1763,38 +1772,38 @@ private module Impl {
17631772 private Element getImmediateChildOfUnresolvedDeclRefExpr (
17641773 UnresolvedDeclRefExpr e , int index , string partialPredicateCall
17651774 ) {
1766- exists ( int b , int bExpr , int bUnresolvedElement , int n |
1775+ exists ( int b , int bExpr , int bErrorElement , int n |
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 (
17731782 none ( )
17741783 or
17751784 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
17761785 or
1777- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1786+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
17781787 )
17791788 )
17801789 }
17811790
17821791 private Element getImmediateChildOfUnresolvedDotExpr (
17831792 UnresolvedDotExpr e , int index , string partialPredicateCall
17841793 ) {
1785- exists ( int b , int bExpr , int bUnresolvedElement , int n , int nBase |
1794+ exists ( int b , int bExpr , int bErrorElement , int n , int nBase |
17861795 b = 0 and
17871796 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1788- bUnresolvedElement =
1789- bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
1790- n = bUnresolvedElement and
1797+ bErrorElement =
1798+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1799+ n = bErrorElement and
17911800 nBase = n + 1 and
17921801 (
17931802 none ( )
17941803 or
17951804 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
17961805 or
1797- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1806+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
17981807 or
17991808 index = n and result = e .getImmediateBase ( ) and partialPredicateCall = "Base()"
18001809 )
@@ -1804,38 +1813,38 @@ private module Impl {
18041813 private Element getImmediateChildOfUnresolvedMemberExpr (
18051814 UnresolvedMemberExpr e , int index , string partialPredicateCall
18061815 ) {
1807- exists ( int b , int bExpr , int bUnresolvedElement , int n |
1816+ exists ( int b , int bExpr , int bErrorElement , int n |
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 (
18141823 none ( )
18151824 or
18161825 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
18171826 or
1818- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1827+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
18191828 )
18201829 )
18211830 }
18221831
18231832 private Element getImmediateChildOfUnresolvedPatternExpr (
18241833 UnresolvedPatternExpr e , int index , string partialPredicateCall
18251834 ) {
1826- exists ( int b , int bExpr , int bUnresolvedElement , int n , int nSubPattern |
1835+ exists ( int b , int bExpr , int bErrorElement , int n , int nSubPattern |
18271836 b = 0 and
18281837 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1829- bUnresolvedElement =
1830- bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
1831- n = bUnresolvedElement and
1838+ bErrorElement =
1839+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1840+ n = bErrorElement and
18321841 nSubPattern = n + 1 and
18331842 (
18341843 none ( )
18351844 or
18361845 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
18371846 or
1838- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1847+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
18391848 or
18401849 index = n and result = e .getImmediateSubPattern ( ) and partialPredicateCall = "SubPattern()"
18411850 )
@@ -1845,19 +1854,19 @@ private module Impl {
18451854 private Element getImmediateChildOfUnresolvedSpecializeExpr (
18461855 UnresolvedSpecializeExpr e , int index , string partialPredicateCall
18471856 ) {
1848- exists ( int b , int bExpr , int bUnresolvedElement , int n , int nSubExpr |
1857+ exists ( int b , int bExpr , int bErrorElement , int n , int nSubExpr |
18491858 b = 0 and
18501859 bExpr = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfExpr ( e , i , _) ) | i ) and
1851- bUnresolvedElement =
1852- bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
1853- n = bUnresolvedElement and
1860+ bErrorElement =
1861+ bExpr + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
1862+ n = bErrorElement and
18541863 nSubExpr = n + 1 and
18551864 (
18561865 none ( )
18571866 or
18581867 result = getImmediateChildOfExpr ( e , index - b , partialPredicateCall )
18591868 or
1860- result = getImmediateChildOfUnresolvedElement ( e , index - bExpr , partialPredicateCall )
1869+ result = getImmediateChildOfErrorElement ( e , index - bExpr , partialPredicateCall )
18611870 or
18621871 index = n and result = e .getImmediateSubExpr ( ) and partialPredicateCall = "SubExpr()"
18631872 )
@@ -2841,45 +2850,43 @@ private module Impl {
28412850 private Element getImmediateChildOfUnresolvedMemberChainResultExpr (
28422851 UnresolvedMemberChainResultExpr e , int index , string partialPredicateCall
28432852 ) {
2844- exists ( int b , int bIdentityExpr , int bUnresolvedElement , int n |
2853+ exists ( int b , int bIdentityExpr , int bErrorElement , int n |
28452854 b = 0 and
28462855 bIdentityExpr =
28472856 b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfIdentityExpr ( e , i , _) ) | i ) and
2848- bUnresolvedElement =
2857+ bErrorElement =
28492858 bIdentityExpr + 1 +
2850- max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
2851- n = bUnresolvedElement and
2859+ max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
2860+ n = bErrorElement and
28522861 (
28532862 none ( )
28542863 or
28552864 result = getImmediateChildOfIdentityExpr ( e , index - b , partialPredicateCall )
28562865 or
2857- result =
2858- getImmediateChildOfUnresolvedElement ( e , index - bIdentityExpr , partialPredicateCall )
2866+ result = getImmediateChildOfErrorElement ( e , index - bIdentityExpr , partialPredicateCall )
28592867 )
28602868 )
28612869 }
28622870
28632871 private Element getImmediateChildOfUnresolvedTypeConversionExpr (
28642872 UnresolvedTypeConversionExpr e , int index , string partialPredicateCall
28652873 ) {
2866- exists ( int b , int bImplicitConversionExpr , int bUnresolvedElement , int n |
2874+ exists ( int b , int bImplicitConversionExpr , int bErrorElement , int n |
28672875 b = 0 and
28682876 bImplicitConversionExpr =
28692877 b + 1 +
28702878 max ( int i | i = - 1 or exists ( getImmediateChildOfImplicitConversionExpr ( e , i , _) ) | i ) and
2871- bUnresolvedElement =
2879+ bErrorElement =
28722880 bImplicitConversionExpr + 1 +
2873- max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
2874- n = bUnresolvedElement and
2881+ max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
2882+ n = bErrorElement and
28752883 (
28762884 none ( )
28772885 or
28782886 result = getImmediateChildOfImplicitConversionExpr ( e , index - b , partialPredicateCall )
28792887 or
28802888 result =
2881- getImmediateChildOfUnresolvedElement ( e , index - bImplicitConversionExpr ,
2882- partialPredicateCall )
2889+ getImmediateChildOfErrorElement ( e , index - bImplicitConversionExpr , partialPredicateCall )
28832890 )
28842891 )
28852892 }
@@ -3874,14 +3881,18 @@ private module Impl {
38743881 }
38753882
38763883 private Element getImmediateChildOfErrorType ( ErrorType e , int index , string partialPredicateCall ) {
3877- exists ( int b , int bType , int n |
3884+ exists ( int b , int bType , int bErrorElement , int n |
38783885 b = 0 and
38793886 bType = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfType ( e , i , _) ) | i ) and
3880- n = bType and
3887+ bErrorElement =
3888+ bType + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
3889+ n = bErrorElement and
38813890 (
38823891 none ( )
38833892 or
38843893 result = getImmediateChildOfType ( e , index - b , partialPredicateCall )
3894+ or
3895+ result = getImmediateChildOfErrorElement ( e , index - bType , partialPredicateCall )
38853896 )
38863897 )
38873898 }
@@ -4145,18 +4156,18 @@ private module Impl {
41454156 private Element getImmediateChildOfUnresolvedType (
41464157 UnresolvedType e , int index , string partialPredicateCall
41474158 ) {
4148- exists ( int b , int bType , int bUnresolvedElement , int n |
4159+ exists ( int b , int bType , int bErrorElement , int n |
41494160 b = 0 and
41504161 bType = b + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfType ( e , i , _) ) | i ) and
4151- bUnresolvedElement =
4152- bType + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfUnresolvedElement ( e , i , _) ) | i ) and
4153- n = bUnresolvedElement and
4162+ bErrorElement =
4163+ bType + 1 + max ( int i | i = - 1 or exists ( getImmediateChildOfErrorElement ( e , i , _) ) | i ) and
4164+ n = bErrorElement and
41544165 (
41554166 none ( )
41564167 or
41574168 result = getImmediateChildOfType ( e , index - b , partialPredicateCall )
41584169 or
4159- result = getImmediateChildOfUnresolvedElement ( e , index - bType , partialPredicateCall )
4170+ result = getImmediateChildOfErrorElement ( e , index - bType , partialPredicateCall )
41604171 )
41614172 )
41624173 }
0 commit comments