library;
//
// Problems in library:
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:34:10: Error: Expected an identifier, but got 'super'.
//     for (super.superInstanceField in []) {}
//          ^^^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:35:10: Error: Expected an identifier, but got 'super'.
//     for (super.untypedSuperInstanceField in []) {}
//          ^^^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:37:11: Error: Unexpected token '.'.
//     for (c.instanceField in []) {}
//           ^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:38:11: Error: Unexpected token '.'.
//     for (c.untypedSuperInstanceField in []) {}
//           ^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:40:20: Error: Unexpected token '.'.
//     for (unresolved.foo in []) {}
//                    ^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:41:11: Error: Unexpected token '.'.
//     for (c.unresolved in []) {}
//           ^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:42:14: Error: Unexpected token '('.
//     for (main() in []) {}
//              ^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:42:10: Error: Can't assign to this, so it can't be used in a for-in loop.
//     for (main() in []) {}
//          ^^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:43:15: Error: Unexpected token ','.
//     for (var x, y in <int>[]) {
//               ^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:43:10: Error: A for-in loop can't have more than one loop variable.
//     for (var x, y in <int>[]) {
//          ^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:48:10: Error: Can't assign to the const variable 'constant'.
//     for (constant in []) {}
//          ^^^^^^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:39:10: Error: The setter 'unresolved' isn't defined for the class 'C'.
//  - 'C' is from 'pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart'.
// Try correcting the name to the name of an existing setter, or defining a setter or field named 'unresolved'.
//     for (unresolved in []) {}
//          ^^^^^^^^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:40:10: Error: The getter 'unresolved' isn't defined for the class 'C'.
//  - 'C' is from 'pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart'.
// Try correcting the name to the name of an existing getter, or defining a getter or field named 'unresolved'.
//     for (unresolved.foo in []) {}
//          ^^^^^^^^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:41:12: Error: The setter 'unresolved' isn't defined for the class 'C'.
//  - 'C' is from 'pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart'.
// Try correcting the name to the name of an existing setter, or defining a setter or field named 'unresolved'.
//     for (c.unresolved in []) {}
//            ^^^^^^^^^^
//
import self as self;
import "dart:core" as core;

class Super extends core::Object {
  field core::int* superInstanceField = null;
  field dynamic untypedSuperInstanceField = null;
  synthetic constructor •() → self::Super*
    : super core::Object::•()
    ;
}
class C extends self::Super {
  field core::int* instanceField = null;
  field dynamic untypedInstanceField = null;
  static field core::double* staticField = null;
  static field dynamic untypedStaticField = null;
  synthetic constructor •() → self::C*
    : super self::Super::•()
    ;
  method m() → dynamic {
    core::String* local;
    dynamic untypedLocal;
    for (final core::String* #t1 in <core::String*>[]) {
      local = #t1;
    }
    for (final dynamic #t2 in <dynamic>[]) {
      untypedLocal = #t2;
    }
    for (final core::int* #t3 in <core::int*>[]) {
      this.{self::C::instanceField} = #t3;
    }
    for (final dynamic #t4 in <dynamic>[]) {
      this.{self::C::untypedInstanceField} = #t4;
    }
    for (final core::double* #t5 in <core::double*>[]) {
      self::C::staticField = #t5;
    }
    for (final dynamic #t6 in <dynamic>[]) {
      self::C::untypedStaticField = #t6;
    }
    for (final core::bool* #t7 in <core::bool*>[]) {
      self::topLevelField = #t7;
    }
    for (final dynamic #t8 in <dynamic>[]) {
      self::untypedTopLevelField = #t8;
    }
    for (final core::int* #t9 in <core::int*>[]) {
      super.{self::Super::superInstanceField} = #t9;
    }
    for (final dynamic #t10 in <dynamic>[]) {
      super.{self::Super::untypedSuperInstanceField} = #t10;
    }
    self::C* c = new self::C::•();
    for (final core::int* #t11 in <core::int*>[]) {
      c.{self::C::instanceField} = #t11;
    }
    for (final dynamic #t12 in <dynamic>[]) {
      c.{self::Super::untypedSuperInstanceField} = #t12;
    }
    for (final dynamic #t13 in <dynamic>[]) {
      invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:39:10: Error: The setter 'unresolved' isn't defined for the class 'C'.
 - 'C' is from 'pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'unresolved'.
    for (unresolved in []) {}
         ^^^^^^^^^^";
    }
    for (final dynamic #t14 in <dynamic>[]) {
      invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:40:10: Error: The getter 'unresolved' isn't defined for the class 'C'.
 - 'C' is from 'pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'unresolved'.
    for (unresolved.foo in []) {}
         ^^^^^^^^^^".foo = #t14;
    }
    for (final dynamic #t15 in <dynamic>[]) {
      invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:41:12: Error: The setter 'unresolved' isn't defined for the class 'C'.
 - 'C' is from 'pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'unresolved'.
    for (c.unresolved in []) {}
           ^^^^^^^^^^";
    }
    {
      invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:42:10: Error: Can't assign to this, so it can't be used in a for-in loop.
    for (main() in []) {}
         ^^^^";
      for (final dynamic #t16 in <dynamic>[]) {
        invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:42:10: Error: Can't assign to this, so it can't be used in a for-in loop.
    for (main() in []) {}
         ^^^^";
        self::main();
      }
    }
    {
      invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:43:10: Error: A for-in loop can't have more than one loop variable.
    for (var x, y in <int>[]) {
         ^^^";
      for (final core::int* #t17 in <core::int*>[]) {
        invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:43:10: Error: A for-in loop can't have more than one loop variable.
    for (var x, y in <int>[]) {
         ^^^";
        dynamic x;
        dynamic y;
        core::print(x);
        core::print(y);
      }
    }
    for (final dynamic #t18 in <dynamic>[]) {
      invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart:48:10: Error: Can't assign to the const variable 'constant'.
    for (constant in []) {}
         ^^^^^^^^";
    }
  }
}
static field core::bool* topLevelField;
static field dynamic untypedTopLevelField;
static method main() → dynamic {}
