Skip to content

Commit 9af132f

Browse files
committed
Factor out duplicated error messages into reused variable
1 parent 6c06356 commit 9af132f

File tree

1 file changed

+14
-36
lines changed

1 file changed

+14
-36
lines changed

serde_derive/src/internals/attr.rs

Lines changed: 14 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -734,14 +734,9 @@ fn decide_tag(
734734
TagType::Internal { tag }
735735
}
736736
(Some((untagged_tokens, _)), Some((tag_tokens, _)), None) => {
737-
cx.error_spanned_by(
738-
untagged_tokens,
739-
"enum cannot be both untagged and internally tagged",
740-
);
741-
cx.error_spanned_by(
742-
tag_tokens,
743-
"enum cannot be both untagged and internally tagged",
744-
);
737+
let msg = "enum cannot be both untagged and internally tagged";
738+
cx.error_spanned_by(untagged_tokens, msg);
739+
cx.error_spanned_by(tag_tokens, msg);
745740
TagType::External // doesn't matter, will error
746741
}
747742
(None, None, Some((content_tokens, _))) => {
@@ -752,30 +747,17 @@ fn decide_tag(
752747
TagType::External
753748
}
754749
(Some((untagged_tokens, _)), None, Some((content_tokens, _))) => {
755-
cx.error_spanned_by(
756-
untagged_tokens,
757-
"untagged enum cannot have #[serde(content = \"...\")]",
758-
);
759-
cx.error_spanned_by(
760-
content_tokens,
761-
"untagged enum cannot have #[serde(content = \"...\")]",
762-
);
750+
let msg = "untagged enum cannot have #[serde(content = \"...\")]";
751+
cx.error_spanned_by(untagged_tokens, msg);
752+
cx.error_spanned_by(content_tokens, msg);
763753
TagType::External
764754
}
765755
(None, Some((_, tag)), Some((_, content))) => TagType::Adjacent { tag, content },
766756
(Some((untagged_tokens, _)), Some((tag_tokens, _)), Some((content_tokens, _))) => {
767-
cx.error_spanned_by(
768-
untagged_tokens,
769-
"untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]",
770-
);
771-
cx.error_spanned_by(
772-
tag_tokens,
773-
"untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]",
774-
);
775-
cx.error_spanned_by(
776-
content_tokens,
777-
"untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]",
778-
);
757+
let msg = "untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]";
758+
cx.error_spanned_by(untagged_tokens, msg);
759+
cx.error_spanned_by(tag_tokens, msg);
760+
cx.error_spanned_by(content_tokens, msg);
779761
TagType::External
780762
}
781763
}
@@ -794,14 +776,10 @@ fn decide_identifier(
794776
) {
795777
(_, None, None) => Identifier::No,
796778
(_, Some((field_identifier_tokens, _)), Some((variant_identifier_tokens, _))) => {
797-
cx.error_spanned_by(
798-
field_identifier_tokens,
799-
"#[serde(field_identifier)] and #[serde(variant_identifier)] cannot both be set",
800-
);
801-
cx.error_spanned_by(
802-
variant_identifier_tokens,
803-
"#[serde(field_identifier)] and #[serde(variant_identifier)] cannot both be set",
804-
);
779+
let msg =
780+
"#[serde(field_identifier)] and #[serde(variant_identifier)] cannot both be set";
781+
cx.error_spanned_by(field_identifier_tokens, msg);
782+
cx.error_spanned_by(variant_identifier_tokens, msg);
805783
Identifier::No
806784
}
807785
(syn::Data::Enum(_), Some(_), None) => Identifier::Field,

0 commit comments

Comments
 (0)