FILE
  RsEnumItemImpl(ENUM_ITEM)
    PsiComment(<EOL_COMMENT>)('// Although enum variants are always implicitly public,')
    PsiWhiteSpace('\n')
    PsiComment(<EOL_COMMENT>)('// we parse visibility for them to produce semantic [E0449] error as the compiler does')
    PsiWhiteSpace('\n')
    PsiElement(enum)('enum')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('E')
    PsiWhiteSpace(' ')
    RsEnumBodyImpl(ENUM_BODY)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsEnumVariantImpl(ENUM_VARIANT)
        RsVisImpl(VIS)
          PsiElement(pub)('pub')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('V1')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsEnumVariantImpl(ENUM_VARIANT)
        RsVisImpl(VIS)
          PsiElement(pub)('pub')
          RsVisRestrictionImpl(VIS_RESTRICTION)
            PsiElement(()('(')
            RsPathImpl(PATH)
              PsiElement(crate)('crate')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('V2')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsEnumVariantImpl(ENUM_VARIANT)
        RsVisImpl(VIS)
          PsiElement(pub)('pub')
          RsVisRestrictionImpl(VIS_RESTRICTION)
            PsiElement(()('(')
            PsiElement(in)('in')
            PsiWhiteSpace(' ')
            RsPathImpl(PATH)
              PsiElement(identifier)('a')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('V3')
      PsiWhiteSpace('\n')
      PsiElement(})('}')