Allow doc comments on all Items

This commit is contained in:
Jonas Schievink 2022-01-08 15:01:26 +01:00
parent ca8bd3ec42
commit 67f548d8e9
2 changed files with 12 additions and 5 deletions

View file

@ -162,6 +162,7 @@ pub struct MacroCall {
pub(crate) syntax: SyntaxNode, pub(crate) syntax: SyntaxNode,
} }
impl ast::HasAttrs for MacroCall {} impl ast::HasAttrs for MacroCall {}
impl ast::HasDocComments for MacroCall {}
impl MacroCall { impl MacroCall {
pub fn path(&self) -> Option<Path> { support::child(&self.syntax) } pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
pub fn excl_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![!]) } pub fn excl_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![!]) }
@ -259,6 +260,7 @@ pub struct ExternBlock {
pub(crate) syntax: SyntaxNode, pub(crate) syntax: SyntaxNode,
} }
impl ast::HasAttrs for ExternBlock {} impl ast::HasAttrs for ExternBlock {}
impl ast::HasDocComments for ExternBlock {}
impl ExternBlock { impl ExternBlock {
pub fn abi(&self) -> Option<Abi> { support::child(&self.syntax) } pub fn abi(&self) -> Option<Abi> { support::child(&self.syntax) }
pub fn extern_item_list(&self) -> Option<ExternItemList> { support::child(&self.syntax) } pub fn extern_item_list(&self) -> Option<ExternItemList> { support::child(&self.syntax) }
@ -270,6 +272,7 @@ pub struct ExternCrate {
} }
impl ast::HasAttrs for ExternCrate {} impl ast::HasAttrs for ExternCrate {}
impl ast::HasVisibility for ExternCrate {} impl ast::HasVisibility for ExternCrate {}
impl ast::HasDocComments for ExternCrate {}
impl ExternCrate { impl ExternCrate {
pub fn extern_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![extern]) } pub fn extern_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![extern]) }
pub fn crate_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![crate]) } pub fn crate_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![crate]) }
@ -1543,6 +1546,7 @@ pub enum Item {
Use(Use), Use(Use),
} }
impl ast::HasAttrs for Item {} impl ast::HasAttrs for Item {}
impl ast::HasDocComments for Item {}
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Stmt { pub enum Stmt {
@ -1597,6 +1601,7 @@ pub enum AssocItem {
TypeAlias(TypeAlias), TypeAlias(TypeAlias),
} }
impl ast::HasAttrs for AssocItem {} impl ast::HasAttrs for AssocItem {}
impl ast::HasDocComments for AssocItem {}
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum ExternItem { pub enum ExternItem {
@ -1606,6 +1611,7 @@ pub enum ExternItem {
TypeAlias(TypeAlias), TypeAlias(TypeAlias),
} }
impl ast::HasAttrs for ExternItem {} impl ast::HasAttrs for ExternItem {}
impl ast::HasDocComments for ExternItem {}
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum GenericParam { pub enum GenericParam {
@ -3902,10 +3908,9 @@ impl AnyHasDocComments {
impl AstNode for AnyHasDocComments { impl AstNode for AnyHasDocComments {
fn can_cast(kind: SyntaxKind) -> bool { fn can_cast(kind: SyntaxKind) -> bool {
match kind { match kind {
SOURCE_FILE | CONST | ENUM | FN | IMPL | MACRO_RULES | MACRO_DEF | MODULE | STATIC MACRO_CALL | SOURCE_FILE | CONST | ENUM | EXTERN_BLOCK | EXTERN_CRATE | FN | IMPL
| STRUCT | TRAIT | TYPE_ALIAS | UNION | USE | RECORD_FIELD | TUPLE_FIELD | VARIANT => { | MACRO_RULES | MACRO_DEF | MODULE | STATIC | STRUCT | TRAIT | TYPE_ALIAS | UNION
true | USE | RECORD_FIELD | TUPLE_FIELD | VARIANT => true,
}
_ => false, _ => false,
} }
} }

View file

@ -793,9 +793,11 @@ fn extract_struct_traits(ast: &mut AstSrc) {
"Const", "Const",
"TypeAlias", "TypeAlias",
"Impl", "Impl",
"ExternBlock",
"ExternCrate",
"MacroCall",
"MacroRules", "MacroRules",
"MacroDef", "MacroDef",
"Macro",
"Use", "Use",
]; ];