diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-07-14 22:54:36 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-08-11 23:19:04 +0300 |
| commit | b052dd6240b136c02837b1c27bc3b49b4663be02 (patch) | |
| tree | 34f8d410ae6802912b7ce021d86581485a5f3e5a | |
| parent | 737961b6c66800c94ae25e0738f1ccf033f4fd9b (diff) | |
| download | rust-b052dd6240b136c02837b1c27bc3b49b4663be02.tar.gz rust-b052dd6240b136c02837b1c27bc3b49b4663be02.zip | |
Add test for #28514
Fixes #28514
| -rw-r--r-- | src/test/compile-fail/issue-28514.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/test/compile-fail/issue-28514.rs b/src/test/compile-fail/issue-28514.rs new file mode 100644 index 00000000000..6ee375503c2 --- /dev/null +++ b/src/test/compile-fail/issue-28514.rs @@ -0,0 +1,45 @@ +// Copyright 2016 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. + +pub use inner::C; + +mod inner { + trait A { + fn a(&self) { } + } + + pub trait B { + fn b(&self) { } + } + + pub trait C: A + B { //~ ERROR private trait in public interface + //~^ WARN will become a hard error + fn c(&self) { } + } + + impl A for i32 {} + impl B for i32 {} + impl C for i32 {} + +} + +fn main() { + // A is private + // B is pub, not reexported + // C : A + B is pub, reexported + + // 0.a(); // can't call + // 0.b(); // can't call + 0.c(); // ok + + C::a(&0); // can call + C::b(&0); // can call + C::c(&0); // ok +} |
