Skip to content

Commit 3a30bad

Browse files
committed
Use Ident instead of Name in MetaItem
1 parent 303298b commit 3a30bad

File tree

27 files changed

+138
-164
lines changed

27 files changed

+138
-164
lines changed

src/librustc/hir/lowering.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -3503,12 +3503,10 @@ impl<'a> LoweringContext<'a> {
35033503
let attr = {
35043504
// allow(unreachable_code)
35053505
let allow = {
3506-
let allow_ident = self.str_to_ident("allow");
3507-
let uc_ident = self.str_to_ident("unreachable_code");
3508-
let uc_meta_item = attr::mk_spanned_word_item(e.span, uc_ident);
3509-
let uc_nested = NestedMetaItemKind::MetaItem(uc_meta_item);
3510-
let uc_spanned = respan(e.span, uc_nested);
3511-
attr::mk_spanned_list_item(e.span, allow_ident, vec![uc_spanned])
3506+
let allow_ident = Ident::from_str("allow").with_span_pos(e.span);
3507+
let uc_ident = Ident::from_str("unreachable_code").with_span_pos(e.span);
3508+
let uc_nested = attr::mk_nested_word_item(uc_ident);
3509+
attr::mk_list_item(e.span, allow_ident, vec![uc_nested])
35123510
};
35133511
attr::mk_spanned_attr_outer(e.span, attr::mk_attr_id(), allow)
35143512
};

src/librustc/ich/impls_syntax.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ impl_stable_hash_for!(enum ::syntax::ast::NestedMetaItemKind {
341341
});
342342

343343
impl_stable_hash_for!(struct ::syntax::ast::MetaItem {
344-
name,
344+
ident,
345345
node,
346346
span
347347
});

src/librustc/lint/levels.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ impl<'a> LintLevelsBuilder<'a> {
221221
continue
222222
}
223223
};
224-
let name = word.name();
224+
let name = word.ident.name;
225225
match store.check_lint_name(&name.as_str()) {
226226
CheckLintNameResult::Ok(ids) => {
227227
let src = LintSource::Node(name, li.span);

src/librustc/session/config.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1683,12 +1683,12 @@ pub fn parse_cfgspecs(cfgspecs: Vec<String>) -> ast::CrateConfig {
16831683
} else if meta_item.is_meta_item_list() {
16841684
let msg = format!(
16851685
"invalid predicate in --cfg command line argument: `{}`",
1686-
meta_item.name()
1686+
meta_item.ident
16871687
);
16881688
early_error(ErrorOutputType::default(), &msg)
16891689
}
16901690

1691-
(meta_item.name(), meta_item.value_str())
1691+
(meta_item.ident.name, meta_item.value_str())
16921692
})
16931693
.collect::<ast::CrateConfig>()
16941694
}

