File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed
src/main/java/com/intellij/plugins/haxe/lang/psi Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -1445,6 +1445,7 @@ private static void LogResolution(HaxeReference ref, String tailmsg) {
1445
1445
}
1446
1446
1447
1447
private static final RecursionGuard <PsiElement > extensionsFromMetaGuard = RecursionManager .createGuard ("extensionsFromMetaGuard" );
1448
+ private static final RecursionGuard <PsiElement > extensionsMethodGuard = RecursionManager .createGuard ("extensionsMethodGuard" );
1448
1449
1449
1450
/**
1450
1451
* Resolve a chain reference, given two references: the qualifier, and the name.
@@ -1465,10 +1466,15 @@ private List<? extends PsiElement> resolveChain(HaxeReference lefthandExpression
1465
1466
1466
1467
String identifier = reference instanceof HaxeReferenceExpression referenceExpression ? referenceExpression .getIdentifier ().getText () : reference .getText ();
1467
1468
HaxeExpressionEvaluatorContext context = new HaxeExpressionEvaluatorContext (lefthandExpression );
1468
- ResultHolder result = HaxeExpressionEvaluator .evaluateWithRecursionGuard (lefthandExpression , context , null ).result ;
1469
1469
1470
+ ResultHolder result = extensionsMethodGuard .doPreventingRecursion (lefthandExpression , true , () -> {
1471
+ return HaxeExpressionEvaluator .evaluate (lefthandExpression , context , null ).result ;
1472
+ });
1473
+ if (result == null ) {
1474
+ extensionsMethodGuard .prohibitResultCaching (lefthandExpression );
1475
+ }
1470
1476
1471
- SpecificHaxeClassReference classType = result .isUnknown () ? null : result .getClassType ();
1477
+ SpecificHaxeClassReference classType = result == null || result .isUnknown () ? null : result .getClassType ();
1472
1478
HaxeClass haxeClass = classType != null ? classType .getHaxeClass () : null ;
1473
1479
1474
1480
// To avoid incorrect extension method results we avoid any results where we don't know type of left reference.
You can’t perform that action at this time.
0 commit comments