@@ -794,6 +794,12 @@ open class ClassId @JvmOverloads constructor(
794
794
open val outerClass: Class <* >?
795
795
get() = jClass.enclosingClass
796
796
797
+ open val superclass: Class <* >?
798
+ get() = jClass.superclass
799
+
800
+ open val interfaces: Array <Class <* >>
801
+ get() = jClass.interfaces
802
+
797
803
/* *
798
804
* For member classes returns a name including
799
805
* enclosing classes' simple names e.g. `A.B`.
@@ -846,7 +852,7 @@ class BuiltinClassId(
846
852
elementClassId : ClassId ? = null ,
847
853
override val canonicalName : String ,
848
854
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
850
856
override val simpleNameWithEnclosings : String = simpleName,
851
857
override val isNullable : Boolean = false ,
852
858
override val isPublic : Boolean = true ,
@@ -864,6 +870,10 @@ class BuiltinClassId(
864
870
override val allMethods : Sequence <MethodId > = emptySequence(),
865
871
override val allConstructors : Sequence <ConstructorId > = emptySequence(),
866
872
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(),
867
877
override val packageName : String =
868
878
when (val index = canonicalName.lastIndexOf('.')) {
869
879
-1 , 0 -> " "
0 commit comments