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 '>'.
//   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++) {}
                    ^".>(10); i = i.+(1)) {
  }
}
static method main() → dynamic {}
