#1146274 rust-cargo-mutants: FTBFS: error[E0308]: mismatched types

#1146274#5
Date:
2026-08-30 22:57:20 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202608/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:rust-cargo-mutants, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
error[E0308]: mismatched types
  --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/ast/from_serde.rs:75:31
   |
75 |             attrs: Attrs::new(&serde.original.attrs, errors),
   |                    ---------- ^^^^^^^^^^^^^^^^^^^^^ expected `&[Attribute]`, found `&Vec<Attribute>`
   |                    |
   |                    arguments to this function are incorrect
   |
   = note: expected reference `&[Attribute]`
              found reference `&Vec<syn::attr::Attribute>`
note: associated function defined here
  --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/attr/mod.rs:38:12
   |
38 |     pub fn new(attrs: &[syn::Attribute], errors: &Ctxt) -> Self {
   |            ^^^ ------------------------

error[E0308]: mismatched types
  --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/ast/from_serde.rs:76:52
   |
76 |             validation_attrs: ValidationAttrs::new(&serde.original.attrs, errors),
   |                               -------------------- ^^^^^^^^^^^^^^^^^^^^^ expected `&[Attribute]`, found `&Vec<Attribute>`
   |                               |
   |                               arguments to this function are incorrect
   |
   = note: expected reference `&[Attribute]`
              found reference `&Vec<syn::attr::Attribute>`
note: associated function defined here
  --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/attr/validation.rs:53:12
   |
53 |     pub fn new(attrs: &[syn::Attribute], errors: &Ctxt) -> Self {
   |            ^^^ ------------------------

error[E0308]: mismatched types
  --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/ast/mod.rs:48:13
   |
46 |         let result = serde_ast::Container::from_ast(
   |                      ------------------------------ arguments to this function are incorrect
47 |             &ctxt,
48 |             item,
   |             ^^^^ expected `syn::derive::DeriveInput`, found `DeriveInput`
   |
note: there are multiple different versions of crate `syn` in the dependency graph
  --> /<<PKGBUILDDIR>>/debian/cargo_registry/syn-3.0.4/src/macros.rs:36:22
   |
36 |           $(#[$attr])* $pub $struct $name $body
   |                        ^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type
   |
  ::: /<<PKGBUILDDIR>>/debian/cargo_registry/syn-2.0.119/src/macros.rs:36:22
   |
36 |           $(#[$attr])* $pub $struct $name $body
   |                        ------------------------ this is the found type
   |
  ::: /<<PKGBUILDDIR>>/debian/cargo_registry/syn-3.0.4/src/derive.rs:10:1
   |
10 | / ast_struct! {
11 | |     /// Data structure sent to a `proc_macro_derive` macro.
12 | |     #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
13 | |     pub struct DeriveInput {
...  |
20 | | }
   | |_- in this macro invocation
   = help: you can use `cargo tree` to explore your dependency tree
note: associated function defined here
  --> /<<PKGBUILDDIR>>/debian/cargo_registry/serde_derive_internals-0.30.0/src/ast.rs:62:12
   |
62 |     pub fn from_ast(
   |            ^^^^^^^^
   = note: this error originates in the macro `ast_struct` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/ast/mod.rs:55:9
    |
 44 |       pub fn from_ast(item: &'a syn::DeriveInput) -> syn::Result<Container<'a>> {
    |                                                      -------------------------- expected `Result<ast::Container<'a>, syn::Error>` because of return type
...
 55 | /         ctxt.check()
 56 | |             .map(|_| result.expect("from_ast set no errors on Ctxt, so should have returned Ok"))
    | |_________________________________________________________________________________________________^ expected `syn::Error`, found `syn::error::Error`
    |
note: there are multiple different versions of crate `syn` in the dependency graph
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/syn-2.0.119/src/error.rs:105:1
    |
105 | pub struct Error {
    | ^^^^^^^^^^^^^^^^ this is the expected type
    |
   ::: /<<PKGBUILDDIR>>/debian/cargo_registry/syn-3.0.4/src/error.rs:107:1
    |
107 | pub struct Error {
    | ---------------- this is the found type
    = help: you can use `cargo tree` to explore your dependency tree

error[E0308]: mismatched types
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/attr/schemars_to_serde.rs:46:5
    |
 37 | pub fn process_serde_attrs(input: &mut syn::DeriveInput) -> syn::Result<()> {
    |                                                             --------------- expected `Result<(), syn::Error>` because of return type
...
 46 |     ctxt.check()
    |     ^^^^^^^^^^^^ expected `syn::Error`, found `syn::error::Error`
    |
note: there are multiple different versions of crate `syn` in the dependency graph
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/syn-2.0.119/src/error.rs:105:1
    |
105 | pub struct Error {
    | ^^^^^^^^^^^^^^^^ this is the expected type
    |
   ::: /<<PKGBUILDDIR>>/debian/cargo_registry/syn-3.0.4/src/error.rs:107:1
    |
107 | pub struct Error {
    | ---------------- this is the found type
    = help: you can use `cargo tree` to explore your dependency tree

error[E0308]: mismatched types
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/attr/validation.rs:112:42
    |
112 |                         errors.syn_error(e);
    |                                --------- ^ expected `syn::error::Error`, found `syn::Error`
    |                                |
    |                                arguments to this method are incorrect
    |
note: there are multiple different versions of crate `syn` in the dependency graph
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/syn-3.0.4/src/error.rs:107:1
    |
107 | pub struct Error {
    | ^^^^^^^^^^^^^^^^ this is the expected type
    |
   ::: /<<PKGBUILDDIR>>/debian/cargo_registry/syn-2.0.119/src/error.rs:105:1
    |
105 | pub struct Error {
    | ---------------- this is the found type
    = help: you can use `cargo tree` to explore your dependency tree
note: method defined here
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/serde_derive_internals-0.30.0/src/ctxt.rs:41:12
    |
 41 |     pub fn syn_error(&self, err: syn::Error) {
    |            ^^^^^^^^^

error[E0308]: mismatched types
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/attr/validation.rs:517:26
    |
517 |             cx.syn_error(err);
    |                --------- ^^^ expected `syn::error::Error`, found `syn::Error`
    |                |
    |                arguments to this method are incorrect
    |
note: there are multiple different versions of crate `syn` in the dependency graph
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/syn-3.0.4/src/error.rs:107:1
    |
107 | pub struct Error {
    | ^^^^^^^^^^^^^^^^ this is the expected type
    |
   ::: /<<PKGBUILDDIR>>/debian/cargo_registry/syn-2.0.119/src/error.rs:105:1
    |
105 | pub struct Error {
    | ---------------- this is the found type
    = help: you can use `cargo tree` to explore your dependency tree
note: method defined here
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/serde_derive_internals-0.30.0/src/ctxt.rs:41:12
    |
 41 |     pub fn syn_error(&self, err: syn::Error) {
    |            ^^^^^^^^^

error[E0308]: mismatched types
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/attr/mod.rs:226:60
    |
226 |             Err(err) if !ignore_errors => errors.syn_error(err),
    |                                                  --------- ^^^ expected `syn::error::Error`, found `syn::Error`
    |                                                  |
    |                                                  arguments to this method are incorrect
    |
note: there are multiple different versions of crate `syn` in the dependency graph
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/syn-3.0.4/src/error.rs:107:1
    |
107 | pub struct Error {
    | ^^^^^^^^^^^^^^^^ this is the expected type
    |
   ::: /<<PKGBUILDDIR>>/debian/cargo_registry/syn-2.0.119/src/error.rs:105:1
    |
105 | pub struct Error {
    | ---------------- this is the found type
    = help: you can use `cargo tree` to explore your dependency tree
note: method defined here
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/serde_derive_internals-0.30.0/src/ctxt.rs:41:12
    |
 41 |     pub fn syn_error(&self, err: syn::Error) {
    |            ^^^^^^^^^

warning: unused import: `core::hash::BuildHasher`
  --> /usr/share/cargo/registry/winnow-0.7.13/src/stream/mod.rs:12:5
   |
12 | use core::hash::BuildHasher;
   |     ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `context`
   --> /usr/share/cargo/registry/winnow-0.7.13/src/error.rs:703:28
    |
703 |     pub fn push(&mut self, context: C) {
    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `context`
   --> /usr/share/cargo/registry/winnow-0.7.13/src/error.rs:710:57
    |
710 |     pub fn extend<I: IntoIterator<Item = C>>(&mut self, context: I) {
    |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `other`
   --> /usr/share/cargo/registry/winnow-0.7.13/src/error.rs:814:18
    |
814 |     fn eq(&self, other: &Self) -> bool {
    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`

warning: unused variable: `f`
   --> /usr/share/cargo/registry/winnow-0.7.13/src/error.rs:835:19
    |
835 |     fn fmt(&self, f: &mut crate::lib::std::fmt::Formatter<'_>) -> crate::lib::std::fmt::Result {
    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`

error[E0277]: the trait bound `Punctuated<WherePredicate, Comma>: Extend<WherePredicate>` is not satisfied
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/schemars_derive-0.8.22/src/lib.rs:196:33
    |
196 |         where_clause.predicates.extend(bounds.iter().cloned());
    |                                 ^^^^^^ the trait `Extend<syn::generics::WherePredicate>` is not implemented for `syn::punctuated::Punctuated<WherePredicate, syn::token::Comma>`
    |
help: the following other types implement trait `Extend<A>`
   --> /<<PKGBUILDDIR>>/debian/cargo_registry/syn-2.0.119/src/punctuated.rs:469:1
    |
469 | / impl<T, P> Extend<T> for Punctuated<T, P>
470 | | where
471 | |     P: Default,
    | |_______________^ `syn::punctuated::Punctuated<T, P>` implements `Extend<T>`
...
488 | / impl<T, P> Extend<Pair<T, P>> for Punctuated<T, P>
489 | | where
490 | |     P: Default,
    | |_______________^ `syn::punctuated::Punctuated<T, P>` implements `Extend<Pair<T, P>>`
    = note: there are multiple different versions of crate `syn` in the dependency graph
    = help: you can use `cargo tree` to explore your dependency tree
    = note: the full name for the type has been written to '/<<PKGBUILDDIR>>/target/debug/deps/schemars_derive-b1996f1975748e9a.long-type-17554543899877667971.txt'
    = note: consider using `--verbose` to print the full type name to the console

warning: unused variable: `input`
    --> /usr/share/cargo/registry/winnow-0.7.13/src/error.rs:1356:13
     |
1356 |         let input = self.input.as_bstr();
     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`

warning: unused variable: `span_end`
    --> /usr/share/cargo/registry/winnow-0.7.13/src/error.rs:1358:13
     |
1358 |         let span_end = span_start;
     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_span_end`

Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
warning: `schemars_derive` (lib) generated 1 warning
error: could not compile `schemars_derive` (lib) due to 17 previous errors; 1 warning emitted

Caused by:
  process didn't exit successfully: `CARGO=/usr/bin/cargo CA [too-long-redacted] ap-lints warn` (exit status: 1)
warning: build failed, waiting for other jobs to finish...
warning: `winnow` (lib) generated 16 warnings
dh_auto_test: error: /usr/share/cargo/bin/cargo build returned exit code 101
make: *** [debian/rules:3: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------

#1146274#10
Date:
2026-08-31 00:57:22 UTC
From:
To:
Hi Santiago,

Please try again after the next dinstall. This FTBFS is due to schemars_derive:

error: could not compile `schemars_derive` (lib) due to 17 previous errors; 1 warning emitted

Which was just rebuilt successfully: https://buildd.debian.org/status/package.php?p=rust-schemars-derive

If it still FTBFS, please let me know. If not, feel free to close the bug.

Thanks for all your bug filing work, as always! It's very much appreciated.

Best regards,
Simon Quigley
tsimonq2@debian.org

#1146274#15
Date:
2026-08-31 01:14:06 UTC
From:
To:
reassign 1146274 rust-schemars-derive
affects 1146274 src:rust-cargo-mutants
found 1146274 1.2.2-1
close 1146274 1.2.2-2
thanks

I trust you :-)

In cases like this one, where the package which FTBFS is not the one
to be blamed for the failure, I prefer reassign + affects, as above
(it has the advantage that we can close the bug already using
meaningful versions).

Thanks.