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); javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaSupertypeResolver.setClassResolver(javaClassResolver); javaSupertypeResolver.setClassResolver(javaClassResolver);
javaSupertypeResolver.setTrace(bindingTrace);
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer); javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setCache(traceBasedJavaResolverCache); javaConstructorResolver.setCache(traceBasedJavaResolverCache);
@@ -349,7 +349,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer); javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaSupertypeResolver.setClassResolver(javaClassResolver); javaSupertypeResolver.setClassResolver(javaClassResolver);
javaSupertypeResolver.setTrace(bindingTrace);
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer); javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setCache(traceBasedJavaResolverCache); 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.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ClassKind; import org.jetbrains.jet.lang.descriptors.ClassKind;
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; 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.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.TypeUsage; import org.jetbrains.jet.lang.resolve.java.TypeUsage;
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass; 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 final class JavaSupertypeResolver {
public static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object"); public static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object");
private BindingTrace trace;
private JavaTypeTransformer typeTransformer; private JavaTypeTransformer typeTransformer;
private JavaClassResolver classResolver; private JavaClassResolver classResolver;
@Inject
public void setTrace(BindingTrace trace) {
this.trace = trace;
}
@Inject @Inject
public void setTypeTransformer(JavaTypeTransformer typeTransformer) { public void setTypeTransformer(JavaTypeTransformer typeTransformer) {
this.typeTransformer = typeTransformer; this.typeTransformer = typeTransformer;
@@ -73,13 +65,7 @@ public final class JavaSupertypeResolver {
List<JetType> result = transformSupertypeList(javaClass.getSupertypes(), typeVariableResolver); List<JetType> result = transformSupertypeList(javaClass.getSupertypes(), typeVariableResolver);
reportIncompleteHierarchyForErrorTypes(classDescriptor, result); return result.isEmpty() ? Collections.singletonList(getDefaultSupertype(javaClass)) : result;
if (result.isEmpty()) {
return Collections.singletonList(getDefaultSupertype(javaClass));
}
return result;
} }
@NotNull @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 @NotNull
private List<JetType> transformSupertypeList( private List<JetType> transformSupertypeList(
@NotNull Collection<JavaClassifierType> supertypes, @NotNull Collection<JavaClassifierType> supertypes,
@@ -126,7 +104,10 @@ public final class JavaSupertypeResolver {
} }
JetType transformed = typeTransformer.transformToType(type, TypeUsage.SUPERTYPE, typeVariableResolver); 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)); result.add(TypeUtils.makeNotNullable(transformed));
} }
} }