Improved fix for the resolution of template/query invocations in
parameters of a standard operation.
diff --git a/plugins/org.eclipse.acceleo.parser/src/org/eclipse/acceleo/internal/parser/ast/ocl/OCLParser.java b/plugins/org.eclipse.acceleo.parser/src/org/eclipse/acceleo/internal/parser/ast/ocl/OCLParser.java
index 2b9f5bc..dbb775f 100644
--- a/plugins/org.eclipse.acceleo.parser/src/org/eclipse/acceleo/internal/parser/ast/ocl/OCLParser.java
+++ b/plugins/org.eclipse.acceleo.parser/src/org/eclipse/acceleo/internal/parser/ast/ocl/OCLParser.java
@@ -876,10 +876,11 @@
iModelExpression);
return handleArguments(acceleoInvocation, iModelExpression);
}
- } else if (eCall.getReferredOperation() != null
- && eCall.getReferredOperation().getEAnnotation(ANNOTATION_NON_STANDARD_SOURCE) != null) {
+ } else if (eCall.getReferredOperation() != null) {
// try to see if the arguments of the non standard operation contains an Acceleo invocation
// example: 'a string' + ('another string' + aQueryInvocation())
+ // also applicable for OCL standard operations
+ // example 'a string'.concat('another string'.concat(aQueryInvocation()))
List<org.eclipse.ocl.expressions.OCLExpression<EClassifier>> argument = eCall.getArgument();
for (org.eclipse.ocl.expressions.OCLExpression<EClassifier> oclExpression : argument) {
createAcceleoInvocation(oclExpression, iModelExpression);