library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class Foo extends core::Object {
  field core::List<dynamic> list = <dynamic>[1, 2, 3];
  synthetic constructor •() → self::Foo
    : super core::Object::•()
    ;
  set first(dynamic x) → void
    return let final core::List<dynamic> #t1 = this.{self::Foo::list}{core::List<dynamic>} in let final core::int #t2 = 0 in let final dynamic #t3 = x in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, dynamic) → void} in #t3;
  operator []=(dynamic x, dynamic y) → void
    return let final core::List<dynamic> #t5 = this.{self::Foo::list}{core::List<dynamic>} in let final dynamic #t6 = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::int in let final dynamic #t7 = y in let final void #t8 = #t5.{core::List::[]=}(#t6, #t7){(core::int, dynamic) → void} in #t7;
  method clear() → void
    return this.{self::Foo::list}{core::List<dynamic>}.{core::List::clear}(){() → void};
}
static method main() → dynamic {
  new self::Foo::•().{self::Foo::first} = 4;
  new self::Foo::•().{self::Foo::[]=}(3, 4){(dynamic, dynamic) → void};
  new self::Foo::•().{self::Foo::clear}(){() → void};
}
