FILE
  PsiComment(<INNER_BLOCK_DOC_COMMENT>)
    PsiElement(<DOC_GAP>)('/*!')
    PsiWhiteSpace('\n ')
    PsiElement(<DOC_DATA>)('* inner docs')
    PsiWhiteSpace('\n ')
    PsiElement(<DOC_DATA>)('* starred line')
    PsiWhiteSpace('\n ')
    PsiElement(<DOC_DATA>)('  not starred line')
    PsiWhiteSpace('\n ')
    PsiElement(<DOC_GAP>)('*/')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiComment(<OUTER_EOL_DOC_COMMENT>)
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocSetextHeadingImpl(<DOC_SETEXT_HEADING>)
        PsiElement(<DOC_DATA>)('This is Setext level 1 header!')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('==============================')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocSetextHeadingImpl(<DOC_SETEXT_HEADING>)
        PsiElement(<DOC_DATA>)('This is Setext level 2 header!')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('------------------------------')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('# Header 1')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('## Header 2')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('### Header 3')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('#### Header 4')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('##### Header 5')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('###### Header 6')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('####### Not a header')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('#not_a_header')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('#\tthere is a tab here')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('\## not a header')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)(' # Header 1 (offset 1)')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('  # Header 1 (offset 2)')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAtxHeadingImpl(<DOC_ATX_HEADING>)
        PsiElement(<DOC_DATA>)('   # Header 1 (offset 3)')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('Some text.')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('Some more text.')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocStrongImpl(<DOC_STRONG>)
        PsiElement(<DOC_DATA>)('**bold text**')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocEmphasisImpl(<DOC_EMPHASIS>)
        PsiElement(<DOC_DATA>)('*emph text*')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocCodeSpanImpl(<DOC_CODE_SPAN>)
        PsiElement(<DOC_DATA>)('`code span`')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocCodeSpanImpl(<DOC_CODE_SPAN>)
        PsiElement(<DOC_DATA>)('`multiline')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('code span`')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocCodeFenceImpl(<DOC_CODE_FENCE>)
        RsDocCodeFenceStartEndImpl(<DOC_CODE_FENCE_START_END>)
          PsiElement(<DOC_DATA>)('```')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('A code snippet')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('And more code')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        RsDocCodeFenceStartEndImpl(<DOC_CODE_FENCE_START_END>)
          PsiElement(<DOC_DATA>)('```')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocCodeFenceImpl(<DOC_CODE_FENCE>)
        RsDocCodeFenceStartEndImpl(<DOC_CODE_FENCE_START_END>)
          PsiElement(<DOC_DATA>)('```')
        RsDocCodeFenceLangImpl(<DOC_CODE_FENCE_LANG>)
          PsiElement(<DOC_DATA>)('foo, bar, baz')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('A code snippet 2')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('"```"')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        RsDocCodeFenceStartEndImpl(<DOC_CODE_FENCE_START_END>)
          PsiElement(<DOC_DATA>)('```')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocCodeBlockImpl(<DOC_CODE_BLOCK>)
        PsiElement(<DOC_DATA>)('    code block')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('    block code')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('> block quote')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('> more quote')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocHtmlBlockImpl(<DOC_HTML_BLOCK>)
        PsiElement(<DOC_DATA>)('<div>')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('Some html')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('<div>some more html</div>')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        PsiElement(<DOC_DATA>)('</div>')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('1. Ordered list item')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('2. Ordered list item 2')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('* Unordered list item')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('* Unordered list item 2')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('| Table header 1   | Table header 2')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('|------------------|---------------')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('| Foo              | Bar')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocInlineLinkImpl(<DOC_INLINE_LINK>)
        RsDocLinkTextImpl(<DOC_LINK_TEXT>)
          PsiElement(<DOC_DATA>)('[inline link]')
        PsiElement(<DOC_DATA>)('(')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('http://example.com')
        PsiElement(<DOC_DATA>)(')')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocInlineLinkImpl(<DOC_INLINE_LINK>)
        RsDocLinkTextImpl(<DOC_LINK_TEXT>)
          PsiElement(<DOC_DATA>)('[inline link]')
        PsiElement(<DOC_DATA>)('(')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('</uri with spaces>')
        PsiElement(<DOC_DATA>)(')')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocInlineLinkImpl(<DOC_INLINE_LINK>)
        RsDocLinkTextImpl(<DOC_LINK_TEXT>)
          PsiElement(<DOC_DATA>)('[inline link]')
        PsiElement(<DOC_DATA>)('(')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('http://example.com')
        PsiElement(<DOC_DATA>)(' ')
        RsDocLinkTitleImpl(<DOC_LINK_TITLE>)
          PsiElement(<DOC_DATA>)('"link title"')
        PsiElement(<DOC_DATA>)(')')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocInlineLinkImpl(<DOC_INLINE_LINK>)
        RsDocLinkTextImpl(<DOC_LINK_TEXT>)
          PsiElement(<DOC_DATA>)('[inline link]')
        PsiElement(<DOC_DATA>)('(')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('http://example.com')
        PsiElement(<DOC_DATA>)(' ')
        RsDocLinkTitleImpl(<DOC_LINK_TITLE>)
          PsiElement(<DOC_DATA>)(''link title'')
        PsiElement(<DOC_DATA>)(')')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocInlineLinkImpl(<DOC_INLINE_LINK>)
        RsDocLinkTextImpl(<DOC_LINK_TEXT>)
          PsiElement(<DOC_DATA>)('[inline link]')
        PsiElement(<DOC_DATA>)('(')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('http://example.com')
        PsiElement(<DOC_DATA>)(' ')
        RsDocLinkTitleImpl(<DOC_LINK_TITLE>)
          PsiElement(<DOC_DATA>)('(link title)')
        PsiElement(<DOC_DATA>)(')')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceShortImpl(<DOC_SHORT_REFERENCE_LINK>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[short link]')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceFullImpl(<DOC_FULL_REFERENCE_LINK>)
        RsDocLinkTextImpl(<DOC_LINK_TEXT>)
          PsiElement(<DOC_DATA>)('[full link]')
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[dst]')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceShortImpl(<DOC_SHORT_REFERENCE_LINK>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[')
          RsDocCodeSpanImpl(<DOC_CODE_SPAN>)
            PsiElement(<DOC_DATA>)('`short link in backticks`')
          PsiElement(<DOC_DATA>)(']')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceShortImpl(<DOC_SHORT_REFERENCE_LINK>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[multiline')
          PsiWhiteSpace('\n')
          PsiElement(<DOC_GAP>)('///')
          PsiWhiteSpace(' ')
          PsiElement(<DOC_DATA>)('short link]')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      PsiElement(<DOC_DATA>)('!')
      RsDocInlineLinkImpl(<DOC_INLINE_LINK>)
        RsDocLinkTextImpl(<DOC_LINK_TEXT>)
          PsiElement(<DOC_DATA>)('[image]')
        PsiElement(<DOC_DATA>)('(')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('/url')
        PsiElement(<DOC_DATA>)(' ')
        RsDocLinkTitleImpl(<DOC_LINK_TITLE>)
          PsiElement(<DOC_DATA>)('"title"')
        PsiElement(<DOC_DATA>)(')')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocAutoLinkImpl(<DOC_AUTO_LINK>)
        PsiElement(<DOC_DATA>)('<http://example.com>')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[link def 1]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('http://example.com')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[link def 2]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('index.html')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[`link def in backticks`]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('http://example.com')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[not an url 1]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            PsiElement(identifier)('foobar')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[not an url 2]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('foo-bar')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[multiline]')
        PsiElement(<DOC_DATA>)(':')
        PsiWhiteSpace('\n')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace(' ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            PsiElement(identifier)('foobar')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[hash only]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('#hash')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('foo')
              PsiElement(::)('::')
              PsiElement(identifier)('bar')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path with disambiguator 1]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('fn@')
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('foo')
              PsiElement(::)('::')
              PsiElement(identifier)('bar')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path with disambiguator 2]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('foo')
              PsiElement(::)('::')
              PsiElement(identifier)('bar')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
          PsiElement(<DOC_DATA>)('!()')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path with disambiguator 3]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('foo')
              PsiElement(::)('::')
              PsiElement(identifier)('bar')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
          PsiElement(<DOC_DATA>)('()')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path with disambiguator 4]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('foo')
              PsiElement(::)('::')
              PsiElement(identifier)('bar')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
          PsiElement(<DOC_DATA>)('!')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path with hash]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('foo')
              PsiElement(::)('::')
              PsiElement(identifier)('bar')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
          PsiElement(<DOC_DATA>)('#quux')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path with disambiguator and hash 1]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('foo')
              PsiElement(::)('::')
              PsiElement(identifier)('bar')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
          PsiElement(<DOC_DATA>)('!()#hash')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path with disambiguator and hash 2]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('fn@')
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              RsPathImpl(PATH)
                PsiElement(identifier)('foo')
              PsiElement(::)('::')
              PsiElement(identifier)('bar')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
          PsiElement(<DOC_DATA>)('#hash')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path generics]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            PsiElement(identifier)('Vec')
            RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
              PsiElement(<)('<')
              RsPathTypeImpl(PATH_TYPE)
                RsPathImpl(PATH)
                  PsiElement(identifier)('i32')
              PsiElement(>)('>')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path generics]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              PsiElement(identifier)('Vec')
              RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                PsiElement(<)('<')
                RsPathTypeImpl(PATH_TYPE)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('i32')
                PsiElement(>)('>')
            PsiElement(::)('::')
            PsiElement(identifier)('new')
          PsiElement(<DOC_DATA>)('()')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path in backticks 1]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            PsiElement(identifier)('foo')
          PsiElement(<DOC_DATA>)('`')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path in backticks 2]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('`')
          RsPathImpl(PATH)
            PsiElement(identifier)('foo')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path in backticks 3]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('`')
          RsPathImpl(PATH)
            PsiElement(identifier)('foo')
          PsiElement(<DOC_DATA>)('`')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path in backticks 4]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('```')
          RsPathImpl(PATH)
            PsiElement(identifier)('foo')
          PsiElement(<DOC_DATA>)('``')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[rust path in backticks 5]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          PsiElement(<DOC_DATA>)('`fn@')
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              PsiElement(identifier)('Vec')
            PsiElement(::)('::')
            PsiElement(identifier)('new')
          PsiElement(<DOC_DATA>)('#hash`')
    PsiWhiteSpace('\n')
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('foo1')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiComment(<OUTER_EOL_DOC_COMMENT>)
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceShortImpl(<DOC_SHORT_REFERENCE_LINK>)
        PsiElement(<DOC_DATA>)('[')
        RsPathImpl(PATH)
          PsiElement(identifier)('bar1')
        PsiElement(<DOC_DATA>)(']')
      PsiElement(<DOC_DATA>)(' - rust path')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceShortImpl(<DOC_SHORT_REFERENCE_LINK>)
        PsiElement(<DOC_DATA>)('[`')
        RsPathImpl(PATH)
          PsiElement(identifier)('bar2')
        PsiElement(<DOC_DATA>)('`]')
      PsiElement(<DOC_DATA>)(' - rust path in backticks')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceShortImpl(<DOC_SHORT_REFERENCE_LINK>)
        PsiElement(<DOC_DATA>)('[  ')
        RsPathImpl(PATH)
          PsiElement(identifier)('bar3')
        PsiElement(<DOC_DATA>)(' ]')
      PsiElement(<DOC_DATA>)(' - rust path with spaces')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceShortImpl(<DOC_SHORT_REFERENCE_LINK>)
        PsiElement(<DOC_DATA>)('[ `')
        RsPathImpl(PATH)
          PsiElement(identifier)('bar4')
        PsiElement(<DOC_DATA>)('` ]')
      PsiElement(<DOC_DATA>)(' - rust path in backticks with spaces')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkReferenceShortImpl(<DOC_SHORT_REFERENCE_LINK>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[label]')
      PsiElement(<DOC_DATA>)(' - markdown label reference')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n')
      PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace(' ')
      RsDocLinkDefinitionImpl(<DOC_LINK_DEFINITION>)
        RsDocLinkLabelImpl(<DOC_LINK_LABEL>)
          PsiElement(<DOC_DATA>)('[label]')
        PsiElement(<DOC_DATA>)(': ')
        RsDocLinkDestinationImpl(<DOC_LINK_DESTINATION>)
          RsPathImpl(PATH)
            PsiElement(identifier)('func')
    PsiWhiteSpace('\n')
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('foo2')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsModItemImpl(MOD_ITEM)
    PsiElement(mod)('mod')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('foo')
    PsiWhiteSpace(' ')
    PsiElement({)('{')
    PsiWhiteSpace('\n    ')
    PsiComment(<INNER_EOL_DOC_COMMENT>)
      PsiElement(<DOC_GAP>)('//!')
      PsiWhiteSpace('\n    ')
      PsiElement(<DOC_GAP>)('//!')
      PsiWhiteSpace('\n    ')
      PsiElement(<DOC_GAP>)('//!')
    PsiWhiteSpace('\n\n    ')
    RsFunctionImpl(FUNCTION)
      PsiComment(<OUTER_EOL_DOC_COMMENT>)
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace('\n    ')
        PsiElement(<DOC_GAP>)('///')
        PsiWhiteSpace('\n    ')
        PsiElement(<DOC_GAP>)('///')
      PsiWhiteSpace('\n    ')
      PsiElement(fn)('fn')
      PsiWhiteSpace(' ')
      PsiElement(identifier)('bar')
      RsValueParameterListImpl(VALUE_PARAMETER_LIST)
        PsiElement(()('(')
        PsiElement())(')')
      PsiWhiteSpace(' ')
      RsBlockImpl(BLOCK)
        PsiElement({)('{')
        PsiElement(})('}')
    PsiWhiteSpace('\n\n    ')
    RsFunctionImpl(FUNCTION)
      PsiComment(<OUTER_BLOCK_DOC_COMMENT>)
        PsiElement(<DOC_GAP>)('/**')
        PsiWhiteSpace('\n     ')
        PsiElement(<DOC_DATA>)('* starred line')
        PsiWhiteSpace('\n     ')
        PsiElement(<DOC_DATA>)('  not starred line')
        PsiWhiteSpace('\n     ')
        PsiElement(<DOC_GAP>)('*/')
      PsiWhiteSpace('\n    ')
      PsiElement(fn)('fn')
      PsiWhiteSpace(' ')
      PsiElement(identifier)('baz')
      RsValueParameterListImpl(VALUE_PARAMETER_LIST)
        PsiElement(()('(')
        PsiElement())(')')
      PsiWhiteSpace(' ')
      RsBlockImpl(BLOCK)
        PsiElement({)('{')
        PsiElement(})('}')
    PsiWhiteSpace('\n\n    ')
    RsFunctionImpl(FUNCTION)
      PsiComment(<OUTER_BLOCK_DOC_COMMENT>)
        PsiElement(<DOC_GAP>)('/**')
        PsiElement(<DOC_DATA>)(' ')
        PsiElement(<DOC_GAP>)('*/')
      PsiWhiteSpace('\n    ')
      PsiElement(fn)('fn')
      PsiWhiteSpace(' ')
      PsiElement(identifier)('quux')
      RsValueParameterListImpl(VALUE_PARAMETER_LIST)
        PsiElement(()('(')
        PsiElement())(')')
      PsiWhiteSpace(' ')
      RsBlockImpl(BLOCK)
        PsiElement({)('{')
        PsiElement(})('}')
    PsiWhiteSpace('\n')
    PsiElement(})('}')
