@@ -794,6 +794,12 @@ open class ClassId @JvmOverloads constructor(
794794 open val outerClass: Class <* >?
795795 get() = jClass.enclosingClass
796796
797+ open val superclass: Class <* >?
798+ get() = jClass.superclass
799+
800+ open val interfaces: Array <Class <* >>
801+ get() = jClass.interfaces
802+
797803 /* *
798804 * For member classes returns a name including
799805 * enclosing classes' simple names e.g. `A.B`.
@@ -846,7 +852,7 @@ class BuiltinClassId(
846852 elementClassId : ClassId ? = null ,
847853 override val canonicalName : String ,
848854 override val simpleName : String ,
849- // by default we assume that the class is not a member class
855+ // by default, we assume that the class is not a member class
850856 override val simpleNameWithEnclosings : String = simpleName,
851857 override val isNullable : Boolean = false ,
852858 override val isPublic : Boolean = true ,
@@ -864,6 +870,10 @@ class BuiltinClassId(
864870 override val allMethods : Sequence <MethodId > = emptySequence(),
865871 override val allConstructors : Sequence <ConstructorId > = emptySequence(),
866872 override val outerClass : Class <* >? = null ,
873+ // by default, we assume that the class does not have a superclass (other than Object)
874+ override val superclass : Class <* >? = java.lang.Object : :class.java,
875+ // by default, we assume that the class does not implement any interfaces
876+ override val interfaces : Array <Class <* >> = emptyArray(),
867877 override val packageName : String =
868878 when (val index = canonicalName.lastIndexOf('.')) {
869879 -1 , 0 -> " "
0 commit comments