subtyping constraint: accept array types if left type is assignable from array, e.g Serializable (IDEA-146592)

This commit is contained in:
Anna Kozlova
2015-10-20 20:58:49 +02:00
parent a0adf048f6
commit ec5f440e09
3 changed files with 19 additions and 1 deletions
@@ -105,9 +105,13 @@ public class StrictSubtypingConstraint implements ConstraintFormula {
}
}
}
} else if (myS instanceof PsiClassType) {
}
else if (myS instanceof PsiClassType) {
SResult = ((PsiClassType)myS).resolveGenerics();
}
else if (myS instanceof PsiArrayType) {
return myT.isAssignableFrom(myS);
}
if (SResult == null) return false;
PsiClass SClass = SResult.getElement();
@@ -0,0 +1,10 @@
import java.io.Serializable;
import java.util.List;
class Test {
public void serialize(Serializable o) {}
public void foo(List<String> strings) {
serialize(strings.toArray(new String[0]));
}
}
@@ -307,6 +307,10 @@ public class GraphInferenceHighlightingTest extends LightDaemonAnalyzerTestCase
doTest();
}
public void testArrayTypeAssignability() throws Exception {
doTest();
}
private void doTest() throws Exception {
doTest(false);
}