// This test ensures that the const methods from Deref aren't shown as const. // For more information, see https://github.com/rust-lang/rust/issues/90855. #![crate_name = "foo"] #![feature(staged_api)] #![stable(feature = "rust1", since = "1.0.0")] // @has 'foo/struct.Bar.html' #[stable(feature = "rust1", since = "1.0.0")] pub struct Bar; impl Bar { // @has - '//*[@id="method.len"]' 'pub const fn len(&self) -> usize' // @has - '//*[@id="method.len"]//span[@class="since"]' 'const: 1.0.0' #[stable(feature = "rust1", since = "1.0.0")] #[rustc_const_stable(feature = "rust1", since = "1.0.0")] pub const fn len(&self) -> usize { 0 } } #[stable(feature = "rust1", since = "1.0.0")] pub struct Foo { value: Bar, } // @has 'foo/struct.Foo.html' // @has - '//*[@id="method.len"]' 'pub fn len(&self) -> usize' // @!has - '//*[@id="method.len"]//span[@class="since"]' '1.0.0' // @!has - '//*[@id="method.len"]//span[@class="since"]' '(const: 1.0.0)' #[stable(feature = "rust1", since = "1.0.0")] impl std::ops::Deref for Foo { type Target = Bar; fn deref(&self) -> &Self::Target { &self.value } }