Skip to content

Commit 9e797d8

Browse files
---
yaml --- r: 234494 b: refs/heads/tmp c: c4a3936 h: refs/heads/master v: v3
1 parent 8c52b81 commit 9e797d8

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
@@ -25,7 +25,7 @@ refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
2626
refs/heads/beta: d2e13e822a73e0ea46ae9e21afdd3155fc997f6d
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
28-
refs/heads/tmp: 5e9bfcd6d6342240200ec38f65ef75e96daa1b7a
28+
refs/heads/tmp: c4a3936327f2f1082e3ac52e3dc7b250e3a04506
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3030
refs/tags/homu-tmp: ab792abf1fcc28afbd315426213f6428da25c085
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828

branches/tmp/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/tmp/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)