Skip to content
This repository has been archived by the owner on Aug 16, 2021. It is now read-only.

Update proc_macro2, syn, etc #319

Closed
wants to merge 2 commits into from
Closed

Update proc_macro2, syn, etc #319

wants to merge 2 commits into from

Conversation

infinity0
Copy link

Requires dtolnay/syn#696 to first be merged and released.

It is possible to do this without that PR, by moving the added API as a utility function in this crate, but I thought that this would be much less tidy.

tarcieri pushed a commit to iqlusioninc/crates that referenced this pull request Aug 19, 2019
These crates weren't getting much value out of `failure`, and the use of
proc macros to generate what is effectively a match statement on enum
variants which returns a string literal adds a lot to compile times.

Furthermore, `failure` is still using the non-1.0 proc macro crates. It
seems there's upstream work to get this fixed[1], but since we're not
really getting value out of the proc macros as-is, there's not much
reason to bother.

[1]: rust-lang-deprecated/failure#319
tarcieri pushed a commit to iqlusioninc/crates that referenced this pull request Aug 19, 2019
These crates weren't getting much value out of `failure`, and the use of
proc macros to generate what is effectively a match statement on enum
variants which returns a string literal adds a lot to compile times.

Furthermore, `failure` is still using the non-1.0 proc macro crates. It
seems there's upstream work to get this fixed[1], but since we're not
really getting value out of the proc macros as-is, there's not much
reason to bother.

[1]: rust-lang-deprecated/failure#319
@Keruspe
Copy link

Keruspe commented Aug 21, 2019

The syn change has been released in 1.0.3. Any news on tis @infinity0 ?

@infinity0 infinity0 changed the title [WIP] Update proc_macro2, syn, etc Update proc_macro2, syn, etc Aug 21, 2019
@infinity0
Copy link
Author

This PR is now ready to go in, just waiting approval.

@infinity0
Copy link
Author

Hmm seems like I need to update the tests too, I'll need to find some time for that later.

@infinity0
Copy link
Author

@davidbarsky @mitsuhiko this is ready to go in.

@CreepySkeleton
Copy link

CreepySkeleton commented Aug 23, 2019

Hi @infinity0 , how is it going? Do you need any help?

@infinity0
Copy link
Author

I had some issues getting Travis CI to work with uMatrix and wasn't yet able to see why the CI test failed. (I'm at CCC Camp right now with too many other distractions.)

@CreepySkeleton
Copy link

@infinity0 Happy hacking. Ask away if you need any help

@koushiro
Copy link

Both failure and failure_derive are intended to compile on all stable versions of Rust newer than 1.18.0, as well as the latest beta and the latest nightly.

But Minimum supported rustc version of proc-macro2 v1.0, syn v1.0 and quote v1.0 is 1.31.

If we upgrade proc-macro, syn and quote to v1.0, we must also upgrade the minor version of the failure crate (upgrade Minimum supported rustc version of the failure crate to 1.31).
Otherwise, it will cause breaking changes.

@Keruspe
Copy link

Keruspe commented Aug 30, 2019

@koushiro failure has had no release in 8 months. People wanting to support old versions of rust are free to stick with 0.1.5 as they've been doing for the past 8 months, imo...

@koushiro
Copy link

@Keruspe Yes, IMO, I think this PR should be merged into failure 0.2 #296

@infinity0
Copy link
Author

Could someone paste the Travis CI error here please? I still can't see it. Too much spaghetti javascript.

@CreepySkeleton
Copy link

CreepySkeleton commented Aug 30, 2019

@infinity0
Some indentation is ruined, but it's still understandable

rust 1.18

Worker information
system_info

Build system information

docker_mtu
resolvconf

git.checkout

0.74s$ git clone --depth=50 https://github.com/rust-lang-nursery/failure.git rust-lang-nursery/failure

cache.1

Setting up build cache

cache.cargo

0.00s12.77sadding /home/travis/.cargo to cache
rustup-install

Installing Rust

$ rustc --version

rustc 1.18.0 (03fc9d622 2017-06-06)

$ rustup --version

rustup 1.18.3 (435397f48 2019-05-22)

$ cargo --version

cargo 0.19.0 (28d1d60d4 2017-05-16)

0.00s$ if [ "$TRAVIS_RUST_VERSION" == "1.18.0" ]; then cp Cargo.lock.ci Cargo.lock; fi

The command "if [ "$TRAVIS_RUST_VERSION" == "1.18.0" ]; then cp Cargo.lock.ci Cargo.lock; fi" exited with 0.

5.96s$ cargo test

Updating registry `https://github.com/rust-lang/crates.io-index`

error: no matching version = 0.1.5 found for package failure_derive (required by failure)

location searched: file:///home/travis/build/rust-lang-nursery/failure/failure_derive

versions found: 0.1.6

