in the upstream repository, for testing convenience), I got:
error[E0107]: struct takes 2 lifetime arguments but 1 lifetime argument was supplied
--> src/compression.rs:97:58
|
97 | pub(crate) fn get_file_options(&self) -> zip::write::FileOptions<'static, ()> {
| ^^^^^^^^^^^ ------- supplied 1 lifetime argument
| |
| expected 2 lifetime arguments
|
note: struct defined here, with 2 lifetime parameters: `'k`, `'n`
--> /home/cjwatson/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zip-9.1.3/src/write/options.rs:53:12
|
53 | pub struct FileOptions<'k, 'n, T: sealed::FileOptionExtension> {
| ^^^^^^^^^^^ -- --
help: add missing lifetime argument
|
97 | pub(crate) fn get_file_options(&self) -> zip::write::FileOptions<'static, 'static, ()> {
| +++++++++
For more information about this error, try `rustc --explain E0107`.
OK, so I did that. Then I get this mess:
error[E0599]: the method `to_string` exists for enum `Result<Cow<'_, str>, ZipError>`, but its trait bounds were not satisfied
--> tests/common/integration.rs:568:37
|
568 | if !seen.insert(file.name().to_string()) {
| ^^^^^^^^^ method cannot be called on `Result<Cow<'_, str>, ZipError>` due to unsatisfied trait bounds
|
::: /usr/src/rustc-1.97.1/library/core/src/result.rs:557:1
|
557 | pub enum Result<T, E> {
| --------------------- doesn't satisfy `Result<Cow<'_, str>, ZipError>: ToString` or `Result<Cow<'_, str>, ZipError>: std::fmt::Display`
|
= note: the following trait bounds were not satisfied:
`Result<Cow<'_, str>, ZipError>: std::fmt::Display`
which is required by `Result<Cow<'_, str>, ZipError>: ToString`
error[E0277]: `Result<Cow<'_, str>, ZipError>` doesn't implement `std::fmt::Display`
--> tests/common/integration.rs:569:41
|
569 | bail!("Duplicate file: {}", file.name());
| -- ^^^^^^^^^^^ `Result<Cow<'_, str>, ZipError>` cannot be formatted with the default formatter
| |
| required by this formatting parameter
|
= help: the trait `std::fmt::Display` is not implemented for `Result<Cow<'_, str>, ZipError>`
= note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
= note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0631]: type mismatch in closure arguments
--> tests/common/other.rs:387:17
|
381 | let drop_platform_specific_files = |file: &&str| -> bool {
| --------------------- found signature defined here
...
387 | .filter(drop_platform_specific_files)
| ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected due to this
| |
| required by a bound introduced by this call
|
= note: expected closure signature `for<'a> fn(&'a Result<Cow<'_, str>, ZipError>) -> _`
found closure signature `fn(&&str) -> _`
note: required by a bound in `filter`
--> /usr/src/rustc-1.97.1/library/core/src/iter/traits/iterator.rs:955:34
|
952 | fn filter<P>(self, predicate: P) -> Filter<Self, P>
| ------ required by a bound in this associated function
...
955 | P: FnMut(&Self::Item) -> bool,
| ^^^^ required by this bound in `Iterator::filter`
help: consider wrapping the function in a closure
|
387 | .filter(|arg0: &Result<Cow<'_, str>, ZipError>| drop_platform_specific_files(/* &&str */))
| +++++++++++++++++++++++++++++++++++++++ +++++++++++++
error[E0599]: the method `map` exists for struct `Filter<impl Iterator<Item = Result<Cow<'_, str>, ZipError>>, {closure@tests/common/other.rs:381:40: 381:61}>`, but its trait bounds were not satisfied
--> tests/common/other.rs:388:10
|
381 | let drop_platform_specific_files = |file: &&str| -> bool {
| --------------------- doesn't satisfy `<_ as FnOnce<(&Result<Cow<'_, str>, ZipError>,)>>::Output = bool`
...
385 | Ok(wheel
| ________-
386 | | .file_names()
387 | | .filter(drop_platform_specific_files)
388 | | .map(str::to_owned)
| | -^^^ method cannot be called due to unsatisfied trait bounds
| |_________|
|
|
::: /usr/src/rustc-1.97.1/library/core/src/iter/adapters/filter.rs:21:1
|
21 | pub struct Filter<I, P> {
| ----------------------- doesn't satisfy `_: Iterator`
|
= note: the following trait bounds were not satisfied:
`<{closure@tests/common/other.rs:381:40: 381:61} as FnOnce<(&Result<Cow<'_, str>, ZipError>,)>>::Output = bool`
which is required by `Filter<impl Iterator<Item = Result<Cow<'_, str>, ZipError>>, {closure@tests/common/other.rs:381:40: 381:61}>: Iterator`
`Filter<impl Iterator<Item = Result<Cow<'_, str>, ZipError>>, {closure@tests/common/other.rs:381:40: 381:61}>: Iterator`
which is required by `&mut Filter<impl Iterator<Item = Result<Cow<'_, str>, ZipError>>, {closure@tests/common/other.rs:381:40: 381:61}>: Iterator`
error[E0599]: no method named `contains` found for reference `&Result<Cow<'_, str>, ZipError>` in the current scope
--> tests/common/other.rs:398:23
|
398 | .filter(|f| f.contains(".dist-info/sboms/"))
| ^^^^^^^^ method not found in `&Result<Cow<'_, str>, ZipError>`
|
= help: items from traits can only be used if the trait is in scope
help: trait `Seq` which provides `contains` is implemented but not in scope; perhaps you want to import it
|
1 + use chumsky::container::Seq;
|
error[E0599]: the method `to_string` exists for enum `Result<Cow<'_, str>, ZipError>`, but its trait bounds were not satisfied
--> tests/common/other.rs:399:20
|
399 | .map(|f| f.to_string())
| ^^^^^^^^^ method cannot be called on `Result<Cow<'_, str>, ZipError>` due to unsatisfied trait bounds
|
::: /usr/src/rustc-1.97.1/library/core/src/result.rs:557:1
|
557 | pub enum Result<T, E> {
| --------------------- doesn't satisfy `Result<Cow<'_, str>, ZipError>: ToString` or `Result<Cow<'_, str>, ZipError>: std::fmt::Display`
|
= note: the following trait bounds were not satisfied:
`Result<Cow<'_, str>, ZipError>: std::fmt::Display`
which is required by `Result<Cow<'_, str>, ZipError>: ToString`
error[E0599]: no method named `ends_with` found for reference `&Result<Cow<'_, str>, ZipError>` in the current scope
--> tests/common/other.rs:671:37
|
671 | .filter(|name| name.ends_with(".so"))
| ^^^^^^^^^ method not found in `&Result<Cow<'_, str>, ZipError>`
error[E0369]: binary operation `==` cannot be applied to type `Vec<Result<Cow<'_, str>, ZipError>>`
--> tests/common/other.rs:673:13
|
673 | / assert_eq!(
674 | | extensions,
675 | | [format!(
676 | | "pyo3_abi3_and_abi3t/pyo3_abi3_and_abi3t{expected_suffix}"
677 | | )]
678 | | );
| | ^
| | |
| |_____________Vec<Result<Cow<'_, str>, ZipError>>
| [std::string::String; 1]
|
note: `Result<Cow<'_, str>, ZipError>` does not implement `PartialEq<std::string::String>`
--> /usr/src/rustc-1.97.1/library/core/src/result.rs:557:1
|
557 | pub enum Result<T, E> {
| ^^^^^^^^^^^^^^^^^^^^^ `Result<Cow<'_, str>, ZipError>` is defined in another crate
= note: this error originates in the macro `$crate::assert_eq` which comes from the expansion of the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0599]: no method named `starts_with` found for reference `&Result<Cow<'_, str>, ZipError>` in the current scope
--> tests/common/other.rs:803:29
|
803 | .filter(|name| name.starts_with("bin_with_python_module/"))
| ^^^^^^^^^^^ method not found in `&Result<Cow<'_, str>, ZipError>`
error[E0369]: binary operation `==` cannot be applied to type `Vec<Result<Cow<'_, str>, ZipError>>`
--> tests/common/other.rs:812:5
|
812 | assert_eq!(package_files, expected);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| Vec<Result<Cow<'_, str>, ZipError>>
| Vec<&str>
|
note: `Result<Cow<'_, str>, ZipError>` does not implement `PartialEq<&str>`
--> /usr/src/rustc-1.97.1/library/core/src/result.rs:557:1
|
557 | pub enum Result<T, E> {
| ^^^^^^^^^^^^^^^^^^^^^ `Result<Cow<'_, str>, ZipError>` is defined in another crate
= note: this error originates in the macro `$crate::assert_eq` which comes from the expansion of the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
Some errors have detailed explanations: E0277, E0369, E0599, E0631.
For more information about an error, try `rustc --explain E0277`.
This is beyond me. Help?