FILE
  RsTraitItemImpl(TRAIT_ITEM)
    PsiElement(trait)('trait')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('Contains')
    PsiWhiteSpace(' ')
    RsMembersImpl(MEMBERS)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsTypeAliasImpl(TYPE_ALIAS)
        PsiElement(type)('type')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('A')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('inner')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          RsSelfParameterImpl(SELF_PARAMETER)
            PsiElement(&)('&')
            PsiElement(self)('self')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        RsRetTypeImpl(RET_TYPE)
          PsiElement(->)('->')
          PsiWhiteSpace(' ')
          RsPathTypeImpl(PATH_TYPE)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(Self)('Self')
              PsiElement(::)('::')
              PsiElement(identifier)('A')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('empty')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('anon_param')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          RsValueParameterImpl(VALUE_PARAMETER)
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(identifier)('i32')
          PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('self_type')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          RsValueParameterImpl(VALUE_PARAMETER)
            RsPatIdentImpl(PAT_IDENT)
              RsPatBindingImpl(PAT_BINDING)
                PsiElement(identifier)('x')
            PsiElement(:)(':')
            PsiWhiteSpace(' ')
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(Self)('Self')
          PsiElement(,)(',')
          PsiWhiteSpace(' ')
          RsValueParameterImpl(VALUE_PARAMETER)
            RsPatIdentImpl(PAT_IDENT)
              RsPatBindingImpl(PAT_BINDING)
                PsiElement(identifier)('y')
            PsiElement(:)(':')
            PsiWhiteSpace(' ')
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(identifier)('Vec')
                RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                  PsiElement(<)('<')
                  RsPathTypeImpl(PATH_TYPE)
                    RsPathImpl(PATH)
                      PsiElement(Self)('Self')
                  PsiElement(>)('>')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        RsRetTypeImpl(RET_TYPE)
          PsiElement(->)('->')
          PsiWhiteSpace(' ')
          RsPathTypeImpl(PATH_TYPE)
            RsPathImpl(PATH)
              PsiElement(Self)('Self')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('foo')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsTraitItemImpl(TRAIT_ITEM)
        PsiElement(trait)('trait')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('Inner')
        PsiWhiteSpace(' ')
        RsMembersImpl(MEMBERS)
          PsiElement({)('{')
          PsiElement(})('}')
      RsEmptyStmtImpl(EMPTY_STMT)
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsTraitItemImpl(TRAIT_ITEM)
        PsiElement(unsafe)('unsafe')
        PsiWhiteSpace(' ')
        PsiElement(trait)('trait')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('UnsafeInner')
        PsiWhiteSpace(' ')
        RsMembersImpl(MEMBERS)
          PsiElement({)('{')
          PsiElement(})('}')
      RsEmptyStmtImpl(EMPTY_STMT)
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsTraitItemImpl(TRAIT_ITEM)
    PsiElement(trait)('trait')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('bar')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
      PsiElement(>)('>')
    PsiWhiteSpace(' ')
    RsMembersImpl(MEMBERS)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsFunctionImpl(FUNCTION)
        PsiElement(fn)('fn')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('baz')
        RsValueParameterListImpl(VALUE_PARAMETER_LIST)
          PsiElement(()('(')
          RsSelfParameterImpl(SELF_PARAMETER)
            PsiElement(&)('&')
            PsiElement(self)('self')
          PsiElement(,)(',')
          PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsTraitItemImpl(TRAIT_ITEM)
    PsiElement(trait)('trait')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('TrailingPlusIsOk')
    RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
      PsiElement(:)(':')
      PsiWhiteSpace(' ')
      RsPolyboundImpl(POLYBOUND)
        RsBoundImpl(BOUND)
          RsTraitRefImpl(TRAIT_REF)
            RsPathImpl(PATH)
              PsiElement(identifier)('Clone')
      PsiElement(+)('+')
    RsMembersImpl(MEMBERS)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsTraitItemImpl(TRAIT_ITEM)
    PsiElement(trait)('trait')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('EmptyBoundsAreValid')
    RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
      PsiElement(:)(':')
    PsiWhiteSpace(' ')
    RsMembersImpl(MEMBERS)
      PsiElement({)('{')
      PsiElement(})('}')
