// compile-flags:-Zprint-mono-items=eager #![deny(dead_code)] #![crate_type="lib"] use std::ops::{Index, IndexMut, Add, Deref}; pub struct Indexable { data: [u8; 3] } impl Index for Indexable { type Output = u8; //~ MONO_ITEM fn >::index fn index(&self, index: usize) -> &Self::Output { if index >= 3 { &self.data[0] } else { &self.data[index] } } } impl IndexMut for Indexable { //~ MONO_ITEM fn >::index_mut fn index_mut(&mut self, index: usize) -> &mut Self::Output { if index >= 3 { &mut self.data[0] } else { &mut self.data[index] } } } //~ MONO_ITEM fn ::eq //~ MONO_ITEM fn ::ne #[derive(PartialEq)] pub struct Equatable(u32); impl Add for Equatable { type Output = u32; //~ MONO_ITEM fn >::add fn add(self, rhs: u32) -> u32 { self.0 + rhs } } impl Deref for Equatable { type Target = u32; //~ MONO_ITEM fn ::deref fn deref(&self) -> &Self::Target { &self.0 } }