FILE
  RsUseItemImpl(USE_ITEM)
    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(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace('           ')
    RsUseSpeckImpl(USE_SPECK)
      PsiElement(::)('::')
      PsiWhiteSpace(' ')
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(self)('self')
        PsiWhiteSpace('   ')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace('           ')
    RsUseSpeckImpl(USE_SPECK)
      PsiElement(::)('::')
      PsiWhiteSpace(' ')
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(self)('self')
        PsiWhiteSpace(' ')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace('           ')
    RsUseSpeckImpl(USE_SPECK)
      PsiElement(::)('::')
      PsiWhiteSpace(' ')
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        PsiWhiteSpace('        ')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace('              ')
    RsUseSpeckImpl(USE_SPECK)
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(identifier)('y')
        PsiWhiteSpace('      ')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace('              ')
    RsUseSpeckImpl(USE_SPECK)
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(identifier)('y')
        PsiWhiteSpace(' ')
        PsiElement(,)(',')
        PsiWhiteSpace('    ')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace('              ')
    RsUseSpeckImpl(USE_SPECK)
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        PsiWhiteSpace('        ')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsPathImpl(PATH)
        RsPathImpl(PATH)
          PsiElement(self)('self')
        PsiWhiteSpace(' ')
        PsiElement(::)('::')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('y')
      PsiWhiteSpace(' ')
      PsiElement(::)('::')
      PsiWhiteSpace(' ')
      PsiElement(*)('*')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsPathImpl(PATH)
        RsPathImpl(PATH)
          PsiElement(self)('self')
        PsiWhiteSpace(' ')
        PsiElement(::)('::')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('y')
      PsiWhiteSpace(' ')
      RsAliasImpl(ALIAS)
        PsiElement(as)('as')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('z')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsPathImpl(PATH)
        RsPathImpl(PATH)
          PsiElement(self)('self')
        PsiWhiteSpace(' ')
        PsiElement(::)('::')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('y')
      PsiWhiteSpace(' ')
      RsAliasImpl(ALIAS)
        PsiElement(as)('as')
        PsiWhiteSpace(' ')
        PsiElement(_)('_')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsPathImpl(PATH)
        RsPathImpl(PATH)
          PsiElement(self)('self')
        PsiWhiteSpace(' ')
        PsiElement(::)('::')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('y')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsPathImpl(PATH)
        RsPathImpl(PATH)
          PsiElement(crate)('crate')
        PsiWhiteSpace(' ')
        PsiElement(::)('::')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('y')
    PsiElement(;)(';')
  PsiWhiteSpace('\n\n')
  RsUseItemImpl(USE_ITEM)
    PsiComment(<EOL_COMMENT>)('// https://github.com/rust-lang/rfcs/blob/master/text/2128-use-nested-groups.md')
    PsiWhiteSpace('\n')
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsPathImpl(PATH)
        PsiElement(identifier)('a')
      PsiElement(::)('::')
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(identifier)('B')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(identifier)('d')
          PsiElement(::)('::')
          RsUseGroupImpl(USE_GROUP)
            PsiElement({)('{')
            RsUseSpeckImpl(USE_SPECK)
              RsPathImpl(PATH)
                PsiElement(self)('self')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsUseSpeckImpl(USE_SPECK)
              PsiElement(*)('*')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsUseSpeckImpl(USE_SPECK)
              RsPathImpl(PATH)
                RsPathImpl(PATH)
                  PsiElement(identifier)('g')
                PsiElement(::)('::')
                PsiElement(identifier)('H')
            PsiElement(})('}')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      PsiElement(::)('::')
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        RsUseSpeckImpl(USE_SPECK)
          PsiElement(*)('*')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          PsiElement(*)('*')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsPathImpl(PATH)
        PsiElement(identifier)('foo')
      PsiElement(::)('::')
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            PsiElement(identifier)('bar')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsUseGroupImpl(USE_GROUP)
            PsiElement({)('{')
            RsUseSpeckImpl(USE_SPECK)
              RsPathImpl(PATH)
                PsiElement(identifier)('baz')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            RsUseSpeckImpl(USE_SPECK)
              RsPathImpl(PATH)
                PsiElement(identifier)('quux')
            PsiElement(})('}')
        PsiElement(})('}')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsUseItemImpl(USE_ITEM)
    PsiElement(use)('use')
    PsiWhiteSpace(' ')
    RsUseSpeckImpl(USE_SPECK)
      RsUseGroupImpl(USE_GROUP)
        PsiElement({)('{')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              PsiElement(crate)('crate')
            PsiElement(::)('::')
            PsiElement(identifier)('foo')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              PsiElement(crate)('crate')
            PsiElement(::)('::')
            PsiElement(identifier)('bar')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        RsUseSpeckImpl(USE_SPECK)
          RsPathImpl(PATH)
            RsPathImpl(PATH)
              PsiElement(super)('super')
            PsiElement(::)('::')
            PsiElement(identifier)('baz')
        PsiElement(})('}')
    PsiElement(;)(';')
