diff options
| author | Dan Aloni <dan@kernelim.com> | 2019-10-11 15:14:23 +0300 |
|---|---|---|
| committer | Dan Aloni <dan@kernelim.com> | 2019-10-11 16:38:47 +0300 |
| commit | a32aec021eee20ad27c232bdacb5c4ac6af7808a (patch) | |
| tree | b8149b7fecfe3af72f3d1ff1b99f49c0f9d807e0 /src/libsyntax_ext | |
| parent | 000d90b11f7be70ffb7812680f7abc6deb52ec88 (diff) | |
| download | rust-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.rs | 4 |
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, |
