diff --git a/App/lib/core/Gen/Expr/ExprGenBase.vp b/App/lib/core/Gen/Expr/ExprGenBase.vp index fa2aaff..da39d12 100644 --- a/App/lib/core/Gen/Expr/ExprGenBase.vp +++ b/App/lib/core/Gen/Expr/ExprGenBase.vp @@ -486,8 +486,7 @@ novirtual class ExprGenBase: if nm is None or trans is None: return None ve: GenTypes.VarEntry* = self.Gen.VarGen.lookup_var_entry(trans.SymTab, nm) if ve is None or ve.Alloca is None or ve.Spec is None: return None - # 必须是槽本身(若已被加载成指针值,说明源本来就是个指针,不豁免)。 - if ve.Alloca is not val: return None + # 值语义槽:按名解析到该变量的值类型;此处仅做类型级判定(不依赖槽身份,避免别名/重复登记漏判)。 # 声明的就是 T*(PtrLevel>=1):真指针,必须显式解引用。 if ve.Spec.PtrLevel != 0: return None if self.is_ptr_type(ve.Alloca.Ty) == 0: return None