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)
This commit is contained in:
Alexander Udalov
2013-08-08 18:14:10 +04:00
parent af2c03ad70
commit 94a99d33ea
3 changed files with 5 additions and 26 deletions
@@ -162,7 +162,6 @@ public class InjectorForJavaDescriptorResolver {
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaSupertypeResolver.setClassResolver(javaClassResolver);
javaSupertypeResolver.setTrace(bindingTrace);
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setCache(traceBasedJavaResolverCache);
@@ -349,7 +349,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaSupertypeResolver.setClassResolver(javaClassResolver);
javaSupertypeResolver.setTrace(bindingTrace);
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setCache(traceBasedJavaResolverCache);
@@ -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<JetType> 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<JetType> result) {
for (JetType supertype : result) {
if (ErrorUtils.isErrorType(supertype)) {
trace.record(BindingContext.INCOMPLETE_HIERARCHY, classDescriptor);
}
}
}
@NotNull
private List<JetType> transformSupertypeList(
@NotNull Collection<JavaClassifierType> 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));
}
}