diff --git a/src/liblibc b/src/liblibc index 56444a4545bd71430d64b86b8a71714cfdbe9f5d..2b4cd1016bdba92becb4f982a4dcb18fe6653bc4 160000 --- a/src/liblibc +++ b/src/liblibc @@ -1 +1 @@ -Subproject commit 56444a4545bd71430d64b86b8a71714cfdbe9f5d +Subproject commit 2b4cd1016bdba92becb4f982a4dcb18fe6653bc4 diff --git a/src/librustc_allocator/expand.rs b/src/librustc_allocator/expand.rs index 951c2280f76f9681a9ab62bb67c7aac8339c2cf1..26a7f50b997981742af6490e9e6650e6f2359150 100644 --- a/src/librustc_allocator/expand.rs +++ b/src/librustc_allocator/expand.rs @@ -15,7 +15,7 @@ use syntax::ast::{Unsafety, Constness, Generics, Mutability, Ty, Mac, Arg}; use syntax::ast::{self, Ident, Item, ItemKind, TyKind, VisibilityKind, Expr}; use syntax::attr; -use syntax::codemap::dummy_spanned; +use syntax::codemap::{dummy_spanned, respan}; use syntax::codemap::{ExpnInfo, NameAndSpan, MacroAttribute}; use syntax::ext::base::ExtCtxt; use syntax::ext::base::Resolver; @@ -97,7 +97,7 @@ fn fold_item(&mut self, item: P) -> SmallVector> { ]); let mut items = vec![ f.cx.item_extern_crate(f.span, f.alloc), - f.cx.item_use_simple(f.span, dummy_spanned(VisibilityKind::Inherited), super_path), + f.cx.item_use_simple(f.span, respan(f.span.empty(), VisibilityKind::Inherited), super_path), ]; for method in ALLOCATOR_METHODS { items.push(f.allocator_fn(method)); diff --git a/src/librustc_metadata/cstore_impl.rs b/src/librustc_metadata/cstore_impl.rs index 3e5ba4851cd00ccd774a391716007b3e3f8ede4d..c1340d0a28a4421fa15b28efaed0bfde5ad2d225 100644 --- a/src/librustc_metadata/cstore_impl.rs +++ b/src/librustc_metadata/cstore_impl.rs @@ -497,7 +497,7 @@ fn load_macro_untracked(&self, id: DefId, sess: &Session) -> LoadedMacro { tokens: body.into(), legacy: def.legacy, }), - vis: codemap::dummy_spanned(ast::VisibilityKind::Inherited), + vis: codemap::respan(local_span.empty(), ast::VisibilityKind::Inherited), tokens: None, }) } diff --git a/src/librustc_save_analysis/dump_visitor.rs b/src/librustc_save_analysis/dump_visitor.rs index c9c905723b2bbff74a7c3083aaebed0dd43e6c2e..bf82b0774238bf4879273b5c9df5c94d4ba6dea4 100644 --- a/src/librustc_save_analysis/dump_visitor.rs +++ b/src/librustc_save_analysis/dump_visitor.rs @@ -43,7 +43,7 @@ ty_to_string }; use syntax::ptr::P; -use syntax::codemap::{Spanned, DUMMY_SP, dummy_spanned}; +use syntax::codemap::{Spanned, DUMMY_SP, respan}; use syntax_pos::*; use {escape, generated_code, lower_attributes, PathCollector, SaveContext}; @@ -1134,6 +1134,7 @@ fn process_macro_use(&mut self, span: Span) { fn process_trait_item(&mut self, trait_item: &'l ast::TraitItem, trait_id: DefId) { self.process_macro_use(trait_item.span); + let vis_span = trait_item.span.empty(); match trait_item.node { ast::TraitItemKind::Const(ref ty, ref expr) => { self.process_assoc_const( @@ -1143,7 +1144,7 @@ fn process_trait_item(&mut self, trait_item: &'l ast::TraitItem, trait_id: DefId &ty, expr.as_ref().map(|e| &**e), trait_id, - dummy_spanned(ast::VisibilityKind::Public), + respan(vis_span, ast::VisibilityKind::Public), &trait_item.attrs, ); } @@ -1154,7 +1155,7 @@ fn process_trait_item(&mut self, trait_item: &'l ast::TraitItem, trait_id: DefId trait_item.id, trait_item.ident, &trait_item.generics, - dummy_spanned(ast::VisibilityKind::Public), + respan(vis_span, ast::VisibilityKind::Public), trait_item.span, ); } diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index 6eaeec99b17ca7f8014d7141f931852531bc524f..dd27dea4f0d978d04f73a10a6f6a11d51ddfc597 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -235,7 +235,7 @@ pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt, ty, expr, ), - vis: codemap::dummy_spanned(ast::VisibilityKind::Public), + vis: codemap::respan(span.empty(), ast::VisibilityKind::Public), span, tokens: None, }) diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 2de4643aef927a488f8fb84471cab4523e5bf381..7681f55bd8ccb4f96c4b6422c272c46c6cd7be90 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -987,7 +987,7 @@ fn item(&self, span: Span, name: Ident, attrs, id: ast::DUMMY_NODE_ID, node, - vis: dummy_spanned(ast::VisibilityKind::Inherited), + vis: respan(span.empty(), ast::VisibilityKind::Inherited), span, tokens: None, }) @@ -1033,7 +1033,7 @@ fn variant(&self, span: Span, name: Ident, tys: Vec> ) -> ast::Varian span: ty.span, ty, ident: None, - vis: dummy_spanned(ast::VisibilityKind::Inherited), + vis: respan(span.empty(), ast::VisibilityKind::Inherited), attrs: Vec::new(), id: ast::DUMMY_NODE_ID, } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 9c0a7e9516615f4f76a9cec7c45c4f412212f23f..d4d9dfb01da2c4fa181441255851577cade059ca 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -238,7 +238,7 @@ pub fn expand_crate(&mut self, mut krate: ast::Crate) -> ast::Crate { node: ast::ItemKind::Mod(krate.module), ident: keywords::Invalid.ident(), id: ast::DUMMY_NODE_ID, - vis: dummy_spanned(ast::VisibilityKind::Public), + vis: respan(krate.span.empty(), ast::VisibilityKind::Public), tokens: None, }))); diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index b4c005e77a355cd120b62bc3e16e929ac4c628b4..7a024dbad88300e0fe451f6503c6b280c5e7c686 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -9,7 +9,7 @@ // except according to those terms. use ast::{self, Arg, Arm, Block, Expr, Item, Pat, Stmt, Ty}; -use codemap::dummy_spanned; +use codemap::respan; use syntax_pos::Span; use ext::base::ExtCtxt; use ext::base; @@ -858,7 +858,7 @@ fn expand_wrapper(cx: &ExtCtxt, let path = path.iter().map(|s| s.to_string()).collect(); let use_item = cx.item_use_glob( sp, - dummy_spanned(ast::VisibilityKind::Inherited), + respan(sp.empty(), ast::VisibilityKind::Inherited), ids_ext(path), ); cx.stmt_item(sp, use_item) diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 670492818a62b1637dbf321bcee89e11103010dd..1a2025b073b2b85081f96883242dda1909531f13 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -21,7 +21,7 @@ use ast::*; use ast; use syntax_pos::Span; -use codemap::{Spanned, respan, dummy_spanned}; +use codemap::{Spanned, respan}; use parse::token::{self, Token}; use ptr::P; use symbol::keywords; @@ -1018,7 +1018,7 @@ pub fn noop_fold_crate(Crate {module, attrs, span}: Crate, ident: keywords::Invalid.ident(), attrs, id: ast::DUMMY_NODE_ID, - vis: dummy_spanned(ast::VisibilityKind::Public), + vis: respan(span.empty(), ast::VisibilityKind::Public), span, node: ast::ItemKind::Mod(module), tokens: None, diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 5ab9a484eb79350980f792db41fd8cf341eef75d..d2ae9904143d96e193ccbd684b27fea278039533 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -932,7 +932,7 @@ fn parser_done(p: Parser){ span: sp(15,21), recovered: false, })), - vis: codemap::dummy_spanned(ast::VisibilityKind::Inherited), + vis: codemap::respan(sp(0, 0), ast::VisibilityKind::Inherited), span: sp(0,21)}))); } diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 34499839fb03126b6a7f2a0a412f53eb516df962..3dfe3c9e5b990590e12c1e8efe97a45163eb1875 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1573,7 +1573,7 @@ pub fn print_trait_item(&mut self, ti: &ast::TraitItem) ti.ident, ty, default.as_ref().map(|expr| &**expr), - &codemap::dummy_spanned(ast::VisibilityKind::Inherited), + &codemap::respan(ti.span.empty(), ast::VisibilityKind::Inherited), )?; } ast::TraitItemKind::Method(ref sig, ref body) => { @@ -1584,7 +1584,7 @@ pub fn print_trait_item(&mut self, ti: &ast::TraitItem) ti.ident, &ti.generics, sig, - &codemap::dummy_spanned(ast::VisibilityKind::Inherited), + &codemap::respan(ti.span.empty(), ast::VisibilityKind::Inherited), )?; if let Some(ref body) = *body { self.nbsp()?; diff --git a/src/libsyntax/std_inject.rs b/src/libsyntax/std_inject.rs index ab42cfeb66bae454a44baefd693a40e09326a825..da24107f4c33b53485f44008d93b9de19183d68a 100644 --- a/src/libsyntax/std_inject.rs +++ b/src/libsyntax/std_inject.rs @@ -14,7 +14,7 @@ use ext::hygiene::{Mark, SyntaxContext}; use symbol::{Symbol, keywords}; use syntax_pos::{DUMMY_SP, Span}; -use codemap::{ExpnInfo, NameAndSpan, MacroAttribute, dummy_spanned}; +use codemap::{ExpnInfo, NameAndSpan, MacroAttribute, dummy_spanned, respan}; use ptr::P; use tokenstream::TokenStream; @@ -78,7 +78,7 @@ pub fn maybe_inject_crates_ref(mut krate: ast::Crate, alt_std_name: Option(cx: &'cx mut ExtCtxt, asm, ctxt: cx.backtrace(), })), - vis: dummy_spanned(ast::VisibilityKind::Inherited), + vis: respan(sp.empty(), ast::VisibilityKind::Inherited), span: sp, tokens: None, }))) diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs index 294506625bc05bc1c07f9ae6f3b3816630821b66..f9e01b630aebc59483cb3b8307421cc580a93e33 100644 --- a/src/libsyntax_pos/lib.rs +++ b/src/libsyntax_pos/lib.rs @@ -216,6 +216,12 @@ pub fn with_ctxt(self, ctxt: SyntaxContext) -> Span { self.data().with_ctxt(ctxt) } + /// Returns a new span representing an empty span at the beginning of this span + #[inline] + pub fn empty(self) -> Span { + span.with_hi(self.lo()) + } + /// Returns `self` if `self` is not the dummy span, and `other` otherwise. pub fn substitute_dummy(self, other: Span) -> Span { if self.source_equal(&DUMMY_SP) { other } else { self } diff --git a/src/tools/cargo b/src/tools/cargo index 1d6dfea44f97199d5d5c177c7dadcde393eaff9a..91e36aa86c7037de50642f2fec1cf47c3d18af02 160000 --- a/src/tools/cargo +++ b/src/tools/cargo @@ -1 +1 @@ -Subproject commit 1d6dfea44f97199d5d5c177c7dadcde393eaff9a +Subproject commit 91e36aa86c7037de50642f2fec1cf47c3d18af02