// 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;
}
