From d6782d8945b844c7f31015eb3692bf4dde554029 Mon Sep 17 00:00:00 2001 From: Jan Gruteser <jan.gruteser@hhu.de> Date: Thu, 2 Jan 2025 17:03:11 +0100 Subject: [PATCH] replace unifications and setType in evalBoundedVariables --- .../java/de/tla2b/analysis/TypeChecker.java | 30 ++++--------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/src/main/java/de/tla2b/analysis/TypeChecker.java b/src/main/java/de/tla2b/analysis/TypeChecker.java index 63bd3e1..ba4d988 100644 --- a/src/main/java/de/tla2b/analysis/TypeChecker.java +++ b/src/main/java/de/tla2b/analysis/TypeChecker.java @@ -732,35 +732,18 @@ public class TypeChecker extends BuiltInOPs implements BBuildIns, TranslationGlo if (params[i].length == 1) { FormalParamNode p = params[i][0]; FunctionType expected = new FunctionType(IntType.getInstance(), new UntypedType()); - try { - expected = (FunctionType) expected.unify(subType); - } catch (UnificationException e) { - throw new TypeErrorException(String.format("Expected %s, found %s at parameter %s,%n%s", - expected, subType, p.getName().toString(), bounds[i].getLocation())); - } + expected = (FunctionType) unify(expected, subType, "parameter " + p.getName(), bounds[i]); domList.add(expected); symbolNodeList.add(p); - p.setToolObject(TYPE_ID, expected.getRange()); - if (expected.getRange() instanceof AbstractHasFollowers) { - ((AbstractHasFollowers) expected.getRange()).addFollower(p); - } + setTypeAndFollowers(p, expected.getRange()); } else { TupleType tuple = new TupleType(params[i].length); - try { - tuple = (TupleType) tuple.unify(subType); - } catch (UnificationException e) { - throw new TypeErrorException(String.format("Expected %s, found %s at tuple,%n%s", tuple, - subType, bounds[i].getLocation())); - } + tuple = (TupleType) unify(tuple, subType, "tuple", bounds[i]); domList.add(tuple); for (int j = 0; j < params[i].length; j++) { FormalParamNode p = params[i][j]; symbolNodeList.add(p); - TLAType paramType = tuple.getTypes().get(j); - p.setToolObject(TYPE_ID, paramType); - if (paramType instanceof AbstractHasFollowers) { - ((AbstractHasFollowers) paramType).addFollower(p); - } + setTypeAndFollowers(p, tuple.getTypes().get(j)); } } @@ -771,10 +754,7 @@ public class TypeChecker extends BuiltInOPs implements BBuildIns, TranslationGlo domList.add(subType); FormalParamNode p = params[i][j]; symbolNodeList.add(p); - p.setToolObject(TYPE_ID, subType); - if (subType instanceof AbstractHasFollowers) { - ((AbstractHasFollowers) subType).addFollower(p); - } + setTypeAndFollowers(p, subType); } } } -- GitLab