mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
skip temp classes in resolve
This commit is contained in:
+1
-1
@@ -54,7 +54,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement;
|
||||
*/
|
||||
public abstract class GroovyPsiElementFactory implements JVMElementFactory {
|
||||
|
||||
@NonNls public static final String DUMMY_FILE_NAME = "DUMMY__";
|
||||
@NonNls public static final String DUMMY_FILE_NAME = "DUMMY__1234567890_DUMMYYYYYY___";
|
||||
|
||||
public abstract GrCodeReferenceElement createCodeReferenceElementFromClass(PsiClass aClass);
|
||||
|
||||
|
||||
+2
-8
@@ -18,7 +18,6 @@ package org.jetbrains.plugins.groovy.lang.psi.impl.statements;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -28,7 +27,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrConstructorInvocation;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrThisSuperReferenceExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyResolveResultImpl;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrCallImpl;
|
||||
@@ -78,7 +76,7 @@ public class GrConstructorInvocationImpl extends GrCallImpl implements GrConstru
|
||||
if (isThisCall()) {
|
||||
substitutor = PsiSubstitutor.EMPTY;
|
||||
} else {
|
||||
GrTypeDefinition enclosing = getEnclosingClass();
|
||||
PsiClass enclosing = PsiUtil.getContextClass(this);
|
||||
assert enclosing != null;
|
||||
substitutor = TypeConversionUtil.getSuperClassSubstitutor(clazz, enclosing, PsiSubstitutor.EMPTY);
|
||||
}
|
||||
@@ -110,17 +108,13 @@ public class GrConstructorInvocationImpl extends GrCallImpl implements GrConstru
|
||||
|
||||
@Nullable
|
||||
public PsiClass getDelegatedClass() {
|
||||
GrTypeDefinition typeDefinition = getEnclosingClass();
|
||||
PsiClass typeDefinition = PsiUtil.getContextClass(this);
|
||||
if (typeDefinition != null) {
|
||||
return isThisCall() ? typeDefinition : typeDefinition.getSuperClass();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private GrTypeDefinition getEnclosingClass() {
|
||||
return PsiTreeUtil.getParentOfType(this, GrTypeDefinition.class);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getCanonicalText() {
|
||||
return getText(); //TODO
|
||||
|
||||
@@ -570,7 +570,7 @@ public class PsiUtil {
|
||||
@Nullable
|
||||
public static PsiClass getContextClass(PsiElement context) {
|
||||
while (context != null) {
|
||||
if (context instanceof PsiClass) {
|
||||
if (context instanceof PsiClass && !isInDummyFile(context)) {
|
||||
return (PsiClass)context;
|
||||
}
|
||||
else if (context instanceof GroovyFileBase && context.isPhysical()) {
|
||||
@@ -582,6 +582,14 @@ public class PsiUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static boolean isInDummyFile(PsiElement context) {
|
||||
PsiFile file = context.getContainingFile();
|
||||
if (file == null) return false;
|
||||
|
||||
String name = file.getName();
|
||||
return name.startsWith(GroovyPsiElementFactory.DUMMY_FILE_NAME);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static GroovyPsiElement getFileOrClassContext(PsiElement context) {
|
||||
while (context != null) {
|
||||
|
||||
Reference in New Issue
Block a user