FILE
  PsiComment(<EOL_COMMENT>)('// https://github.com/rust-lang/rust/issues/31436')
  PsiWhiteSpace('\n\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)
        RsTryExprImpl(TRY_EXPR)
          RsDotExprImpl(DOT_EXPR)
            RsLitExprImpl(LIT_EXPR)
              PsiElement(STRING_LITERAL)('"1"')
            PsiElement(.)('.')
            RsMethodCallImpl(METHOD_CALL)
              PsiElement(identifier)('parse')
              RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                PsiElement(::)('::')
                PsiElement(<)('<')
                RsPathTypeImpl(PATH_TYPE)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('i32')
                PsiElement(>)('>')
              RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
                PsiElement(()('(')
                PsiElement())(')')
          PsiElement(?)('?')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsTryExprImpl(TRY_EXPR)
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              RsExprStmtImpl(EXPR_STMT)
                RsPathExprImpl(PATH_EXPR)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('x')
              PsiElement(})('}')
          PsiElement(?)('?')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsTryExprImpl(TRY_EXPR)
          RsIndexExprImpl(INDEX_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('x')
            PsiElement([)('[')
            RsTryExprImpl(TRY_EXPR)
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('y')
              PsiElement(?)('?')
            PsiElement(])(']')
          PsiElement(?)('?')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsTryExprImpl(TRY_EXPR)
          RsTryExprImpl(TRY_EXPR)
            RsTryExprImpl(TRY_EXPR)
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('x')
              PsiElement(?)('?')
            PsiElement(?)('?')
          PsiElement(?)('?')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsCallExprImpl(CALL_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('Ok')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(BOOL_LITERAL)('true')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('question_should_bind_tighter')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsUnaryExprImpl(UNARY_EXPR)
          PsiElement(!)('!')
          RsTryExprImpl(TRY_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('x')
            PsiElement(?)('?')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
