2 use std::fmt::{Debug, Formatter, Result};
5 impl Debug for Inner<()> {
6 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
12 struct Outer<T>(Inner<T>); //~ ERROR `a::Inner<T>` doesn't implement `Debug`
16 use std::fmt::{Debug, Formatter, Result};
19 impl<T: Debug> Debug for Inner<T> {
20 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
26 struct Outer<T>(Inner<T>);
30 use std::fmt::{Debug, Formatter, Result};
34 impl<T: Debug + Trait> Debug for Inner<T> {
35 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
41 struct Outer<T>(Inner<T>); //~ ERROR the trait bound `T: c::Trait` is not satisfied
45 use std::fmt::{Debug, Formatter, Result};
49 impl<T> Debug for Inner<T> where T: Debug, T: Trait {
50 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
56 struct Outer<T>(Inner<T>); //~ ERROR the trait bound `T: d::Trait` is not satisfied
60 use std::fmt::{Debug, Formatter, Result};
64 impl<T> Debug for Inner<T> where T: Debug + Trait {
65 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
71 struct Outer<T>(Inner<T>); //~ ERROR the trait bound `T: e::Trait` is not satisfied
75 use std::fmt::{Debug, Formatter, Result};
79 impl<T: Debug> Debug for Inner<T> where T: Trait {
80 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
86 struct Outer<T>(Inner<T>); //~ ERROR the trait bound `T: f::Trait` is not satisfied