consider running cargo update to update a path dependency's locked version

The command "cargo test" exited with 101.

0.19s$ cargo test --features backtrace

Updating registry `https://github.com/rust-lang/crates.io-index`

error: no matching version = 0.1.5 found for package failure_derive (required by failure)

location searched: file:///home/travis/build/rust-lang-nursery/failure/failure_derive

versions found: 0.1.6

consider running cargo update to update a path dependency's locked version

The command "cargo test --features backtrace" exited with 101.

0.18s$ cargo check --no-default-features

Updating registry `https://github.com/rust-lang/crates.io-index`

error: no matching version = 0.1.5 found for package failure_derive (required by failure)

location searched: file:///home/travis/build/rust-lang-nursery/failure/failure_derive

versions found: 0.1.6

consider running cargo update to update a path dependency's locked version

The command "cargo check --no-default-features" exited with 101.

cache.2

store build cache

Done. Your build exited with 1.

stable
Worker information
system_info

Build system information

docker_mtu
resolvconf

git.checkout

0.77s$ git clone --depth=50 https://github.com/rust-lang-nursery/failure.git rust-lang-nursery/failure

cache.1

Setting up build cache

cache.cargo

0.00s13.73sadding /home/travis/.cargo to cache
rustup-install

Installing Rust

$ rustc --version

rustc 1.37.0 (eae3437df 2019-08-13)

$ rustup --version

rustup 1.18.3 (435397f48 2019-05-22)

$ cargo --version

cargo 1.37.0 (9edd08916 2019-08-02)

0.00s$ if [ "$TRAVIS_RUST_VERSION" == "1.18.0" ]; then cp Cargo.lock.ci Cargo.lock; fi

The command "if [ "$TRAVIS_RUST_VERSION" == "1.18.0" ]; then cp Cargo.lock.ci Cargo.lock; fi" exited with 0.

4.87s$ cargo test

Updating crates.io index

Compiling failure_derive v0.1.6 (/home/travis/build/rust-lang-nursery/failure/failure_derive)

Compiling failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 36 previous errors

error: Could not compile failure.

warning: build failed, waiting for other jobs to finish...

error: aborting due to 36 previous errors

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo test" exited with 101.

1.07s$ cargo test --features backtrace

Compiling failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 36 previous errors

error: Could not compile failure.

warning: build failed, waiting for other jobs to finish...

error: aborting due to 36 previous errors

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo test --features backtrace" exited with 101.

1.06s$ cargo check --no-default-features

Checking failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 16 previous errors

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo check --no-default-features" exited with 101.

cache.2

store build cache

Done. Your build exited with 1.

beta
worker_info

Worker information
system_info

Build system information

docker_mtu
resolvconf

git.checkout

0.80s$ git clone --depth=50 https://github.com/rust-lang-nursery/failure.git rust-lang-nursery/failure

cache.1

Setting up build cache

cache.cargo

0.00s19.26sadding /home/travis/.cargo to cache
rustup-install

Installing Rust

$ rustc --version

rustc 1.38.0-beta.1 (e450539c2 2019-08-13)

$ rustup --version

rustup 1.18.3 (435397f48 2019-05-22)

$ cargo --version

cargo 1.38.0-beta (e853aa976 2019-08-09)

0.00s$ if [ "$TRAVIS_RUST_VERSION" == "1.18.0" ]; then cp Cargo.lock.ci Cargo.lock; fi

The command "if [ "$TRAVIS_RUST_VERSION" == "1.18.0" ]; then cp Cargo.lock.ci Cargo.lock; fi" exited with 0.

14.15s$ cargo test

Updating crates.io index

Compiling failure_derive v0.1.6 (/home/travis/build/rust-lang-nursery/failure/failure_derive)

Compiling failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 36 previous errors

error: Could not compile failure.

warning: build failed, waiting for other jobs to finish...

error: aborting due to 36 previous errors

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo test" exited with 101.

2.94s$ cargo test --features backtrace

Compiling failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 36 previous errors

error: Could not compile failure.

warning: build failed, waiting for other jobs to finish...

error: aborting due to 36 previous errors

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo test --features backtrace" exited with 101.

0.20s$ cargo check --no-default-features

Checking failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 16 previous errors

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo check --no-default-features" exited with 101.

cache.2

store build cache

Done. Your build exited with 1.

nightly
Worker information
system_info

Build system information

docker_mtu
resolvconf

git.checkout

0.78s$ git clone --depth=50 https://github.com/rust-lang-nursery/failure.git rust-lang-nursery/failure

cache.1

Setting up build cache

cache.cargo

0.00s15.76sadding /home/travis/.cargo to cache
rustup-install

Installing Rust

$ rustc --version

rustc 1.39.0-nightly (bea0372a1 2019-08-20)

$ rustup --version

rustup 1.18.3 (435397f48 2019-05-22)

