georust/kml

Build warnings due to quick-xml

artob opened this issue · 2 comments

artob commented

Pulling in this crate results in the following warnings at build time (with Rust 1.70.0-nightly):

warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`

These warnings appear to have been resolved in later versions of the quick-xml crate, so the fix would be to bump up that dependency.

More details:

$ cargo report future-incompatibilities --id 1
The following warnings were discovered during the build. These warnings are an
indication that the packages contain code that will become an error in a
future release of Rust. These warnings typically cover changes to close
soundness problems, unintended or undocumented behavior, or critical problems
that cannot be fixed in a backwards-compatible fashion, and are not expected
to be in wide use.

Each warning should contain a link for more information on what the warning
means and how to resolve it.

To solve this problem, you can try the following approaches:

- Some affected dependencies have newer versions available.
You may want to consider updating them to a newer version to see if the issue has been fixed.

quick-xml v0.22.0 has the following newer versions available: 0.23.0-alpha1, 0.23.0-alpha2, 0.23.0-alpha3, 0.23.1, 0.24.1, 0.25.0, 0.26.0, 0.27.0, 0.27.1, 0.28.0

- If the issue is not solved by updating the dependencies, a fix has to be
implemented by those dependencies. You can help with that by notifying the
maintainers of this problem (e.g. by creating a bug report) or by proposing a
fix to the maintainers (e.g. by creating a pull request):

  - quick-xml@0.22.0
  - Repository: https://github.com/tafia/quick-xml
  - Detailed warning command: `cargo report future-incompatibilities --id 1 --package quick-xml@0.22.0`

- If waiting for an upstream fix is not an option, you can use the `[patch]`
section in `Cargo.toml` to use your own version of the dependency. For more
information, see:
https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch-section
        
The package `quick-xml v0.22.0` currently triggers the following future incompatibility lints:
> warning: trailing semicolon in macro used in expression position
>    --> $HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quick-xml-0.22.0/src/events/attributes.rs:362:20
>     |
> 362 |                 }));
>     |                    ^
> ...
> 379 |             None => attr!(self.position..len),
>     |                     ------------------------- in this macro invocation
>     |
>     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
>     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
>     = note: macro invocations at the end of a block are treated as expressions
>     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `attr`
>     = note: `#[allow(semicolon_in_expressions_from_macros)]` on by default
>     = note: this warning originates in the macro `attr` (in Nightly builds, run with -Z macro-backtrace for more info)
> 
> warning: trailing semicolon in macro used in expression position
>    --> $HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quick-xml-0.22.0/src/events/attributes.rs:362:20
>     |
> 362 |                 }));
>     |                    ^
> ...
> 407 |             None => attr!(start_key..len),
>     |                     --------------------- in this macro invocation
>     |
>     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
>     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
>     = note: macro invocations at the end of a block are treated as expressions
>     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `attr`
>     = note: `#[allow(semicolon_in_expressions_from_macros)]` on by default
>     = note: this warning originates in the macro `attr` (in Nightly builds, run with -Z macro-backtrace for more info)
> 
> warning: trailing semicolon in macro used in expression position
>    --> $HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quick-xml-0.22.0/src/events/attributes.rs:362:20
>     |
> 362 |                 }));
>     |                    ^
> ...
> 429 |                         attr!(start_key..end_key, i + 1..j)
>     |                         ----------------------------------- in this macro invocation
>     |
>     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
>     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
>     = note: macro invocations at the end of a block are treated as expressions
>     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `attr`
>     = note: `#[allow(semicolon_in_expressions_from_macros)]` on by default
>     = note: this warning originates in the macro `attr` (in Nightly builds, run with -Z macro-backtrace for more info)
> 
> warning: trailing semicolon in macro used in expression position
>    --> $HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quick-xml-0.22.0/src/events/attributes.rs:362:20
>     |
> 362 |                 }));
>     |                    ^
> ...
> 440 |                 attr!(start_key..end_key, i..j)
>     |                 ------------------------------- in this macro invocation
>     |
>     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
>     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
>     = note: macro invocations at the end of a block are treated as expressions
>     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `attr`
>     = note: `#[allow(semicolon_in_expressions_from_macros)]` on by default
>     = note: this warning originates in the macro `attr` (in Nightly builds, run with -Z macro-backtrace for more info)
> 
> warning: trailing semicolon in macro used in expression position
>    --> $HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quick-xml-0.22.0/src/events/attributes.rs:362:20
>     |
> 362 |                 }));
>     |                    ^
> ...
> 443 |             None => attr!(start_key..end_key),
>     |                     ------------------------- in this macro invocation
>     |
>     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
>     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
>     = note: macro invocations at the end of a block are treated as expressions
>     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `attr`
>     = note: `#[allow(semicolon_in_expressions_from_macros)]` on by default
>     = note: this warning originates in the macro `attr` (in Nightly builds, run with -Z macro-backtrace for more info)
> 

Thanks for reporting this @artob! I took a quick look and it seems like there are a good amount of changes since the version of quick-xml we're using. I'll get started looking into this, but if you're interested in putting in a PR let me know

Thanks again for reporting this! Closed by #48 and released in v0.8.0