blob: 6319bfd17f163693b5eaa5415afc608d58efe7d6 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
class C extends core::Object {
field dynamic x = null;
constructor •() void
: super core::Object::•()
;
method m() dynamic {
final Vector #context = MakeVector(2);
#context[1] = this;
return MakeClosure<(dynamic) dynamic>(self::closure#C#m#function, #context);
}
method f() dynamic {
final Vector #context = MakeVector(2);
#context[1] = this;
return MakeClosure<() dynamic>(self::closure#C#f#function, #context);
}
}
static method main() dynamic {
self::C c = new self::C::•();
c.x = 41;
c.m().call(42);
if(!42.==(c.x))
throw "Unexpected value in c.x: ${c.x}";
dynamic result = c.f().call().call();
if(!42.==(result))
throw "Unexpected value from c.f()()(): ${result}";
}
static method closure#C#m#function(Vector #contextParameter, dynamic v) → dynamic {
return (#contextParameter[1]).x = v;
}
static method closure#C#f#function#function(Vector #contextParameter) → dynamic {
return (#contextParameter[1]).x;
}
static method closure#C#f#function(Vector #contextParameter) → dynamic {
return MakeClosure<() dynamic>(self::closure#C#f#function#function, #contextParameter);
}