FILE
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('f')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsRetTypeImpl(RET_TYPE)
      PsiElement(->)('->')
      PsiWhiteSpace(' ')
      RsPathTypeImpl(PATH_TYPE)
        RsPathImpl(PATH)
          PsiElement(identifier)('i32')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('test')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsRetTypeImpl(RET_TYPE)
      PsiElement(->)('->')
      PsiWhiteSpace(' ')
      RsPathTypeImpl(PATH_TYPE)
        RsPathImpl(PATH)
          PsiElement(identifier)('u32')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsPathExprImpl(PATH_EXPR)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              PsiElement(identifier)('x')
            PsiWhiteSpace(' ')
            PsiElement(::)('::')
            PsiWhiteSpace(' ')
            PsiElement(identifier)('y')
        PsiElement(;)(';')
      PsiWhiteSpace('         ')
      PsiComment(<BLOCK_COMMENT>)('/* path-expr */')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsPathExprImpl(PATH_EXPR)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              PsiElement(::)('::')
              PsiWhiteSpace(' ')
              PsiElement(identifier)('x')
            PsiWhiteSpace(' ')
            PsiElement(::)('::')
            PsiWhiteSpace(' ')
            PsiElement(identifier)('y')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsPathExprImpl(PATH_EXPR)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(self)('self')
              PsiWhiteSpace(' ')
              PsiElement(::)('::')
              PsiWhiteSpace(' ')
              PsiElement(identifier)('x')
            PsiWhiteSpace(' ')
            PsiElement(::)('::')
            PsiWhiteSpace(' ')
            PsiElement(identifier)('y')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsBinaryExprImpl(BINARY_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('x')
            PsiWhiteSpace(' ')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(+)('+')
            PsiWhiteSpace(' ')
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('y')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(-)('-')
          PsiWhiteSpace(' ')
          RsBinaryExprImpl(BINARY_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('z')
            PsiWhiteSpace(' ')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(*)('*')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('0')
        PsiElement(;)(';')
      PsiWhiteSpace('  ')
      PsiComment(<BLOCK_COMMENT>)('/* binary */')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('x')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(=)('=')
          PsiWhiteSpace(' ')
          RsBinaryExprImpl(BINARY_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('y')
            PsiWhiteSpace(' ')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(=)('=')
            PsiWhiteSpace(' ')
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('z')
        PsiElement(;)(';')
      PsiWhiteSpace('      ')
      PsiComment(<BLOCK_COMMENT>)('/* assignment + ; */')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsUnaryExprImpl(UNARY_EXPR)
          PsiElement(*)('*')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('x')
        PsiElement(;)(';')
      PsiWhiteSpace('             ')
      PsiComment(<BLOCK_COMMENT>)('/* unary (+ ;) */')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsUnaryExprImpl(UNARY_EXPR)
          PsiElement(&)('&')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('x')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsUnaryExprImpl(UNARY_EXPR)
          PsiElement(&)('&')
          PsiElement(mut)('mut')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('x')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsParenExprImpl(PAREN_EXPR)
            PsiElement(()('(')
            RsBinaryExprImpl(BINARY_EXPR)
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('x')
              PsiWhiteSpace(' ')
              RsBinaryOpImpl(BINARY_OP)
                PsiElement(+)('+')
              PsiWhiteSpace(' ')
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('y')
            PsiElement())(')')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(*)('*')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('z')
        PsiElement(;)(';')
      PsiWhiteSpace('    ')
      PsiComment(<BLOCK_COMMENT>)('/* parenthesized */')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('t')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(=)('=')
          PsiWhiteSpace(' ')
          RsTupleExprImpl(TUPLE_EXPR)
            PsiElement(()('(')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('0')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('2')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('  ')
      PsiComment(<BLOCK_COMMENT>)('/* tuple */')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsDotExprImpl(DOT_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('t')
          PsiElement(.)('.')
          RsFieldLookupImpl(FIELD_LOOKUP)
            PsiElement(identifier)('a')
        PsiElement(;)(';')
      PsiWhiteSpace('            ')
      PsiComment(<BLOCK_COMMENT>)('/* field */')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsDotExprImpl(DOT_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('t')
          PsiElement(.)('.')
          RsFieldLookupImpl(FIELD_LOOKUP)
            PsiElement(INTEGER_LITERAL)('0')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsDotExprImpl(DOT_EXPR)
          RsDotExprImpl(DOT_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('t')
            PsiElement(.)('.')
            RsFieldLookupImpl(FIELD_LOOKUP)
              PsiElement(INTEGER_LITERAL)('0')
          PsiElement(.)('.')
          RsFieldLookupImpl(FIELD_LOOKUP)
            PsiElement(INTEGER_LITERAL)('0')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsDotExprImpl(DOT_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('f')
          PsiElement(.)('.')
          RsMethodCallImpl(METHOD_CALL)
            PsiElement(identifier)('m')
            RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
              PsiElement(()('(')
              PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('          ')
      PsiComment(<BLOCK_COMMENT>)('/* method-invokation */')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsCallExprImpl(CALL_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('f')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('            ')
      PsiComment(<BLOCK_COMMENT>)('/* call */')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsCallExprImpl(CALL_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                RsTypeQualImpl(TYPE_QUAL)
                  PsiElement(<)('<')
                  RsPathTypeImpl(PATH_TYPE)
                    RsPathImpl(PATH)
                      PsiElement(identifier)('T')
                  PsiWhiteSpace(' ')
                  PsiElement(as)('as')
                  PsiWhiteSpace(' ')
                  RsTraitRefImpl(TRAIT_REF)
                    RsPathImpl(PATH)
                      PsiElement(identifier)('Foo')
                  PsiElement(>)('>')
                  PsiElement(::)('::')
                PsiElement(identifier)('U')
              PsiElement(::)('::')
              PsiElement(identifier)('generic_method')
              RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                PsiElement(::)('::')
                PsiElement(<)('<')
                RsPathTypeImpl(PATH_TYPE)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('f64')
                PsiElement(>)('>')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsCallExprImpl(CALL_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('S')
                RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                  PsiElement(::)('::')
                  PsiElement(<)('<')
                  RsPathTypeImpl(PATH_TYPE)
                    RsPathImpl(PATH)
                      PsiElement(identifier)('isize')
                  PsiElement(>)('>')
              PsiElement(::)('::')
              PsiElement(identifier)('foo')
              RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                PsiElement(::)('::')
                PsiElement(<)('<')
                RsPathTypeImpl(PATH_TYPE)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('usize')
                PsiElement(>)('>')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('xs')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('Box')
            RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
              PsiElement(<)('<')
              RsArrayTypeImpl(ARRAY_TYPE)
                PsiElement([)('[')
                RsUnitTypeImpl(UNIT_TYPE)
                  PsiElement(()('(')
                  PsiElement())(')')
                PsiElement(])(']')
              PsiElement(>)('>')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsCallExprImpl(CALL_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('Box')
                RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                  PsiElement(::)('::')
                  PsiElement(<)('<')
                  RsArrayTypeImpl(ARRAY_TYPE)
                    PsiElement([)('[')
                    RsUnitTypeImpl(UNIT_TYPE)
                      PsiElement(()('(')
                      PsiElement())(')')
                    PsiElement(;)(';')
                    PsiWhiteSpace(' ')
                    RsLitExprImpl(LIT_EXPR)
                      PsiElement(INTEGER_LITERAL)('0')
                    PsiElement(])(']')
                  PsiElement(>)('>')
              PsiElement(::)('::')
              PsiElement(identifier)('new')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            RsArrayExprImpl(ARRAY_EXPR)
              PsiElement([)('[')
              PsiElement(])(']')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('t')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(=)('=')
          PsiWhiteSpace(' ')
          RsUnitExprImpl(UNIT_EXPR)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('         ')
      PsiComment(<BLOCK_COMMENT>)('/* unit */')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsArrayExprImpl(ARRAY_EXPR)
          PsiElement([)('[')
          PsiWhiteSpace('   ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('0')
          PsiElement(,)(',')
          PsiWhiteSpace('          ')
          PsiComment(<BLOCK_COMMENT>)('/* array */')
          PsiWhiteSpace('\n        ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
          PsiElement(,)(',')
          PsiWhiteSpace('\n        ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('2')
          PsiElement(,)(',')
          PsiWhiteSpace('\n        ')
          RsArrayExprImpl(ARRAY_EXPR)
            PsiElement([)('[')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('0')
            PsiWhiteSpace(' ')
            PsiElement(;)(';')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
            PsiWhiteSpace(' ')
            PsiElement(])(']')
          PsiWhiteSpace(' ')
          PsiElement(])(']')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsArrayExprImpl(ARRAY_EXPR)
          PsiElement([)('[')
          PsiElement(])(']')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsArrayExprImpl(ARRAY_EXPR)
          PsiElement([)('[')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
          PsiElement(,)(',')
          PsiElement(])(']')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsArrayExprImpl(ARRAY_EXPR)
          PsiElement([)('[')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
          PsiElement(;)(';')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('2')
          PsiElement(])(']')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              PsiElement(})('}')
        PsiElement(;)(';')
      PsiWhiteSpace('          ')
      PsiComment(<BLOCK_COMMENT>)('/* lambda */')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            RsValueParameterImpl(VALUE_PARAMETER)
              RsPatIdentImpl(PAT_IDENT)
                RsPatBindingImpl(PAT_BINDING)
                  PsiElement(identifier)('x')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('x')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            RsValueParameterImpl(VALUE_PARAMETER)
              RsPatRefImpl(PAT_REF)
                PsiElement(&)('&')
                RsPatIdentImpl(PAT_IDENT)
                  RsPatBindingImpl(PAT_BINDING)
                    PsiElement(identifier)('x')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('x')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            RsValueParameterImpl(VALUE_PARAMETER)
              RsPatBoxImpl(PAT_BOX)
                PsiElement(box)('box')
                PsiWhiteSpace(' ')
                RsPatIdentImpl(PAT_IDENT)
                  RsPatBindingImpl(PAT_BINDING)
                    PsiElement(identifier)('x')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('x')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          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(identifier)('i32')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsRetTypeImpl(RET_TYPE)
            PsiElement(->)('->')
            PsiWhiteSpace(' ')
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(identifier)('i32')
          PsiWhiteSpace(' ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('92')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          PsiElement(const)('const')
          PsiWhiteSpace(' ')
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              PsiElement(})('}')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          PsiElement(async_kw)('async')
          PsiWhiteSpace(' ')
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              PsiElement(})('}')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          PsiElement(move)('move')
          PsiWhiteSpace(' ')
          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(identifier)('i32')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              PsiWhiteSpace('\n        ')
              RsExprStmtImpl(EXPR_STMT)
                RsPathExprImpl(PATH_EXPR)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('x')
              PsiWhiteSpace('\n    ')
              PsiElement(})('}')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          PsiElement(const)('const')
          PsiWhiteSpace(' ')
          PsiElement(async_kw)('async')
          PsiWhiteSpace(' ')
          PsiElement(move)('move')
          PsiWhiteSpace(' ')
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              PsiElement(})('}')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          PsiElement(const)('const')
          PsiWhiteSpace(' ')
          PsiElement(static)('static')
          PsiWhiteSpace(' ')
          PsiElement(move)('move')
          PsiWhiteSpace(' ')
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              PsiElement(})('}')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            RsValueParameterImpl(VALUE_PARAMETER)
              RsPatIdentImpl(PAT_IDENT)
                RsPatBindingImpl(PAT_BINDING)
                  PsiElement(identifier)('x')
              PsiElement(:)(':')
              PsiWhiteSpace(' ')
              RsRefLikeTypeImpl(REF_LIKE_TYPE)
                PsiElement(&)('&')
                PsiElement(mut)('mut')
                PsiWhiteSpace(' ')
                RsPathTypeImpl(PATH_TYPE)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('i32')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsBinaryExprImpl(BINARY_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('x')
            PsiWhiteSpace(' ')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(=)('=')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('92')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBlockExprImpl(BLOCK_EXPR)
          RsBlockImpl(BLOCK)
            PsiElement({)('{')
            PsiWhiteSpace(' ')
            PsiElement(})('}')
      PsiWhiteSpace('             ')
      PsiComment(<BLOCK_COMMENT>)('/* block */')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBlockExprImpl(BLOCK_EXPR)
          PsiElement(unsafe)('unsafe')
          PsiWhiteSpace(' ')
          RsBlockImpl(BLOCK)
            PsiElement({)('{')
            PsiWhiteSpace(' ')
            RsExprStmtImpl(EXPR_STMT)
              RsLitExprImpl(LIT_EXPR)
                PsiElement(INTEGER_LITERAL)('92')
            PsiWhiteSpace(' ')
            PsiElement(})('}')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBlockExprImpl(BLOCK_EXPR)
          RsBlockImpl(BLOCK)
            PsiElement({)('{')
            PsiWhiteSpace('\n        ')
            RsExprStmtImpl(EXPR_STMT)
              RsDotExprImpl(DOT_EXPR)
                RsBlockExprImpl(BLOCK_EXPR)
                  RsBlockImpl(BLOCK)
                    PsiElement({)('{')
                    RsExprStmtImpl(EXPR_STMT)
                      RsLitExprImpl(LIT_EXPR)
                        PsiElement(INTEGER_LITERAL)('92')
                    PsiElement(})('}')
                PsiElement(.)('.')
                RsMethodCallImpl(METHOD_CALL)
                  PsiElement(identifier)('to_string')
                  RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
                    PsiElement(()('(')
                    PsiElement())(')')
            PsiWhiteSpace('\n    ')
            PsiElement(})('}')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsUnaryExprImpl(UNARY_EXPR)
          PsiElement(box)('box')
          PsiWhiteSpace(' ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('92')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsBinaryExprImpl(BINARY_EXPR)
          RsCastExprImpl(CAST_EXPR)
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
            PsiWhiteSpace(' ')
            PsiElement(as)('as')
            PsiWhiteSpace(' ')
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(identifier)('i32')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<=)('<=')
          PsiWhiteSpace(' ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsBinaryExprImpl(BINARY_EXPR)
          RsCastExprImpl(CAST_EXPR)
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
            PsiElement(:)(':')
            PsiWhiteSpace(' ')
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(identifier)('i32')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<=)('<=')
          PsiWhiteSpace(' ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsConstantImpl(CONSTANT)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('TEN')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('u32')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsLitExprImpl(LIT_EXPR)
          PsiElement(INTEGER_LITERAL)('10')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsBinaryExprImpl(BINARY_EXPR)
          RsCastExprImpl(CAST_EXPR)
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
            PsiWhiteSpace(' ')
            PsiElement(as)('as')
            PsiWhiteSpace(' ')
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(identifier)('u32')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(+)('+')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('TEN')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsBinaryExprImpl(BINARY_EXPR)
          RsCastExprImpl(CAST_EXPR)
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
            PsiElement(:)(':')
            PsiWhiteSpace(' ')
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(identifier)('u32')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(+)('+')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('TEN')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsCastExprImpl(CAST_EXPR)
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
          PsiWhiteSpace(' ')
          PsiElement(as)('as')
          PsiWhiteSpace(' ')
          RsParenTypeImpl(PAREN_TYPE)
            PsiElement(()('(')
            RsPathTypeImpl(PATH_TYPE)
              RsPathImpl(PATH)
                PsiElement(identifier)('i32')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsUnderscoreExprImpl(UNDERSCORE_EXPR)
            PsiElement(_)('_')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(=)('=')
          PsiWhiteSpace(' ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsTupleExprImpl(TUPLE_EXPR)
            PsiElement(()('(')
            RsUnderscoreExprImpl(UNDERSCORE_EXPR)
              PsiElement(_)('_')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsUnderscoreExprImpl(UNDERSCORE_EXPR)
              PsiElement(_)('_')
            PsiElement())(')')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(=)('=')
          PsiWhiteSpace(' ')
          RsTupleExprImpl(TUPLE_EXPR)
            PsiElement(()('(')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('2')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsLambdaExprImpl(LAMBDA_EXPR)
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              PsiWhiteSpace(' ')
              RsExprStmtImpl(EXPR_STMT)
                RsLitExprImpl(LIT_EXPR)
                  PsiElement(INTEGER_LITERAL)('0')
                PsiElement(;)(';')
              PsiWhiteSpace(' ')
              RsExprStmtImpl(EXPR_STMT)
                RsYieldExprImpl(YIELD_EXPR)
                  PsiElement(yield)('yield')
                  PsiWhiteSpace(' ')
                  RsLitExprImpl(LIT_EXPR)
                    PsiElement(INTEGER_LITERAL)('0')
                PsiElement(;)(';')
              PsiWhiteSpace(' ')
              PsiElement(})('}')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsCallExprImpl(CALL_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('foo')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('bar')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(BOOL_LITERAL)('true')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(STRING_LITERAL)('""')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(FLOAT_LITERAL)('1.1')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsRetExprImpl(RET_EXPR)
          PsiElement(return)('return')
          PsiWhiteSpace(' ')
          RsBinaryExprImpl(BINARY_EXPR)
            RsParenExprImpl(PAREN_EXPR)
              PsiElement(()('(')
              RsBinaryExprImpl(BINARY_EXPR)
                RsPathExprImpl(PATH_EXPR)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('x')
                PsiWhiteSpace(' ')
                RsBinaryOpImpl(BINARY_OP)
                  PsiElement(=)('=')
                PsiWhiteSpace(' ')
                RsPathExprImpl(PATH_EXPR)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('y')
              PsiElement())(')')
            PsiWhiteSpace('  ')
            PsiComment(<BLOCK_COMMENT>)('/* return */')
            PsiWhiteSpace('\n            ')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(+)('+')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
