// Formatted problems:
//
// pkg/front_end/testcases/var_as_type_name.dart:6:15: Error: The keyword 'var' can't be used as a type name.
//   Map<String, var> m;
//               ^^^
//
// pkg/front_end/testcases/var_as_type_name.dart:6:15: Error: Type 'var' not found.
//   Map<String, var> m;
//               ^^^
//
// pkg/front_end/testcases/var_as_type_name.dart:6:15: Error: 'var' isn't a type.
//   Map<String, var> m;
//               ^^^

// Unhandled errors:
//
// pkg/front_end/testcases/var_as_type_name.dart:6:15: Error: The keyword 'var' can't be used as a type name.
//   Map<String, var> m;
//               ^^^
//
// pkg/front_end/testcases/var_as_type_name.dart:6:15: Error: Type 'var' not found.
//   Map<String, var> m;
//               ^^^
//
// pkg/front_end/testcases/var_as_type_name.dart:6:15: Error: 'var' isn't a type.
//   Map<String, var> m;
//               ^^^

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

class A extends core::Object {
  field core::Map<core::String, invalid-type> m = null;
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
}
static method main() → dynamic {
  self::A a = new self::A::•();
  a.{self::A::m} = null;
}
