diff options
Diffstat (limited to 'src/test/ui/compile-fail-migration/specialization/defaultimpl/specialization-trait-not-implemented.rs')
| -rw-r--r-- | src/test/ui/compile-fail-migration/specialization/defaultimpl/specialization-trait-not-implemented.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/ui/compile-fail-migration/specialization/defaultimpl/specialization-trait-not-implemented.rs b/src/test/ui/compile-fail-migration/specialization/defaultimpl/specialization-trait-not-implemented.rs new file mode 100644 index 00000000000..04ddf9ebb17 --- /dev/null +++ b/src/test/ui/compile-fail-migration/specialization/defaultimpl/specialization-trait-not-implemented.rs @@ -0,0 +1,34 @@ +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// Tests that: +// - default impls do not have to supply all items and +// - a default impl does not count as an impl (in this case, an incomplete default impl). + +#![feature(specialization)] + +trait Foo { + fn foo_one(&self) -> &'static str; + fn foo_two(&self) -> &'static str; +} + +struct MyStruct; + +default impl<T> Foo for T { + fn foo_one(&self) -> &'static str { + "generic" + } +} + + +fn main() { + println!("{}", MyStruct.foo_one()); + //~^ ERROR no method named `foo_one` found for type `MyStruct` in the current scope +} |