$ cargo --version

cargo 1.39.0-nightly (3f700ec43 2019-08-19)

0.00s$ if [ "$TRAVIS_RUST_VERSION" == "1.18.0" ]; then cp Cargo.lock.ci Cargo.lock; fi

The command "if [ "$TRAVIS_RUST_VERSION" == "1.18.0" ]; then cp Cargo.lock.ci Cargo.lock; fi" exited with 0.

10.38s$ cargo test

Updating crates.io index

Compiling failure_derive v0.1.6 (/home/travis/build/rust-lang-nursery/failure/failure_derive)

Compiling failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 36 previous errors

error: aborting due to 36 previous errors

error: Could not compile failure.

warning: build failed, waiting for other jobs to finish...

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo test" exited with 101.

1.54s$ cargo test --features backtrace

Compiling failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:33:31

|

33 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/box_std.rs:5:27

|

5 | pub struct BoxStd(pub Box<Error + Send + Sync + 'static>);

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn Error + Send + Sync + 'static

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:42:30

|

42 | impl From for Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:43:38

|

43 | fn from(error: Error) -> Box {

| ^^^^^^^^ help: use dyn: dyn StdError

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:48:30

|

48 | impl From for Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/compat.rs:49:38

|

49 | fn from(error: Error) -> Box<StdError + Send + Sync> {

| ^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Send + Sync

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:115:36

|

115 | fn cause(&self) -> Option<&Fail> {

|                                    ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/context.rs:149:39

|

149 | fn as_cause(&self) -> Option<&Fail> {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:7:22

|

7 | inner: Box<Inner>,

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:28:38

|

28 | pub(crate) fn failure(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/error_impl.rs:32:50

|

32 | pub(crate) fn failure_mut(&mut self) -> &mut Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:63:39

|

63 | pub fn from_boxed_compat(err: Box<StdError + Sync + Send + 'static>) -> Error {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use dyn: dyn StdError + Sync + Send + 'static

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:69:31

|

69 | pub fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:85:29

|

85 | pub fn cause(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:136:39

|

136 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:176:34

|

176 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:204:12

|

204 | impl AsRef for Error {

|            ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/error/mod.rs:205:26

|

205 | fn as_ref(&self) -> &Fail {

|                          ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:276:19

|

276 | impl Fail for Box {

|                   ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:277:32

|

277 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 36 previous errors

error: Could not compile failure.

warning: build failed, waiting for other jobs to finish...

error: aborting due to 36 previous errors

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo test --features backtrace" exited with 101.

1.54s$ cargo check --no-default-features

Checking failure v0.1.5 (/home/travis/build/rust-lang-nursery/failure)

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:11:27

|

11 | fn as_fail(&self) -> &Fail;

| ^^^^ help: use dyn: dyn Fail

|

note: lint level defined here

--> src/lib.rs:25:9

|

25 | #![deny(warnings)]

| ^^^^^^^^

= note: #[deny(bare_trait_objects)] implied by #[deny(warnings)]

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:18:27

|

18 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:23:17

|

23 | impl AsFail for Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/as_fail.rs:24:27

|

24 | fn as_fail(&self) -> &Fail {

| ^^^^ help: use dyn: dyn Fail

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:129:32

|

129 | fn cause(&self) -> Option<&Fail> {

|                                ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:189:30

|

189 | fn root_cause(&self) -> &Fail

|                              ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:202:6

|

202 | impl Fail {

|      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:208:45

|

208 | unsafe { Some(&*(self as *const Fail as *const T)) }

|                                             ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:220:47

|

220 | unsafe { Some(&mut *(self as *mut Fail as *mut T)) }

|                                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:234:39

|

234 | pub fn find_root_cause(&self) -> &Fail {

|                                       ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:261:34

|

261 | pub fn root_cause(&self) -> &Fail {

|                                  ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:288:22

|

288 | fail: Option<&'f Fail>,

|                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:292:21

|

292 | type Item = &'f Fail;

|                     ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:293:38

|

293 | fn next(&mut self) -> Option<&'f Fail> {

|                                      ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:31

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                               ^^^^ help: use `dyn`: `dyn Fail`

error: trait objects without an explicit dyn are deprecated

--> src/lib.rs:301:41

|

301 | fn find_root_cause(mut fail: &Fail) -> &Fail {

|                                         ^^^^ help: use `dyn`: `dyn Fail`

error: aborting due to 16 previous errors

error: Could not compile failure.

To learn more, run the command again with --verbose.

The command "cargo check --no-default-features" exited with 101.

cache.2

store build cache

Done. Your build exited with 1.

@infinity0
Copy link
Author

The CI is now passing, except on rust 1.18 which we have to drop anyways.

@davidbarsky @mitsuhiko this is ready to go in, can you merge and release to crates.io?

@koushiro
Copy link

@infinity0 IMO, the PR should be merged into version 0.2 (not worth releasing 0.2 for these breaking changes), but the development of version 0.2 is currently stuck on #296.

@infinity0
Copy link
Author

Are these changes breaking? I thought it was just a straightforward upgrade to proc_macro2. I didn't change anything API-related.

@koushiro
Copy link

It does not change the API, but it is not available for rustc 1.18~1.30.

@davidbarsky
Copy link
Contributor

@infinity0 @koushiro Hi all! I think that due to the centrality of the Failure crate, this version bump be be extremely impactful to the ecosystem at large. I don't think we should do any minimum rustc version bumps for Failure 0.1.

I would personally be be more comfortable merging and releasing these changes if they came out as part of the 0.2 alpha & beta releases. I also—weakly—believe that with the merging of rust-lang/rust#60852, std::error::Error should be able to generate backtraces, but @alexcrichton and @mitsuhiko can correct me.

Additionally, feel free to fork & rebase atop of #296. I'd like to be able to get Failure 0.2, even an alpha, out.

@infinity0
Copy link
Author

The issue however, and why I did this PR in the first place, is that other parts of the ecosystem have already moved to proc_macro2 v1, which breaks the build for crates that pull in both proc_macro v1 and v0.x.x. I can't remember the details now, but I'm pretty sure core language tools like cargo are already affected by this.

@infinity0
Copy link
Author

Perhaps a decent compromise could be to merge this PR as v0.2 and then release the next version as v0.3?

@CreepySkeleton
Copy link

CreepySkeleton commented Aug 31, 2019

which breaks the build for crates that pull in both proc_macro v1 and v0.x.x

It doesn't break, it just turns out that we have to build both v1 and v0.x.y - takes more time + increased code bloat - but generally it's mostly fine

@mitsuhiko
Copy link
Contributor

@davidbarsky i tried to get backtrace added to std error a few months back and back then I mostly just stalled on not being sure what a sensible public API for backtrace would be in std. I would like to just sprint on that over a few days together with others because I think this could help the ecosystem quite a bit at this point.

@infinity0
Copy link
Author

It doesn't break, it just turns out that we have to build both v1 and v0.x.y - takes more time + increased code bloat - but generally it's mostly fine

This is the case for most crates but I'm pretty sure proc_macro2 is a special case that makes things much more likely to break when mixing different versions. I can't remember what specific condition causes the errors now, but I remember seeing some rustc error messages along the lines of "incompatible symbols, did you use two different versions of the same crate?"

@alex
Copy link

alex commented Aug 31, 2019

I've got a project with both proc-macro2 0.4.30 and 1.0.2, and it's building fine (if slower).

I suspect the way to get it to break is if you try to actually link both of them into the same binary (NOTE: not the final binary, in the same proc macro binary), which doesn't happen in typical usage.

@CreepySkeleton
Copy link

t I'm pretty sure proc_macro2 is a special case

Nothing's special with proc_macro2 here. Errors like this trigger when you happen to import a certain symbol from few different versions of a crate, typically via reexports

@davidbarsky
Copy link
Contributor

Serde has recently published a release that bumped the MSRV from rustc 1.15 to rustc 1.31 in a bugfix release. Given that Failure "only" has 3,825,432 downloads, while Serde has 13,467,675 million downloads, I feel comfortable following in the footsteps of Serde and doing an MSRV bump to 1.31 if @mitsuhiko doesn't have any opposition.

@mitsuhiko
Copy link
Contributor

No objections

@davidbarsky
Copy link
Contributor

Nice! @infinity0, would you like to bump the MSRV to 1.31 in Travis/any documentation?

@djc
Copy link
Contributor

djc commented Sep 25, 2019

@infinity0 ping?

If @infinity0 doesn't show up soonish, can a member of rust-lang-nursery just run with this, please?

@cwfitzgerald
Copy link

This PR is pretty important to keep out duplicate dependencies in your build tree, so the sooner we can get this merged the merrier. 😄

@djc
Copy link
Contributor

djc commented Oct 9, 2019

I've gone ahead and opened #329, which basically takes these commits and bumps the MSRV.

davidbarsky pushed a commit that referenced this pull request Oct 11, 2019
* Update proc_macro2, syn, quote
* Update MSRV to 1.31.0 as discussed in #319
@davidbarsky
Copy link
Contributor

Thanks to @djc for getting this over the finish line in #329! I'll close this PR since #329 has been merged.

davidbarsky added a commit that referenced this pull request Oct 11, 2019
This PR updates the `RELEASES.md` to capture the changes introduced in #319 and #329. Thanks to @djc and @infinity0 for their help!
davidbarsky added a commit that referenced this pull request Oct 11, 2019
This PR updates the `RELEASES.md` to capture the changes introduced in #319 and #329. Thanks to @djc and @infinity0 for their help!
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants