| //@ run-pass | |
| #![allow(warnings)] | |
| #[derive(Debug)] | |
| pub struct Bar { pub t: () } | |
| impl<T> Access for T {} | |
| pub trait Access { | |
| fn field(&self, _: impl Sized, _: impl Sized) { | |
| panic!("got into Access::field"); | |
| } | |
| fn finish(&self) -> Result<(), std::fmt::Error> { | |
| panic!("got into Access::finish"); | |
| } | |
| fn debug_struct(&self, _: impl Sized, _: impl Sized) { | |
| panic!("got into Access::debug_struct"); | |
| } | |
| } | |
| impl<T> MutAccess for T {} | |
| pub trait MutAccess { | |
| fn field(&mut self, _: impl Sized, _: impl Sized) { | |
| panic!("got into MutAccess::field"); | |
| } | |
| fn finish(&mut self) -> Result<(), std::fmt::Error> { | |
| panic!("got into MutAccess::finish"); | |
| } | |
| fn debug_struct(&mut self, _: impl Sized, _: impl Sized) { | |
| panic!("got into MutAccess::debug_struct"); | |
| } | |
| } | |
| fn main() { | |
| let bar = Bar { t: () }; | |
| assert_eq!("Bar { t: () }", format!("{:?}", bar)); | |
| } |