diff options
| author | Pietro Albini <pietro@pietroalbini.org> | 2018-06-26 11:35:33 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-06-26 11:35:33 +0200 |
| commit | d72a67f3bbf48cec735de85ec9c4200b842a80f6 (patch) | |
| tree | add2d116c03c56b897935f58ccb53c255df630b2 /src/test/compile-fail | |
| parent | 773ce53ce7b3acb97cfbd3d189dc3fbf33ec05c6 (diff) | |
| parent | 4b1808578a99b1a452b65f0bf27de4c8775e9105 (diff) | |
| download | rust-d72a67f3bbf48cec735de85ec9c4200b842a80f6.tar.gz rust-d72a67f3bbf48cec735de85ec9c4200b842a80f6.zip | |
Rollup merge of #51104 - zackmdavis:dynamo, r=nikomatsakis
add `dyn ` to display of dynamic (trait) types
~~I'm not sure we want the `dyn` in the E0277 "trait bound [...] is not satisfied" messages ("bound" sounds like a different thing in contrast to the names of specific trait-object types like `Box<dyn Trait>`), but I'm finding the code I would need to change that hard to follow—the [display object seems to](https://github.com/rust-lang/rust/blob/f0805a4421449bd6fe3096d63820fbebe2bfcd1d/src/librustc/traits/error_reporting.rs#L600) be a [`Predicate::Trait`](https://github.com/rust-lang/rust/blob/f0805a4421449bd6fe3096d63820fbebe2bfcd1d/src/librustc/ty/mod.rs#L962) variant, whose [`Display` implementation](https://github.com/rust-lang/rust/blob/f0805a4421449bd6fe3096d63820fbebe2bfcd1d/src/librustc/util/ppaux.rs#L1309) calls `.print` on its `PolyTraitPredicate` member, [which is a type alias](https://github.com/rust-lang/rust/blob/f0805a4421449bd6fe3096d63820fbebe2bfcd1d/src/librustc/ty/mod.rs#L1112) for `ty::Binder<TraitPredicate<'tcx>>`, whose [`Display` implementation](https://github.com/rust-lang/rust/blob/f0805a4421449bd6fe3096d63820fbebe2bfcd1d/src/librustc/util/ppaux.rs#L975-L985) ... _&c._— so maybe it's time to pull-request this and see what reviewers think.~~
Resolves #49277 (?).
r? @nikomatsakis
Diffstat (limited to 'src/test/compile-fail')
24 files changed, 52 insertions, 52 deletions
diff --git a/src/test/compile-fail/cross-borrow-trait.rs b/src/test/compile-fail/cross-borrow-trait.rs index 847a82c0826..7c76cf475d2 100644 --- a/src/test/compile-fail/cross-borrow-trait.rs +++ b/src/test/compile-fail/cross-borrow-trait.rs @@ -18,6 +18,6 @@ impl Trait for Foo {} pub fn main() { let x: Box<Trait> = Box::new(Foo); let _y: &Trait = x; //~ ERROR E0308 - //~| expected type `&Trait` - //~| found type `std::boxed::Box<Trait>` + //~| expected type `&dyn Trait` + //~| found type `std::boxed::Box<dyn Trait>` } diff --git a/src/test/compile-fail/destructure-trait-ref.rs b/src/test/compile-fail/destructure-trait-ref.rs index 09bd3a2fc57..b5acdc12ca0 100644 --- a/src/test/compile-fail/destructure-trait-ref.rs +++ b/src/test/compile-fail/destructure-trait-ref.rs @@ -33,23 +33,23 @@ fn main() { let &&x = &&(&1isize as &T); // n == m - let &x = &1isize as &T; //~ ERROR type `&T` cannot be dereferenced - let &&x = &(&1isize as &T); //~ ERROR type `&T` cannot be dereferenced - let box x = box 1isize as Box<T>; //~ ERROR type `std::boxed::Box<T>` cannot be dereferenced + let &x = &1isize as &T; //~ ERROR type `&dyn T` cannot be dereferenced + let &&x = &(&1isize as &T); //~ ERROR type `&dyn T` cannot be dereferenced + let box x = box 1isize as Box<T>; //~ ERROR type `std::boxed::Box<dyn T>` cannot be dereferenced // n > m let &&x = &1isize as &T; //~^ ERROR mismatched types - //~| expected type `T` + //~| expected type `dyn T` //~| found type `&_` //~| expected trait T, found reference let &&&x = &(&1isize as &T); //~^ ERROR mismatched types - //~| expected type `T` + //~| expected type `dyn T` //~| found type `&_` //~| expected trait T, found reference let box box x = box 1isize as Box<T>; //~^ ERROR mismatched types - //~| expected type `T` + //~| expected type `dyn T` //~| found type `std::boxed::Box<_>` } diff --git a/src/test/compile-fail/dst-bad-assign-3.rs b/src/test/compile-fail/dst-bad-assign-3.rs index 5bc6c6cda26..2a209a2959b 100644 --- a/src/test/compile-fail/dst-bad-assign-3.rs +++ b/src/test/compile-fail/dst-bad-assign-3.rs @@ -42,7 +42,7 @@ pub fn main() { let z: Box<ToBar> = Box::new(Bar1 {f: 36}); f5.2 = Bar1 {f: 36}; //~^ ERROR mismatched types - //~| expected type `ToBar` + //~| expected type `dyn ToBar` //~| found type `Bar1` //~| expected trait ToBar, found struct `Bar1` //~| ERROR the size for value values of type diff --git a/src/test/compile-fail/dst-bad-assign.rs b/src/test/compile-fail/dst-bad-assign.rs index 37b6056d1a7..e28586c4755 100644 --- a/src/test/compile-fail/dst-bad-assign.rs +++ b/src/test/compile-fail/dst-bad-assign.rs @@ -44,7 +44,7 @@ pub fn main() { let z: Box<ToBar> = Box::new(Bar1 {f: 36}); f5.ptr = Bar1 {f: 36}; //~^ ERROR mismatched types - //~| expected type `ToBar` + //~| expected type `dyn ToBar` //~| found type `Bar1` //~| expected trait ToBar, found struct `Bar1` //~| ERROR the size for value values of type diff --git a/src/test/compile-fail/fn-trait-formatting.rs b/src/test/compile-fail/fn-trait-formatting.rs index 6d70f54edb4..56d64d77ee2 100644 --- a/src/test/compile-fail/fn-trait-formatting.rs +++ b/src/test/compile-fail/fn-trait-formatting.rs @@ -16,15 +16,15 @@ fn main() { let _: () = (box |_: isize| {}) as Box<FnOnce(isize)>; //~^ ERROR mismatched types //~| expected type `()` - //~| found type `std::boxed::Box<std::ops::FnOnce(isize)>` + //~| found type `std::boxed::Box<dyn std::ops::FnOnce(isize)>` let _: () = (box |_: isize, isize| {}) as Box<Fn(isize, isize)>; //~^ ERROR mismatched types //~| expected type `()` - //~| found type `std::boxed::Box<std::ops::Fn(isize, isize)>` + //~| found type `std::boxed::Box<dyn std::ops::Fn(isize, isize)>` let _: () = (box || -> isize { unimplemented!() }) as Box<FnMut() -> isize>; //~^ ERROR mismatched types //~| expected type `()` - //~| found type `std::boxed::Box<std::ops::FnMut() -> isize>` + //~| found type `std::boxed::Box<dyn std::ops::FnMut() -> isize>` needs_fn(1); //~^ ERROR : std::ops::Fn<(isize,)>` diff --git a/src/test/compile-fail/issue-13033.rs b/src/test/compile-fail/issue-13033.rs index 3d9d81471cb..f1fd617717a 100644 --- a/src/test/compile-fail/issue-13033.rs +++ b/src/test/compile-fail/issue-13033.rs @@ -17,8 +17,8 @@ struct Baz; impl Foo for Baz { fn bar(&mut self, other: &Foo) {} //~^ ERROR method `bar` has an incompatible type for trait - //~| expected type `fn(&mut Baz, &mut Foo)` - //~| found type `fn(&mut Baz, &Foo)` + //~| expected type `fn(&mut Baz, &mut dyn Foo)` + //~| found type `fn(&mut Baz, &dyn Foo)` } fn main() {} diff --git a/src/test/compile-fail/issue-20939.rs b/src/test/compile-fail/issue-20939.rs index 88197166ee0..5282ce4bb88 100644 --- a/src/test/compile-fail/issue-20939.rs +++ b/src/test/compile-fail/issue-20939.rs @@ -11,6 +11,6 @@ trait Foo {} impl<'a> Foo for Foo+'a {} -//~^ ERROR the object type `Foo + 'a` automatically implements the trait `Foo` +//~^ ERROR the object type `(dyn Foo + 'a)` automatically implements the trait `Foo` fn main() {} diff --git a/src/test/compile-fail/issue-32963.rs b/src/test/compile-fail/issue-32963.rs index e97e5a86a9d..24db822f89c 100644 --- a/src/test/compile-fail/issue-32963.rs +++ b/src/test/compile-fail/issue-32963.rs @@ -17,5 +17,5 @@ fn size_of_copy<T: Copy+?Sized>() -> usize { mem::size_of::<T>() } fn main() { size_of_copy::<Misc+Copy>(); //~^ ERROR only auto traits can be used as additional traits in a trait object - //~| ERROR the trait bound `Misc: std::marker::Copy` is not satisfied + //~| ERROR the trait bound `dyn Misc: std::marker::Copy` is not satisfied } diff --git a/src/test/compile-fail/issue-41139.rs b/src/test/compile-fail/issue-41139.rs index 15ca151c49a..0509a4387ba 100644 --- a/src/test/compile-fail/issue-41139.rs +++ b/src/test/compile-fail/issue-41139.rs @@ -14,5 +14,5 @@ fn get_function<'a>() -> &'a Fn() -> Trait { panic!("") } fn main() { let t : &Trait = &get_function()(); - //~^ ERROR cannot move a value of type Trait + 'static + //~^ ERROR cannot move a value of type (dyn Trait + 'static) } diff --git a/src/test/compile-fail/issue-5153.rs b/src/test/compile-fail/issue-5153.rs index b1d96f9b527..9b49886961d 100644 --- a/src/test/compile-fail/issue-5153.rs +++ b/src/test/compile-fail/issue-5153.rs @@ -18,5 +18,5 @@ impl Foo for isize { fn main() { (&5isize as &Foo).foo(); - //~^ ERROR: no method named `foo` found for type `&Foo` in the current scope + //~^ ERROR: no method named `foo` found for type `&dyn Foo` in the current scope } diff --git a/src/test/compile-fail/kindck-send-object.rs b/src/test/compile-fail/kindck-send-object.rs index a3eb47be3ee..82b97878549 100644 --- a/src/test/compile-fail/kindck-send-object.rs +++ b/src/test/compile-fail/kindck-send-object.rs @@ -20,12 +20,12 @@ trait Message : Send { } fn object_ref_with_static_bound_not_ok() { assert_send::<&'static (Dummy+'static)>(); - //~^ ERROR `Dummy + 'static` cannot be shared between threads safely [E0277] + //~^ ERROR `(dyn Dummy + 'static)` cannot be shared between threads safely [E0277] } fn box_object_with_no_bound_not_ok<'a>() { assert_send::<Box<Dummy>>(); - //~^ ERROR `Dummy` cannot be sent between threads safely + //~^ ERROR `dyn Dummy` cannot be sent between threads safely } fn object_with_send_bound_ok() { diff --git a/src/test/compile-fail/kindck-send-object1.rs b/src/test/compile-fail/kindck-send-object1.rs index 673a6abc5f0..853630aa416 100644 --- a/src/test/compile-fail/kindck-send-object1.rs +++ b/src/test/compile-fail/kindck-send-object1.rs @@ -18,7 +18,7 @@ trait Dummy { } // careful with object types, who knows what they close over... fn test51<'a>() { assert_send::<&'a Dummy>(); - //~^ ERROR `Dummy + 'a` cannot be shared between threads safely [E0277] + //~^ ERROR `(dyn Dummy + 'a)` cannot be shared between threads safely [E0277] } fn test52<'a>() { assert_send::<&'a (Dummy+Sync)>(); @@ -37,7 +37,7 @@ fn test61() { // them not ok fn test_71<'a>() { assert_send::<Box<Dummy+'a>>(); - //~^ ERROR `Dummy + 'a` cannot be sent between threads safely + //~^ ERROR `(dyn Dummy + 'a)` cannot be sent between threads safely } fn main() { } diff --git a/src/test/compile-fail/kindck-send-object2.rs b/src/test/compile-fail/kindck-send-object2.rs index 3a935af2000..0265f888e7c 100644 --- a/src/test/compile-fail/kindck-send-object2.rs +++ b/src/test/compile-fail/kindck-send-object2.rs @@ -15,12 +15,12 @@ trait Dummy { } fn test50() { assert_send::<&'static Dummy>(); - //~^ ERROR `Dummy + 'static` cannot be shared between threads safely [E0277] + //~^ ERROR `(dyn Dummy + 'static)` cannot be shared between threads safely [E0277] } fn test53() { assert_send::<Box<Dummy>>(); - //~^ ERROR `Dummy` cannot be sent between threads safely + //~^ ERROR `dyn Dummy` cannot be sent between threads safely } // ...unless they are properly bounded diff --git a/src/test/compile-fail/map-types.rs b/src/test/compile-fail/map-types.rs index 9dcf902a69f..e8ff9e817af 100644 --- a/src/test/compile-fail/map-types.rs +++ b/src/test/compile-fail/map-types.rs @@ -25,5 +25,5 @@ fn main() { let x: Box<HashMap<isize, isize>> = box HashMap::new(); let x: Box<Map<isize, isize>> = x; let y: Box<Map<usize, isize>> = Box::new(x); - //~^ ERROR `std::boxed::Box<Map<isize, isize>>: Map<usize, isize>` is not satisfied + //~^ ERROR `std::boxed::Box<dyn Map<isize, isize>>: Map<usize, isize>` is not satisfied } diff --git a/src/test/compile-fail/non-interger-atomic.rs b/src/test/compile-fail/non-interger-atomic.rs index a51a9e518ce..2a6e148ca79 100644 --- a/src/test/compile-fail/non-interger-atomic.rs +++ b/src/test/compile-fail/non-interger-atomic.rs @@ -61,22 +61,22 @@ pub unsafe fn test_Foo_cxchg(p: &mut Foo, v: Foo) { pub unsafe fn test_Bar_load(p: &mut Bar, v: Bar) { intrinsics::atomic_load(p); - //~^ ERROR expected basic integer type, found `&std::ops::Fn()` + //~^ ERROR expected basic integer type, found `&dyn std::ops::Fn()` } pub unsafe fn test_Bar_store(p: &mut Bar, v: Bar) { intrinsics::atomic_store(p, v); - //~^ ERROR expected basic integer type, found `&std::ops::Fn()` + //~^ ERROR expected basic integer type, found `&dyn std::ops::Fn()` } pub unsafe fn test_Bar_xchg(p: &mut Bar, v: Bar) { intrinsics::atomic_xchg(p, v); - //~^ ERROR expected basic integer type, found `&std::ops::Fn()` + //~^ ERROR expected basic integer type, found `&dyn std::ops::Fn()` } pub unsafe fn test_Bar_cxchg(p: &mut Bar, v: Bar) { intrinsics::atomic_cxchg(p, v, v); - //~^ ERROR expected basic integer type, found `&std::ops::Fn()` + //~^ ERROR expected basic integer type, found `&dyn std::ops::Fn()` } pub unsafe fn test_Quux_load(p: &mut Quux, v: Quux) { diff --git a/src/test/compile-fail/object-does-not-impl-trait.rs b/src/test/compile-fail/object-does-not-impl-trait.rs index 8babc734c84..30f8d5e2f45 100644 --- a/src/test/compile-fail/object-does-not-impl-trait.rs +++ b/src/test/compile-fail/object-does-not-impl-trait.rs @@ -14,5 +14,5 @@ trait Foo {} fn take_foo<F:Foo>(f: F) {} fn take_object(f: Box<Foo>) { take_foo(f); } -//~^ ERROR `std::boxed::Box<Foo>: Foo` is not satisfied +//~^ ERROR `std::boxed::Box<dyn Foo>: Foo` is not satisfied fn main() {} diff --git a/src/test/compile-fail/object-safety-by-value-self-use.rs b/src/test/compile-fail/object-safety-by-value-self-use.rs index 36356cb7d52..e575bbb6cea 100644 --- a/src/test/compile-fail/object-safety-by-value-self-use.rs +++ b/src/test/compile-fail/object-safety-by-value-self-use.rs @@ -22,7 +22,7 @@ trait Baz { } fn use_bar(t: Box<Bar>) { - t.bar() //~ ERROR cannot move a value of type Bar + t.bar() //~ ERROR cannot move a value of type (dyn Bar + 'static) } fn main() { } diff --git a/src/test/compile-fail/privacy/associated-item-privacy-type-binding.rs b/src/test/compile-fail/privacy/associated-item-privacy-type-binding.rs index c25616c5435..6019369aa2e 100644 --- a/src/test/compile-fail/privacy/associated-item-privacy-type-binding.rs +++ b/src/test/compile-fail/privacy/associated-item-privacy-type-binding.rs @@ -19,19 +19,19 @@ mod priv_trait { pub macro mac1() { let _: Box<PubTr<AssocTy = u8>>; - //~^ ERROR type `priv_trait::PubTr<AssocTy=u8> + '<empty>` is private - //~| ERROR type `priv_trait::PubTr<AssocTy=u8> + '<empty>` is private + //~^ ERROR type `(dyn priv_trait::PubTr<AssocTy=u8> + '<empty>)` is private + //~| ERROR type `(dyn priv_trait::PubTr<AssocTy=u8> + '<empty>)` is private type InSignatureTy2 = Box<PubTr<AssocTy = u8>>; - //~^ ERROR type `priv_trait::PubTr<AssocTy=u8> + 'static` is private + //~^ ERROR type `(dyn priv_trait::PubTr<AssocTy=u8> + 'static)` is private trait InSignatureTr2: PubTr<AssocTy = u8> {} //~^ ERROR trait `priv_trait::PrivTr` is private } pub macro mac2() { let _: Box<PrivTr<AssocTy = u8>>; - //~^ ERROR type `priv_trait::PrivTr<AssocTy=u8> + '<empty>` is private - //~| ERROR type `priv_trait::PrivTr<AssocTy=u8> + '<empty>` is private + //~^ ERROR type `(dyn priv_trait::PrivTr<AssocTy=u8> + '<empty>)` is private + //~| ERROR type `(dyn priv_trait::PrivTr<AssocTy=u8> + '<empty>)` is private type InSignatureTy1 = Box<PrivTr<AssocTy = u8>>; - //~^ ERROR type `priv_trait::PrivTr<AssocTy=u8> + 'static` is private + //~^ ERROR type `(dyn priv_trait::PrivTr<AssocTy=u8> + 'static)` is private trait InSignatureTr1: PrivTr<AssocTy = u8> {} //~^ ERROR trait `priv_trait::PrivTr` is private } diff --git a/src/test/compile-fail/private-inferred-type.rs b/src/test/compile-fail/private-inferred-type.rs index 5af8b063c16..3ca8b1eb2ed 100644 --- a/src/test/compile-fail/private-inferred-type.rs +++ b/src/test/compile-fail/private-inferred-type.rs @@ -129,7 +129,7 @@ fn main() { m::leak_anon2(); //~ ERROR type `m::Priv` is private m::leak_anon3(); //~ ERROR type `m::Priv` is private - m::leak_dyn1(); //~ ERROR type `m::Trait + 'static` is private + m::leak_dyn1(); //~ ERROR type `(dyn m::Trait + 'static)` is private m::leak_dyn2(); //~ ERROR type `m::Priv` is private m::leak_dyn3(); //~ ERROR type `m::Priv` is private diff --git a/src/test/compile-fail/trait-item-privacy.rs b/src/test/compile-fail/trait-item-privacy.rs index be0f7dd4e1c..f8e4f0d596e 100644 --- a/src/test/compile-fail/trait-item-privacy.rs +++ b/src/test/compile-fail/trait-item-privacy.rs @@ -110,9 +110,9 @@ fn check_assoc_const() { // A, B, C are resolved as inherent items, their traits don't need to be in scope C::A; //~ ERROR associated constant `A` is private //~^ ERROR the trait `assoc_const::C` cannot be made into an object - //~| ERROR the trait bound `assoc_const::C: assoc_const::A` is not satisfied + //~| ERROR the trait bound `dyn assoc_const::C: assoc_const::A` is not satisfied C::B; // ERROR the trait `assoc_const::C` cannot be made into an object - //~^ ERROR the trait bound `assoc_const::C: assoc_const::B` is not satisfied + //~^ ERROR the trait bound `dyn assoc_const::C: assoc_const::B` is not satisfied C::C; // OK } diff --git a/src/test/compile-fail/traits-repeated-supertrait-ambig.rs b/src/test/compile-fail/traits-repeated-supertrait-ambig.rs index 3fc0d638dd6..559871af72e 100644 --- a/src/test/compile-fail/traits-repeated-supertrait-ambig.rs +++ b/src/test/compile-fail/traits-repeated-supertrait-ambig.rs @@ -33,7 +33,7 @@ impl CompareTo<u64> for i64 { impl CompareToInts for i64 { } fn with_obj(c: &CompareToInts) -> bool { - c.same_as(22) //~ ERROR `CompareToInts: CompareTo<i32>` is not satisfied + c.same_as(22) //~ ERROR `dyn CompareToInts: CompareTo<i32>` is not satisfied } fn with_trait<C:CompareToInts>(c: &C) -> bool { @@ -41,7 +41,7 @@ fn with_trait<C:CompareToInts>(c: &C) -> bool { } fn with_ufcs1<C:CompareToInts>(c: &C) -> bool { - CompareToInts::same_as(c, 22) //~ ERROR `CompareToInts: CompareTo<i32>` is not satisfied + CompareToInts::same_as(c, 22) //~ ERROR `dyn CompareToInts: CompareTo<i32>` is not satisfied } fn with_ufcs2<C:CompareToInts>(c: &C) -> bool { diff --git a/src/test/compile-fail/trivial_casts.rs b/src/test/compile-fail/trivial_casts.rs index aabf0d26d5b..3f2bd2ffabf 100644 --- a/src/test/compile-fail/trivial_casts.rs +++ b/src/test/compile-fail/trivial_casts.rs @@ -59,25 +59,25 @@ pub fn main() { // unsize trait let x: &Bar = &Bar; - let _ = x as &Foo; //~ERROR trivial cast: `&Bar` as `&Foo` - let _ = x as *const Foo; //~ERROR trivial cast: `&Bar` as `*const Foo` + let _ = x as &Foo; //~ERROR trivial cast: `&Bar` as `&dyn Foo` + let _ = x as *const Foo; //~ERROR trivial cast: `&Bar` as `*const dyn Foo` let _: &Foo = x; let _: *const Foo = x; let x: &mut Bar = &mut Bar; - let _ = x as &mut Foo; //~ERROR trivial cast: `&mut Bar` as `&mut Foo` - let _ = x as *mut Foo; //~ERROR trivial cast: `&mut Bar` as `*mut Foo` + let _ = x as &mut Foo; //~ERROR trivial cast: `&mut Bar` as `&mut dyn Foo` + let _ = x as *mut Foo; //~ERROR trivial cast: `&mut Bar` as `*mut dyn Foo` let _: &mut Foo = x; let _: *mut Foo = x; let x: Box<Bar> = Box::new(Bar); - let _ = x as Box<Foo>; //~ERROR trivial cast: `std::boxed::Box<Bar>` as `std::boxed::Box<Foo>` + let _ = x as Box<Foo>; //~ERROR `std::boxed::Box<Bar>` as `std::boxed::Box<dyn Foo>` let x: Box<Bar> = Box::new(Bar); let _: Box<Foo> = x; // functions fn baz(_x: i32) {} - let _ = &baz as &Fn(i32); //~ERROR trivial cast: `&fn(i32) {main::baz}` as `&std::ops::Fn(i32)` + let _ = &baz as &Fn(i32); //~ERROR `&fn(i32) {main::baz}` as `&dyn std::ops::Fn(i32)` let _: &Fn(i32) = &baz; let x = |_x: i32| {}; let _ = &x as &Fn(i32); //~ERROR trivial cast diff --git a/src/test/compile-fail/type-mismatch-same-crate-name.rs b/src/test/compile-fail/type-mismatch-same-crate-name.rs index 4295d08a470..7e93f626cfc 100644 --- a/src/test/compile-fail/type-mismatch-same-crate-name.rs +++ b/src/test/compile-fail/type-mismatch-same-crate-name.rs @@ -33,7 +33,7 @@ fn main() { //~^ ERROR mismatched types //~| Perhaps two different versions of crate `crate_a1` //~| expected trait `main::a::Bar` - //~| expected type `std::boxed::Box<main::a::Bar + 'static>` - //~| found type `std::boxed::Box<main::a::Bar>` + //~| expected type `std::boxed::Box<(dyn main::a::Bar + 'static)>` + //~| found type `std::boxed::Box<dyn main::a::Bar>` } } diff --git a/src/test/compile-fail/type-parameter-defaults-referencing-Self-ppaux.rs b/src/test/compile-fail/type-parameter-defaults-referencing-Self-ppaux.rs index 09687724656..08988353886 100644 --- a/src/test/compile-fail/type-parameter-defaults-referencing-Self-ppaux.rs +++ b/src/test/compile-fail/type-parameter-defaults-referencing-Self-ppaux.rs @@ -23,5 +23,5 @@ fn main() { let x: i32 = 5; let y = x as MyAdd<i32>; //~^ ERROR E0038 - //~| ERROR cast to unsized type: `i32` as `MyAdd<i32>` + //~| ERROR cast to unsized type: `i32` as `dyn MyAdd<i32>` } |
