about summary refs log tree commit diff
path: root/src/libsyntax_ext
diff options
context:
space:
mode:
authorDan Aloni <dan@kernelim.com>2019-10-11 15:14:23 +0300
committerDan Aloni <dan@kernelim.com>2019-10-11 16:38:47 +0300
commita32aec021eee20ad27c232bdacb5c4ac6af7808a (patch)
treeb8149b7fecfe3af72f3d1ff1b99f49c0f9d807e0 /src/libsyntax_ext
parent000d90b11f7be70ffb7812680f7abc6deb52ec88 (diff)
downloadrust-a32aec021eee20ad27c232bdacb5c4ac6af7808a.tar.gz
rust-a32aec021eee20ad27c232bdacb5c4ac6af7808a.zip
deriving: avoid dummy Span on an artificial `type_ident` path
The dummy Span pointed to the beginning of the source file instead to
where the `#[derive]` is located. Later, it tripped the
`in_derive_expansion(span)` check at `src/librustc/middle/stability.rs`,
causing a span-less deprecation warning to be emitted.

Fixes #56195, #55417.
Diffstat (limited to 'src/libsyntax_ext')
-rw-r--r--src/libsyntax_ext/deriving/generic/mod.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libsyntax_ext/deriving/generic/mod.rs b/src/libsyntax_ext/deriving/generic/mod.rs
index 9f75f72e820..abdcb6c8e3d 100644
--- a/src/libsyntax_ext/deriving/generic/mod.rs
+++ b/src/libsyntax_ext/deriving/generic/mod.rs
@@ -192,7 +192,7 @@ use syntax::util::map_in_place::MapInPlace;
 use syntax::ptr::P;
 use syntax::symbol::{Symbol, kw, sym};
 use syntax::parse::ParseSess;
-use syntax_pos::{DUMMY_SP, Span};
+use syntax_pos::{Span};
 
 use ty::{LifetimeBounds, Path, Ptr, PtrTy, Self_, Ty};
 
@@ -1022,7 +1022,7 @@ impl<'a> MethodDef<'a> {
                                  // [fields of next Self arg], [etc]>
         let mut patterns = Vec::new();
         for i in 0..self_args.len() {
-            let struct_path = cx.path(DUMMY_SP, vec![type_ident]);
+            let struct_path = cx.path(trait_.span, vec![type_ident]);
             let (pat, ident_expr) = trait_.create_struct_pattern(cx,
                                                                  struct_path,
                                                                  struct_def,