Eh, just minutes after writing my previous email I seem to have found kinda bug. I tried to reduce to minimal example, see below:
module example;
class Foo(Object context, Object attrs)
var a = 0,
var b = 0,
self _ = this,
_ =
class ClickListener
void onClick(Object v)
if a < (b - 1) then
(self ())#update()
fi,
end;
(),
void update() (),
end;
Compiling with: java -jar ..\yeti.jar -d out example.yeti
Then disassembling with: javap.exe -v out\example$ClickListener
gives:
...
public void onClick(java.lang.Object);
Code:
Stack=4, Locals=3, Args_size=2
0: aload_2
1: getfield #28; //Field Foo.$2:Lyeti/lang/Num;
...
Here, I think the "aload_2" is not good; the class is called with only 1 argument IIUC; I think that what should be here is "aload_0"? At least Android DEX seems to refuse processing of my non-reduced code at this point :/
I'd be grateful if you fancied to have a look at this; in the meantime I'm going to try some workarounds.
Thanks & Best Regards,
/Mateusz.