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

class C extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method test() → dynamic {
    self::use(const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/issue_000041.dart:7:10: Error: Can't use `super` as an expression.\n    use(+super);\n         ^")));
  }
}
static const field dynamic #errors = const <dynamic>["pkg/front_end/testcases/rasta/issue_000041.dart:7:9: Error: '+' is not a prefix operator.\n    use(+super);\n        ^"]/* from null */;
static method use(dynamic _) → dynamic
  return null;
static method main() → dynamic {
  new self::C::•().test();
}
