EIFFEL_PARSER.a_inline_agent fails in
for class Liberty/src/lib/foreign_interface/foreign_parameters.e:58
I'm not sue about the code, but at first glance the check seems to be not necessary at all. - it would be only necessary in case inline agents would be implemented as closures as suggested in that blog post but they are not (yet), are they?
I only guess this, from my expectation, that in the mentioned function tmp_feature is saved/restored, but not passed into the inline agent procedure. But of cause this is not necessary and could be handled in later stages of compilation - So please put some light into the dark of my brain and explain...
It is more than not necessary: it is plain wrong, just as your example shows (there is no outer feature).
Just remove it.
oh, it was not my example ;-) -> it is code from one of you, already in the repo... I don't know the parser (yet) so I was not sure - there could always be some special cases for everything ;-)
I'll pick it, remove the check and search whether we have some tests for this. BTW, are inline agent already implemented as closure? Or is there no access to the locals of the outer feature yet?
There is no access to the outer locals. Adding simple inline agents was trivial (just a matter of synthetizing anonymous features); but actual closures need the outer locals to be kept out of the stack with a correct life cycle management.
removed wrong check (closes #51)