Skip to content

Commit b951089

Browse files
committed
Add GetClassNode specializations for functions and builtin class
1 parent c6d5235 commit b951089

File tree

1 file changed

+18
-0
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/object

1 file changed

+18
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/object/GetClassNode.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@
5151
import com.oracle.graal.python.builtins.objects.cext.PythonNativeVoidPtr;
5252
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes;
5353
import com.oracle.graal.python.builtins.objects.ellipsis.PEllipsis;
54+
import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction;
55+
import com.oracle.graal.python.builtins.objects.function.PFunction;
5456
import com.oracle.graal.python.builtins.objects.object.PythonObject;
57+
import com.oracle.graal.python.builtins.objects.type.PythonBuiltinClass;
5558
import com.oracle.graal.python.nodes.PGuards;
5659
import com.oracle.graal.python.nodes.PNodeWithContext;
5760
import com.oracle.graal.python.nodes.truffle.PythonTypes;
@@ -121,6 +124,21 @@ static Object getNone(@SuppressWarnings("unused") PNone object) {
121124
return PythonBuiltinClassType.PNone;
122125
}
123126

127+
@Specialization
128+
static Object getBuiltinClass(@SuppressWarnings("unused") PythonBuiltinClass object) {
129+
return PythonBuiltinClassType.PythonClass;
130+
}
131+
132+
@Specialization
133+
static Object getFunction(@SuppressWarnings("unused") PFunction object) {
134+
return PythonBuiltinClassType.PFunction;
135+
}
136+
137+
@Specialization
138+
static Object getBuiltinFunction(@SuppressWarnings("unused") PBuiltinFunction object) {
139+
return PythonBuiltinClassType.PBuiltinFunction;
140+
}
141+
124142
@Specialization(guards = {"klass != null", "object.getShape() == cachedShape", "hasInitialClass(cachedShape)"}, limit = "1", assumptions = "singleContextAssumption()")
125143
static Object getPythonObjectConstantClass(@SuppressWarnings("unused") PythonObject object,
126144
@SuppressWarnings("unused") @Cached("object.getShape()") Shape cachedShape,

0 commit comments

Comments
 (0)