From 06238329c5491150c655c26a15407a3550403479 Mon Sep 17 00:00:00 2001 From: paltherr Date: Wed, 23 Apr 2003 14:17:41 +0000 Subject: - Added checking of linked fields --- sources/meta/scalac/checkers/MetaCheckTreeNodes.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'sources/meta') diff --git a/sources/meta/scalac/checkers/MetaCheckTreeNodes.java b/sources/meta/scalac/checkers/MetaCheckTreeNodes.java index eeb2dc83e6..9fb2f2018d 100644 --- a/sources/meta/scalac/checkers/MetaCheckTreeNodes.java +++ b/sources/meta/scalac/checkers/MetaCheckTreeNodes.java @@ -14,6 +14,7 @@ import meta.scalac.ast.TreeKind; import meta.scalac.ast.TreeType; import meta.scalac.ast.TreeNode; import meta.scalac.ast.TreeField; +import meta.scalac.ast.TreeFieldLink; public class MetaCheckTreeNodes extends AbstractTreeCaseExpander { @@ -26,6 +27,14 @@ public class MetaCheckTreeNodes extends AbstractTreeCaseExpander { TreeField field = node.fields[i]; printCheckField(node, field.type, field.name, "i"); } + if (node.hasLinkedFields()) { + writer.println("Symbol symbol = tree.symbol();"); + writer.print("if (symbol != null)").lbrace(); + for (int i = 0; i < node.fields.length; i++) + if (node.fields[i].link != null) + printCheckFieldLink(node.fields[i]); + writer.rbrace(); + } } printCheckNode(node); writer.println("return;"); @@ -93,6 +102,14 @@ public class MetaCheckTreeNodes extends AbstractTreeCaseExpander { } } + private void printCheckFieldLink(TreeField field) { + String getter = field.link.getLink(); + writer.println("assert symbol." +getter+ " == " +field+ " :").indent(); + writer.println("\"symbol and tree " + field.link + " differ: \"+" + + "symbol." + getter + "+\" != \"+" +field+ ";"); + writer.undent(); + } + private void printNullValue(TreeNode node, String field) { String expanded = getExpandedField(field); writer.print("\"field " +expanded+ " of class " +node+ " is null\""); -- cgit v1.2.3