src/librustc/traits/on_unimplemented.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ impl<'a, 'gcx, 'tcx> OnUnimplementedDirective {
190190
for command in self.subcommands.iter().chain(Some(self)).rev() {
191191
if let Some(ref condition) = command.condition {
192192
if !attr::eval_condition(condition, &tcx.sess.parse_sess, &mut |c| {
193-
options.contains(&(c.name().as_str().to_string(),
193+
options.contains(&(c.ident.name.as_str().to_string(),
194194
match c.value_str().map(|s| s.as_str().to_string()) {
195195
Some(s) => Some(s),
196196
None => None

src/librustc_driver/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,7 @@ impl RustcDefaultCalls {
10451045
let mut cfgs = Vec::new();
10461046
for &(name, ref value) in sess.parse_sess.config.iter() {
10471047
let gated_cfg = GatedCfg::gate(&ast::MetaItem {
1048-
name,
1048+
ident: ast::Ident::with_empty_ctxt(name),
10491049
node: ast::MetaItemKind::Word,
10501050
span: DUMMY_SP,
10511051
});

src/librustc_incremental/assert_dep_graph.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ impl<'a, 'tcx> IfThisChanged<'a, 'tcx> {
110110
for list_item in attr.meta_item_list().unwrap_or_default() {
111111
match list_item.word() {
112112
Some(word) if value.is_none() =>
113-
value = Some(word.name().clone()),
113+
value = Some(word.ident.name),
114114
_ =>
115115
// FIXME better-encapsulate meta_item (don't directly access `node`)
116116
span_bug!(list_item.span(), "unexpected meta-item {:?}", list_item.node),

src/librustc_mir/dataflow/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ impl<'a, 'gcx: 'tcx, 'tcx: 'a, BD> DataflowAnalysis<'a, 'tcx, BD> where BD: BitD
152152
} else {
153153
sess.span_err(
154154
item.span,
155-
&format!("{} attribute requires a path", item.name()));
155+
&format!("{} attribute requires a path", item.ident));
156156
return None;
157157
}
158158
}

src/librustc_resolve/build_reduced_graph.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ impl<'a> Resolver<'a> {
717717
match attr.meta_item_list() {
718718
Some(names) => for attr in names {
719719
if let Some(word) = attr.word() {
720-
imports.imports.push((word.name(), attr.span()));
720+
imports.imports.push((word.ident.name, attr.span()));
721721
} else {
722722
span_err!(self.session, attr.span(), E0466, "bad macro import");
723723
}
@@ -731,7 +731,7 @@ impl<'a> Resolver<'a> {
731731
if let Some(names) = attr.meta_item_list() {
732732
for attr in names {
733733
if let Some(word) = attr.word() {
734-
imports.reexports.push((word.name(), attr.span()));
734+
imports.reexports.push((word.ident.name, attr.span()));
735735
} else {
736736
bad_macro_reexport(self, attr.span());
737737
}

src/librustdoc/clean/auto_trait.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ impl<'a, 'tcx, 'rcx> AutoTraitFinder<'a, 'tcx, 'rcx> {
171171
let mut segments = path.segments.into_vec();
172172
let last = segments.pop().unwrap();
173173

174-
let real_name = name.as_ref().map(|n| Symbol::from(n.as_str()));
174+
let real_name = name.map(|name| Symbol::intern(&name));
175175

176176
segments.push(hir::PathSegment::new(
177177
real_name.unwrap_or(last.name),

src/librustdoc/clean/cfg.rs

+36-36
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.name();
70+
let name = cfg.ident.name;
7171
match cfg.node {
7272
MetaItemKind::Word => Ok(Cfg::Cfg(name, None)),
7373
MetaItemKind::NameValue(ref lit) => match lit.node {
@@ -562,14 +562,14 @@ mod test {
562562
fn test_parse_ok() {
563563
with_globals(|| {
564564
let mi = MetaItem {
565-
name: Symbol::intern("all"),
565+
ident: Ident::from_str("all"),
566566
node: MetaItemKind::Word,
567567
span: DUMMY_SP,
568568
};
569569
assert_eq!(Cfg::parse(&mi), Ok(word_cfg("all")));
570570

571571
let mi = MetaItem {
572-
name: Symbol::intern("all"),
572+
ident: Ident::from_str("all"),
573573
node: MetaItemKind::NameValue(dummy_spanned(LitKind::Str(
574574
Symbol::intern("done"),
575575
StrStyle::Cooked,
@@ -579,15 +579,15 @@ mod test {
579579
assert_eq!(Cfg::parse(&mi), Ok(name_value_cfg("all", "done")));
580580

581581
let mi = MetaItem {
582-
name: Symbol::intern("all"),
582+
ident: Ident::from_str("all"),
583583
node: MetaItemKind::List(vec![
584584
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
585-
name: Symbol::intern("a"),
585+
ident: Ident::from_str("a"),
586586
node: MetaItemKind::Word,
587587
span: DUMMY_SP,
588588
})),
589589
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
590-
name: Symbol::intern("b"),
590+
ident: Ident::from_str("b"),
591591
node: MetaItemKind::Word,
592592
span: DUMMY_SP,
593593
})),
@@ -597,15 +597,15 @@ mod test {
597597
assert_eq!(Cfg::parse(&mi), Ok(word_cfg("a") & word_cfg("b")));
598598

599599
let mi = MetaItem {
600-
name: Symbol::intern("any"),
600+
ident: Ident::from_str("any"),
601601
node: MetaItemKind::List(vec![
602602
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
603-
name: Symbol::intern("a"),
603+
ident: Ident::from_str("a"),
604604
node: MetaItemKind::Word,
605605
span: DUMMY_SP,
606606
})),
607607
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
608-
name: Symbol::intern("b"),
608+
ident: Ident::from_str("b"),
609609
node: MetaItemKind::Word,
610610
span: DUMMY_SP,
611611
})),
@@ -615,10 +615,10 @@ mod test {
615615
assert_eq!(Cfg::parse(&mi), Ok(word_cfg("a") | word_cfg("b")));
616616

617617
let mi = MetaItem {
618-
name: Symbol::intern("not"),
618+
ident: Ident::from_str("not"),
619619
node: MetaItemKind::List(vec![
620620
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
621-
name: Symbol::intern("a"),
621+
ident: Ident::from_str("a"),
622622
node: MetaItemKind::Word,
623623
span: DUMMY_SP,
624624
})),
@@ -628,26 +628,26 @@ mod test {
628628
assert_eq!(Cfg::parse(&mi), Ok(!word_cfg("a")));
629629

630630
let mi = MetaItem {
631-
name: Symbol::intern("not"),
631+
ident: Ident::from_str("not"),
632632
node: MetaItemKind::List(vec![
633633
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
634-
name: Symbol::intern("any"),
634+
ident: Ident::from_str("any"),
635635
node: MetaItemKind::List(vec![
636636
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
637-
name: Symbol::intern("a"),
637+
ident: Ident::from_str("a"),
638638
node: MetaItemKind::Word,
639639
span: DUMMY_SP,
640640
})),
641641
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
642-
name: Symbol::intern("all"),
642+
ident: Ident::from_str("all"),
643643
node: MetaItemKind::List(vec![
644644
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
645-
name: Symbol::intern("b"),
645+
ident: Ident::from_str("b"),
646646
node: MetaItemKind::Word,
647647
span: DUMMY_SP,
648648
})),
649649
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
650-
name: Symbol::intern("c"),
650+
ident: Ident::from_str("c"),
651651
node: MetaItemKind::Word,
652652
span: DUMMY_SP,
653653
})),
@@ -663,20 +663,20 @@ mod test {
663663
assert_eq!(Cfg::parse(&mi), Ok(!(word_cfg("a") | (word_cfg("b") & word_cfg("c")))));
664664

665665
let mi = MetaItem {
666-
name: Symbol::intern("all"),
666+
ident: Ident::from_str("all"),
667667
node: MetaItemKind::List(vec![
668668
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
669-
name: Symbol::intern("a"),
669+
ident: Ident::from_str("a"),
670670
node: MetaItemKind::Word,
671671
span: DUMMY_SP,
672672
})),
673673
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
674-
name: Symbol::intern("b"),
674+
ident: Ident::from_str("b"),
675675
node: MetaItemKind::Word,
676676
span: DUMMY_SP,
677677
})),
678678
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
679-
name: Symbol::intern("c"),
679+
ident: Ident::from_str("c"),
680680
node: MetaItemKind::Word,
681681
span: DUMMY_SP,
682682
})),
@@ -691,22 +691,22 @@ mod test {
691691
fn test_parse_err() {
692692
with_globals(|| {
693693
let mi = MetaItem {
694-
name: Symbol::intern("foo"),
694+
ident: Ident::from_str("foo"),
695695
node: MetaItemKind::NameValue(dummy_spanned(LitKind::Bool(false))),
696696
span: DUMMY_SP,
697697
};
698698
assert!(Cfg::parse(&mi).is_err());
699699

700700
let mi = MetaItem {
701-
name: Symbol::intern("not"),
701+
ident: Ident::from_str("not"),
702702
node: MetaItemKind::List(vec![
703703
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
704-
name: Symbol::intern("a"),
704+
ident: Ident::from_str("a"),
705705
node: MetaItemKind::Word,
706706
span: DUMMY_SP,
707707
})),
708708
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
709-
name: Symbol::intern("b"),
709+
ident: Ident::from_str("b"),
710710
node: MetaItemKind::Word,
711711
span: DUMMY_SP,
712712
})),
@@ -716,17 +716,17 @@ mod test {
716716
assert!(Cfg::parse(&mi).is_err());
717717

718718
let mi = MetaItem {
719-
name: Symbol::intern("not"),
719+
ident: Ident::from_str("not"),
720720
node: MetaItemKind::List(vec![]),
721721
span: DUMMY_SP,
722722
};
723723
assert!(Cfg::parse(&mi).is_err());
724724

725725
let mi = MetaItem {
726-
name: Symbol::intern("foo"),
726+
ident: Ident::from_str("foo"),
727727
node: MetaItemKind::List(vec![
728728
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
729-
name: Symbol::intern("a"),
729+
ident: Ident::from_str("a"),
730730
node: MetaItemKind::Word,
731731
span: DUMMY_SP,
732732
})),
@@ -736,15 +736,15 @@ mod test {
736736
assert!(Cfg::parse(&mi).is_err());
737737

738738
let mi = MetaItem {
739-
name: Symbol::intern("all"),
739+
ident: Ident::from_str("all"),
740740
node: MetaItemKind::List(vec![
741741
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
742-
name: Symbol::intern("foo"),
742+
ident: Ident::from_str("foo"),
743743
node: MetaItemKind::List(vec![]),
744744
span: DUMMY_SP,
745745
})),
746746
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
747-
name: Symbol::intern("b"),
747+
ident: Ident::from_str("b"),
748748
node: MetaItemKind::Word,
749749
span: DUMMY_SP,
750750
})),
@@ -754,15 +754,15 @@ mod test {
754754
assert!(Cfg::parse(&mi).is_err());
755755

756756
let mi = MetaItem {
757-
name: Symbol::intern("any"),
757+
ident: Ident::from_str("any"),
758758
node: MetaItemKind::List(vec![
759759
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
760-
name: Symbol::intern("a"),
760+
ident: Ident::from_str("a"),
761761
node: MetaItemKind::Word,
762762
span: DUMMY_SP,
763763
})),
764764
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
765-
name: Symbol::intern("foo"),
765+
ident: Ident::from_str("foo"),
766766
node: MetaItemKind::List(vec![]),
767767
span: DUMMY_SP,
768768
})),
@@ -772,10 +772,10 @@ mod test {
772772
assert!(Cfg::parse(&mi).is_err());
773773

774774
let mi = MetaItem {
775-
name: Symbol::intern("not"),
775+
ident: Ident::from_str("not"),
776776
node: MetaItemKind::List(vec![
777777
dummy_spanned(NestedMetaItemKind::MetaItem(MetaItem {
778-
name: Symbol::intern("foo"),
778+
ident: Ident::from_str("foo"),
779779
node: MetaItemKind::List(vec![]),
780780
span: DUMMY_SP,
781781
})),

src/librustdoc/clean/mod.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ pub use self::Visibility::*;
2121

2222
use syntax;
2323
use syntax::abi::Abi;
24-
use syntax::ast::{self, AttrStyle};
24+
use syntax::ast::{self, AttrStyle, Ident};
2525
use syntax::attr;
26-
use syntax::codemap::Spanned;
26+
use syntax::codemap::{dummy_spanned, Spanned};
2727
use syntax::feature_gate::UnstableFeatures;
2828
use syntax::ptr::P;
2929
use syntax::symbol::keywords;
@@ -840,7 +840,8 @@ impl Attributes {
840840
for attr in attrs.lists("target_feature") {
841841
if attr.check_name("enable") {
842842
if let Some(feat) = attr.value_str() {
843-
let meta = attr::mk_name_value_item_str("target_feature".into(), feat);
843+
let meta = attr::mk_name_value_item_str(Ident::from_str("target_feature"),
844+
dummy_spanned(feat));
844845
if let Ok(feat_cfg) = Cfg::parse(&meta) {
845846
cfg &= feat_cfg;
846847
}
@@ -1146,7 +1147,7 @@ fn resolve(cx: &DocContext, path_str: &str, is_val: bool) -> Result<(Def, Option
11461147
fn macro_resolve(cx: &DocContext, path_str: &str) -> Option<Def> {
11471148
use syntax::ext::base::{MacroKind, SyntaxExtension};
11481149
use syntax::ext::hygiene::Mark;
1149-
let segment = ast::PathSegment::from_ident(ast::Ident::from_str(path_str));
1150+
let segment = ast::PathSegment::from_ident(Ident::from_str(path_str));
11501151
let path = ast::Path { segments: vec![segment], span: DUMMY_SP };
11511152
let mut resolver = cx.resolver.borrow_mut();
11521153
let mark = Mark::root();
@@ -1158,7 +1159,7 @@ fn macro_resolve(cx: &DocContext, path_str: &str) -> Option<Def> {
11581159
} else {
11591160
None
11601161
}
1161-
} else if let Some(def) = resolver.all_macros.get(&path_str.into()) {
1162+
} else if let Some(def) = resolver.all_macros.get(&Symbol::intern(path_str)) {
11621163
Some(*def)
11631164
} else {
11641165
None

src/librustdoc/html/render.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2966,7 +2966,7 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
29662966
}
29672967

29682968
fn render_attribute(attr: &ast::MetaItem) -> Option<String> {
2969-
let name = attr.name();
2969+
let name = attr.ident.name;
29702970

29712971
if attr.is_word() {
29722972
Some(format!("{}", name))

0 commit comments

Comments
 (0)