fix(napi-derive): proc-macro crash on enum (#1870)

This commit is contained in:
LongYinan 2023-12-27 21:18:02 +08:00 committed by GitHub
parent 85807ad790
commit 84f3092d70
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 14 deletions

View file

@ -273,20 +273,25 @@ fn extract_doc_comments(attrs: &[syn::Attribute]) -> Vec<String> {
.filter_map(|a| {
// if the path segments include an ident of "doc" we know this
// this is a doc comment
if a.path().is_ident("doc") {
Some(
// We want to filter out any Puncts so just grab the Literals
match &a.meta.require_name_value().unwrap().value {
syn::Expr::Lit(ExprLit {
lit: syn::Lit::Str(str),
..
}) => {
let quoted = str.token().to_string();
Some(try_unescape(&quoted).unwrap_or(quoted))
}
_ => None,
},
)
let name_value = a.meta.require_name_value();
if let Ok(name) = name_value {
if a.path().is_ident("doc") {
Some(
// We want to filter out any Puncts so just grab the Literals
match &name.value {
syn::Expr::Lit(ExprLit {
lit: syn::Lit::Str(str),
..
}) => {
let quoted = str.token().to_string();
Some(try_unescape(&quoted).unwrap_or(quoted))
}
_ => None,
},
)
} else {
None
}
} else {
None
}

View file

@ -26,6 +26,7 @@ pub enum CustomNumEnum {
Two,
Three = 3,
Four,
#[doc(hidden)]
Six = 6,
Eight = 8,
Nine, // would be 9