Skip to content

Commit 24a6284

Browse files
topecongiroflip1995
authored andcommitted
Fix failures in rustdoc
1 parent 0de6544 commit 24a6284

File tree

1 file changed

+63
-179
lines changed

1 file changed

+63
-179
lines changed

src/librustdoc/clean/cfg.rs

+63-179
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ impl Cfg {
6767
/// If the content is not properly formatted, it will return an error indicating what and where
6868
/// the error is.
6969
pub fn parse(cfg: &MetaItem) -> Result<Cfg, InvalidCfgError> {
70-
let name = cfg.ident.name;
70+
let name = cfg.name();
7171
match cfg.node {
7272
MetaItemKind::Word => Ok(Cfg::Cfg(name, None)),
7373
MetaItemKind::NameValue(ref lit) => match lit.node {
@@ -436,6 +436,42 @@ mod test {
436436
Cfg::Cfg(Symbol::intern(name), Some(Symbol::intern(value)))
437437
}
438438

439+
fn dummy_meta_item_word(name: &str) -> MetaItem {
440+
MetaItem {
441+
name: Path::from_ident(DUMMY_SP, Ident::from_str(name)),
442+
node: MetaItemKind::Word,
443+
span: DUMMY_SP,
444+
}
445+
}
446+
447+
macro_rules! dummy_meta_item_list {
448+
($name:ident, [$($list:ident),* $(,)*]) => {
449+
MetaItem {
450+
name: Path::from_ident(DUMMY_SP, Ident::from_str(stringify!($name))),
451+
node: MetaItemKind::List(vec![
452+
$(
453+
dummy_spanned(NestedMetaItemKind::MetaItem(
454+
dummy_meta_item_word(stringify!($list)),
455+
)),
456+
)*
457+
]),
458+
span: DUMMY_SP,
459+
}
460+
};
461+
462+
($name:ident, [$($list:expr),* $(,)*]) => {
463+
MetaItem {
464+
name: Path::from_ident(DUMMY_SP, Ident::from_str(stringify!($name))),
465+
node: MetaItemKind::List(vec![
466+
$(
467+
dummy_spanned(NestedMetaItemKind::MetaItem($list)),
468+
)*
469+
]),
470+
span: DUMMY_SP,
471+
}
472+
};
473+
}
474+
439475
#[test]
440476
fn test_cfg_not() {
441477
with_globals(|| {
@@ -561,15 +597,11 @@ mod test {
561597
#[test]
562598
fn test_parse_ok() {
563599
with_globals(|| {
564-
let mi = MetaItem {
565-
ident: Ident::from_str("all"),
566-
node: MetaItemKind::Word,
567-
span: DUMMY_SP,
568-
};
600+
let mi = dummy_meta_item_word("all");
569601
assert_eq!(Cfg::parse(&mi), Ok(word_cfg("all")));
570602

571603
let mi = MetaItem {
572-
ident: Ident::from_str("all"),
604+
name: Path::from_ident(DUMMY_SP, Ident::from_str("all")),
573605
node: MetaItemKind::NameValue(dummy_spanned(LitKind::Str(
574606
Symbol::intern("done"),
575607
StrStyle::Cooked,
@@ -578,111 +610,24 @@ mod test {
578610
};
579611
assert_eq!(Cfg::parse(&mi), Ok(name_value_cfg("all", "done")));
580612

581-
let mi = MetaItem {
582-
ident: Ident::from_str("all"),
583-
node: MetaItemKind::List(vec![
584-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
585-
ident: Ident::from_str("a"),
586-
node: MetaItemKind::Word,
587-
span: DUMMY_SP,
588-
})),
589-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
590-
ident: Ident::from_str("b"),
591-
node: MetaItemKind::Word,
592-
span: DUMMY_SP,
593-
})),
594-
]),
595-
span: DUMMY_SP,
596-
};
613+
let mi = dummy_meta_item_list!(all, [a, b]);
597614
assert_eq!(Cfg::parse(&mi), Ok(word_cfg("a") & word_cfg("b")));
598615

599-
let mi = MetaItem {
600-
ident: Ident::from_str("any"),
601-
node: MetaItemKind::List(vec![
602-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
603-
ident: Ident::from_str("a"),
604-
node: MetaItemKind::Word,
605-
span: DUMMY_SP,
606-
})),
607-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
608-
ident: Ident::from_str("b"),
609-
node: MetaItemKind::Word,
610-
span: DUMMY_SP,
611-
})),
612-
]),
613-
span: DUMMY_SP,
614-
};
616+
let mi = dummy_meta_item_list!(any, [a, b]);
615617
assert_eq!(Cfg::parse(&mi), Ok(word_cfg("a") | word_cfg("b")));
616618

617-
let mi = MetaItem {
618-
ident: Ident::from_str("not"),
619-
node: MetaItemKind::List(vec![
620-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
621-
ident: Ident::from_str("a"),
622-
node: MetaItemKind::Word,
623-
span: DUMMY_SP,
624-
})),
625-
]),
626-
span: DUMMY_SP,
627-
};
619+
let mi = dummy_meta_item_list!(not, [a]);
628620
assert_eq!(Cfg::parse(&mi), Ok(!word_cfg("a")));
629621

