//
// Problems in component:
//
// pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart:5:18: Error: Constant evaluation error:
// main(arguments = [x]) {
//                  ^
// pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart:5:18: Context: Can't have a non-constant List literal within a const context.
// main(arguments = [x]) {
//                  ^
// pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart:5:6: Context: While analyzing:
// main(arguments = [x]) {
//      ^
//
library;
//
// Problems in library:
//
// pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart:5:16: Error: Non-optional parameters can't have a default value.
// Try removing the default value or making the parameter optional.
// main(arguments = [x]) {
//                ^
//
// pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart:5:18: Error: Constant expression expected.
// Try inserting 'const'.
// main(arguments = [x]) {
//                  ^
//
// pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart:5:19: Error: Getter not found: 'x'.
// main(arguments = [x]) {
//                   ^
//
import self as self;

static method main(dynamic arguments = invalid-expression "Can't have a non-constant List literal within a const context.") → dynamic {}
