Remove unneeded asserts from JavaSupertypeResolver
Don't do anything special if a Java class happens to extend jet.JetObject: it's not a Kotlin class and we should collect all its supertypes correctly
This commit is contained in:
committed by
Alexander Udalov
parent
b2bcbdfb7a
commit
07f1e61146
@@ -0,0 +1,4 @@
|
|||||||
|
package test;
|
||||||
|
|
||||||
|
public class ClassExtendsTypeParameter<T> extends T {
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package test
|
||||||
|
|
||||||
|
public open class ClassExtendsTypeParameter</*0*/ T> : T {
|
||||||
|
public constructor ClassExtendsTypeParameter</*0*/ T>()
|
||||||
|
}
|
||||||
@@ -1486,6 +1486,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
|
|||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/loadJava/sourceJava"), Pattern.compile("^(.+)\\.java$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/loadJava/sourceJava"), Pattern.compile("^(.+)\\.java$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ClassExtendsTypeParameter.java")
|
||||||
|
public void testClassExtendsTypeParameter() throws Exception {
|
||||||
|
doTestSourceJava("compiler/testData/loadJava/sourceJava/ClassExtendsTypeParameter.java");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("ErrorTypes.java")
|
@TestMetadata("ErrorTypes.java")
|
||||||
public void testErrorTypes() throws Exception {
|
public void testErrorTypes() throws Exception {
|
||||||
doTestSourceJava("compiler/testData/loadJava/sourceJava/ErrorTypes.java");
|
doTestSourceJava("compiler/testData/loadJava/sourceJava/ErrorTypes.java");
|
||||||
|
|||||||
-12
@@ -19,9 +19,7 @@ package org.jetbrains.jet.lang.resolve.java.resolver;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass;
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass;
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClassifier;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClassifierType;
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaClassifierType;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
@@ -90,16 +88,6 @@ public final class JavaSupertypeResolver {
|
|||||||
) {
|
) {
|
||||||
List<JetType> result = new ArrayList<JetType>(supertypes.size());
|
List<JetType> result = new ArrayList<JetType>(supertypes.size());
|
||||||
for (JavaClassifierType type : supertypes) {
|
for (JavaClassifierType type : supertypes) {
|
||||||
JavaClassifier resolved = type.getClassifier();
|
|
||||||
if (resolved != null) {
|
|
||||||
assert resolved instanceof JavaClass : "Supertype should be a class: " + resolved;
|
|
||||||
FqName fqName = ((JavaClass) resolved).getFqName();
|
|
||||||
assert fqName != null : "Unresolved supertype: " + resolved;
|
|
||||||
if (JvmAbi.JET_OBJECT.getFqName().equals(fqName)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JetType transformed = typeTransformer.transformToType(type, TypeUsage.SUPERTYPE, typeVariableResolver);
|
JetType transformed = typeTransformer.transformToType(type, TypeUsage.SUPERTYPE, typeVariableResolver);
|
||||||
if (transformed.isError()) {
|
if (transformed.isError()) {
|
||||||
// TODO: report INCOMPLETE_HIERARCHY
|
// TODO: report INCOMPLETE_HIERARCHY
|
||||||
|
|||||||
Reference in New Issue
Block a user