Skip to content

Commit e67590b

Browse files
committed
Add tests
1 parent 2e36a7a commit e67590b

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
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+
11+
mod foo {
12+
pub use self::bar::S;
13+
mod bar {
14+
pub struct S;
15+
pub use baz;
16+
}
17+
18+
trait T {
19+
type Assoc;
20+
}
21+
impl T for () {
22+
type Assoc = S;
23+
}
24+
}
25+
26+
impl foo::S {
27+
fn f() {}
28+
}
29+
30+
pub mod baz {
31+
fn f() {}
32+
33+
fn g() {
34+
::foo::bar::baz::f(); //~ERROR module `bar` is private
35+
::foo::bar::S::f(); //~ERROR module `bar` is private
36+
<() as ::foo::T>::Assoc::f(); //~ERROR trait `T` is private
37+
}
38+
}
39+
40+
fn main() {}

src/test/compile-fail/private-impl-method.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,14 @@ mod a {
1818
}
1919
}
2020

21+
fn f() {
22+
impl a::Foo {
23+
fn bar(&self) {} // This should be visible outside `f`
24+
}
25+
}
26+
2127
fn main() {
2228
let s = a::Foo { x: 1 };
29+
s.bar();
2330
s.foo(); //~ ERROR method `foo` is private
2431
}

0 commit comments

Comments
 (0)