тому, что удалось пока откопать, это как-то связано с понятием "trait object safety")
                  
                  
                  
                  
                  
                  trait Bar {
                  
                  
                      fn bad<T> (&self, x: T) where Self: Sized;
                  
                  
                  }
                  
                  
                  
                  
                  
                   impl Bar for u8 {
                  
                  
                      fn bad<T> (&self, _: T) where Self: Sized {}
                  
                  
                   }
                  
                  
                  
                  
                  
                  fn main() {
                  
                  
                      (&1_u8 as &Bar).bad("foo");
                  
                  
                  }
                  
                  
                
trait Bar { fn bad<T> (&self, x: T) where Self: Sized; } impl Bar for u8 { fn bad<T> (&self, _: T) where Self: Sized {} } fn main() { Bar::bad(&1u8,"foo"); } Аналогичный по сути код но работает
Обсуждают сегодня