Skip to content

rustfmt and RLS compile-from-source errors error[E0308]: mismatched types #78958

Closed
@Grommish

Description

@Grommish

When building Rust from source (master@b2d115f6db5172c961dfeb50de15f35784dbc7c9), when compiling with x.py --config ./config.toml dist cargo extended library/std llvm-tools miri rust-dev rustc-dev src src/librustc src/lldb_batchmode.py src/tool /build-manifest

Building with the following ./configure flags:

RUST_BACKTRACE=full ./configure --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --target=mips64-unknown-linux-muslabi64sf --prefix=/home/grommish/openwrt/build_dir/hostpkg/.cargo --bindir=/home/grommish/openwrt/build_dir/hostpkg/.cargo/bin --libdir=/home/grommish/openwrt/build_dir/hostpkg/.cargo/lib --sysconfdir=/home/grommish/openwrt/build_dir/hostpkg/.cargo/etc --datadir=/home/grommish/openwrt/build_dir/hostpkg/.cargo/share --mandir=/home/grommish/openwrt/build_dir/hostpkg/.cargo/man --infodir=/home/grommish/openwrt/build_dir/hostpkg/.cargo/info --localstatedir=/var --release-channel=nightly --enable-lld --set=target.mips64-unknown-linux-muslabi64sf.linker=mips64-openwrt-linux-musl-gcc --set=target.mips64-unknown-linux-muslabi64sf.cc=mips64-openwrt-linux-musl-gcc --set=target.mips64-unknown-linux-muslabi64sf.cxx=mips64-openwrt-linux-musl-g++ --set=target.mips64-unknown-linux-muslabi64sf.ar=mips64-openwrt-linux-musl-gcc-ar --set=target.mips64-unknown-linux-muslabi64sf.ranlib=mips64-openwrt-linux-musl-gcc-ranlib --disable-docs --disable-compiler-docs --enable-parallel-compiler --enable-ccache --enable-llvm-link-shared --enable-option-checking --enable-ninja --enable-locked-deps --enable-full-tools --enable-missing-tools --enable-manage-submodules --enable-full-bootstrap --set=target.mips64-unknown-linux-muslabi64sf.musl-root=/home/grommish/openwrt/staging_dir/toolchain-mips64_octeon3_64_gcc-10.2.0_musl
configure: processing command line
configure: 
configure: build.host           := ['x86_64-unknown-linux-gnu']
configure: build.build          := x86_64-unknown-linux-gnu
configure: build.target         := ['mips64-unknown-linux-muslabi64sf']
configure: install.prefix       := /home/grommish/openwrt/build_dir/hostpkg/.carg ...
configure: install.bindir       := /home/grommish/openwrt/build_dir/hostpkg/.carg ...
configure: install.libdir       := /home/grommish/openwrt/build_dir/hostpkg/.carg ...
configure: install.sysconfdir   := /home/grommish/openwrt/build_dir/hostpkg/.carg ...
configure: install.datadir      := /home/grommish/openwrt/build_dir/hostpkg/.carg ...
configure: install.mandir       := /home/grommish/openwrt/build_dir/hostpkg/.carg ...
configure: install.infodir      := /home/grommish/openwrt/build_dir/hostpkg/.carg ...
configure: install.localstatedir := /var
configure: rust.channel         := nightly
configure: rust.lld             := True
configure: target.mips64-unknown-linux-muslabi64sf.linker := mips64-openwrt-linux ...
configure: target.mips64-unknown-linux-muslabi64sf.cc := mips64-openwrt-linux-mus ...
configure: target.mips64-unknown-linux-muslabi64sf.cxx := mips64-openwrt-linux-mu ...
configure: target.mips64-unknown-linux-muslabi64sf.ar := mips64-openwrt-linux-mus ...
configure: target.mips64-unknown-linux-muslabi64sf.ranlib := mips64-openwrt-linux ...
configure: target.mips64-unknown-linux-muslabi64sf.musl-root := /home/grommish/op ...
configure: build.docs           := False
configure: build.compiler-docs  := False
configure: rust.parallel-compiler := True
configure: llvm.ccache          := True
configure: llvm.link-shared     := True
configure: llvm.ninja           := True
configure: build.locked-deps    := True
configure: rust.codegen-backends := ['llvm']
configure: rust.lld             := True
configure: rust.llvm-tools      := True
configure: build.extended       := True
configure: dist.missing-tools   := True
configure: build.submodules     := True
configure: build.full-bootstrap := True
configure: build.configure-args := ['--host=x86_64-unknown-linux-gnu', '--build=x ...
configure: 
configure: writing `config.toml` in current directory
configure: 
configure: run `python /home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/x.py --help`

It should be noted that I've never gotten rustfmt and RLS to build, even when building from built-in triple targets.

Rustfmt
Building stage2 tool rustfmt (x86_64-unknown-linux-gnu)
   Compiling scopeguard v1.1.0
   Compiling semver-parser v0.7.0
   Compiling byteorder v1.3.4
   Compiling cc v1.0.60
   Compiling hashbrown v0.9.0
   Compiling either v1.6.0
   Compiling rustc-rayon-core v0.3.0
   Compiling byte-tools v0.3.1
   Compiling instant v0.1.6
   Compiling rustc-hash v1.1.0
   Compiling arrayvec v0.5.1
   Compiling rustc-ap-rustc_graphviz v679.0.0
   Compiling stable_deref_trait v1.2.0
   Compiling opaque-debug v0.2.3
   Compiling fake-simd v0.1.2
   Compiling scoped-tls v1.0.0
   Compiling annotate-snippets v0.8.0
   Compiling rustc-ap-rustc_fs_util v679.0.0
   Compiling version_check v0.9.1
   Compiling unicode-segmentation v1.6.0
   Compiling quick-error v1.2.3
   Compiling rustfmt-nightly v1.4.22 (/home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/src/tools/rustfmt)
   Compiling unicode_categories v0.1.1
   Compiling diff v0.1.12
   Compiling bytecount v0.6.0
   Compiling serde v1.0.115
   Compiling memoffset v0.5.5
   Compiling crossbeam-epoch v0.8.2
   Compiling indexmap v1.6.0
   Compiling crossbeam-utils v0.6.6
   Compiling tracing-core v0.1.17
   Compiling getopts v0.2.21
   Compiling lock_api v0.3.4
   Compiling lock_api v0.4.1
   Compiling block-padding v0.1.5
   Compiling itertools v0.9.0
   Compiling itertools v0.8.2
   Compiling rustc-ap-rustc_lexer v679.0.0
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling annotate-snippets v0.6.1
   Compiling humantime v1.3.0
   Compiling heck v0.3.1
   Compiling crossbeam-queue v0.1.2
   Compiling memmap v0.7.0
   Compiling parking_lot_core v0.8.0
   Compiling termize v0.1.1
   Compiling dirs-sys v0.3.5
   Compiling ena v0.14.0
   Compiling generic-array v0.12.3
   Compiling psm v0.1.11
   Compiling stacker v0.1.12
   Compiling dirs v2.0.2
   Compiling synstructure v0.12.4
   Compiling tracing-attributes v0.1.11
   Compiling thiserror-impl v1.0.20
   Compiling derive-new v0.5.8
   Compiling rustfmt-config_proc_macro v0.2.0 (/home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/src/tools/rustfmt/config_proc_macro)
   Compiling parking_lot v0.11.0
   Compiling env_logger v0.6.2
   Compiling digest v0.8.1
   Compiling semver v0.9.0
   Compiling block-buffer v0.7.3
   Compiling term v0.6.1
   Compiling cargo_metadata v0.8.2
   Compiling sha-1 v0.8.2
   Compiling md-5 v0.8.0
   Compiling thiserror v1.0.20
   Compiling tracing v0.1.19
   Compiling rustc-ap-rustc_serialize v679.0.0
   Compiling crossbeam-deque v0.7.3
   Compiling rustc-ap-rustc_macros v679.0.0
   Compiling rustc_version v0.2.3
   Compiling rustc-rayon v0.3.0
   Compiling parking_lot_core v0.6.2
   Compiling parking_lot v0.9.0
   Compiling structopt-derive v0.4.9
   Compiling rustc-ap-rustc_index v679.0.0
   Compiling measureme v0.7.1
   Compiling rustc-ap-rustc_data_structures v679.0.0
   Compiling structopt v0.3.16
error[E0308]: mismatched types
   --> /home/grommish/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_data_structures-679.0.0/src/graph/iterate/mod.rs:182:37
    |
182 |                         return Some(val);
    |                                     ^^^ expected associated type, found `()`
    |
    = note: expected associated type `<V as TriColorVisitor<G>>::BreakVal`
                     found unit type `()`
help: consider constraining the associated type `<V as TriColorVisitor<G>>::BreakVal` to `()`
    |
170 |         V: TriColorVisitor<G, BreakVal = ()>,
    |                             ^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> /home/grommish/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_data_structures-679.0.0/src/graph/iterate/mod.rs:197:37
    |
197 |                         return Some(val);
    |                                     ^^^ expected associated type, found `()`
    |
    = note: expected associated type `<V as TriColorVisitor<G>>::BreakVal`
                     found unit type `()`
help: consider constraining the associated type `<V as TriColorVisitor<G>>::BreakVal` to `()`
    |
170 |         V: TriColorVisitor<G, BreakVal = ()>,
    |                             ^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> /home/grommish/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_data_structures-679.0.0/src/graph/iterate/mod.rs:260:9
    |
259 |     ) -> ControlFlow<Self::BreakVal> {
    |          --------------------------- expected `std::ops::ControlFlow<(), <Self as TriColorVisitor<G>>::BreakVal>` because of return type
260 |         ControlFlow::CONTINUE
    |         ^^^^^^^^^^^^^^^^^^^^^ expected associated type, found `()`
    |
    = note: expected enum `std::ops::ControlFlow<_, <Self as TriColorVisitor<G>>::BreakVal>`
               found enum `std::ops::ControlFlow<_, ()>`
    = help: consider constraining the associated type `<Self as TriColorVisitor<G>>::BreakVal` to `()` or calling a method that returns `<Self as TriColorVisitor<G>>::BreakVal`
    = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html

error[E0308]: mismatched types
   --> /home/grommish/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_data_structures-679.0.0/src/graph/iterate/mod.rs:265:9
    |
264 |     fn node_settled(&mut self, _node: G::Node) -> ControlFlow<Self::BreakVal> {
    |                                                   --------------------------- expected `std::ops::ControlFlow<(), <Self as TriColorVisitor<G>>::BreakVal>` because of return type
265 |         ControlFlow::CONTINUE
    |         ^^^^^^^^^^^^^^^^^^^^^ expected associated type, found `()`
    |
    = note: expected enum `std::ops::ControlFlow<_, <Self as TriColorVisitor<G>>::BreakVal>`
               found enum `std::ops::ControlFlow<_, ()>`
    = help: consider constraining the associated type `<Self as TriColorVisitor<G>>::BreakVal` to `()` or calling a method that returns `<Self as TriColorVisitor<G>>::BreakVal`
    = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0308`.
error: could not compile `rustc-ap-rustc_data_structures`

To learn more, run the command again with --verbose.
command did not execute successfully: "/home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "8" "--release" "--locked" "--manifest-path" "/home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/src/tools/rustfmt/Cargo.toml" "--message-format" "json-render-diagnostics"
expected success, got: exit code: 101
Unable to build Rustfmt, skipping dist
RLS
Building stage2 tool rls (x86_64-unknown-linux-gnu)
   Compiling futures v0.1.29
   Compiling slab v0.4.2
   Compiling winapi v0.3.9
   Compiling mio-named-pipes v0.1.7
   Compiling gimli v0.22.0
   Compiling failure_derive v0.1.8
   Compiling adler v0.2.3
   Compiling rustc-demangle v0.1.18
   Compiling object v0.21.1
   Compiling percent-encoding v1.0.1
   Compiling rayon-core v1.7.1
   Compiling rustc_tools_util v0.2.0
   Compiling json v0.11.15
   Compiling ordslice v0.3.0
   Compiling rayon v1.3.1
   Compiling miniz_oxide v0.4.0
   Compiling heck v0.3.1
   Compiling idna v0.1.5
   Compiling iovec v0.1.4
   Compiling net2 v0.2.34
   Compiling parking_lot_core v0.7.2
   Compiling fst v0.3.5
   Compiling tokio-sync v0.1.8
   Compiling tokio-service v0.1.0
   Compiling bytes v0.4.12
   Compiling url v1.7.2
   Compiling tokio-executor v0.1.10
   Compiling crossbeam-queue v0.2.3
   Compiling crossbeam-channel v0.4.4
   Compiling addr2line v0.13.0
   Compiling mio v0.6.22
   Compiling parking_lot v0.10.2
   Compiling derive_more v0.99.9
   Compiling serde_repr v0.1.6
   Compiling psm v0.1.11
   Compiling stacker v0.1.12
   Compiling tokio-current-thread v0.1.7
   Compiling tokio-timer v0.2.13
   Compiling tokio-io v0.1.13
   Compiling backtrace v0.3.53 (/home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/library/backtrace)
   Compiling env_logger v0.7.1
   Compiling rls v1.41.0 (/home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/src/tools/rls)
   Compiling miow v0.3.5
   Compiling mio-uds v0.6.8
   Compiling tokio-threadpool v0.1.18
   Compiling tokio-codec v0.1.2
   Compiling toml v0.5.7
   Compiling rls-span v0.5.2
   Compiling tokio-fs v0.1.7
   Compiling jsonrpc-core v14.2.0
   Compiling lsp-types v0.60.0
   Compiling tokio-reactor v0.1.12
   Compiling rustc-ap-rustc_data_structures v679.0.0
   Compiling proc-macro-crate v0.1.5
   Compiling tokio-uds v0.2.7
   Compiling tokio-udp v0.1.6
   Compiling tokio-tcp v0.1.4
   Compiling rls-data v0.19.0
   Compiling rls-vfs v0.8.0
   Compiling jsonrpc-pubsub v14.2.0
error[E0308]: mismatched types
   --> /home/grommish/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_data_structures-679.0.0/src/graph/iterate/mod.rs:182:37
    |
182 |                         return Some(val);
    |                                     ^^^ expected associated type, found `()`
    |
    = note: expected associated type `<V as TriColorVisitor<G>>::BreakVal`
                     found unit type `()`
help: consider constraining the associated type `<V as TriColorVisitor<G>>::BreakVal` to `()`
    |
170 |         V: TriColorVisitor<G, BreakVal = ()>,
    |                             ^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> /home/grommish/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_data_structures-679.0.0/src/graph/iterate/mod.rs:197:37
    |
197 |                         return Some(val);
    |                                     ^^^ expected associated type, found `()`
    |
    = note: expected associated type `<V as TriColorVisitor<G>>::BreakVal`
                     found unit type `()`
help: consider constraining the associated type `<V as TriColorVisitor<G>>::BreakVal` to `()`
    |
170 |         V: TriColorVisitor<G, BreakVal = ()>,
    |                             ^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> /home/grommish/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_data_structures-679.0.0/src/graph/iterate/mod.rs:260:9
    |
259 |     ) -> ControlFlow<Self::BreakVal> {
    |          --------------------------- expected `std::ops::ControlFlow<(), <Self as TriColorVisitor<G>>::BreakVal>` because of return type
260 |         ControlFlow::CONTINUE
    |         ^^^^^^^^^^^^^^^^^^^^^ expected associated type, found `()`
    |
    = note: expected enum `std::ops::ControlFlow<_, <Self as TriColorVisitor<G>>::BreakVal>`
               found enum `std::ops::ControlFlow<_, ()>`
    = help: consider constraining the associated type `<Self as TriColorVisitor<G>>::BreakVal` to `()` or calling a method that returns `<Self as TriColorVisitor<G>>::BreakVal`
    = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html

error[E0308]: mismatched types
   --> /home/grommish/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_data_structures-679.0.0/src/graph/iterate/mod.rs:265:9
    |
264 |     fn node_settled(&mut self, _node: G::Node) -> ControlFlow<Self::BreakVal> {
    |                                                   --------------------------- expected `std::ops::ControlFlow<(), <Self as TriColorVisitor<G>>::BreakVal>` because of return type
265 |         ControlFlow::CONTINUE
    |         ^^^^^^^^^^^^^^^^^^^^^ expected associated type, found `()`
    |
    = note: expected enum `std::ops::ControlFlow<_, <Self as TriColorVisitor<G>>::BreakVal>`
               found enum `std::ops::ControlFlow<_, ()>`
    = help: consider constraining the associated type `<Self as TriColorVisitor<G>>::BreakVal` to `()` or calling a method that returns `<Self as TriColorVisitor<G>>::BreakVal`
    = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0308`.
error: could not compile `rustc-ap-rustc_data_structures`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed
command did not execute successfully: "/home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "8" "--release" "--locked" "--manifest-path" "/home/grommish/openwrt/build_dir/hostpkg/rust-1.49.0/src/tools/rls/Cargo.toml" "--features" "clippy" "--message-format" "json-render-diagnostics"
expected success, got: exit code: 101
Unable to build RLS, skipping dist

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions