library;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/error_cases.dart:6:9: Error: Expected ';' after this.
//   final Square(:areaAsInt) || Square(:areaAsInt) = Square(2);
//         ^^^^^^
//
// pkg/front_end/testcases/patterns/error_cases.dart:6:16: Error: Expected an identifier, but got ':'.
// Try inserting an identifier before ':'.
//   final Square(:areaAsInt) || Square(:areaAsInt) = Square(2);
//                ^
//
// pkg/front_end/testcases/patterns/error_cases.dart:6:17: Error: Undefined name 'areaAsInt'.
//   final Square(:areaAsInt) || Square(:areaAsInt) = Square(2);
//                 ^^^^^^^^^
//
// pkg/front_end/testcases/patterns/error_cases.dart:6:38: Error: Expected an identifier, but got ':'.
// Try inserting an identifier before ':'.
//   final Square(:areaAsInt) || Square(:areaAsInt) = Square(2);
//                                      ^
//
// pkg/front_end/testcases/patterns/error_cases.dart:6:39: Error: Undefined name 'areaAsInt'.
//   final Square(:areaAsInt) || Square(:areaAsInt) = Square(2);
//                                       ^^^^^^^^^
//
// pkg/front_end/testcases/patterns/error_cases.dart:6:50: Error: Can't assign to this.
//   final Square(:areaAsInt) || Square(:areaAsInt) = Square(2);
//                                                  ^
//
// pkg/front_end/testcases/patterns/error_cases.dart:8:10: Error: Refutable patterns can't be used in an irrefutable context.
// Try using an if-case, a 'switch' statement, or a 'switch' expression instead.
//   final (42) = 42;
//          ^
//
import self as self;
import "dart:core" as core;

static method method() → dynamic {
  final dynamic Square;
  invalid-expression "pkg/front_end/testcases/patterns/error_cases.dart:6:50: Error: Can't assign to this.
  final Square(:areaAsInt) || Square(:areaAsInt) = Square(2);
                                                 ^";
  {
    final synthesized core::int #0#0 = 42;
    if(!invalid-expression "pkg/front_end/testcases/patterns/error_cases.dart:8:10: Error: Refutable patterns can't be used in an irrefutable context.
Try using an if-case, a 'switch' statement, or a 'switch' expression instead.
  final (42) = 42;
         ^")
      throw{for-error-handling} new core::StateError::•("Pattern matching error");
  }
}
