library;
//
// Problems in library:
//
// pkg/front_end/testcases/regress/issue_29983.dart:7:10: Warning: Getter not found: 'missing'.
//   return missing;
//          ^^^^^^^
//
// pkg/front_end/testcases/regress/issue_29983.dart:7:3: Error: 'sync*' and 'async*' can't return a value.
//   return missing;
//   ^
//
// pkg/front_end/testcases/regress/issue_29983.dart:11:14: Warning: Getter not found: 'dummy'.
// g() sync* => dummy;
//              ^^^^^
//
// pkg/front_end/testcases/regress/issue_29983.dart:11:14: Error: 'sync*' and 'async*' can't return a value.
// g() sync* => dummy;
//              ^
//
import self as self;

static method f() → dynamic sync* {
  invalid-expression "pkg/front_end/testcases/regress/issue_29983.dart:7:3: Error: 'sync*' and 'async*' can't return a value.
  return missing;
  ^";
}
static method g() → dynamic sync* 
  invalid-expression "pkg/front_end/testcases/regress/issue_29983.dart:11:14: Error: 'sync*' and 'async*' can't return a value.
g() sync* => dummy;
             ^";
static method h() → dynamic sync* {
  (() → dynamic => "return").call();
}
static method main() → dynamic {}
