diff --git a/src/main/java/de/tlc4b/analysis/typerestriction/TypeRestrictor.java b/src/main/java/de/tlc4b/analysis/typerestriction/TypeRestrictor.java index ca21d0d56a84d5a66b96e213931b79fb8abd4dd8..89203c97a427b8c49076cc90c0d8c4bde7276eea 100644 --- a/src/main/java/de/tlc4b/analysis/typerestriction/TypeRestrictor.java +++ b/src/main/java/de/tlc4b/analysis/typerestriction/TypeRestrictor.java @@ -196,6 +196,7 @@ public class TypeRestrictor extends DepthFirstAdapter { private void analysePredicate(Node n, HashSet<Node> list, HashSet<Node> ignoreList) { + if (removedNodes.contains(n)) return; @@ -227,23 +228,23 @@ public class TypeRestrictor extends DepthFirstAdapter { putRestrictedType(r_right, new ASetExtensionExpression(element)); removedNodes.add(n); } - if (left instanceof ACoupleExpression) { - ACoupleExpression couple = (ACoupleExpression) left; - PExpression first = couple.getList().get(0); - Node r_first = machineContext.getReferenceNode(first); - PExpression second = couple.getList().get(0); - Node r_second = machineContext.getReferenceNode(second); - - if (list.contains(r_first) && list.contains(r_second) - && isAConstantExpression(right, list, ignoreList)) { - ArrayList<PExpression> element = new ArrayList<PExpression>(); - element.add(right); - putRestrictedTypeOfTuple(r_right, - new ASetExtensionExpression(element)); - removedNodes.add(n); - } - - } + // detecting couples, e.g. (a,b) = (1,3) +// if (left instanceof ACoupleExpression) { +// ACoupleExpression couple = (ACoupleExpression) left; +// PExpression first = couple.getList().get(0); +// Node r_first = machineContext.getReferenceNode(first); +// PExpression second = couple.getList().get(0); +// Node r_second = machineContext.getReferenceNode(second); +// +// if (list.contains(r_first) && list.contains(r_second) +// && isAConstantExpression(right, list, ignoreList)) { +// ArrayList<PExpression> element = new ArrayList<PExpression>(); +// element.add(right); +// putRestrictedTypeOfTuple(r_right, +// new ASetExtensionExpression(element)); +// removedNodes.add(n); +// } +// } return; }