[groovy] fix ImplicitClosureCallPredicate to ignore explicit Closure#call (IDEA-207549)

This commit is contained in:
Daniil Ovchinnikov
2019-02-21 12:57:52 +03:00
parent 4d1ac741d3
commit f2f078d2a3
2 changed files with 11 additions and 2 deletions
@@ -19,8 +19,12 @@ internal object ImplicitClosureCallPredicate : PsiElementPredicate {
return false
}
val result = element.advancedResolve()
return result.isInvokedOnProperty && element.invokedExpression.type.isClosureType()
|| result.element.isClosureCallMethod()
if (element.implicitCallReference == null) {
return result.isInvokedOnProperty && element.invokedExpression.type.isClosureType()
}
else {
return result.element.isClosureCallMethod()
}
}
private fun PsiType?.isClosureType(): Boolean {
@@ -54,4 +54,9 @@ class MakeClosureCallExplicitIntentionTest extends GroovyLatestTest implements B
void 'closure method'() {
doTest 'Closure foo() {}; <caret>foo()', null
}
@Test
void 'closure method call'() {
doTest 'Closure foo() {}; foo().<caret>call()', null
}
}