library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/trailing_comma2.dart:17:8: Error: Expected ']' before this.
//     c[x,] = y;
//        ^
//
import self as self;
import "dart:core" as core;

class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  operator []=(dynamic x, dynamic y) → void {}
}
class Bad extends core::Object {
  synthetic constructor •() → self::Bad
    : super core::Object::•()
    ;
  method method() → dynamic {
    self::c.{self::C::[]=}(self::x, self::y){(dynamic, dynamic) → void};
  }
}
static field self::C c = new self::C::•();
static field core::int x = 42;
static field core::int y = 42;
static method main() → dynamic {}
