// Unhandled errors:
//
// pkg/front_end/testcases/regress/issue_31188.dart:7:17: Error: Expected ';' after this.
// type T = Map<A, B>
//                 ^
//
// pkg/front_end/testcases/regress/issue_31188.dart:7:18: Error: Expected a declaration, but got '>'.
// type T = Map<A, B>
//                  ^
//
// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: Type 'type' not found.
// type T = Map<A, B>
// ^^^^
//
// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: 'type' isn't a type.
// type T = Map<A, B>
// ^^^^

library;
import self as self;
import "dart:core" as core;

static field invalid-type T = let final core::Type #t1 = core::Map<dynamic, dynamic> in invalid-expression "pkg/front_end/testcases/regress/issue_31188.dart:7:13: Error: The method '<' isn't defined for the class 'Type'.
 - 'Type' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named '<'.
type T = Map<A, B>
            ^";
static field invalid-type B;
static method main() → dynamic {}
