Skip to content

Commit 60d1fa7

Browse files
committed
Address review comments
Say "trait" instead of "type" in diagnostics for `dyn Trait`
1 parent 8b1c424 commit 60d1fa7

10 files changed

+126
-96
lines changed

src/librustc/util/ppaux.rs

+3
Original file line numberDiff line numberDiff line change
@@ -709,6 +709,9 @@ define_print! {
709709

710710
define_print! {
711711
('tcx) ty::ExistentialTraitRef<'tcx>, (self, f, cx) {
712+
display {
713+
cx.parameterized(f, self.substs, self.def_id, &[])
714+
}
712715
debug {
713716
ty::tls::with(|tcx| {
714717
let dummy_self = tcx.mk_infer(ty::FreshTy(0));

src/librustc_privacy/lib.rs

+104-77
Large diffs are not rendered by default.

src/test/ui/privacy/associated-item-privacy-type-binding.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ mod priv_trait {
99

1010
pub macro mac1() {
1111
let _: Box<PubTr<AssocTy = u8>>;
12-
//~^ ERROR type `(dyn priv_trait::PubTr<AssocTy=u8> + '<empty>)` is private
13-
//~| ERROR type `(dyn priv_trait::PubTr<AssocTy=u8> + '<empty>)` is private
12+
//~^ ERROR trait `priv_trait::PrivTr` is private
13+
//~| ERROR trait `priv_trait::PrivTr` is private
1414
type InSignatureTy2 = Box<PubTr<AssocTy = u8>>;
15-
//~^ ERROR type `(dyn priv_trait::PubTr<AssocTy=u8> + 'static)` is private
15+
//~^ ERROR trait `priv_trait::PrivTr` is private
1616
trait InSignatureTr2: PubTr<AssocTy = u8> {}
1717
//~^ ERROR trait `priv_trait::PrivTr` is private
1818
}
1919
pub macro mac2() {
2020
let _: Box<PrivTr<AssocTy = u8>>;
21-
//~^ ERROR type `(dyn priv_trait::PrivTr<AssocTy=u8> + '<empty>)` is private
22-
//~| ERROR type `(dyn priv_trait::PrivTr<AssocTy=u8> + '<empty>)` is private
21+
//~^ ERROR trait `priv_trait::PrivTr` is private
22+
//~| ERROR trait `priv_trait::PrivTr` is private
2323
type InSignatureTy1 = Box<PrivTr<AssocTy = u8>>;
24-
//~^ ERROR type `(dyn priv_trait::PrivTr<AssocTy=u8> + 'static)` is private
24+
//~^ ERROR trait `priv_trait::PrivTr` is private
2525
trait InSignatureTr1: PrivTr<AssocTy = u8> {}
2626
//~^ ERROR trait `priv_trait::PrivTr` is private
2727
}

src/test/ui/privacy/associated-item-privacy-type-binding.stderr

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
error: type `(dyn priv_trait::PubTr<AssocTy=u8> + '<empty>)` is private
1+
error: trait `priv_trait::PrivTr` is private
22
--> $DIR/associated-item-privacy-type-binding.rs:11:13
33
|
44
LL | let _: Box<PubTr<AssocTy = u8>>;
@@ -7,7 +7,7 @@ LL | let _: Box<PubTr<AssocTy = u8>>;
77
LL | priv_trait::mac1!();
88
| -------------------- in this macro invocation
99

10-
error: type `(dyn priv_trait::PubTr<AssocTy=u8> + '<empty>)` is private
10+
error: trait `priv_trait::PrivTr` is private
1111
--> $DIR/associated-item-privacy-type-binding.rs:11:16
1212
|
1313
LL | let _: Box<PubTr<AssocTy = u8>>;
@@ -16,7 +16,7 @@ LL | let _: Box<PubTr<AssocTy = u8>>;
1616
LL | priv_trait::mac1!();
1717
| -------------------- in this macro invocation
1818

19-
error: type `(dyn priv_trait::PubTr<AssocTy=u8> + 'static)` is private
19+
error: trait `priv_trait::PrivTr` is private
2020
--> $DIR/associated-item-privacy-type-binding.rs:14:31
2121
|
2222
LL | type InSignatureTy2 = Box<PubTr<AssocTy = u8>>;
@@ -34,7 +34,7 @@ LL | trait InSignatureTr2: PubTr<AssocTy = u8> {}
3434
LL | priv_trait::mac1!();
3535
| -------------------- in this macro invocation
3636

37-
error: type `(dyn priv_trait::PrivTr<AssocTy=u8> + '<empty>)` is private
37+
error: trait `priv_trait::PrivTr` is private
3838
--> $DIR/associated-item-privacy-type-binding.rs:20:13
3939
|
4040
LL | let _: Box<PrivTr<AssocTy = u8>>;
@@ -43,7 +43,7 @@ LL | let _: Box<PrivTr<AssocTy = u8>>;
4343
LL | priv_trait::mac2!();
4444
| -------------------- in this macro invocation
4545

46-
error: type `(dyn priv_trait::PrivTr<AssocTy=u8> + '<empty>)` is private
46+
error: trait `priv_trait::PrivTr` is private
4747
--> $DIR/associated-item-privacy-type-binding.rs:20:16
4848
|
4949
LL | let _: Box<PrivTr<AssocTy = u8>>;
@@ -52,7 +52,7 @@ LL | let _: Box<PrivTr<AssocTy = u8>>;
5252
LL | priv_trait::mac2!();
5353
| -------------------- in this macro invocation
5454

55-
error: type `(dyn priv_trait::PrivTr<AssocTy=u8> + 'static)` is private
55+
error: trait `priv_trait::PrivTr` is private
5656
--> $DIR/associated-item-privacy-type-binding.rs:23:31
5757
|
5858
LL | type InSignatureTy1 = Box<PrivTr<AssocTy = u8>>;

src/test/ui/privacy/private-in-public-non-principal-2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ mod m {
99

1010
fn main() {
1111
m::leak_dyn_nonprincipal();
12-
//~^ ERROR type `(dyn m::PubPrincipal + m::PrivNonPrincipal + 'static)` is private
12+
//~^ ERROR trait `m::PrivNonPrincipal` is private
1313
}

src/test/ui/privacy/private-in-public-non-principal-2.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
error: type `(dyn m::PubPrincipal + m::PrivNonPrincipal + 'static)` is private
1+
error: trait `m::PrivNonPrincipal` is private
22
--> $DIR/private-in-public-non-principal-2.rs:11:5
33
|
44
LL | m::leak_dyn_nonprincipal();

src/test/ui/privacy/private-in-public-non-principal.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub trait PubPrincipal {}
44
auto trait PrivNonPrincipal {}
55

66
pub fn leak_dyn_nonprincipal() -> Box<PubPrincipal + PrivNonPrincipal> { loop {} }
7-
//~^ WARN private type `(dyn PubPrincipal + PrivNonPrincipal + 'static)` in public interface
7+
//~^ WARN private trait `PrivNonPrincipal` in public interface
88
//~| WARN this was previously accepted
99

1010
#[deny(missing_docs)]

src/test/ui/privacy/private-in-public-non-principal.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
warning: private type `(dyn PubPrincipal + PrivNonPrincipal + 'static)` in public interface (error E0446)
1+
warning: private trait `PrivNonPrincipal` in public interface (error E0445)
22
--> $DIR/private-in-public-non-principal.rs:6:1
33
|
44
LL | pub fn leak_dyn_nonprincipal() -> Box<PubPrincipal + PrivNonPrincipal> { loop {} }

src/test/ui/privacy/private-inferred-type.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ fn main() {
119119
m::leak_anon2(); //~ ERROR type `m::Priv` is private
120120
m::leak_anon3(); //~ ERROR type `m::Priv` is private
121121

122-
m::leak_dyn1(); //~ ERROR type `(dyn m::Trait + 'static)` is private
122+
m::leak_dyn1(); //~ ERROR trait `m::Trait` is private
123123
m::leak_dyn2(); //~ ERROR type `m::Priv` is private
124124
m::leak_dyn3(); //~ ERROR type `m::Priv` is private
125125

src/test/ui/privacy/private-inferred-type.stderr

+2-2
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,10 @@ error: type `m::Priv` is private
160160
LL | m::leak_anon3(); //~ ERROR type `m::Priv` is private
161161
| ^^^^^^^^^^^^^^^
162162

163-
error: type `(dyn m::Trait + 'static)` is private
163+
error: trait `m::Trait` is private
164164
--> $DIR/private-inferred-type.rs:122:5
165165
|
166-
LL | m::leak_dyn1(); //~ ERROR type `(dyn m::Trait + 'static)` is private
166+
LL | m::leak_dyn1(); //~ ERROR trait `m::Trait` is private
167167
| ^^^^^^^^^^^^^^
168168

169169
error: type `m::Priv` is private

0 commit comments

Comments
 (0)