diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py index 74d81c1ba..3e3ac81e0 100644 --- a/Lib/test/test_ast.py +++ b/Lib/test/test_ast.py @@ -275,8 +275,6 @@ class AST_Tests(unittest.TestCase): self._assertTrueorder(value, parent_pos) self.assertEqual(ast_node._fields, ast_node.__match_args__) - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_AST_objects(self): x = ast.AST() self.assertEqual(x._fields, ()) diff --git a/vm/src/stdlib/ast.rs b/vm/src/stdlib/ast.rs index 014bfd204..82710272f 100644 --- a/vm/src/stdlib/ast.rs +++ b/vm/src/stdlib/ast.rs @@ -24,8 +24,9 @@ use rustpython_parser::parser; #[pymodule] mod _ast { use crate::{ - builtins::PyStrRef, function::FuncArgs, AsObject, PyObjectRef, PyPayload, PyResult, - VirtualMachine, + builtins::{PyStrRef, PyTupleRef}, + function::FuncArgs, + AsObject, Context, PyObjectRef, PyPayload, PyResult, VirtualMachine, }; #[pyattr] #[pyclass(module = "_ast", name = "AST")] @@ -65,6 +66,11 @@ mod _ast { } Ok(()) } + + #[pyattr(name = "_fields")] + fn fields(ctx: &Context) -> PyTupleRef { + ctx.empty_tuple.clone() + } } #[pyattr(name = "PyCF_ONLY_AST")]