diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2018-11-08 18:14:58 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-11-08 18:14:58 -0700 |
| commit | e873984fa8fff9df303df902bb1dc10528cd99ec (patch) | |
| tree | ef9509cd85f6a69ddac700174964182760f3c74d /src | |
| parent | 8fd4e5a467f1309a7564a20d536b038122ae1a14 (diff) | |
| parent | 3ec837e763ba423ddff0cdc886eba91f2836b6f8 (diff) | |
| download | rust-e873984fa8fff9df303df902bb1dc10528cd99ec.tar.gz rust-e873984fa8fff9df303df902bb1dc10528cd99ec.zip | |
Rollup merge of #55736 - estebank:elide-anon-lt, r=petrochenkov
Elide anon lifetimes in conflicting impl note Fix #54690.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/traits/specialize/mod.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/coherence/coherence-impls-copy.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/e0119/issue-28981.stderr | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/src/librustc/traits/specialize/mod.rs b/src/librustc/traits/specialize/mod.rs index 0ce1d8f8227..d7b5dd049e3 100644 --- a/src/librustc/traits/specialize/mod.rs +++ b/src/librustc/traits/specialize/mod.rs @@ -396,7 +396,10 @@ fn to_pretty_impl_header(tcx: TyCtxt<'_, '_, '_>, impl_def_id: DefId) -> Option< if !substs.is_noop() { types_without_default_bounds.extend(substs.types()); w.push('<'); - w.push_str(&substs.iter().map(|k| k.to_string()).collect::<Vec<_>>().join(", ")); + w.push_str(&substs.iter() + .map(|k| k.to_string()) + .filter(|k| &k[..] != "'_") + .collect::<Vec<_>>().join(", ")); w.push('>'); } diff --git a/src/test/ui/coherence/coherence-impls-copy.stderr b/src/test/ui/coherence/coherence-impls-copy.stderr index 613ee0a269e..dc417957795 100644 --- a/src/test/ui/coherence/coherence-impls-copy.stderr +++ b/src/test/ui/coherence/coherence-impls-copy.stderr @@ -14,7 +14,7 @@ LL | impl Copy for &'static NotSync {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: conflicting implementation in crate `core`: - - impl<'_, T> std::marker::Copy for &T + - impl<T> std::marker::Copy for &T where T: ?Sized; error[E0119]: conflicting implementations of trait `std::marker::Copy` for type `&[NotSync]`: @@ -24,7 +24,7 @@ LL | impl Copy for &'static [NotSync] {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: conflicting implementation in crate `core`: - - impl<'_, T> std::marker::Copy for &T + - impl<T> std::marker::Copy for &T where T: ?Sized; error[E0206]: the trait `Copy` may not be implemented for this type diff --git a/src/test/ui/e0119/issue-28981.stderr b/src/test/ui/e0119/issue-28981.stderr index 4886ad77175..76ff88d6cc6 100644 --- a/src/test/ui/e0119/issue-28981.stderr +++ b/src/test/ui/e0119/issue-28981.stderr @@ -5,7 +5,7 @@ LL | impl<Foo> Deref for Foo { } //~ ERROR must be used | ^^^^^^^^^^^^^^^^^^^^^^^ | = note: conflicting implementation in crate `core`: - - impl<'_, T> std::ops::Deref for &T + - impl<T> std::ops::Deref for &T where T: ?Sized; error[E0210]: type parameter `Foo` must be used as the type parameter for some local type (e.g. `MyStruct<Foo>`) |
