4040 */
4141package com .oracle .graal .python .nodes .classes ;
4242
43+ import com .oracle .graal .python .builtins .objects .type .LazyPythonClass ;
4344import com .oracle .graal .python .builtins .objects .type .PythonAbstractClass ;
4445import com .oracle .graal .python .builtins .objects .type .TypeNodes .GetMroStorageNode ;
4546import com .oracle .graal .python .builtins .objects .type .TypeNodes .IsSameTypeNode ;
@@ -114,8 +115,8 @@ boolean isSubtypeOfConstantType(@SuppressWarnings("unused") PythonAbstractClass
114115 assumptions = "mro.getLookupStableAssumption()" //
115116 )
116117 @ ExplodeLoop
117- boolean isSubtypeOfVariableType (@ SuppressWarnings ("unused" ) PythonAbstractClass derived , PythonAbstractClass cls ,
118- @ Cached ("derived" ) @ SuppressWarnings ("unused" ) PythonAbstractClass cachedDerived ,
118+ boolean isSubtypeOfVariableType (@ SuppressWarnings ("unused" ) LazyPythonClass derived , LazyPythonClass cls ,
119+ @ Cached ("derived" ) @ SuppressWarnings ("unused" ) LazyPythonClass cachedDerived ,
119120 @ Cached ("getMro(cachedDerived)" ) MroSequenceStorage mro ) {
120121 for (PythonAbstractClass n : mro .getInternalClassArray ()) {
121122 if (isSameType (n , cls )) {
@@ -126,7 +127,7 @@ boolean isSubtypeOfVariableType(@SuppressWarnings("unused") PythonAbstractClass
126127 }
127128
128129 @ Specialization (replaces = {"isSubtypeOfConstantType" , "isSubtypeOfVariableType" })
129- boolean issubTypeGeneric (PythonAbstractClass derived , PythonAbstractClass cls ) {
130+ boolean issubTypeGeneric (LazyPythonClass derived , LazyPythonClass cls ) {
130131 for (PythonAbstractClass n : getMro (derived ).getInternalClassArray ()) {
131132 if (isSameType (n , cls )) {
132133 return true ;
@@ -153,15 +154,15 @@ public boolean isSubclass(Object derived, Object cls) {
153154 return abstractIsSubclassNode .execute (derived , cls );
154155 }
155156
156- protected MroSequenceStorage getMro (PythonAbstractClass clazz ) {
157+ protected MroSequenceStorage getMro (LazyPythonClass clazz ) {
157158 if (getMroNode == null ) {
158159 CompilerDirectives .transferToInterpreterAndInvalidate ();
159160 getMroNode = insert (GetMroStorageNode .create ());
160161 }
161162 return getMroNode .execute (clazz );
162163 }
163164
164- private boolean isSameType (PythonAbstractClass left , PythonAbstractClass right ) {
165+ private boolean isSameType (LazyPythonClass left , LazyPythonClass right ) {
165166 if (isSameTypeNode == null ) {
166167 CompilerDirectives .transferToInterpreterAndInvalidate ();
167168 isSameTypeNode = insert (IsSameTypeNode .create ());
0 commit comments