From 31aa961d35ab67c655593b96c8572705340585fe Mon Sep 17 00:00:00 2001 From: dohan <dohan001@hhu.de> Date: Thu, 19 Oct 2017 12:37:30 +0200 Subject: [PATCH] fix detection of used definitions --- .../de/tla2b/translation/BDefinitionsFinder.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/tla2b/translation/BDefinitionsFinder.java b/src/main/java/de/tla2b/translation/BDefinitionsFinder.java index cf28ac6..949138d 100644 --- a/src/main/java/de/tla2b/translation/BDefinitionsFinder.java +++ b/src/main/java/de/tla2b/translation/BDefinitionsFinder.java @@ -2,6 +2,7 @@ package de.tla2b.translation; import java.util.ArrayList; import java.util.HashSet; +import java.util.Set; import tla2sany.semantic.ASTConstants; import tla2sany.semantic.AssumeNode; @@ -49,11 +50,6 @@ public class BDefinitionsFinder extends AbstractASTVisitor implements ASTConstan bDefinitionsSet.add(def); } - HashSet<OpDefNode> temp = new HashSet<>(bDefinitionsSet); - for (OpDefNode opDefNode : temp) { - visitExprNode(opDefNode.getBody()); - } - for (OpDefNode opDef : specAnalyser.getModuleNode().getOpDefs()) { String defName = opDef.getName().toString(); // GOAL, ANIMATION_FUNCTION, ANIMATION_IMGxx, SET_PREF_xxx, @@ -62,11 +58,19 @@ public class BDefinitionsFinder extends AbstractASTVisitor implements ASTConstan bDefinitionsSet.add(opDef); } } + + HashSet<OpDefNode> temp = new HashSet<>(bDefinitionsSet); + for (OpDefNode opDefNode : temp) { + visitExprNode(opDefNode.getBody()); + } + } + @Override public void visitUserDefinedNode(OpApplNode n) { OpDefNode def = (OpDefNode) n.getOperator(); if (bDefinitionsSet.add(def)) { + // visit body only once visitExprNode(def.getBody()); } for (ExprOrOpArgNode exprOrOpArgNode : n.getArgs()) { @@ -74,7 +78,7 @@ public class BDefinitionsFinder extends AbstractASTVisitor implements ASTConstan } } - public HashSet<OpDefNode> getBDefinitionsSet() { + public Set<OpDefNode> getBDefinitionsSet() { return bDefinitionsSet; } -- GitLab