Problems reported:

parser/error_recovery/keyword_named_class_fields:4:7: Expected an identifier, but got 'assert'.
  int assert = 42;
      ^^^^^^

parser/error_recovery/keyword_named_class_fields:7:7: Expected an identifier, but got 'break'.
  int break = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:8:7: Expected an identifier, but got 'case'.
  int case = 42;
      ^^^^

parser/error_recovery/keyword_named_class_fields:9:7: Expected an identifier, but got 'catch'.
  int catch = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:10:7: Expected an identifier, but got 'class'.
  int class = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:11:7: Expected an identifier, but got 'const'.
  int const = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:12:7: Expected an identifier, but got 'continue'.
  int continue = 42;
      ^^^^^^^^

parser/error_recovery/keyword_named_class_fields:14:7: Expected an identifier, but got 'default'.
  int default = 42;
      ^^^^^^^

parser/error_recovery/keyword_named_class_fields:16:7: Expected an identifier, but got 'do'.
  int do = 42;
      ^^

parser/error_recovery/keyword_named_class_fields:18:7: Expected an identifier, but got 'else'.
  int else = 42;
      ^^^^

parser/error_recovery/keyword_named_class_fields:19:7: Expected an identifier, but got 'enum'.
  int enum = 42;
      ^^^^

parser/error_recovery/keyword_named_class_fields:21:7: Expected an identifier, but got 'extends'.
  int extends = 42;
      ^^^^^^^

parser/error_recovery/keyword_named_class_fields:25:7: Expected an identifier, but got 'false'.
  int false = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:26:7: Expected an identifier, but got 'final'.
  int final = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:27:7: Expected an identifier, but got 'finally'.
  int finally = 42;
      ^^^^^^^

parser/error_recovery/keyword_named_class_fields:28:7: Expected an identifier, but got 'for'.
  int for = 42;
      ^^^

parser/error_recovery/keyword_named_class_fields:32:7: Expected an identifier, but got 'if'.
  int if = 42;
      ^^

parser/error_recovery/keyword_named_class_fields:35:7: Expected an identifier, but got 'in'.
  int in = 42;
      ^^

parser/error_recovery/keyword_named_class_fields:38:7: Expected an identifier, but got 'is'.
  int is = 42;
      ^^

parser/error_recovery/keyword_named_class_fields:43:7: Expected an identifier, but got 'new'.
  int new = 42;
      ^^^

parser/error_recovery/keyword_named_class_fields:44:7: Expected an identifier, but got 'null'.
  int null = 42;
      ^^^^

parser/error_recovery/keyword_named_class_fields:52:7: Expected an identifier, but got 'rethrow'.
  int rethrow = 42;
      ^^^^^^^

parser/error_recovery/keyword_named_class_fields:53:7: Expected an identifier, but got 'return'.
  int return = 42;
      ^^^^^^

parser/error_recovery/keyword_named_class_fields:58:7: Expected an identifier, but got 'super'.
  int super = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:59:7: Expected an identifier, but got 'switch'.
  int switch = 42;
      ^^^^^^

parser/error_recovery/keyword_named_class_fields:61:7: Expected an identifier, but got 'this'.
  int this = 42;
      ^^^^

parser/error_recovery/keyword_named_class_fields:62:7: Expected an identifier, but got 'throw'.
  int throw = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:63:7: Expected an identifier, but got 'true'.
  int true = 42;
      ^^^^

parser/error_recovery/keyword_named_class_fields:64:7: Expected an identifier, but got 'try'.
  int try = 42;
      ^^^

parser/error_recovery/keyword_named_class_fields:66:7: Expected an identifier, but got 'var'.
  int var = 42;
      ^^^

parser/error_recovery/keyword_named_class_fields:67:7: Expected an identifier, but got 'void'.
  int void = 42;
      ^^^^

parser/error_recovery/keyword_named_class_fields:68:7: Expected an identifier, but got 'while'.
  int while = 42;
      ^^^^^

parser/error_recovery/keyword_named_class_fields:69:7: Expected an identifier, but got 'with'.
  int with = 42;
      ^^^^

beginCompilationUnit(class)
  beginMetadataStar(class)
  endMetadataStar(0)
  beginClassOrNamedMixinApplicationPrelude(class)
    handleIdentifier(WrapperClass, classOrMixinDeclaration)
    handleNoTypeVariables({)
    beginClassDeclaration(class, null, WrapperClass)
      handleNoType(WrapperClass)
      handleClassExtends(null, 1)
      handleClassNoWithClause()
      handleClassOrMixinImplements(null, 0)
      handleClassHeader(class, class, null)
      beginClassOrMixinBody(DeclarationKind.Class, {)
        beginMetadataStar(int)
        endMetadataStar(0)
        beginMember()
          handleIdentifier(int, typeReference)
          handleNoTypeArguments(abstract)
          handleType(int, null)
          handleIdentifier(abstract, fieldDeclaration)
          beginFieldInitializer(=)
            handleLiteralInt(42)
          endFieldInitializer(=, ;)
        endClassFields(null, null, null, null, null, null, 1, int, ;)
      endMember()
      beginMetadataStar(int)
      endMetadataStar(0)
      beginMember()
        handleIdentifier(int, typeReference)
        handleNoTypeArguments(as)
        handleType(int, null)
        handleIdentifier(as, fieldDeclaration)
        beginFieldInitializer(=)
          handleLiteralInt(42)
        endFieldInitializer(=, ;)
      endClassFields(null, null, null, null, null, null, 1, int, ;)
    endMember()
    beginMetadataStar(int)
    endMetadataStar(0)
    beginMember()
      handleIdentifier(int, typeReference)
      handleNoTypeArguments(assert)
      handleType(int, null)
      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
      handleIdentifier(assert, fieldDeclaration)
      beginFieldInitializer(=)
        handleLiteralInt(42)
      endFieldInitializer(=, ;)
    endClassFields(null, null, null, null, null, null, 1, int, ;)
  endMember()
  beginMetadataStar(int)
  endMetadataStar(0)
  beginMember()
    handleIdentifier(int, typeReference)
    handleNoTypeArguments(async)
    handleType(int, null)
    handleIdentifier(async, fieldDeclaration)
    beginFieldInitializer(=)
      handleLiteralInt(42)
    endFieldInitializer(=, ;)
  endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
  handleIdentifier(int, typeReference)
  handleNoTypeArguments(await)
  handleType(int, null)
  handleIdentifier(await, fieldDeclaration)
  beginFieldInitializer(=)
    handleLiteralInt(42)
  endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(break)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
handleIdentifier(break, fieldDeclaration)
beginFieldInitializer(=)
  handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(case)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
handleIdentifier(case, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(catch)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
handleIdentifier(catch, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(class)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
handleIdentifier(class, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(const)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
handleIdentifier(const, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(continue)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
handleIdentifier(continue, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(covariant)
handleType(int, null)
handleIdentifier(covariant, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(default)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
handleIdentifier(default, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(deferred)
handleType(int, null)
handleIdentifier(deferred, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(do)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
handleIdentifier(do, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(dynamic)
handleType(int, null)
handleIdentifier(dynamic, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(else)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
handleIdentifier(else, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(enum)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
handleIdentifier(enum, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(export)
handleType(int, null)
handleIdentifier(export, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(extends)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
handleIdentifier(extends, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(extension)
handleType(int, null)
handleIdentifier(extension, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(external)
handleType(int, null)
handleIdentifier(external, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(factory)
handleType(int, null)
handleIdentifier(factory, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(false)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
handleIdentifier(false, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(final)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
handleIdentifier(final, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(finally)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
handleIdentifier(finally, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(for)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
handleIdentifier(for, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(Function)
handleType(int, null)
handleIdentifier(Function, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(get)
handleType(int, null)
handleIdentifier(get, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(hide)
handleType(int, null)
handleIdentifier(hide, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(if)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
handleIdentifier(if, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(implements)
handleType(int, null)
handleIdentifier(implements, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(import)
handleType(int, null)
handleIdentifier(import, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(in)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
handleIdentifier(in, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(inout)
handleType(int, null)
handleIdentifier(inout, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(interface)
handleType(int, null)
handleIdentifier(interface, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(is)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
handleIdentifier(is, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(late)
handleType(int, null)
handleIdentifier(late, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(library)
handleType(int, null)
handleIdentifier(library, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(mixin)
handleType(int, null)
handleIdentifier(mixin, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(native)
handleType(int, null)
handleIdentifier(native, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(new)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
handleIdentifier(new, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(null)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
handleIdentifier(null, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(of)
handleType(int, null)
handleIdentifier(of, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(on)
handleType(int, null)
handleIdentifier(on, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(operator)
handleType(int, null)
handleIdentifier(operator, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(out)
handleType(int, null)
handleIdentifier(out, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(part)
handleType(int, null)
handleIdentifier(part, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(patch)
handleType(int, null)
handleIdentifier(patch, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(required)
handleType(int, null)
handleIdentifier(required, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(rethrow)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
handleIdentifier(rethrow, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(return)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
handleIdentifier(return, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(set)
handleType(int, null)
handleIdentifier(set, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(show)
handleType(int, null)
handleIdentifier(show, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(source)
handleType(int, null)
handleIdentifier(source, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(static)
handleType(int, null)
handleIdentifier(static, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(super)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
handleIdentifier(super, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(switch)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
handleIdentifier(switch, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(sync)
handleType(int, null)
handleIdentifier(sync, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(this)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
handleIdentifier(this, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(throw)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
handleIdentifier(throw, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(true)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
handleIdentifier(true, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(try)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
handleIdentifier(try, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(typedef)
handleType(int, null)
handleIdentifier(typedef, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(var)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
handleIdentifier(var, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(void)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
handleIdentifier(void, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(while)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
handleIdentifier(while, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(with)
handleType(int, null)
handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
handleIdentifier(with, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
handleIdentifier(int, typeReference)
handleNoTypeArguments(yield)
handleType(int, null)
handleIdentifier(yield, fieldDeclaration)
beginFieldInitializer(=)
handleLiteralInt(42)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, 1, int, ;)
endMember()
endClassOrMixinBody(DeclarationKind.Class, 69, {, })
endClassDeclaration(class, })
endTopLevelDeclaration()
endCompilationUnit(1, )
