library;
//
// Problems in library:
//
// pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' is already declared in this scope.
//   for (int i = 0, i > 10; i++) {}
//                   ^
// pkg/front_end/testcases/regress/issue_31184.dart:6:12: Context: Previous declaration of 'i'.
//   for (int i = 0, i > 10; i++) {}
//            ^
//
// pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: Expected ';' after this.
//   for (int i = 0, i > 10; i++) {}
//                   ^
//
// pkg/front_end/testcases/regress/issue_31184.dart:6:21: Error: Expected an identifier, but got '>'.
// Try inserting an identifier before '>'.
//   for (int i = 0, i > 10; i++) {}
//                     ^
//
import self as self;
import "dart:core" as core;

static method bad() → dynamic {
  for (core::int* i = 0, core::int* i = invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' is already declared in this scope.
  for (int i = 0, i > 10; i++) {}
                  ^"; invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:21: Error: This couldn't be parsed.
  for (int i = 0, i > 10; i++) {}
                    ^"{<invalid>}.>(10); i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
  }
}
static method main() → dynamic {}
