FILE
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('S1')
    PsiWhiteSpace(' ')
    RsBlockFieldsImpl(BLOCK_FIELDS)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsNamedFieldDeclImpl(NAMED_FIELD_DECL)
        PsiElement(identifier)('f1')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('i32')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsNamedFieldDeclImpl(NAMED_FIELD_DECL)
        PsiElement(identifier)('f2')
        PsiErrorElement:':' expected, got '}'
          <empty list>
      PsiWhiteSpace('\n')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('S2')
    PsiWhiteSpace(' ')
    RsBlockFieldsImpl(BLOCK_FIELDS)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsNamedFieldDeclImpl(NAMED_FIELD_DECL)
        PsiElement(identifier)('f1')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('i32')
      PsiErrorElement:'!', '+', ',', '::', <path parameters>, <type argument list>, '=' or '}' expected, got 'f2'
        <empty list>
      PsiWhiteSpace('\n    ')
      RsNamedFieldDeclImpl(NAMED_FIELD_DECL)
        PsiElement(identifier)('f2')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('i32')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('S3')
    PsiWhiteSpace(' ')
    RsBlockFieldsImpl(BLOCK_FIELDS)
      PsiElement({)('{')
      PsiErrorElement:<named field decl> expected, got ':'
        <empty list>
      PsiWhiteSpace('\n    ')
      PsiElement(:)(':')
      PsiWhiteSpace(' ')
      RsNamedFieldDeclImpl(NAMED_FIELD_DECL)
        PsiElement(identifier)('i32')
        PsiErrorElement:':' expected, got 'f2'
          <empty list>
      PsiWhiteSpace('\n    ')
      RsNamedFieldDeclImpl(NAMED_FIELD_DECL)
        PsiElement(identifier)('f2')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('i32')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('S4')
    RsTupleFieldsImpl(TUPLE_FIELDS)
      PsiElement(()('(')
      RsTupleFieldDeclImpl(TUPLE_FIELD_DECL)
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('i32')
      PsiErrorElement:'!', ')', '+', ',', '::', <path parameters>, <type argument list> or '=' expected, got 'i32'
        <empty list>
      PsiWhiteSpace(' ')
      RsTupleFieldDeclImpl(TUPLE_FIELD_DECL)
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('i32')
      PsiElement())(')')
    PsiElement(;)(';')
  PsiWhiteSpace('\n\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('S5')
    RsTupleFieldsImpl(TUPLE_FIELDS)
      PsiElement(()('(')
      PsiErrorElement:<tuple field decl> expected, got ','
        <empty list>
      PsiElement(,)(',')
      PsiWhiteSpace(' ')
      RsTupleFieldDeclImpl(TUPLE_FIELD_DECL)
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('i32')
      PsiElement())(')')
    PsiElement(;)(';')
