From db80178d2e2c5bc9301608018b4551855575bb4f Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Fri, 28 Aug 2026 08:23:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(tpc):=20is=5Finstance=5Fvar=20=E5=88=A4?= =?UTF-8?q?=E5=AE=9A=E8=B1=81=E5=85=8D=E4=B8=8E=E5=AD=90=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E7=9F=AD=E5=90=8D=E5=90=8C=E5=90=8D=E7=9A=84=E5=B7=B2=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=8F=98=E9=87=8F=EF=BC=88base.kind=20=E8=AF=AF?= =?UTF-8?q?=E5=88=A4=E4=B8=BA=E6=A8=A1=E5=9D=97=E8=B7=AF=E5=BE=84=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/core/Handles/HandlesExprCall.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/core/Handles/HandlesExprCall.py b/lib/core/Handles/HandlesExprCall.py index 93c8741..068a7fd 100644 --- a/lib/core/Handles/HandlesExprCall.py +++ b/lib/core/Handles/HandlesExprCall.py @@ -569,7 +569,12 @@ class ExprCallHandle(BaseHandle): Node.func.value.id in Gen.var_struct_class or Node.func.value.id in Gen.variables or Node.func.value.id in Gen.global_vars - ) and Node.func.value.id not in Gen.ModuleSha1Map + ) and ( + Node.func.value.id not in Gen.ModuleSha1Map + or Node.func.value.id in Gen.var_struct_class + or Node.func.value.id in Gen.variables + or Node.func.value.id in Gen.global_vars + ) is_class_name = isinstance(Node.func.value, ast.Name) and (Node.func.value.id in Gen.structs or self.Trans.SymbolTable.is_struct(Node.func.value.id)) # 链式方法调用:如 self.__mbuddy__.alloc() 或 trans.ImportsH.HandleImport(child) # Node.func.value 是 ast.Attribute,基础是实例变量(如 self/trans) @@ -586,7 +591,10 @@ class ExprCallHandle(BaseHandle): (_base_name in Gen.var_struct_class or _base_name in Gen.variables or _base_name in Gen.global_vars) - and _base_name not in Gen.ModuleSha1Map + and (_base_name not in Gen.ModuleSha1Map + or _base_name in Gen.var_struct_class + or _base_name in Gen.variables + or _base_name in Gen.global_vars) ): _is_chained_instance = True if (is_instance_var or _is_chained_instance) and not is_class_name: