示例#1
0
 public static boolean isDirectSubclass(
     @NotNull ClassDescriptor subClass, @NotNull ClassDescriptor superClass) {
   for (KotlinType superType : subClass.getTypeConstructor().getSupertypes()) {
     if (isSameClass(superType, superClass.getOriginal())) {
       return true;
     }
   }
   return false;
 }
示例#2
0
 @Nullable
 public static ClassDescriptor getSuperClassDescriptor(@NotNull ClassDescriptor classDescriptor) {
   Collection<KotlinType> superclassTypes = classDescriptor.getTypeConstructor().getSupertypes();
   for (KotlinType type : superclassTypes) {
     ClassDescriptor superClassDescriptor = getClassDescriptorForType(type);
     if (superClassDescriptor.getKind() != ClassKind.INTERFACE) {
       return superClassDescriptor;
     }
   }
   return null;
 }
示例#3
0
 @NotNull
 public static KotlinType getSuperClassType(@NotNull ClassDescriptor classDescriptor) {
   Collection<KotlinType> superclassTypes = classDescriptor.getTypeConstructor().getSupertypes();
   for (KotlinType type : superclassTypes) {
     ClassDescriptor superClassDescriptor = getClassDescriptorForType(type);
     if (superClassDescriptor.getKind() != ClassKind.INTERFACE) {
       return type;
     }
   }
   return getBuiltIns(classDescriptor).getAnyType();
 }
示例#4
0
 @NotNull
 public static List<ClassDescriptor> getSuperclassDescriptors(
     @NotNull ClassDescriptor classDescriptor) {
   Collection<KotlinType> superclassTypes = classDescriptor.getTypeConstructor().getSupertypes();
   List<ClassDescriptor> superClassDescriptors = new ArrayList<ClassDescriptor>();
   for (KotlinType type : superclassTypes) {
     ClassDescriptor result = getClassDescriptorForType(type);
     if (!isAny(result)) {
       superClassDescriptors.add(result);
     }
   }
   return superClassDescriptors;
 }