Bug description
Calling a service through -> on a scalar may not lead to the expected result:
open class helloworld::HelloWorld {
@main
def void main() {
self->oclIsTypeOf(helloworld::HelloWorld); // false
}
}
Additional context
Cause
Acceleo's EvaluationServices implicitely turns the first argument into a list (see collectionServiceCall#L233). The name "collectionServiceCall" here seems suspicious: why a collection service?
Actually, it looks like every Call instance representing a call made with -> is set to "COLLECTIONCALL":
|
| '->' callExp #CollectionCall |
Solution
Replace #CollectionCall with #CallOrApply and adapt the code accordingly.
Bug description
Calling a service through
->on a scalar may not lead to the expected result:Additional context
Cause
Acceleo's
EvaluationServicesimplicitely turns the first argument into a list (see collectionServiceCall#L233). The name "collectionServiceCall" here seems suspicious: why a collection service?Actually, it looks like every
Callinstance representing a call made with->is set to "COLLECTIONCALL":ale-lang/plugins/org.eclipse.emf.ecoretools.ale.core/src/org/eclipse/emf/ecoretools/ale/core/parser/Query.g4
Line 49 in 728195a
Solution
Replace
#CollectionCallwith#CallOrApplyand adapt the code accordingly.