FILE
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('foo')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('bool')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsLitExprImpl(LIT_EXPR)
          PsiElement(INTEGER_LITERAL)('1')
      PsiWhiteSpace(' ')
      PsiElement(>)('>')
    PsiErrorElement:'(' expected, got '0'
      <empty list>
  PsiWhiteSpace(' ')
  PsiElement(INTEGER_LITERAL)('0')
  PsiElement(DUMMY_BLOCK)
    PsiElement(>)('>')
    PsiElement(()('(')
    PsiElement())(')')
  PsiWhiteSpace(' ')
  PsiElement(DUMMY_BLOCK)
    PsiElement({)('{')
    PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('var')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('usize')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsLitExprImpl(LIT_EXPR)
          PsiElement(INTEGER_LITERAL)('1')
      PsiWhiteSpace(' ')
      PsiElement(>)('>')
    PsiErrorElement:'(' expected, got '>'
      <empty list>
  PsiElement(>)('>')
  PsiElement(DUMMY_BLOCK)
    PsiWhiteSpace(' ')
    PsiElement(INTEGER_LITERAL)('3')
    PsiElement(>)('>')
    PsiElement(()('(')
    PsiElement())(')')
  PsiWhiteSpace(' ')
  PsiElement(DUMMY_BLOCK)
    PsiElement({)('{')
    PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('main')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsPathExprImpl(PATH_EXPR)
          RsPathImpl(PATH)
            PsiElement(identifier)('foo')
            RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
              PsiElement(::)('::')
              PsiElement(<)('<')
              RsLitExprImpl(LIT_EXPR)
                PsiElement(INTEGER_LITERAL)('1')
              PsiWhiteSpace(' ')
              PsiElement(>)('>')
        PsiErrorElement:'(', '+', '-', '::', ';', <operator>, '[', '{' or '}' expected, got '0'
          <empty list>
      PsiWhiteSpace(' ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('0')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(>)('>')
          RsUnitExprImpl(UNIT_EXPR)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsBinaryExprImpl(BINARY_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('bar')
                RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                  PsiElement(::)('::')
                  PsiElement(<)('<')
                  RsLitExprImpl(LIT_EXPR)
                    PsiElement(INTEGER_LITERAL)('1')
                  PsiWhiteSpace(' ')
                  PsiElement(>)('>')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(>)('>')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('3')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(>)('>')
          RsUnitExprImpl(UNIT_EXPR)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
