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

static const field dynamic #errors = const <dynamic>["pkg/front_end/testcases/regress/issue_31184.dart:6:21: Error: Expected ';' before 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++) {}
                    ^", "pkg/front_end/testcases/regress/issue_31184.dart:6:21: Error: Getter not found: ''.
  for (int i = 0, i > 10; i++) {}
                    ^"]/* from null */;
static method bad() → dynamic {
  for (core::int i = 0, final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' already declared in this scope.
  for (int i = 0, i > 10; i++) {}
                  ^"; (throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#, 33, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})))).>(10) as{TypeError} core::bool; i = i.{core::num::+}(1)) {
  }
}
static method main() → dynamic {}
