diff --git a/src/main/java/org/jcnc/snow/compiler/parser/ast/StructNode.java b/src/main/java/org/jcnc/snow/compiler/parser/ast/StructNode.java index 488933a..b558157 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/ast/StructNode.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/ast/StructNode.java @@ -20,7 +20,7 @@ import java.util.StringJoiner; * @param name 结构体名称 * @param parent 父类名称(无继承时为 {@code null}) * @param fields 字段声明列表 - * @param init 构造函数(可为 null) + * @param inits 构造函数(可为 null) * @param methods 方法列表 * @param context 源码位置信息 */ @@ -28,7 +28,7 @@ public record StructNode( String name, String parent, List fields, - FunctionNode init, + List inits, List methods, NodeContext context ) implements Node { @@ -40,19 +40,13 @@ public record StructNode( */ @Override public String toString() { - // 1) 构造字段声明的字符串(类型+名称) - StringJoiner fj = new StringJoiner(", "); - fields.forEach(d -> fj.add(d.getType() + " " + d.getName())); - - // 2) 构造方法名列表字符串 - StringJoiner mj = new StringJoiner(", "); - methods.forEach(f -> mj.add(f.name())); - - // 3) 合成最终输出 - return "Struct(name=" + name + - ", parent=" + (parent == null ? "null" : parent) + - ", fields=[" + fj + "], init=" + - (init == null ? "null" : init.name()) + - ", methods=[" + mj + "])"; + return new StringJoiner(", ", "StructNode[", "]") + .add("name=" + name) + .add("parent=" + parent) + .add("fields=" + fields.size()) + .add("ctors=" + (inits == null ? 0 : inits.size())) + .add("methods=" + methods.size()) + .toString(); } + }