From ab3fb1e775ff20f80096953080dfc650950041b0 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 4 Aug 2019 17:59:06 -0400 Subject: [PATCH 1/3] Drop span argument from mk_list_item --- src/librustc/hir/lowering.rs | 7 +++---- src/libsyntax/attr/mod.rs | 4 ++-- src/libsyntax/ext/build.rs | 2 +- src/libsyntax/ext/expand.rs | 4 ++-- src/libsyntax/print/pprust.rs | 5 ++--- src/libsyntax_ext/test_harness.rs | 3 +-- 6 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index 5031e6dbd87d2..493083c680aad 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -5176,11 +5176,10 @@ impl<'a> LoweringContext<'a> { let attr = { // `allow(unreachable_code)` let allow = { - let allow_ident = Ident::with_empty_ctxt(sym::allow).with_span_pos(e.span); - let uc_ident = Ident::with_empty_ctxt(sym::unreachable_code) - .with_span_pos(e.span); + let allow_ident = Ident::new(sym::allow, e.span); + let uc_ident = Ident::new(sym::unreachable_code, e.span); let uc_nested = attr::mk_nested_word_item(uc_ident); - attr::mk_list_item(e.span, allow_ident, vec![uc_nested]) + attr::mk_list_item(allow_ident, vec![uc_nested]) }; attr::mk_attr_outer(allow) }; diff --git a/src/libsyntax/attr/mod.rs b/src/libsyntax/attr/mod.rs index 3e56136b17108..7eea1aad8eadf 100644 --- a/src/libsyntax/attr/mod.rs +++ b/src/libsyntax/attr/mod.rs @@ -355,8 +355,8 @@ pub fn mk_name_value_item(span: Span, ident: Ident, lit_kind: LitKind, lit_span: MetaItem { path: Path::from_ident(ident), span, node: MetaItemKind::NameValue(lit) } } -pub fn mk_list_item(span: Span, ident: Ident, items: Vec) -> MetaItem { - MetaItem { path: Path::from_ident(ident), span, node: MetaItemKind::List(items) } +pub fn mk_list_item(ident: Ident, items: Vec) -> MetaItem { + MetaItem { path: Path::from_ident(ident), span: ident.span, node: MetaItemKind::List(items) } } pub fn mk_word_item(ident: Ident) -> MetaItem { diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 59e13fdc8f163..83d9521685096 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -879,7 +879,7 @@ impl<'a> ExtCtxt<'a> { pub fn meta_list(&self, sp: Span, name: ast::Name, mis: Vec) -> ast::MetaItem { - attr::mk_list_item(sp, Ident::new(name, sp), mis) + attr::mk_list_item(Ident::new(name, sp), mis) } pub fn meta_name_value(&self, span: Span, name: ast::Name, lit_kind: ast::LitKind) diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index d2807e4a4b5fa..964c81dd46641 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -1272,7 +1272,7 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> { ]; let include_ident = Ident::with_empty_ctxt(sym::include); - let item = attr::mk_list_item(DUMMY_SP, include_ident, include_info); + let item = attr::mk_list_item(include_ident, include_info); items.push(ast::NestedMetaItem::MetaItem(item)); } Err(e) => { @@ -1333,7 +1333,7 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> { } } - let meta = attr::mk_list_item(DUMMY_SP, Ident::with_empty_ctxt(sym::doc), items); + let meta = attr::mk_list_item(Ident::with_empty_ctxt(sym::doc), items); *at = attr::Attribute { span: at.span, id: at.id, diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 2ef8a919b9c56..803426877335e 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -15,7 +15,7 @@ use crate::tokenstream::{self, TokenStream, TokenTree}; use rustc_target::spec::abi::{self, Abi}; use syntax_pos::{self, BytePos}; -use syntax_pos::{DUMMY_SP, FileName, Span}; +use syntax_pos::{FileName, Span}; use std::borrow::Cow; @@ -124,8 +124,7 @@ pub fn print_crate<'a>(cm: &'a SourceMap, // #![feature(prelude_import)] let pi_nested = attr::mk_nested_word_item(ast::Ident::with_empty_ctxt(sym::prelude_import)); - let list = attr::mk_list_item( - DUMMY_SP, ast::Ident::with_empty_ctxt(sym::feature), vec![pi_nested]); + let list = attr::mk_list_item(ast::Ident::with_empty_ctxt(sym::feature), vec![pi_nested]); let fake_attr = attr::mk_attr_inner(list); s.print_attribute(&fake_attr); diff --git a/src/libsyntax_ext/test_harness.rs b/src/libsyntax_ext/test_harness.rs index 4b3903c7ad7d3..eec8a3f802343 100644 --- a/src/libsyntax_ext/test_harness.rs +++ b/src/libsyntax_ext/test_harness.rs @@ -157,8 +157,7 @@ impl MutVisitor for EntryPointCleaner { item.map(|ast::Item {id, ident, attrs, node, vis, span, tokens}| { let allow_ident = Ident::with_empty_ctxt(sym::allow); let dc_nested = attr::mk_nested_word_item(Ident::from_str("dead_code")); - let allow_dead_code_item = attr::mk_list_item(DUMMY_SP, allow_ident, - vec![dc_nested]); + let allow_dead_code_item = attr::mk_list_item(allow_ident, vec![dc_nested]); let allow_dead_code = attr::mk_attr_outer(allow_dead_code_item); ast::Item { From 24a491f40c891e06dce930081d5e5228232f7a18 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 4 Aug 2019 18:03:34 -0400 Subject: [PATCH 2/3] Drop explicit span argument from mk_name_value_item --- src/librustdoc/clean/cfg/tests.rs | 1 - src/libsyntax/attr/mod.rs | 5 +++-- src/libsyntax/ext/build.rs | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/librustdoc/clean/cfg/tests.rs b/src/librustdoc/clean/cfg/tests.rs index d0df9f8f7e410..405144b444f09 100644 --- a/src/librustdoc/clean/cfg/tests.rs +++ b/src/librustdoc/clean/cfg/tests.rs @@ -211,7 +211,6 @@ fn test_parse_ok() { fn test_parse_err() { with_default_globals(|| { let mi = attr::mk_name_value_item( - DUMMY_SP, Ident::from_str("foo"), LitKind::Bool(false), DUMMY_SP, diff --git a/src/libsyntax/attr/mod.rs b/src/libsyntax/attr/mod.rs index 7eea1aad8eadf..28391aa0dec80 100644 --- a/src/libsyntax/attr/mod.rs +++ b/src/libsyntax/attr/mod.rs @@ -347,11 +347,12 @@ impl Attribute { pub fn mk_name_value_item_str(ident: Ident, value: Spanned) -> MetaItem { let lit_kind = LitKind::Str(value.node, ast::StrStyle::Cooked); - mk_name_value_item(ident.span.to(value.span), ident, lit_kind, value.span) + mk_name_value_item(ident, lit_kind, value.span) } -pub fn mk_name_value_item(span: Span, ident: Ident, lit_kind: LitKind, lit_span: Span) -> MetaItem { +pub fn mk_name_value_item(ident: Ident, lit_kind: LitKind, lit_span: Span) -> MetaItem { let lit = Lit::from_lit_kind(lit_kind, lit_span); + let span = ident.span.to(lit_span); MetaItem { path: Path::from_ident(ident), span, node: MetaItemKind::NameValue(lit) } } diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 83d9521685096..db562840e8d3b 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -884,8 +884,7 @@ impl<'a> ExtCtxt<'a> { pub fn meta_name_value(&self, span: Span, name: ast::Name, lit_kind: ast::LitKind) -> ast::MetaItem { - attr::mk_name_value_item(span, Ident::new(name, span), - lit_kind, span) + attr::mk_name_value_item(Ident::new(name, span), lit_kind, span) } pub fn item_use(&self, sp: Span, From 88491497456e485b0171d6791bd81f52170fbc09 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 4 Aug 2019 19:35:29 -0400 Subject: [PATCH 3/3] Make mk_attr_id private to libsyntax --- src/libsyntax/attr/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsyntax/attr/mod.rs b/src/libsyntax/attr/mod.rs index 28391aa0dec80..a9d3227b3a8f4 100644 --- a/src/libsyntax/attr/mod.rs +++ b/src/libsyntax/attr/mod.rs @@ -368,7 +368,7 @@ pub fn mk_nested_word_item(ident: Ident) -> NestedMetaItem { NestedMetaItem::MetaItem(mk_word_item(ident)) } -pub fn mk_attr_id() -> AttrId { +crate fn mk_attr_id() -> AttrId { use std::sync::atomic::AtomicUsize; use std::sync::atomic::Ordering;