From 33f404202f3e5d14cb59209ac0b4071bfb5fc8a8 Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Fri, 11 Oct 2024 11:02:21 +0200
Subject: [PATCH] Detect only AOperationCallSubstitution with return values as
 unsupported

---
 src/main/java/de/tlc4b/analysis/MachineContext.java           | 4 ++++
 .../java/de/tlc4b/analysis/UnsupportedConstructsFinder.java   | 1 -
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/main/java/de/tlc4b/analysis/MachineContext.java b/src/main/java/de/tlc4b/analysis/MachineContext.java
index 3f87105..57e89bf 100644
--- a/src/main/java/de/tlc4b/analysis/MachineContext.java
+++ b/src/main/java/de/tlc4b/analysis/MachineContext.java
@@ -11,6 +11,7 @@ import de.tlc4b.MP;
 import de.tlc4b.TLC4BGlobals;
 import de.tlc4b.analysis.transformation.DefinitionsSorter;
 import de.tlc4b.analysis.transformation.MachineClauseSorter;
+import de.tlc4b.exceptions.NotSupportedException;
 import de.tlc4b.exceptions.ScopeException;
 import de.tlc4b.ltl.LTLBPredicate;
 import de.tlc4b.ltl.LTLFormulaVisitor;
@@ -652,6 +653,9 @@ public class MachineContext extends DepthFirstAdapter {
 
 	@Override
 	public void caseAOperationCallSubstitution(AOperationCallSubstitution node) {
+		if (!node.getResultIdentifiers().isEmpty()) {
+			throw new NotSupportedException("Operation calls with return values are not supported.");
+		}
 		String name = Utils.getTIdentifierListAsString(node.getOperation());
 		Node o = operations.get(name);
 		if (o != null) {
diff --git a/src/main/java/de/tlc4b/analysis/UnsupportedConstructsFinder.java b/src/main/java/de/tlc4b/analysis/UnsupportedConstructsFinder.java
index 69d7ea1..21ddc60 100644
--- a/src/main/java/de/tlc4b/analysis/UnsupportedConstructsFinder.java
+++ b/src/main/java/de/tlc4b/analysis/UnsupportedConstructsFinder.java
@@ -25,7 +25,6 @@ public class UnsupportedConstructsFinder extends DepthFirstAdapter {
 		add(AWhileSubstitution.class);
 		add(AVarSubstitution.class);
 		add(ACaseSubstitution.class);
-		add(AOperationCallSubstitution.class);
 
 		add(AImplementationMachineParseUnit.class);
 
-- 
GitLab