From 82ad5da7c7da03ad5b0d1a314f87fe01aef606b9 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Sun, 11 Oct 2026 09:34:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(narrow):=20len()=20=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E8=B5=8B=E7=BB=99=20int=20=E7=9A=84=E5=BD=A2=E5=8F=82/?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC=E8=AE=A1=E6=95=B0=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E6=98=BE=E5=BC=8F=20int(...)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FuncGenDef 的 fd_param_count/fd_default_count/tfd_param_count/tfd_default_count 与 ClassGenVTable 的 md_param_count/md_default_count 原本直接接收 len()(sizet),触发隐式窄化;改 int(len(...)) 保持原有截断语义 --- App/lib/core/Gen/Class/ClassGenVTable.vp | 6 +++--- App/lib/core/Gen/Func/FuncGenDef.vp | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/App/lib/core/Gen/Class/ClassGenVTable.vp b/App/lib/core/Gen/Class/ClassGenVTable.vp index e2cfc6b..0c023e5 100644 --- a/App/lib/core/Gen/Class/ClassGenVTable.vp +++ b/App/lib/core/Gen/Class/ClassGenVTable.vp @@ -536,12 +536,12 @@ novirtual class ClassGenVTable(ClassGenBase.ClassGenBase): md_ags: ast.Arguments* = ast.Arguments*(md_args_node) if md_ags.args is not None: md_alist: list[ast.AST*]* = md_ags.args - if is_static_m != 0: md_param_count = len(md_alist) - else: md_param_count = len(md_alist) - 1 + if is_static_m != 0: md_param_count = int(len(md_alist)) + else: md_param_count = int(len(md_alist)) - 1 if md_ags.defaults is not None: md_dlist: list[ast.AST*]* = md_ags.defaults md_defaults = md_dlist - md_default_count = len(md_dlist) + md_default_count = int(len(md_dlist)) # Register in the function table (lookup name ClassName.method_name, suffix matching). max_funcs: int = 1024 diff --git a/App/lib/core/Gen/Func/FuncGenDef.vp b/App/lib/core/Gen/Func/FuncGenDef.vp index aaf5c55..3907f3e 100644 --- a/App/lib/core/Gen/Func/FuncGenDef.vp +++ b/App/lib/core/Gen/Func/FuncGenDef.vp @@ -180,11 +180,11 @@ novirtual class FuncGenDef(CallGenBase.CallGenBase): fd_ags: ast.Arguments* = ast.Arguments*(fd_args_node) if fd_ags.args is not None: fd_alist: list[ast.AST*]* = fd_ags.args - fd_param_count = len(fd_alist) + fd_param_count = int(len(fd_alist)) if fd_ags.defaults is not None: fd_dlist: list[ast.AST*]* = fd_ags.defaults fd_defaults = fd_dlist - fd_default_count = len(fd_dlist) + fd_default_count = int(len(fd_dlist)) # Register in the function table (using bare fd.name, not mangled_name) max_funcs: int = 1024 @@ -490,11 +490,11 @@ novirtual class FuncGenDef(CallGenBase.CallGenBase): tfd_ags: ast.Arguments* = ast.Arguments*(args_node) if tfd_ags.args is not None: tfd_alist: list[ast.AST*]* = tfd_ags.args - tfd_param_count = len(tfd_alist) + tfd_param_count = int(len(tfd_alist)) if tfd_ags.defaults is not None: tfd_dlist: list[ast.AST*]* = tfd_ags.defaults tfd_defaults = tfd_dlist - tfd_default_count = len(tfd_dlist) + tfd_default_count = int(len(tfd_dlist)) # Register in the function table max_funcs: int = 1024