Skip to content

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

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:

Details
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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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