IDEA-177330 @CompileStatic multiple assignment in variable definition should be red

This commit is contained in:
alexey.afanasiev
2017-08-21 13:17:13 +03:00
parent f3dcb0fd01
commit 1bfadba58f
2 changed files with 19 additions and 1 deletions
@@ -230,7 +230,7 @@ public abstract class GrMethodBaseImpl extends GrStubElementBase<GrMethodStub> i
if (block != null) {
PsiType inferred = GroovyPsiManager.inferType(method, new MethodTypeInferencer(block));
if (inferred != null) {
if (nominal == null || nominal.isAssignableFrom(inferred)) {
if (nominal == null || (nominal.isAssignableFrom(inferred) && !inferred.equals(PsiType.NULL))) {
return inferred;
}
}
@@ -709,6 +709,24 @@ def foo(List list) {
''', 'java.util.List<java.util.List>')
}
void testReturnNullWithGeneric() {
doTest('''
import groovy.transform.CompileStatic
@CompileStatic
class SomeClass {
protected List foo(String text) {
return null
}
def bar() {
fo<caret>o("")
}
}
}
''', 'java.util.List')
}
void testClassExpressions() {
doExprTest 'String[]', 'java.lang.Class<java.lang.String[]>'