diff --git a/src/com/intellij/advancedExpressionFolding/AdvancedExpressionFoldingBuilder.java b/src/com/intellij/advancedExpressionFolding/AdvancedExpressionFoldingBuilder.java index 66abd2ad..22956314 100644 --- a/src/com/intellij/advancedExpressionFolding/AdvancedExpressionFoldingBuilder.java +++ b/src/com/intellij/advancedExpressionFolding/AdvancedExpressionFoldingBuilder.java @@ -733,8 +733,8 @@ && startsWith(((PsiMethodCallExpression) qualifier).getMethodExpression().getRef .filter(e -> e instanceof PsiReferenceExpression && !(e.getParent() instanceof PsiMethodCallExpression) - && ((PsiReferenceExpression) e).isReferenceTo(r.resolve()) - || e instanceof PsiMethodCallExpression && ((PsiMethodCallExpression) e).getMethodExpression().isReferenceTo(r.resolve()) + && isReferenceToReference((PsiReferenceExpression) e, r) + || e instanceof PsiMethodCallExpression && isReferenceToReference(((PsiMethodCallExpression) e).getMethodExpression(), r) ).toList(); if (references.size() > 0) { return new ElvisExpression(element, element.getTextRange(), @@ -756,7 +756,7 @@ private static boolean equal(@Nullable PsiElement e1, @Nullable PsiElement e2) { // TODO: Use a cache for the resolved instance if (e2 instanceof PsiReferenceExpression && e1 instanceof PsiReferenceExpression) { return Objects.equals(((PsiReferenceExpression) e2).getReferenceName(), ((PsiReferenceExpression) e1).getReferenceName()) - && ((PsiReferenceExpression) e2).isReferenceTo(((PsiReferenceExpression) e1).resolve()); + && isReferenceToReference((PsiReferenceExpression) e2, (PsiReferenceExpression) e1); } else if (e2 instanceof PsiMethodCallExpression && e1 instanceof PsiMethodCallExpression) { return equal(((PsiMethodCallExpression) e2).getMethodExpression(), ((PsiMethodCallExpression) e1).getMethodExpression())