diff options
Diffstat (limited to 'plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl')
-rw-r--r-- | plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl b/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl index a614fc482..1035f50b8 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl +++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl @@ -31,7 +31,7 @@ def: referringNames : Set(String) = binding.boundVariable.name->asSet() inv MatchingCallBindings('Mismatched bindings ' + referredMapping.name + joinNames(referredNames) + ' <= ' + joinNames(referringNames)): referredNames = referringNames inv UniqueCallBindings: binding->isUnique(boundVariable) -context MappingCallBinding +context GuardParameterBinding inv CompatibleBinding: value.type.conformsTo(boundVariable.type) or boundVariable.type.conformsTo(value.type) endpackage @@ -65,8 +65,13 @@ inv NoRealizedVariableNavigations: ownedExpression->closure(oclContents())->sele --inv IsEnforced: let area = oclContainer().oclAsType(GuardPattern).area, mapping = area.mapping in -- if mapping.isToMiddle then area = mapping else area.oclAsType(CoreDomain).isEnforceable endif ---context PredicateVariable ---inv NoVariableAssignmentsInSourceDomain: not bottomPattern.area.isSource +context GuardParameterBinding +inv CheckedTypeIsNotConformant: isCheck implies not value.type.conformsTo(boundVariable.type) +inv UncheckedTypeIsConformant: not isCheck implies value.type.conformsTo(boundVariable.type) + +context SimpleParameterBinding +inv CheckedTypeIsNotConformant: isCheck implies not value.type.conformsTo(boundVariable.type) +inv UncheckedTypeIsConformant: not isCheck implies value.type.conformsTo(boundVariable.type) --inv CompatibleType: ownedInit.type.conformsTo(type) endpackage |