[groovy] unwrap class type for static GDK methods before checking applicability (IDEA-156373)

This commit is contained in:
Daniil Ovchinnikov
2016-05-20 21:48:01 +03:00
parent 2ccdbcb7ff
commit 8a74050419
2 changed files with 12 additions and 2 deletions
@@ -22,7 +22,6 @@ import com.intellij.openapi.util.Condition;
import com.intellij.psi.*;
import com.intellij.psi.impl.PsiSubstitutorImpl;
import com.intellij.psi.tree.IElementType;
import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -380,7 +379,10 @@ public class GroovyTypeCheckVisitor extends BaseInspectionVisitor {
});
}
final PsiMethod staticMethod = ((GrGdkMethod)method).getStaticMethod();
final PsiType qualifierType = info.getQualifierInstanceType();
PsiType qualifierType = info.getQualifierInstanceType();
if (method.hasModifierProperty(PsiModifier.STATIC)) {
qualifierType = ResolveUtil.unwrapClassType(qualifierType);
}
//check methods processed by @Category(ClassWhichProcessMethod) annotation
if (qualifierType != null &&
@@ -1993,4 +1993,12 @@ class Main {
}
'''
}
void 'test static GDK method applicable'() {
testHighlighting '''
def doParse() {
Date.parse('dd.MM.yyyy', '01.12.2016')
}
''', GroovyAssignabilityCheckInspection
}
}