From 94a99d33ea04db70c2d8dd5d7b9dec3776cb8651 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 8 Aug 2013 18:14:10 +0400 Subject: [PATCH] Get rid of trace in JavaSupertypeResolver The only place where it was used was INCOMPLETE_HIERARCHY report, which didn't work at all (added TODO about it) --- .../di/InjectorForJavaDescriptorResolver.java | 1 - .../di/InjectorForTopDownAnalyzerForJvm.java | 1 - .../java/resolver/JavaSupertypeResolver.java | 29 ++++--------------- 3 files changed, 5 insertions(+), 26 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java index 30c16c94502..6dfe7bc2c8b 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java @@ -162,7 +162,6 @@ public class InjectorForJavaDescriptorResolver { javaValueParameterResolver.setTypeTransformer(javaTypeTransformer); javaSupertypeResolver.setClassResolver(javaClassResolver); - javaSupertypeResolver.setTrace(bindingTrace); javaSupertypeResolver.setTypeTransformer(javaTypeTransformer); javaConstructorResolver.setCache(traceBasedJavaResolverCache); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java index c496edc3510..fa7ec976295 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -349,7 +349,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly javaValueParameterResolver.setTypeTransformer(javaTypeTransformer); javaSupertypeResolver.setClassResolver(javaClassResolver); - javaSupertypeResolver.setTrace(bindingTrace); javaSupertypeResolver.setTypeTransformer(javaTypeTransformer); javaConstructorResolver.setCache(traceBasedJavaResolverCache); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java index dce57df46f9..0278e990052 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java @@ -20,8 +20,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassKind; import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; -import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.TypeUsage; import org.jetbrains.jet.lang.resolve.java.structure.JavaClass; @@ -44,15 +42,9 @@ import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.IGNORE_KO public final class JavaSupertypeResolver { public static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object"); - private BindingTrace trace; private JavaTypeTransformer typeTransformer; private JavaClassResolver classResolver; - @Inject - public void setTrace(BindingTrace trace) { - this.trace = trace; - } - @Inject public void setTypeTransformer(JavaTypeTransformer typeTransformer) { this.typeTransformer = typeTransformer; @@ -73,13 +65,7 @@ public final class JavaSupertypeResolver { List result = transformSupertypeList(javaClass.getSupertypes(), typeVariableResolver); - reportIncompleteHierarchyForErrorTypes(classDescriptor, result); - - if (result.isEmpty()) { - return Collections.singletonList(getDefaultSupertype(javaClass)); - } - - return result; + return result.isEmpty() ? Collections.singletonList(getDefaultSupertype(javaClass)) : result; } @NotNull @@ -100,14 +86,6 @@ public final class JavaSupertypeResolver { } } - private void reportIncompleteHierarchyForErrorTypes(@NotNull ClassDescriptor classDescriptor, @NotNull List result) { - for (JetType supertype : result) { - if (ErrorUtils.isErrorType(supertype)) { - trace.record(BindingContext.INCOMPLETE_HIERARCHY, classDescriptor); - } - } - } - @NotNull private List transformSupertypeList( @NotNull Collection supertypes, @@ -126,7 +104,10 @@ public final class JavaSupertypeResolver { } JetType transformed = typeTransformer.transformToType(type, TypeUsage.SUPERTYPE, typeVariableResolver); - if (!ErrorUtils.isErrorType(transformed)) { + if (ErrorUtils.isErrorType(transformed)) { + // TODO: report INCOMPLETE_HIERARCHY + } + else { result.add(TypeUtils.makeNotNullable(transformed)); } }