File tree Expand file tree Collapse file tree 2 files changed +65
-1
lines changed
branches/beta/src/test/run-pass Expand file tree Collapse file tree 2 files changed +65
-1
lines changed Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
23
23
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
24
24
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
25
25
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26
- refs/heads/beta: fa427266ee5241868332f0401cf7e86ce3c29cc9
26
+ refs/heads/beta: b6f441d9861868eefd81460e0c3e4295fca12ffe
27
27
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
28
28
refs/heads/tmp: e06d2ad9fcd5027bcaac5b08fc9aa39a49d0ecd3
29
29
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
Original file line number Diff line number Diff line change
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
+ // Various scenarios in which `pub` is required in blocks
12
+
13
+ struct S ;
14
+
15
+ mod m {
16
+ fn f ( ) {
17
+ impl :: S {
18
+ pub fn s ( & self ) { }
19
+ }
20
+ }
21
+ }
22
+
23
+ // ------------------------------------------------------
24
+
25
+ pub trait Tr {
26
+ type A ;
27
+ }
28
+ pub struct S1 ;
29
+
30
+ fn f ( ) {
31
+ pub struct Z ;
32
+
33
+ impl :: Tr for :: S1 {
34
+ type A = Z ; // Private-in-public error unless `struct Z` is pub
35
+ }
36
+ }
37
+
38
+ // ------------------------------------------------------
39
+
40
+ trait Tr1 {
41
+ type A ;
42
+ fn pull ( & self ) -> Self :: A ;
43
+ }
44
+ struct S2 ;
45
+
46
+ mod m1 {
47
+ fn f ( ) {
48
+ struct Z {
49
+ pub field : u8
50
+ }
51
+
52
+ impl :: Tr1 for :: S2 {
53
+ type A = Z ;
54
+ fn pull ( & self ) -> Self :: A { Z { field : 10 } }
55
+ }
56
+ }
57
+ }
58
+
59
+ // ------------------------------------------------------
60
+
61
+ fn main ( ) {
62
+ S . s ( ) ; // Privacy error, unless `fn s` is pub
63
+ let a = S2 . pull ( ) . field ; // Privacy error unless `field: u8` is pub
64
+ }
You can’t perform that action at this time.
0 commit comments