Eliminate usages of ResolverClassData#getClassDescriptor() in DescriptorResolverUtils#getSupertypes()

This commit is contained in:
Pavel V. Talanov
2012-11-04 20:31:42 +04:00
parent 956a34b578
commit bf97738991
3 changed files with 6 additions and 14 deletions
@@ -24,9 +24,6 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.resolve.constants.StringValue;
import org.jetbrains.jet.lang.resolve.java.data.ResolverClassData;
import org.jetbrains.jet.lang.resolve.java.data.ResolverNamespaceData;
import org.jetbrains.jet.lang.resolve.java.data.ResolverScopeData;
import org.jetbrains.jet.lang.resolve.java.kt.PsiAnnotationWithFlags;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiClassWrapper;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMemberWrapper;
@@ -63,16 +60,11 @@ public final class DescriptorResolverUtils {
return kind == ClassKind.CLASS || kind == ClassKind.TRAIT || kind == ClassKind.ENUM_CLASS;
}
public static Collection<JetType> getSupertypes(@NotNull ResolverScopeData scope) {
if (scope instanceof ResolverClassData) {
return ((ResolverClassData) scope).getClassDescriptor().getSupertypes();
}
else if (scope instanceof ResolverNamespaceData) {
return Collections.emptyList();
}
else {
throw new IllegalStateException();
public static Collection<? extends JetType> getSupertypes(@NotNull ClassOrNamespaceDescriptor classOrNamespaceDescriptor) {
if (classOrNamespaceDescriptor instanceof ClassDescriptor) {
return ((ClassDescriptor) classOrNamespaceDescriptor).getTypeConstructor().getSupertypes();
}
return Collections.emptyList();
}
public static Modality resolveModality(PsiMemberWrapper memberWrapper, boolean isFinal) {
@@ -264,7 +264,7 @@ public final class JavaFunctionResolver {
Name methodName
) {
Set<SimpleFunctionDescriptor> r = Sets.newLinkedHashSet();
for (JetType supertype : DescriptorResolverUtils.getSupertypes(scopeData)) {
for (JetType supertype : DescriptorResolverUtils.getSupertypes(scopeData.getClassOrNamespaceDescriptor())) {
for (FunctionDescriptor function : supertype.getMemberScope().getFunctions(methodName)) {
r.add((SimpleFunctionDescriptor) function);
}
@@ -432,7 +432,7 @@ public final class JavaPropertyResolver {
@NotNull
private static Set<PropertyDescriptor> getPropertiesFromSupertypes(ResolverScopeData scopeData, Name propertyName) {
Set<PropertyDescriptor> r = new HashSet<PropertyDescriptor>();
for (JetType supertype : DescriptorResolverUtils.getSupertypes(scopeData)) {
for (JetType supertype : DescriptorResolverUtils.getSupertypes(scopeData.getClassOrNamespaceDescriptor())) {
for (VariableDescriptor property : supertype.getMemberScope().getProperties(propertyName)) {
r.add((PropertyDescriptor) property);
}