Skip to content

Commit da98de0

Browse files
committed
use convenience method to get actuall python class
1 parent 3bb8ff4 commit da98de0

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/function/BuiltinFunctionBuiltins.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,18 @@
3434
import com.oracle.graal.python.builtins.CoreFunctions;
3535
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
3636
import com.oracle.graal.python.builtins.PythonBuiltins;
37-
import com.oracle.graal.python.builtins.objects.type.LazyPythonClass;
3837
import com.oracle.graal.python.builtins.objects.type.PythonClass;
3938
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
4039
import com.oracle.graal.python.nodes.function.builtins.PythonUnaryBuiltinNode;
4140
import com.oracle.graal.python.nodes.truffle.PythonArithmeticTypes;
4241
import com.oracle.graal.python.runtime.exception.PythonErrorType;
4342
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
43+
import com.oracle.truffle.api.dsl.Cached;
4444
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
4545
import com.oracle.truffle.api.dsl.NodeFactory;
4646
import com.oracle.truffle.api.dsl.Specialization;
4747
import com.oracle.truffle.api.dsl.TypeSystemReference;
48+
import com.oracle.truffle.api.profiles.ConditionProfile;
4849

4950
@CoreFunctions(extendClasses = PythonBuiltinClassType.PBuiltinFunction)
5051
public class BuiltinFunctionBuiltins extends PythonBuiltins {
@@ -83,13 +84,9 @@ Object objclassMissing(@SuppressWarnings("unused") PBuiltinFunction self) {
8384

8485
@Specialization(guards = "self.getEnclosingType() != null")
8586
@TruffleBoundary
86-
PythonClass objclass(PBuiltinFunction self) {
87-
LazyPythonClass enclosingType = self.getEnclosingType();
88-
if (enclosingType instanceof PythonBuiltinClassType) {
89-
return getCore().lookupType((PythonBuiltinClassType) enclosingType);
90-
} else {
91-
return (PythonClass) enclosingType;
92-
}
87+
PythonClass objclass(PBuiltinFunction self,
88+
@Cached("createBinaryProfile()") ConditionProfile profile) {
89+
return getPythonClass(self.getEnclosingType(), profile);
9390
}
9491
}
9592
}

0 commit comments

Comments
 (0)