|
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