library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/invocations.dart:7:3: Error: Method not found: 'z'.
//   z("Hello, World!");
//   ^
//
// pkg/front_end/testcases/general/invocations.dart:8:3: Error: Undefined name 'z'.
//   z.print("Hello, World!");
//   ^
//
// pkg/front_end/testcases/general/invocations.dart:9:3: Error: Undefined name 'y'.
//   y.z.print("Hello, World!");
//   ^
//
// pkg/front_end/testcases/general/invocations.dart:10:3: Error: Undefined name 'x'.
//   x.y.z.print("Hello, World!");
//   ^
//
// pkg/front_end/testcases/general/invocations.dart:14:7: Error: Method not found: 'z'.
//       z("Hello, World!") +
//       ^
//
// pkg/front_end/testcases/general/invocations.dart:15:7: Error: Undefined name 'z'.
//       z.print("Hello, World!") +
//       ^
//
// pkg/front_end/testcases/general/invocations.dart:16:7: Error: Undefined name 'y'.
//       y.z.print("Hello, World!") +
//       ^
//
// pkg/front_end/testcases/general/invocations.dart:17:7: Error: Undefined name 'x'.
//       x.y.z.print("Hello, World!");
//       ^
//
// pkg/front_end/testcases/general/invocations.dart:13:7: Error: This expression has type 'void' and can't be used.
//       print("Hello, World!") +
//       ^
//
import self as self;
import "dart:core" as core;

static method main() → dynamic {
  core::print("Hello, World!");
  invalid-expression "pkg/front_end/testcases/general/invocations.dart:7:3: Error: Method not found: 'z'.
  z(\"Hello, World!\");
  ^";
  invalid-expression "pkg/front_end/testcases/general/invocations.dart:8:3: Error: Undefined name 'z'.
  z.print(\"Hello, World!\");
  ^"{dynamic}.print("Hello, World!");
  invalid-expression "pkg/front_end/testcases/general/invocations.dart:9:3: Error: Undefined name 'y'.
  y.z.print(\"Hello, World!\");
  ^"{<invalid>}.z{dynamic}.print("Hello, World!");
  invalid-expression "pkg/front_end/testcases/general/invocations.dart:10:3: Error: Undefined name 'x'.
  x.y.z.print(\"Hello, World!\");
  ^"{<invalid>}.y{<invalid>}.z{dynamic}.print("Hello, World!");
  1.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:13:7: Error: This expression has type 'void' and can't be used.
      print(\"Hello, World!\") +
      ^" in core::print("Hello, World!")){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:14:7: Error: Method not found: 'z'.
      z(\"Hello, World!\") +
      ^"){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:15:7: Error: Undefined name 'z'.
      z.print(\"Hello, World!\") +
      ^"{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:16:7: Error: Undefined name 'y'.
      y.z.print(\"Hello, World!\") +
      ^"{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:17:7: Error: Undefined name 'x'.
      x.y.z.print(\"Hello, World!\");
      ^"{<invalid>}.y{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
}
