mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gradle] extract GradleNonCodeMembersContributor#shouldSkipDeclarationsAndSetters
org.jetbrains.plugins.gradle.service.resolve.UtilKt.processDeclarations uses questionable algorithm and duplicates declarations causing unexpected side-effects. Later #shouldSkipDeclarationsAndSetters should return true for any qualified name, i.e. aforementioned #processDeclarations won't be used anymore.
This commit is contained in:
@@ -96,7 +96,7 @@ class GradleNonCodeMembersContributor : NonCodeMembersContributor() {
|
||||
extensionsData.findProperty(propCandidate)?.let(processVariable)
|
||||
}
|
||||
else {
|
||||
if (aClass.qualifiedName !in GradleConventionsContributor.conventions) {
|
||||
if (!shouldSkipDeclarationsAndSetters(aClass.qualifiedName)) {
|
||||
processDeclarations(aClass, processor, state, place)
|
||||
}
|
||||
val propCandidate = place.references.singleOrNull()?.canonicalText ?: return
|
||||
@@ -157,4 +157,9 @@ class GradleNonCodeMembersContributor : NonCodeMembersContributor() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun shouldSkipDeclarationsAndSetters(qualifiedName: String?): Boolean {
|
||||
return qualifiedName in GradleSetterAsMethodContributor.knownDecoratedClasses
|
||||
|| qualifiedName in GradleConventionsContributor.conventions
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,10 +17,14 @@ import org.jetbrains.plugins.groovy.lang.resolve.shouldProcessMethods
|
||||
|
||||
class GradleSetterAsMethodContributor : NonCodeMembersContributor() {
|
||||
|
||||
override fun getClassNames(): Collection<String> = listOf(
|
||||
GRADLE_API_PROJECT,
|
||||
GRADLE_API_ARTIFACTS_MODULE_DEPENDENCY
|
||||
)
|
||||
companion object {
|
||||
val knownDecoratedClasses = setOf(
|
||||
GRADLE_API_PROJECT,
|
||||
GRADLE_API_ARTIFACTS_MODULE_DEPENDENCY
|
||||
)
|
||||
}
|
||||
|
||||
override fun getClassNames(): Collection<String> = knownDecoratedClasses
|
||||
|
||||
override fun processDynamicElements(qualifierType: PsiType,
|
||||
aClass: PsiClass?,
|
||||
|
||||
Reference in New Issue
Block a user