FILE
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('main')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsTraitItemImpl(TRAIT_ITEM)
        PsiElement(trait)('trait')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('Foo')
        PsiWhiteSpace(' ')
        RsMembersImpl(MEMBERS)
          PsiElement({)('{')
          PsiWhiteSpace('\n        ')
          PsiElement(identifier)('intellijidearulezz')
          PsiErrorElement:'!' or '::' expected, got '}'
            <empty list>
          PsiWhiteSpace('\n    ')
          PsiElement(})('}')
      PsiWhiteSpace('\n\n    ')
      RsTraitItemImpl(TRAIT_ITEM)
        PsiElement(trait)('trait')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('Foo')
        PsiWhiteSpace(' ')
        RsMembersImpl(MEMBERS)
          PsiElement({)('{')
          PsiWhiteSpace('\n        ')
          PsiElement(identifier)('intellijidearulezzz')
          PsiErrorElement:'!' or '::' expected, got 'fn'
            <empty list>
          PsiWhiteSpace('\n        ')
          RsFunctionImpl(FUNCTION)
            PsiElement(fn)('fn')
            PsiWhiteSpace(' ')
            PsiElement(identifier)('foo')
            RsValueParameterListImpl(VALUE_PARAMETER_LIST)
              PsiElement(()('(')
              PsiElement())(')')
            PsiElement(;)(';')
          PsiWhiteSpace('\n    ')
          PsiElement(})('}')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
