snowballstem / snowball

Snowball compiler and stemming algorithms
https://snowballstem.org/
BSD 3-Clause "New" or "Revised" License
757 stars 173 forks source link

Fix Bare Trait Warnings #112

Closed JDemler closed 5 years ago

JDemler commented 5 years ago

In Rust 1.27 the dyn keyword was introduced to counter the confusions introduced with the impl Trait syntax. (RFC-2113)

This PR adds the dyn keyword at all necessary places. The cost being that it will not be possible to compile it with Rust 1.26 and below.

The alternative would be to suppress this warning.

ojwb commented 5 years ago

Thanks for looking at this.

Rust 1.27 is not much over a year old (https://blog.rust-lang.org/2018/06/21/Rust-1.27.html) - is Rust currently an ecosystem where everyone upgrades to the latest compiler promptly?

If compatibility is a concern but we expect most people to be using a new enough compiler, we could merge this PR and add a patch file people can apply locally to revert this change.

JDemler commented 5 years ago

I guess most people upgrade to the latest compiler. Especially with tools like rustup which make it incredibly simple.

On the other hand though, Debian stretch ships with Rust 1.24. I think the patch file idea should be fine. The changes are small and it is clear what is going on.

ojwb commented 5 years ago

Debian stretch is now "oldstable" though - the current stable Debian release is buster which has Rust 1.34.2:

$ rmadison rustc
rustc      | 1.14.0+dfsg1-3        | oldstable       | source
rustc      | 1.24.1+dfsg1-1~deb9u4 | oldstable       | source, amd64, arm64, armel, armhf, i386, ppc64el, s390x
rustc      | 1.24.1+dfsg1-1~deb9u4 | oldstable-debug | source
rustc      | 1.34.2+dfsg1-1        | stable          | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
rustc      | 1.34.2+dfsg1-1        | testing         | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
rustc      | 1.36.0+dfsg1-2        | unstable        | source, armel, mips64el, mipsel
rustc      | 1.36.0+dfsg1-2        | unstable-debug  | source
rustc      | 1.37.0+dfsg1-1        | buildd-unstable | source, amd64, arm64, armhf, i386, ppc64el, s390x
rustc      | 1.37.0+dfsg1-1        | unstable        | source, amd64, arm64, armhf, i386, ppc64el, s390x
rustc      | 1.37.0+dfsg1-1        | unstable-debug  | source

I'll merge and add a suitable patch - thanks for the feedback.