IDEA-187683 Wrong 'Cannot be applied' warnings are shown in build.gradle file in newly created Gradle project

This commit is contained in:
Vladislav.Soroka
2018-04-09 12:26:33 +03:00
parent b5d89d9111
commit 702604b110
2 changed files with 8 additions and 2 deletions
@@ -30,5 +30,6 @@
<orderEntry type="module" module-name="intellij.platform.jps.build" />
<orderEntry type="module" module-name="intellij.gradle.toolingExtension.impl" />
<orderEntry type="library" name="XStream" level="project" />
<orderEntry type="module" module-name="intellij.groovy.psi" />
</component>
</module>
@@ -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<String>(importedNameKey, name)
if (!processor.execute(method, newState)) return false
}
}
if (!isGetterCandidate && !isSetterCandidate) {