mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
skip dummy files in resolve of 'this'
This commit is contained in:
@@ -20,6 +20,7 @@ import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.plugins.groovy.lang.groovydoc.psi.api.GrDocComment;
|
||||
@@ -55,6 +56,8 @@ import org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement;
|
||||
*/
|
||||
public abstract class GroovyPsiElementFactory {
|
||||
|
||||
@NonNls public static final String DUMMY_FILE_NAME = "DUMMY__.";
|
||||
|
||||
public static GroovyPsiElementFactory getInstance(Project project) {
|
||||
return ServiceManager.getService(project, GroovyPsiElementFactory.class);
|
||||
}
|
||||
|
||||
+1
-1
@@ -259,7 +259,7 @@ public class GroovyPsiElementFactoryImpl extends GroovyPsiElementFactory {
|
||||
}
|
||||
|
||||
private GroovyFileImpl createDummyFile(String text, boolean physical) {
|
||||
final String fileName = "DUMMY__." + GroovyFileType.GROOVY_FILE_TYPE.getDefaultExtension();
|
||||
final String fileName = DUMMY_FILE_NAME + GroovyFileType.GROOVY_FILE_TYPE.getDefaultExtension();
|
||||
final long stamp = System.currentTimeMillis();
|
||||
final PsiFileFactory factory = PsiFileFactory.getInstance(myProject);
|
||||
return (GroovyFileImpl) factory.createFileFromText(fileName, GroovyFileType.GROOVY_FILE_TYPE, text, stamp, physical);
|
||||
|
||||
+4
@@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyFile;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElement;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrThisReferenceExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
|
||||
@@ -34,6 +35,9 @@ public class GrThisReferenceExpressionImpl extends GrThisSuperReferenceExpressio
|
||||
final GrReferenceExpression qualifier = getQualifier();
|
||||
if (qualifier == null) {
|
||||
GroovyPsiElement context = PsiTreeUtil.getContextOfType(this, GrTypeDefinition.class, GroovyFile.class);
|
||||
if (context instanceof GroovyFile && GroovyPsiElementFactory.DUMMY_FILE_NAME.equals(((GroovyFile)context).getName())) {
|
||||
context = PsiTreeUtil.getContextOfType(context, true, GrTypeDefinition.class, GroovyFile.class);
|
||||
}
|
||||
if (context instanceof GrTypeDefinition) {
|
||||
return createType((PsiClass)context);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user