Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
Grommish opened this issue Nov 11, 2020 · 3 comments
Closed
Labels
C-bug Category: This is a bug. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

Comments

@Grommish
Copy link
Contributor

Grommish commented Nov 11, 2020

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
@Grommish Grommish added the C-bug Category: This is a bug. label Nov 11, 2020
@jyn514
Copy link
Member

jyn514 commented Nov 11, 2020

RLS not building is a duplicate of #78078. Not sure why rustfmt isn't building, it's available on the latest nightly.

@jyn514 jyn514 added the T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) label Nov 11, 2020
@jyn514
Copy link
Member

jyn514 commented Nov 11, 2020

Rustfmt was fixed in #78775, please rebase over the latest version of master.

@jyn514 jyn514 closed this as completed Nov 11, 2020
@Grommish
Copy link
Contributor Author

Grommish commented Nov 12, 2020

Thank you @jyn514 ! In the future, I'll try to format the reports properly with the markup codes..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Projects
None yet
Development

No branches or pull requests

2 participants