Factor out duplicated error messages into reused variable

This commit is contained in:
David Tolnay 2023-03-09 20:17:20 -08:00
parent 6c063569c0
commit 9af132f594
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82

View File

@ -734,14 +734,9 @@ fn decide_tag(
TagType::Internal { tag } TagType::Internal { tag }
} }
(Some((untagged_tokens, _)), Some((tag_tokens, _)), None) => { (Some((untagged_tokens, _)), Some((tag_tokens, _)), None) => {
cx.error_spanned_by( let msg = "enum cannot be both untagged and internally tagged";
untagged_tokens, cx.error_spanned_by(untagged_tokens, msg);
"enum cannot be both untagged and internally tagged", cx.error_spanned_by(tag_tokens, msg);
);
cx.error_spanned_by(
tag_tokens,
"enum cannot be both untagged and internally tagged",
);
TagType::External // doesn't matter, will error TagType::External // doesn't matter, will error
} }
(None, None, Some((content_tokens, _))) => { (None, None, Some((content_tokens, _))) => {
@ -752,30 +747,17 @@ fn decide_tag(
TagType::External TagType::External
} }
(Some((untagged_tokens, _)), None, Some((content_tokens, _))) => { (Some((untagged_tokens, _)), None, Some((content_tokens, _))) => {
cx.error_spanned_by( let msg = "untagged enum cannot have #[serde(content = \"...\")]";
untagged_tokens, cx.error_spanned_by(untagged_tokens, msg);
"untagged enum cannot have #[serde(content = \"...\")]", cx.error_spanned_by(content_tokens, msg);
);
cx.error_spanned_by(
content_tokens,
"untagged enum cannot have #[serde(content = \"...\")]",
);
TagType::External TagType::External
} }
(None, Some((_, tag)), Some((_, content))) => TagType::Adjacent { tag, content }, (None, Some((_, tag)), Some((_, content))) => TagType::Adjacent { tag, content },
(Some((untagged_tokens, _)), Some((tag_tokens, _)), Some((content_tokens, _))) => { (Some((untagged_tokens, _)), Some((tag_tokens, _)), Some((content_tokens, _))) => {
cx.error_spanned_by( let msg = "untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]";
untagged_tokens, cx.error_spanned_by(untagged_tokens, msg);
"untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]", cx.error_spanned_by(tag_tokens, msg);
); cx.error_spanned_by(content_tokens, msg);
cx.error_spanned_by(
tag_tokens,
"untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]",
);
cx.error_spanned_by(
content_tokens,
"untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]",
);
TagType::External TagType::External
} }
} }
@ -794,14 +776,10 @@ fn decide_identifier(
) { ) {
(_, None, None) => Identifier::No, (_, None, None) => Identifier::No,
(_, Some((field_identifier_tokens, _)), Some((variant_identifier_tokens, _))) => { (_, Some((field_identifier_tokens, _)), Some((variant_identifier_tokens, _))) => {
cx.error_spanned_by( let msg =
field_identifier_tokens, "#[serde(field_identifier)] and #[serde(variant_identifier)] cannot both be set";
"#[serde(field_identifier)] and #[serde(variant_identifier)] cannot both be set", cx.error_spanned_by(field_identifier_tokens, msg);
); cx.error_spanned_by(variant_identifier_tokens, msg);
cx.error_spanned_by(
variant_identifier_tokens,
"#[serde(field_identifier)] and #[serde(variant_identifier)] cannot both be set",
);
Identifier::No Identifier::No
} }
(syn::Data::Enum(_), Some(_), None) => Identifier::Field, (syn::Data::Enum(_), Some(_), None) => Identifier::Field,