[groovy] prevent recursion directly in #getSubstitutor

This commit is contained in:
Daniil Ovchinnikov
2018-04-17 17:34:51 +03:00
parent 40c7e80a99
commit d4937bc956
@@ -12,6 +12,8 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
import static com.intellij.openapi.util.RecursionManager.doPreventingRecursion;
/**
* @author peter
*/
@@ -52,7 +54,8 @@ public abstract class GrLiteralClassType extends PsiClassType {
@Override
@NotNull
public PsiSubstitutor getSubstitutor() {
return mySubstitutor.getValue();
PsiSubstitutor substitutor = doPreventingRecursion(GrLiteralClassType.this, false, () -> mySubstitutor.getValue());
return substitutor == null ? PsiSubstitutor.EMPTY : substitutor;
}
@Override