| // check that we don't render `#[const_trait]` methods as `const` - even for |
| // const `trait`s and `impl`s. |
| #![crate_name = "foo"] |
| #![feature(const_trait_impl)] |
| |
| //@ has foo/trait.Tr.html |
| //@ has - '//*[@id="tymethod.required"]' 'fn required()' |
| //@ !has - '//*[@id="tymethod.required"]' 'const' |
| //@ has - '//*[@id="method.defaulted"]' 'fn defaulted()' |
| //@ !has - '//*[@id="method.defaulted"]' 'const' |
| #[const_trait] |
| pub trait Tr { |
| fn required(); |
| fn defaulted() {} |
| } |
| |
| pub struct ConstImpl {} |
| pub struct NonConstImpl {} |
| |
| //@ has foo/struct.ConstImpl.html |
| //@ has - '//*[@id="method.required"]' 'fn required()' |
| //@ !has - '//*[@id="method.required"]' 'const' |
| //@ has - '//*[@id="method.defaulted"]' 'fn defaulted()' |
| //@ !has - '//*[@id="method.defaulted"]' 'const' |
| impl const Tr for ConstImpl { |
| fn required() {} |
| } |
| |
| //@ has foo/struct.NonConstImpl.html |
| //@ has - '//*[@id="method.required"]' 'fn required()' |
| //@ !has - '//*[@id="method.required"]' 'const' |
| //@ has - '//*[@id="method.defaulted"]' 'fn defaulted()' |
| //@ !has - '//*[@id="method.defaulted"]' 'const' |
| impl Tr for NonConstImpl { |
| fn required() {} |
| } |