library;
//
// Problems in library:
//
// pkg/front_end/testcases/regress/issue_29982.dart:7:15: Error: The non-ASCII character 'é' (U+00E9) can't be used in identifiers, only in strings and comments.
// Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign).
//   print('${eh[éh']}');
//               ^
//
// pkg/front_end/testcases/regress/issue_29982.dart:7:14: Error: Can't find ']' to match '['.
//   print('${eh[éh']}');
//              ^
//
// pkg/front_end/testcases/regress/issue_29982.dart:7:10: Error: Can't find '}' to match '${'.
//   print('${eh[éh']}');
//          ^
//
// pkg/front_end/testcases/regress/issue_29982.dart:7:11: Error: String starting with ' must end with '.
//   print('${eh[éh']}');
//           ^^^^^^^^^^^^^...
//
// pkg/front_end/testcases/regress/issue_29982.dart:9:1: Error: Expected a declaration, but got ''.
//
// pkg/front_end/testcases/regress/issue_29982.dart:7:17: Error: Expected ']' before this.
//   print('${eh[éh']}');
//                 ^^^^
//
// pkg/front_end/testcases/regress/issue_29982.dart:7:15: Error: Getter not found: 'éh'.
//   print('${eh[éh']}');
//               ^^
//
// pkg/front_end/testcases/regress/issue_29982.dart:7:17: Error: Expected '}' before this.
//   print('${eh[éh']}');
//                 ^^^^
//
// pkg/front_end/testcases/regress/issue_29982.dart:7:21: Error: Expected a String, but got ')'.
//   print('${eh[éh']}');
//                     ^
//
import self as self;
import "dart:core" as core;

static method main() → dynamic {
  core::Map<core::String*, core::String*>* eh = <core::String*, core::String*>{"\u0233h": "\u0233h"};
  core::print("${eh.{core::Map::[]}(invalid-expression "pkg/front_end/testcases/regress/issue_29982.dart:7:15: Error: Getter not found: '\u0233h'.
  print('\${eh[\u0233h']}');
              ^^")}");
}
