diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleImplicitContributor.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleImplicitContributor.java index cf9a5fc90768..4a917ad70443 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleImplicitContributor.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleImplicitContributor.java @@ -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)); } } } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleResolverUtil.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleResolverUtil.java index cf7474b35744..cbe6a60279c0 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleResolverUtil.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleResolverUtil.java @@ -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); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleTaskContributor.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleTaskContributor.java index f0c4e74b4dc6..050e754776e8 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleTaskContributor.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleTaskContributor.java @@ -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)); } } } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleUnresolvedReferenceFilter.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleUnresolvedReferenceFilter.java index 3f2084a6083f..4aff47d4b5a3 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleUnresolvedReferenceFilter.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/GradleUnresolvedReferenceFilter.java @@ -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)); } } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/NamedDomainObjectCollectionTypeEnhancer.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/NamedDomainObjectCollectionTypeEnhancer.java index 0180eb6e482a..11b1a3e25b85 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/NamedDomainObjectCollectionTypeEnhancer.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/NamedDomainObjectCollectionTypeEnhancer.java @@ -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()); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/dsl/GradleDslAnnotator.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/dsl/GradleDslAnnotator.java index afa46a709f91..2248b69a02c3 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/dsl/GradleDslAnnotator.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/resolve/dsl/GradleDslAnnotator.java @@ -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();