diff --git a/App/lib/core/Handles/HandlesExprCall.vp b/App/lib/core/Handles/HandlesExprCall.vp index 6faf8a5..168f18d 100644 --- a/App/lib/core/Handles/HandlesExprCall.vp +++ b/App/lib/core/Handles/HandlesExprCall.vp @@ -840,12 +840,13 @@ def _ParseLLVMRetTyStr(pool: memhub.MemBuddy | t.CPtr, def _LookupMethodRetTyFromTextLL(pool: memhub.MemBuddy | t.CPtr, class_sha1: str, class_name: str, - method_name: str) -> llvmlite.LLVMType | t.CPtr: + method_name: str, + use_bare: int = 0) -> llvmlite.LLVMType | t.CPtr: """从依赖模块的 text.ll 中查找方法返回类型(委托到 gen._LookupMethodRetTyFromTextLL)""" import lib.core.Gen.Generator as Generator g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr)) if g is not None: - return g._LookupMethodRetTyFromTextLL(pool, class_sha1, class_name, method_name) + return g._LookupMethodRetTyFromTextLL(pool, class_sha1, class_name, method_name, use_bare) return None @@ -1138,12 +1139,13 @@ def _extract_type_args_from_slice(pool: memhub.MemBuddy | t.CPtr, # 且缺少 __new__ 方法名后缀,导致链接报 undefined reference。 # ============================================================ def _infer_generic_ctor_type_arg(pool: memhub.MemBuddy | t.CPtr, - arg_node: ast.AST | t.CPtr) -> str: + arg_node: ast.AST | t.CPtr, + class_name: str) -> str: """从构造实参 AST 推断泛型类型实参名;无法推断时默认 "int"(与 TPC 一致)(委托到 gen._infer_generic_ctor_type_arg)""" import lib.core.Gen.Generator as Generator g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr)) if g is not None: - return g._infer_generic_ctor_type_arg(pool, arg_node) + return g._infer_generic_ctor_type_arg(pool, arg_node, class_name) return "int"