]> git.proxmox.com Git - rustc.git/blame - src/test/compile-fail/specialization/defaultimpl/specialization-trait-item-not-implemented.rs
New upstream version 1.29.0+dfsg1
[rustc.git] / src / test / compile-fail / specialization / defaultimpl / specialization-trait-item-not-implemented.rs
CommitLineData
1a4d82fc 1// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
223e47cc
LB
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
0531ce1d 11// Tests that default impls do not have to supply all items but regular impls do.
7cac9316
XL
12
13#![feature(specialization)]
14
15trait Foo {
0531ce1d
XL
16 fn foo_one(&self) -> &'static str;
17 fn foo_two(&self) -> &'static str;
b039eaaf 18}
85aaf69f 19
0531ce1d 20struct MyStruct;
b039eaaf 21
0531ce1d
XL
22default impl<T> Foo for T {
23 fn foo_one(&self) -> &'static str {
24 "generic"
7cac9316 25 }
b039eaaf 26}
223e47cc 27
0531ce1d
XL
28impl Foo for MyStruct {}
29//~^ ERROR not all trait items implemented, missing: `foo_two` [E0046]
7cac9316 30
0531ce1d
XL
31fn main() {
32 println!("{}", MyStruct.foo_one());
c34b1796 33}