#![feature(min_specialization)] // @has default_trait_method/trait.Item.html pub trait Item { // @has - '//*[@id="tymethod.foo"]' 'fn foo()' // @!has - '//*[@id="tymethod.foo"]' 'default fn foo()' fn foo(); // @has - '//*[@id="tymethod.bar"]' 'fn bar()' // @!has - '//*[@id="tymethod.bar"]' 'default fn bar()' fn bar(); // @has - '//*[@id="tymethod.baz"]' 'unsafe fn baz()' // @!has - '//*[@id="tymethod.baz"]' 'default unsafe fn baz()' unsafe fn baz(); // @has - '//*[@id="tymethod.quux"]' 'unsafe fn quux()' // @!has - '//*[@id="tymethod.quux"]' 'default unsafe fn quux()' unsafe fn quux(); // @has - '//*[@id="method.xyzzy"]' 'fn xyzzy()' // @!has - '//*[@id="method.xyzzy"]' 'default fn xyzzy()' fn xyzzy() {} } // @has default_trait_method/struct.Foo.html pub struct Foo; impl Item for Foo { // @has - '//*[@id="method.foo"]' 'default fn foo()' default fn foo() {} // @has - '//*[@id="method.bar"]' 'fn bar()' // @!has - '//*[@id="method.bar"]' 'default fn bar()' fn bar() {} // @has - '//*[@id="method.baz"]' 'default unsafe fn baz()' default unsafe fn baz() {} // @has - '//*[@id="method.quux"]' 'unsafe fn quux()' // @!has - '//*[@id="method.quux"]' 'default unsafe fn quux()' unsafe fn quux() {} // @has - '//*[@id="method.xyzzy"]' 'fn xyzzy()' // @!has - '//*[@id="method.xyzzy"]' 'default fn xyzzy()' }