From 2b5286ea1121fe890c06f706380e0d9aed972a6a Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Sat, 29 Aug 2026 07:26:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(ast):=20parse=5Fexpression=20=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=B3=A8=E8=A7=A3=E6=94=B9=E4=B8=BA=20Expression=20|?= =?UTF-8?q?=20t.CPtr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - parse_expression 实际返回 Expression 包装节点(body 字段为实际表达式), 原注解 AST | t.CPtr 类型不精确——调用方需强转才能访问 body - 源头修正返回类型,调用方直接 expr_node.body 即可 --- includes/ast/__init__.vp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/ast/__init__.vp b/includes/ast/__init__.vp index b87234a..4ea601f 100644 --- a/includes/ast/__init__.vp +++ b/includes/ast/__init__.vp @@ -96,7 +96,7 @@ def parse(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: return tree -def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: +def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> Expression | t.CPtr: """Parse a single expression, return the Expression node. Parameters: @@ -104,7 +104,7 @@ def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr pool: memhub.MemManager instance, to allocate AST nodes Returns: - Expression node, or None + Expression node (包装节点,body 字段为实际表达式), or None """ if src is None or pool is None: return None