|
49 | 49 | import com.oracle.graal.python.builtins.PythonBuiltins;
|
50 | 50 | import com.oracle.graal.python.builtins.modules.PosixModuleBuiltins;
|
51 | 51 | import com.oracle.graal.python.builtins.objects.PNone;
|
| 52 | +import com.oracle.graal.python.builtins.objects.function.PArguments; |
| 53 | +import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary; |
52 | 54 | import com.oracle.graal.python.nodes.SpecialMethodNames;
|
53 | 55 | import com.oracle.graal.python.nodes.attributes.ReadAttributeFromObjectNode;
|
54 | 56 | import com.oracle.graal.python.nodes.attributes.WriteAttributeToObjectNode;
|
55 |
| -import com.oracle.graal.python.nodes.expression.CastToBooleanNode; |
56 | 57 | import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
|
57 | 58 | import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
|
58 | 59 | import com.oracle.graal.python.nodes.function.builtins.PythonUnaryBuiltinNode;
|
|
62 | 63 | import com.oracle.truffle.api.dsl.NodeFactory;
|
63 | 64 | import com.oracle.truffle.api.dsl.Specialization;
|
64 | 65 | import com.oracle.truffle.api.frame.VirtualFrame;
|
| 66 | +import com.oracle.truffle.api.library.CachedLibrary; |
65 | 67 |
|
66 | 68 | @CoreFunctions(extendClasses = PythonBuiltinClassType.PDirEntry)
|
67 | 69 | public class DirEntryBuiltins extends PythonBuiltins {
|
@@ -128,11 +130,11 @@ boolean testNone(PDirEntry self, @SuppressWarnings("unused") PNone followSymlink
|
128 | 130 | return testBool(self, true);
|
129 | 131 | }
|
130 | 132 |
|
131 |
| - @Specialization |
| 133 | + @Specialization(limit = "1") |
132 | 134 | boolean testAny(VirtualFrame frame, Object self, Object followSymlinks,
|
133 |
| - @Cached("createIfTrueNode()") CastToBooleanNode isTrue) { |
| 135 | + @CachedLibrary("followSymlinks") PythonObjectLibrary lib) { |
134 | 136 | if (self instanceof PDirEntry) {
|
135 |
| - return testBool((PDirEntry) self, isTrue.executeBoolean(frame, followSymlinks)); |
| 137 | + return testBool((PDirEntry) self, lib.isTrueWithState(followSymlinks, PArguments.getThreadState(frame))); |
136 | 138 | } else {
|
137 | 139 | throw raise(PythonBuiltinClassType.TypeError, "descriptor 'is_dir' requires a 'posix.DirEntry' object but received a '%p'", self);
|
138 | 140 | }
|
|
0 commit comments