diff --git a/plugins/gradle/java/intellij.gradle.java.iml b/plugins/gradle/java/intellij.gradle.java.iml index 7c2446b171ac..72277fe09a4f 100644 --- a/plugins/gradle/java/intellij.gradle.java.iml +++ b/plugins/gradle/java/intellij.gradle.java.iml @@ -30,5 +30,6 @@ + \ No newline at end of file diff --git a/plugins/gradle/java/src/service/resolve/util.kt b/plugins/gradle/java/src/service/resolve/util.kt index 96668d49bde3..90652bb95ba8 100644 --- a/plugins/gradle/java/src/service/resolve/util.kt +++ b/plugins/gradle/java/src/service/resolve/util.kt @@ -3,6 +3,7 @@ package org.jetbrains.plugins.gradle.service.resolve import com.intellij.openapi.util.Key import com.intellij.psi.* +import com.intellij.psi.scope.ElementClassHint import com.intellij.psi.scope.PsiScopeProcessor import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.plugins.gradle.util.GradleConstants.EXTENSION @@ -15,8 +16,10 @@ import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GroovyScriptClass import org.jetbrains.plugins.groovy.lang.psi.util.GroovyPropertyUtils import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil import org.jetbrains.plugins.groovy.lang.resolve.NON_CODE +import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil.processAllDeclarations import org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.getDelegatesToInfo +import org.jetbrains.plugins.groovy.lang.resolve.imports.importedNameKey import org.jetbrains.plugins.groovy.lang.resolve.processors.AccessorResolverProcessor import org.jetbrains.plugins.groovy.lang.resolve.processors.ClassHint import org.jetbrains.plugins.groovy.lang.resolve.processors.MethodResolverProcessor @@ -37,7 +40,7 @@ fun processDeclarations(aClass: PsiClass, state: ResolveState, place: PsiElement): Boolean { val name = processor.getHint(com.intellij.psi.scope.NameHint.KEY)?.getName(state) - if (name == null) { + if (name == null || !ResolveUtil.shouldProcessMethods(processor.getHint(ElementClassHint.KEY))) { aClass.processDeclarations(processor, state, null, place) } else { @@ -74,7 +77,9 @@ fun processDeclarations(aClass: PsiClass, if (processedSignatures.contains(method.getSignature(PsiSubstitutor.EMPTY).parameterTypes.map({ it.canonicalText }))) continue processedSignatures.add(method.getSignature(PsiSubstitutor.EMPTY).parameterTypes.map({ it.canonicalText })) place.putUserData(RESOLVED_CODE, true) - if (!processor.execute(method, state)) return false + // hack to pass name check in org.jetbrains.plugins.groovy.lang.resolve.processors.GroovyResolverProcessor + val newState = state.put(importedNameKey, name) + if (!processor.execute(method, newState)) return false } } if (!isGetterCandidate && !isSetterCandidate) {