FILE
  RsUseItemImpl(USE_ITEM)
    PsiComment(<EOL_COMMENT>)('// #1')
    PsiWhiteSpace('\n')
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsPathImpl(PATH)
        RsPathImpl(PATH)
          PsiElement(self)('self')
        PsiWhiteSpace(' ')
        PsiElement(::)('::')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('y')
      PsiWhiteSpace(' ')
      PsiElement(::)('::')
      PsiWhiteSpace(' ')
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(self)('self')
        PsiWhiteSpace(' ')
        PsiElement(})('}')
    PsiErrorElement:';' expected, got 'fn'
      <empty list>
  PsiWhiteSpace(' ')
  RsFunctionImpl(FUNCTION)
    PsiComment(<EOL_COMMENT>)('// missing ';'')
    PsiWhiteSpace('\n')
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('foo')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace(' ')
  PsiComment(<EOL_COMMENT>)('// should be recovered after missing ';'')
  PsiWhiteSpace('\n\n')
  RsUseItemImpl(USE_ITEM)
    PsiComment(<EOL_COMMENT>)('// #2 speck recover')
    PsiWhiteSpace('\n')
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        PsiErrorElement:<use speck> expected, got 'fn'
          <empty list>
        PsiElement(fn)('fn')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(identifier)('foo')
        PsiElement(})('}')
    PsiElement(;)(';')
