library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/colon_default_value.dart:5:16: Error: Using a colon as a separator before a default value is no longer supported.
// Try replacing the colon with an equal sign.
// topLevel({int x: 3}) {}
//                ^
//
// pkg/front_end/testcases/general/colon_default_value.dart:8:16: Error: Using a colon as a separator before a default value is no longer supported.
// Try replacing the colon with an equal sign.
//   method({int x: 3}) {
//                ^
//
// pkg/front_end/testcases/general/colon_default_value.dart:9:17: Error: Using a colon as a separator before a default value is no longer supported.
// Try replacing the colon with an equal sign.
//     local({int x: 3}) {}
//                 ^
//
// pkg/front_end/testcases/general/colon_default_value.dart:10:12: Error: Using a colon as a separator before a default value is no longer supported.
// Try replacing the colon with an equal sign.
//     ({int x: 3}) {};
//            ^
//
import self as self;
import "dart:core" as core;

class Class extends core::Object {
  synthetic constructor •() → self::Class
    : super core::Object::•()
    ;
  method method({core::int x = #C1}) → dynamic {
    function local({core::int x = #C1}) → Null {}
    ({core::int x = #C1}) → Null {};
  }
}
static method topLevel({core::int x = #C1}) → dynamic {}

constants  {
  #C1 = 3
}
