From 6912920ab1090e29ee25d5edcade95ee2fda42cc Mon Sep 17 00:00:00 2001
From: Fabian Vu <Fabian.Vu@hhu.de>
Date: Tue, 28 Feb 2023 12:59:57 +0100
Subject: [PATCH] Fix an UnsupportedOperationException in VOTypeChecker

---
 src/main/java/de/prob/voparser/VOTypeChecker.java | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/main/java/de/prob/voparser/VOTypeChecker.java b/src/main/java/de/prob/voparser/VOTypeChecker.java
index 3fa6385..a73e6eb 100644
--- a/src/main/java/de/prob/voparser/VOTypeChecker.java
+++ b/src/main/java/de/prob/voparser/VOTypeChecker.java
@@ -50,7 +50,8 @@ public class VOTypeChecker extends DepthFirstAdapter {
 		PersistentHashSet<AnimatorState> resultAnimatorState = leftAnimatorState;
 		for(AnimatorState state : leftAnimatorState) {
 			if(!rightAnimatorState.contains(state)) {
-				resultAnimatorState.remove(state);
+				// Do not use remove as PersistentHashSet is immutable
+				resultAnimatorState = resultAnimatorState.disjoin(state);
 			}
 		}
 		resultAnimatorState = resultAnimatorState.disjoin(AnimatorState.TRACE);
@@ -68,7 +69,8 @@ public class VOTypeChecker extends DepthFirstAdapter {
 		PersistentHashSet<AnimatorState> resultAnimatorState = leftAnimatorState;
 		for(AnimatorState state : leftAnimatorState) {
 			if(!rightAnimatorState.contains(state)) {
-				resultAnimatorState.remove(state);
+				// Do not use remove as PersistentHashSet is immutable
+				resultAnimatorState = resultAnimatorState.disjoin(state);
 			}
 		}
 		resultAnimatorState = resultAnimatorState.disjoin(AnimatorState.STATE_SPACE);
-- 
GitLab