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

static method main() → dynamic {
  core::print("Hello, World!");
  throw new core::NoSuchMethodError::_withType(null, #z, 32, <dynamic>["Hello, World!"].toList(growable: false), <dynamic, dynamic>{}, null);
  throw new core::NoSuchMethodError::_withType(null, #z, 33, <dynamic>[].toList(growable: false), <dynamic, dynamic>{}, null);
  throw new core::NoSuchMethodError::_withType(null, #y, 33, <dynamic>[].toList(growable: false), <dynamic, dynamic>{}, null);
  throw new core::NoSuchMethodError::_withType(null, #x, 33, <dynamic>[].toList(growable: false), <dynamic, dynamic>{}, null);
  1.+(core::print("Hello, World!")).+(throw new core::NoSuchMethodError::_withType(null, #z, 32, <dynamic>["Hello, World!"].toList(growable: false), <dynamic, dynamic>{}, null)).+(throw new core::NoSuchMethodError::_withType(null, #z, 33, <dynamic>[].toList(growable: false), <dynamic, dynamic>{}, null)).+(throw new core::NoSuchMethodError::_withType(null, #y, 33, <dynamic>[].toList(growable: false), <dynamic, dynamic>{}, null)).+(throw new core::NoSuchMethodError::_withType(null, #x, 33, <dynamic>[].toList(growable: false), <dynamic, dynamic>{}, null));
}
