From 7017b6b027aafe9f2eeac5da0ec2f9c721ee9795 Mon Sep 17 00:00:00 2001 From: xRain Date: Tue, 18 Aug 2026 01:15:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20@SerializerParent=20=E5=AE=8F?= =?UTF-8?q?=E6=94=BE=E5=AE=BD=E2=80=94=E2=80=94=E6=94=AF=E6=8C=81=E4=BB=BB?= =?UTF-8?q?=E6=84=8F=E5=AD=97=E6=AE=B5=E5=90=8D=EF=BC=88=E4=B8=8D=E8=A6=81?= =?UTF-8?q?=E6=B1=82=20=5F=20=E5=89=8D=E7=BC=80=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - isSerializableField 去掉 _ 前缀校验,任意 var/let 字段(有类型注解)均可导出/导入 - 配合 simapi-cj DTO 去下划线(code/message/data 等无 _ 前缀字段) --- src/macros/SerializerParentMacro.cj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/macros/SerializerParentMacro.cj b/src/macros/SerializerParentMacro.cj index 3ccb39b..c71259d 100644 --- a/src/macros/SerializerParentMacro.cj +++ b/src/macros/SerializerParentMacro.cj @@ -85,7 +85,7 @@ public macro SerializerParent(input: Tokens): Tokens { throw ASTException("@SerializerParent 只能标注在 class 声明上(不支持 struct/interface/enum)") } -/// 收集类体内的可序列化字段(_ 前缀 + 类型注解;跳过 @SerializerIgnore;@SerializerPropertyName 用注解名) +/// 收集类体内的可序列化字段(任意 var/let 字段 + 类型注解;跳过 @SerializerIgnore;@SerializerPropertyName 用注解名) private func collectFields(cd: ClassDecl): ArrayList { var result = ArrayList() for (d in cd.body.decls) { @@ -118,9 +118,9 @@ private func collectFields(cd: ClassDecl): ArrayList { result } -/// 普通字段是否可序列化:_ 前缀 + 有类型注解 +/// 普通字段是否可序列化:有类型注解(不要求 _ 前缀) private func isSerializableField(vd: VarDecl): Bool { - vd.identifier.value.startsWith("_") && !vd.colon.value.isEmpty() + !vd.colon.value.isEmpty() } /// 从 MacroExpandDecl 提取内部 VarDecl(带注解的字段声明)