Error message: Invocation expression argument must redefine an input or an undirected feature

I am getting the error message on the subject line, which I cannot fix, and suspect may be erroneous.

I have been using Syside to develop library packages for Supplementary Formal Semantics (SFS).

I have added predicates for features which represent M0 execution rather than M1 model.

I am now trying to replace references to M0 features with predicate invocations.

I am trying to replace references to Occurrences::Occurrence::predecessors with invocations of Occurrences::Occurrence::predecessor.

predicate predecessor {

doc /* SFS: true when o precedes this */

in o : Occurrence;

precedes(o,this)

}

I invoke “predecessor” in StatePerformances.kerml line 103:

includes(tp.successors, entry) | tp->predecessor(entry) }

“entry” is a step feature of StatePerformance. (line 38)

A step is a feature, typed by a Behavior, so it is an undirected feature.

I suspect that Syside is looking for a feature declared with the feature keyword thereby detecting an error when it shouldn’t.

Please let me know if it is my error (and suggest a fix), or that Syside identified error incorrectly, so I should just ignore it until fixed in some future release.

Hi,

Looks like predecessor is receiving too many arguments. tp->predecessor(entry) is equivalent to predecessor(tp, entry), however predecessor only accepts a single argument. Either remove the extraneous argument, or use precedes directly, e.g. tp->precedes(entry), if implicit this parameter is unwanted.