Skip to content

Commit 3d217a3

Browse files
---
yaml --- r: 234148 b: refs/heads/beta c: c4a3936 h: refs/heads/master v: v3
1 parent 91681ce commit 3d217a3

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
2323
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
2424
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26-
refs/heads/beta: 5e9bfcd6d6342240200ec38f65ef75e96daa1b7a
26+
refs/heads/beta: c4a3936327f2f1082e3ac52e3dc7b250e3a04506
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: 370fe2786109360f7c35b8ba552b83b773dd71d6
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/src/librustc_privacy/diagnostics.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,31 @@ pub trait Bar : Foo {} // ok!
3535
```
3636
"##,
3737

38+
E0446: r##"
39+
A private type was used in an exported type signature. Erroneous code example:
40+
41+
```
42+
mod Foo {
43+
struct Bar(u32);
44+
45+
pub fn bar() -> Bar { // error: private type in exported type signature
46+
Bar(0)
47+
}
48+
}
49+
```
50+
51+
To solve this error, please ensure the type is accessible at the same level of
52+
the exported type signature. Example:
53+
54+
```
55+
mod Foo {
56+
pub struct Bar(u32); // we set the Bar type public
57+
58+
pub fn bar() -> Bar { // ok!
59+
Bar(0)
60+
}
61+
}
62+
```
63+
"##,
64+
3865
}

branches/beta/src/librustc_privacy/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1435,7 +1435,8 @@ impl<'a, 'tcx, 'v> Visitor<'v> for VisiblePrivateTypesVisitor<'a, 'tcx> {
14351435
if let hir::TyPath(_, ref p) = t.node {
14361436
if !self.tcx.sess.features.borrow().visible_private_types &&
14371437
self.path_is_private_type(t.id) {
1438-
self.tcx.sess.span_err(p.span, "private type in exported type signature");
1438+
span_err!(self.tcx.sess, p.span, E0446,
1439+
"private type in exported type signature");
14391440
}
14401441
}
14411442
visit::walk_ty(self, t)

0 commit comments

Comments
 (0)