#![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()' }