630-
let mi = MetaItem {
631-
ident: Ident::from_str("not"),
632-
node: MetaItemKind::List(vec![
633-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
634-
ident: Ident::from_str("any"),
635-
node: MetaItemKind::List(vec![
636-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
637-
ident: Ident::from_str("a"),
638-
node: MetaItemKind::Word,
639-
span: DUMMY_SP,
640-
})),
641-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
642-
ident: Ident::from_str("all"),
643-
node: MetaItemKind::List(vec![
644-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
645-
ident: Ident::from_str("b"),
646-
node: MetaItemKind::Word,
647-
span: DUMMY_SP,
648-
})),
649-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
650-
ident: Ident::from_str("c"),
651-
node: MetaItemKind::Word,
652-
span: DUMMY_SP,
653-
})),
654-
]),
655-
span: DUMMY_SP,
656-
})),
657-
]),
658-
span: DUMMY_SP,
659-
})),
622+
let mi = dummy_meta_item_list!(not, [
623+
dummy_meta_item_list!(any, [
624+
dummy_meta_item_word("a"),
625+
dummy_meta_item_list!(all, [b, c]),
660626
]),
661-
span: DUMMY_SP,
662-
};
627+
]);
663628
assert_eq!(Cfg::parse(&mi), Ok(!(word_cfg("a") | (word_cfg("b") & word_cfg("c")))));
664629

665-
let mi = MetaItem {
666-
ident: Ident::from_str("all"),
667-
node: MetaItemKind::List(vec![
668-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
669-
ident: Ident::from_str("a"),
670-
node: MetaItemKind::Word,
671-
span: DUMMY_SP,
672-
})),
673-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
674-
ident: Ident::from_str("b"),
675-
node: MetaItemKind::Word,
676-
span: DUMMY_SP,
677-
})),
678-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
679-
ident: Ident::from_str("c"),
680-
node: MetaItemKind::Word,
681-
span: DUMMY_SP,
682-
})),
683-
]),
684-
span: DUMMY_SP,
685-
};
630+
let mi = dummy_meta_item_list!(all, [a, b, c]);
686631
assert_eq!(Cfg::parse(&mi), Ok(word_cfg("a") & word_cfg("b") & word_cfg("c")));
687632
})
688633
}
@@ -691,97 +636,36 @@ mod test {
691636
fn test_parse_err() {
692637
with_globals(|| {
693638
let mi = MetaItem {
694-
ident: Ident::from_str("foo"),
639+
name: Path::from_ident(DUMMY_SP, Ident::from_str("foo")),
695640
node: MetaItemKind::NameValue(dummy_spanned(LitKind::Bool(false))),
696641
span: DUMMY_SP,
697642
};
698643
assert!(Cfg::parse(&mi).is_err());
699644

700-
let mi = MetaItem {
701-
ident: Ident::from_str("not"),
702-
node: MetaItemKind::List(vec![
703-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
704-
ident: Ident::from_str("a"),
705-
node: MetaItemKind::Word,
706-
span: DUMMY_SP,
707-
})),
708-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
709-
ident: Ident::from_str("b"),
710-
node: MetaItemKind::Word,
711-
span: DUMMY_SP,
712-
})),
713-
]),
714-
span: DUMMY_SP,
715-
};
645+
let mi = dummy_meta_item_list!(not, [a, b]);
716646
assert!(Cfg::parse(&mi).is_err());
717647

718-
let mi = MetaItem {
719-
ident: Ident::from_str("not"),
720-
node: MetaItemKind::List(vec![]),
721-
span: DUMMY_SP,
722-
};
648+
let mi = dummy_meta_item_list!(not, []);
723649
assert!(Cfg::parse(&mi).is_err());
724650

725-
let mi = MetaItem {
726-
ident: Ident::from_str("foo"),
727-
node: MetaItemKind::List(vec![
728-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
729-
ident: Ident::from_str("a"),
730-
node: MetaItemKind::Word,
731-
span: DUMMY_SP,
732-
})),
733-
]),
734-
span: DUMMY_SP,
735-
};
651+
let mi = dummy_meta_item_list!(foo, []);
736652
assert!(Cfg::parse(&mi).is_err());
737653

738-
let mi = MetaItem {
739-
ident: Ident::from_str("all"),
740-
node: MetaItemKind::List(vec![
741-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
742-
ident: Ident::from_str("foo"),
743-
node: MetaItemKind::List(vec![]),
744-
span: DUMMY_SP,
745-
})),
746-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
747-
ident: Ident::from_str("b"),
748-
node: MetaItemKind::Word,
749-
span: DUMMY_SP,
750-
})),
751-
]),
752-
span: DUMMY_SP,
753-
};
654+
let mi = dummy_meta_item_list!(all, [
655+
dummy_meta_item_list!(foo, []),
656+
dummy_meta_item_word("b"),
657+
]);
754658
assert!(Cfg::parse(&mi).is_err());
755659

756-
let mi = MetaItem {
757-
ident: Ident::from_str("any"),
758-
node: MetaItemKind::List(vec![
759-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
760-
ident: Ident::from_str("a"),
761-
node: MetaItemKind::Word,
762-
span: DUMMY_SP,
763-
})),
764-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
765-
ident: Ident::from_str("foo"),
766-
node: MetaItemKind::List(vec![]),
767-
span: DUMMY_SP,
768-
})),
769-
]),
770-
span: DUMMY_SP,
771-
};
660+
let mi = dummy_meta_item_list!(any, [
661+
dummy_meta_item_word("a"),
662+
dummy_meta_item_list!(foo, []),
663+
]);
772664
assert!(Cfg::parse(&mi).is_err());
773665

774-
let mi = MetaItem {
775-
ident: Ident::from_str("not"),
776-
node: MetaItemKind::List(vec![
777-
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
778-
ident: Ident::from_str("foo"),
779-
node: MetaItemKind::List(vec![]),
780-
span: DUMMY_SP,
781-
})),
782-
]),
783-
span: DUMMY_SP,
784-
};
666+
let mi = dummy_meta_item_list!(not, [
667+
dummy_meta_item_list!(foo, []),
668+
]);
785669
assert!(Cfg::parse(&mi).is_err());
786670
})
787671
}

0 commit comments

Comments
 (0)