mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[groovy] don't resolve to field in method call (IDEA-189966)
This commit is contained in:
+7
-8
@@ -166,21 +166,20 @@ private fun GrReferenceExpression.doResolveStatic(): GroovyResolveResult? {
|
||||
}
|
||||
}
|
||||
|
||||
if (qualifier == null || qualifier.isThisExpression()) {
|
||||
val field = resolveToField(name).singleOrNull()
|
||||
if (field != null && checkCurrentClass(field.element, this)) {
|
||||
return field
|
||||
}
|
||||
}
|
||||
|
||||
if (parent !is GrMethodCall) {
|
||||
if (qualifier == null || qualifier.isThisExpression()) {
|
||||
val field = resolveToField(name).singleOrNull()
|
||||
if (field != null && checkCurrentClass(field.element, this)) {
|
||||
return field
|
||||
}
|
||||
}
|
||||
if (qualifier == null) {
|
||||
// at this point:
|
||||
// - the reference is org.codehaus.groovy.ast.expr.VariableExpression
|
||||
// - the reference doesn't resolve to a variable, meaning it accesses org.codehaus.groovy.ast.DynamicVariable
|
||||
return resolveUnqualifiedType(name)
|
||||
}
|
||||
else if (qualifier is GrReferenceExpression) {
|
||||
if (qualifier is GrReferenceExpression) {
|
||||
return resolveQualifiedType(name, qualifier)
|
||||
}
|
||||
}
|
||||
|
||||
+10
@@ -1516,4 +1516,14 @@ println A.<caret>name
|
||||
''', PsiMethod
|
||||
assert property.containingClass.qualifiedName == 'java.lang.Class'
|
||||
}
|
||||
|
||||
void "test don't resolve to field in method call"() {
|
||||
resolveByText '''\
|
||||
class Fff {
|
||||
List<String> testThis = [""]
|
||||
def usage() { <caret>testThis(1) }
|
||||
def testThis(a) {}
|
||||
}
|
||||
''', GrMethod
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user