diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/TypeInference.java b/AlgebraicDataflowArchitectureModel/src/algorithms/TypeInference.java index 2969692..5f63542 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithms/TypeInference.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/TypeInference.java @@ -869,7 +869,7 @@ newJsonType = createNewJsonType(newMemberTypes, DataConstraintModel.typeJson); } } - if (jsonType != newJsonType && newJsonType != null) { + if (jsonType != newJsonType && newJsonType != null && !newJsonType.isAncestorOf(jsonType)) { // Update the type of the json term and record the updated expression. t.setType(newJsonType); jsonType = newJsonType; @@ -909,7 +909,7 @@ newJsonType = createNewJsonType(newMemberTypes, DataConstraintModel.typeJson); } } - if (jsonType != newJsonType && newJsonType != null) { + if (jsonType != newJsonType && newJsonType != null && !newJsonType.isAncestorOf(jsonType)) { // Update the type of the json argument and record the updated expression. if (jsonArg instanceof Variable) { ((Variable) jsonArg).setType(newJsonType); @@ -967,7 +967,7 @@ } } } - if (jsonType != newJsonType && newJsonType != null) { + if (jsonType != newJsonType && newJsonType != null && !newJsonType.isAncestorOf(jsonType)) { // Update the type of the json argument and record the updated expression. if (jsonArg instanceof Variable) { ((Variable) jsonArg).setType(newJsonType);