Open
Description
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
- ALE version: master @ 728195a
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":
Solution
Replace #CollectionCall
with #CallOrApply
and adapt the code accordingly.