[groovy] follow up @Synchronized IDEA-CR-13312

This commit is contained in:
Daniil Ovchinnikov
2016-08-26 18:42:04 +03:00
parent 9e90adcba5
commit 274b3f4313
2 changed files with 3 additions and 6 deletions
@@ -45,7 +45,7 @@ fun getImplicitLockUsages(field: GrField): Sequence<PsiAnnotation> {
}
private fun getImplicitLockUsages(clazz: PsiClass, static: Boolean) = clazz.methods.asSequence().filter { method ->
!static.xor(method.isStatic())
static == method.isStatic()
}.mapNotNull { method ->
AnnotationUtil.findAnnotation(method, ANNO_FQN)
}.filter { anno ->
@@ -16,10 +16,10 @@
package org.jetbrains.plugins.groovy.transformations.impl.synch
import com.intellij.psi.*
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.util.ProcessingContext
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod
class SynchronizedReferenceContributor : PsiReferenceContributor() {
@@ -38,11 +38,8 @@ class SynchronizedReferenceProvider : PsiReferenceProvider() {
class FieldReference(literal: GrLiteral) : PsiReferenceBase<GrLiteral>(literal) {
private val GrLiteral.annotatedMethod: GrMethod?
get() = parent?.parent?.parent?.parent?.parent as? GrMethod
private val GrLiteral.containingClass: GrTypeDefinition?
get() = annotatedMethod?.containingClass as? GrTypeDefinition
get() = PsiTreeUtil.getParentOfType(this, GrTypeDefinition::class.java)
override fun getVariants(): Array<out Any> = element.containingClass?.codeFields ?: emptyArray()