FILE
  RsImplItemImpl(IMPL_ITEM)
    PsiElement(impl)('impl')
    PsiWhiteSpace(' ')
    RsTraitRefImpl(TRAIT_REF)
      RsPathImpl(PATH)
        PsiElement(identifier)('T')
    PsiWhiteSpace(' ')
    PsiElement(for)('for')
    PsiWhiteSpace(' ')
    RsPathTypeImpl(PATH_TYPE)
      RsPathImpl(PATH)
        PsiElement(identifier)('S')
    PsiWhiteSpace(' ')
    RsMembersImpl(MEMBERS)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('foo')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          PsiElement())(')')
        PsiErrorElement:'->', ';' or where expected, got 'bar'
          <empty list>
      PsiWhiteSpace('\n    ')
      PsiElement(identifier)('bar')
      PsiErrorElement:'!' or '::' expected, got 'fn'
        <empty list>
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('baz')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        RsBlockImpl(BLOCK)
          PsiElement({)('{')
          PsiElement(})('}')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsImplItemImpl(IMPL_ITEM)
    PsiElement(impl)('impl')
    PsiWhiteSpace(' ')
    RsTraitRefImpl(TRAIT_REF)
      RsPathImpl(PATH)
        PsiElement(identifier)('T')
    PsiWhiteSpace(' ')
    PsiElement(for)('for')
    PsiWhiteSpace(' ')
    RsPathTypeImpl(PATH_TYPE)
      RsPathImpl(PATH)
        PsiElement(identifier)('S')
    PsiWhiteSpace(' ')
    RsMembersImpl(MEMBERS)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      PsiElement(identifier)('bar')
      PsiErrorElement:'!' or '::' expected, got 'fn'
        <empty list>
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('foo')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          PsiElement())(')')
        PsiErrorElement:'->', ';' or where expected, got 'fn'
          <empty list>
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('baz')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        RsBlockImpl(BLOCK)
          PsiElement({)('{')
          PsiElement(})('}')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
