mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Gradle: don't use type.getCanonicalText() to infer type qualified name since it can lead to inferring of type parameters and wasting time
This commit is contained in:
+2
-1
@@ -32,6 +32,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlo
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.path.GrMethodCallExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightMethodBuilder;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyPropertyUtils;
|
||||
|
||||
@@ -120,7 +121,7 @@ public class GradleImplicitContributor implements GradleMethodContextContributor
|
||||
if (psiType != null) {
|
||||
final GroovyPsiManager psiManager = GroovyPsiManager.getInstance(place.getProject());
|
||||
GradleResolverUtil.processDeclarations(
|
||||
psiManager, processor, state, place, psiType.getCanonicalText());
|
||||
psiManager, processor, state, place, TypesUtil.getQualifiedName(psiType));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -198,6 +198,7 @@ public class GradleResolverUtil {
|
||||
@NotNull PsiElement place,
|
||||
@NotNull String... fqNames) {
|
||||
for (String fqName : fqNames) {
|
||||
if(fqName == null) continue;
|
||||
PsiClass psiClass = psiManager.findClassWithCache(fqName, place.getResolveScope());
|
||||
if (psiClass != null) {
|
||||
psiClass.processDeclarations(processor, state, null, place);
|
||||
|
||||
+2
-3
@@ -21,16 +21,15 @@ import com.intellij.psi.impl.source.PsiImmediateClassType;
|
||||
import com.intellij.psi.scope.PsiScopeProcessor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.groovy.lang.parser.GroovyElementTypes;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElement;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrArgumentList;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrNamedArgument;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrBinaryExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrCommandArgumentList;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrMethodCall;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.path.GrMethodCallExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightMethodBuilder;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightParameter;
|
||||
|
||||
@@ -99,7 +98,7 @@ public class GradleTaskContributor implements GradleMethodContextContributor {
|
||||
PsiImmediateClassType immediateClassType = (PsiImmediateClassType)psiType;
|
||||
for (PsiType type : immediateClassType.getParameters()) {
|
||||
GroovyPsiManager psiManager = GroovyPsiManager.getInstance(place.getProject());
|
||||
GradleResolverUtil.processDeclarations(methodCall, psiManager, processor, state, place, type.getCanonicalText());
|
||||
GradleResolverUtil.processDeclarations(methodCall, psiManager, processor, state, place, TypesUtil.getQualifiedName(type));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -19,6 +19,7 @@ import com.intellij.psi.PsiType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.groovy.extensions.GroovyUnresolvedHighlightFilter;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@@ -38,6 +39,6 @@ public class GradleUnresolvedReferenceFilter extends GroovyUnresolvedHighlightFi
|
||||
@Override
|
||||
public boolean isReject(@NotNull GrReferenceExpression expression) {
|
||||
final PsiType psiType = GradleResolverUtil.getTypeOf(expression);
|
||||
return psiType != null && IGNORE_SET.contains(psiType.getCanonicalText());
|
||||
return psiType != null && IGNORE_SET.contains(TypesUtil.getQualifiedName(psiType));
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -24,6 +24,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpres
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrMethodCall;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrReferenceTypeEnhancer;
|
||||
|
||||
/**
|
||||
@@ -68,7 +69,7 @@ public class NamedDomainObjectCollectionTypeEnhancer extends GrReferenceTypeEnha
|
||||
|
||||
if (namedDomainCollectionType instanceof PsiClassReferenceType) {
|
||||
final PsiClassReferenceType referenceType = (PsiClassReferenceType)namedDomainCollectionType;
|
||||
final String fqName = referenceType.getCanonicalText();
|
||||
final String fqName = TypesUtil.getQualifiedName(referenceType);
|
||||
if (GradleCommonClassNames.GRADLE_API_SOURCE_SET_CONTAINER.equals(fqName)) {
|
||||
final GroovyPsiManager psiManager = GroovyPsiManager.getInstance(ref.getProject());
|
||||
return psiManager.createTypeByFQClassName(GradleCommonClassNames.GRADLE_API_SOURCE_SET, ref.getResolveScope());
|
||||
|
||||
+4
-1
@@ -27,6 +27,7 @@ import org.jetbrains.plugins.gradle.service.resolve.GradleResolverUtil;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
|
||||
import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil;
|
||||
|
||||
@@ -54,7 +55,9 @@ public class GradleDslAnnotator implements Annotator {
|
||||
psiManager.findClassWithCache(GroovyCommonClassNames.DEFAULT_GROOVY_METHODS, element.getResolveScope());
|
||||
if (canBeMethodOf(referenceExpression.getReferenceName(), defaultGroovyMethodsClass)) return;
|
||||
|
||||
PsiClass containerClass = psiManager.findClassWithCache(psiType.getCanonicalText(), element.getResolveScope());
|
||||
final String qualifiedName = TypesUtil.getQualifiedName(psiType);
|
||||
final PsiClass containerClass =
|
||||
qualifiedName != null ? psiManager.findClassWithCache(qualifiedName, element.getResolveScope()) : null;
|
||||
if (canBeMethodOf(referenceExpression.getReferenceName(), containerClass)) return;
|
||||
|
||||
PsiElement nameElement = referenceExpression.getReferenceNameElement();
|
||||
|
||||
Reference in New Issue
Block a user