library test;
import self as self;
import "dart:core" as core;

class C extends core::Object {
  field dynamic f;
  constructor •(dynamic f) → self::C*
    : self::C::f = f, super core::Object::•()
    ;
}
static method g(self::C* c) → void {
  let final self::C* #t1 = c in let final core::double* #t2 = 1.5 in #t1.{self::C::f}.call(#t2);
}
static method h(core::int* i) → void {}
static method test() → void {
  self::g(new self::C::•(#C1));
}
static method main() → dynamic {}

constants  {
  #C1 = tearoff self::h
}
