Fix for EA-64905 - assert: TypeUtils.intersect
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
fun main(args: Array<String>) {
|
||||
args is Array<<!SYNTAX!><!>>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
internal fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
|
||||
@@ -9372,6 +9372,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/recovery"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("emptyTypeArgs.kt")
|
||||
public void testEmptyTypeArgs() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/recovery/emptyTypeArgs.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("namelessInJava.kt")
|
||||
public void testNamelessInJava() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/recovery/namelessInJava.kt");
|
||||
|
||||
@@ -28,6 +28,13 @@ public class JetTypeChecker {
|
||||
|
||||
public static final JetTypeChecker DEFAULT = new JetTypeChecker(new TypeCheckingProcedure(new TypeCheckerProcedureCallbacksImpl()));
|
||||
|
||||
public static final JetTypeChecker ERROR_TYPES_ARE_EQUAL_TO_ANYTHING = new JetTypeChecker(new TypeCheckingProcedure(new TypeCheckerProcedureCallbacksImpl() {
|
||||
@Override
|
||||
public boolean assertEqualTypes(@NotNull JetType a, @NotNull JetType b, @NotNull TypeCheckingProcedure typeCheckingProcedure) {
|
||||
return a.isError() || b.isError() || super.assertEqualTypes(a, b, typeCheckingProcedure);
|
||||
}
|
||||
}));
|
||||
|
||||
public static final JetTypeChecker FLEXIBLE_UNEQUAL_TO_INFLEXIBLE = new JetTypeChecker(new TypeCheckingProcedure(new TypeCheckerProcedureCallbacksImpl()) {
|
||||
@Override
|
||||
protected boolean heterogeneousEquivalence(JetType inflexibleType, JetType flexibleType) {
|
||||
|
||||
@@ -79,7 +79,9 @@ fun Collection<JetType>.singleBestRepresentative(): JetType? {
|
||||
candidate ->
|
||||
this.all {
|
||||
other ->
|
||||
candidate == other || JetTypeChecker.DEFAULT.equalTypes(candidate, other)
|
||||
// We consider error types equal to anything here, so that intersections like
|
||||
// {Array<String>, Array<[ERROR]>} work correctly
|
||||
candidate == other || JetTypeChecker.ERROR_TYPES_ARE_EQUAL_TO_ANYTHING.equalTypes(candidate, other)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user