library test /*isNonNullableByDefault*/;
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}{dynamic}{dynamic}.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 = static-tearoff self::h
}

Extra constant evaluation status:
Evaluated: VariableGet @ org-dartlang-testcase:///dynamic_invocation_of_getter.dart:14:7 -> DoubleConstant(1.5)
Extra constant evaluation: evaluated: 10, effectively constant: 1
