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

Issue 49938: Reference tagged unions discr(iminant) as tag #50309

Merged
merged 1 commit into from
May 6, 2018

Conversation

samWson
Copy link

@samWson samWson commented Apr 29, 2018

Here the changes reference the Tagged type discriminant as tag instead. This is the correct terminology when referencing how tagged unions are represented in memory.

@oli-obk
Copy link
Contributor

oli-obk commented Apr 29, 2018

Can you rebase over the current master branch? some changes seem to have happened to the code you touched.

You can reference the issue with fixes #49938 in your main post. This way, once the PR is merged, the issue will be closed automatically.

@oli-obk
Copy link
Contributor

oli-obk commented Apr 29, 2018

r? @oli-obk

@shepmaster shepmaster added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 30, 2018
@samWson
Copy link
Author

samWson commented Apr 30, 2018

Sorry for the delay. It was late and I valued sleep more than fun with git rebase. I've rebased on master and pushed the branch again. Just waiting for CI to finish.

I see travis-CI just failed. I'm going to need help with this one. Looking at that log, I don't know how to overcome this problem.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:00:59] extracting /checkout/obj/build/cache/2018-04-24/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:01:00] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:00] 
[00:01:00] Caused by:
[00:01:00]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:00] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:00] Build completed unsuccessfully in 0:00:12
[00:01:00] make: *** [prepare] Error 1
[00:01:00] Makefile:81: recipe for target 'prepare' failed
[00:01:00] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:00] 
[00:01:00] Caused by:
[00:01:00] Caused by:
[00:01:00]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:00] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:00] Build completed unsuccessfully in 0:00:00
[00:01:00] Makefile:81: recipe for target 'prepare' failed
[00:01:00] make: *** [prepare] Error 1
[00:01:00] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:00] 
[00:01:00] Caused by:
[00:01:00] Caused by:
[00:01:00]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:00] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:00] Build completed unsuccessfully in 0:00:00
[00:01:00] Makefile:81: recipe for target 'prepare' failed
[00:01:00] make: *** [prepare] Error 1
[00:01:00] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:00] 
[00:01:00] Caused by:
[00:01:00] Caused by:
[00:01:00]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:00] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:00] Build completed unsuccessfully in 0:00:00
[00:01:00] make: *** [prepare] Error 1
[00:01:00] Makefile:81: recipe for target 'prepare' failed
[00:01:00] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:00] 
[00:01:00] Caused by:
[00:01:00] Caused by:
[00:01:00]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:00] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:00] Build completed unsuccessfully in 0:00:00
[00:01:00] Makefile:81: recipe for target 'prepare' failed
[00:01:00] make: *** [prepare] Error 1
[00:01:00] The command has failed after 5 attempts.

The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
travis_time:start:16df44b4
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:01:03] extracting /checkout/obj/build/cache/2018-04-24/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:01:03] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:03] 
[00:01:03] Caused by:
[00:01:03]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:03] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:03] Build completed unsuccessfully in 0:00:17
[00:01:03] Makefile:81: recipe for target 'prepare' failed
[00:01:03] make: *** [prepare] Error 1
[00:01:03] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:03] 
[00:01:03] Caused by:
[00:01:03] Caused by:
[00:01:03]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:03] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:03] Build completed unsuccessfully in 0:00:00
[00:01:03] make: *** [prepare] Error 1
[00:01:03] Makefile:81: recipe for target 'prepare' failed
[00:01:03] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:03] 
[00:01:03] Caused by:
[00:01:03] Caused by:
[00:01:03]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:03] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:03] Build completed unsuccessfully in 0:00:00
[00:01:03] Makefile:81: recipe for target 'prepare' failed
[00:01:03] make: *** [prepare] Error 1
[00:01:03] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:03] 
[00:01:03] Caused by:
[00:01:03] Caused by:
[00:01:03]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:03] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:03] Build completed unsuccessfully in 0:00:00
[00:01:03] make: *** [prepare] Error 1
[00:01:03] Makefile:81: recipe for target 'prepare' failed
[00:01:03] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:03] 
[00:01:03] Caused by:
[00:01:03] Caused by:
[00:01:03]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:03] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:03] Build completed unsuccessfully in 0:00:00
[00:01:03] make: *** [prepare] Error 1
[00:01:03] Makefile:81: recipe for target 'prepare' failed
[00:01:03] The command has failed after 5 attempts.

The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
travis_time:start:29dcef4f
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@oli-obk
Copy link
Contributor

oli-obk commented Apr 30, 2018

No worries. Take all the time you need.

The rebase went wrong. I'm not sure what exactly, but there's a good chance another rebase will fix it. Try git pull --rebase origin master, assuming origin points to this repo and not your own. You can also squash your commits by using git rebase -i origin/master afterwards

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:01:03] extracting /checkout/obj/build/cache/2018-04-24/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:01:03] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:03] 
[00:01:03] Caused by:
[00:01:03]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:03] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:03] Build completed unsuccessfully in 0:00:18
[00:01:03] make: *** [prepare] Error 1
[00:01:03] Makefile:81: recipe for target 'prepare' failed
[00:01:04] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:04] 
[00:01:04] Caused by:
[00:01:04] Caused by:
[00:01:04]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:04] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:04] Build completed unsuccessfully in 0:00:00
[00:01:04] make: *** [prepare] Error 1
[00:01:04] Makefile:81: recipe for target 'prepare' failed
[00:01:04] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:04] 
[00:01:04] Caused by:
[00:01:04] Caused by:
[00:01:04]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:04] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:04] Build completed unsuccessfully in 0:00:00
[00:01:04] Makefile:81: recipe for target 'prepare' failed
[00:01:04] make: *** [prepare] Error 1
[00:01:04] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:04] 
[00:01:04] Caused by:
[00:01:04] Caused by:
[00:01:04]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:04] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:04] Build completed unsuccessfully in 0:00:00
[00:01:04] Makefile:81: recipe for target 'prepare' failed
[00:01:04] make: *** [prepare] Error 1
[00:01:04] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:04] 
[00:01:04] Caused by:
[00:01:04] Caused by:
[00:01:04]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:04] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:04] Build completed unsuccessfully in 0:00:00
[00:01:04] Makefile:81: recipe for target 'prepare' failed
[00:01:04] make: *** [prepare] Error 1
[00:01:04] The command has failed after 5 attempts.

The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
travis_time:start:28a68e52
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@samWson
Copy link
Author

samWson commented Apr 30, 2018

Still failing. I tried to rebase again with git pull --rebase rust master ('rust' here being the rust repo) while checked out in the issue-49938 branch. I had some problems trying to squash the commits and couldn't do so in the end. I got the error error: cannot 'squash' without a previous commit, no matter which particular commit I tried to squash or both. I pushed again with git push origin issue-49938 --force and it's still failing CI.

I'll have to revisit this tomorrow again.

Copy link
Contributor

@oli-obk oli-obk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The easiest way to fix it is probably to run git reset --soft origin/master, remove/unstage all unintended changes (like the submodule changes) and then commit again.

@@ -149,6 +149,183 @@ pub const FAT_PTR_ADDR: usize = 0;
/// - For a slice, this is the length.
pub const FAT_PTR_EXTRA: usize = 1;

/// Describes how the fields of a type are located in memory.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove this entire block of "new" code

@@ -837,7 +837,36 @@ impl<'a, 'tcx> PatternContext<'a, 'tcx> {
ConstVal::Value(val) => {
let variant_index = const_variant_index(
self.tcx, self.param_env, instance, val, cv.ty
).expect("const_variant_index failed");
).expect("const_discr failed");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here, just use the old code

@bors
Copy link
Contributor

bors commented Apr 30, 2018

☔ The latest upstream changes (presumably #50345) made this pull request unmergeable. Please resolve the merge conflicts.

@samWson samWson force-pushed the issue-49938 branch 2 times, most recently from f90fc3f to e9593ea Compare May 1, 2018 08:32
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:01:06] extracting /checkout/obj/build/cache/2018-04-24/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:01:07] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:07] 
[00:01:07] Caused by:
[00:01:07]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:07] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:07] Build completed unsuccessfully in 0:00:16
[00:01:07] Makefile:81: recipe for target 'prepare' failed
[00:01:07] make: *** [prepare] Error 1
[00:01:07] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:07] 
[00:01:07] Caused by:
[00:01:07] Caused by:
[00:01:07]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:07] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:07] Build completed unsuccessfully in 0:00:00
[00:01:07] Makefile:81: recipe for target 'prepare' failed
[00:01:07] make: *** [prepare] Error 1
[00:01:07] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:07] 
[00:01:07] Caused by:
[00:01:07] Caused by:
[00:01:07]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:07] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:07] Build completed unsuccessfully in 0:00:00
[00:01:07] Makefile:81: recipe for target 'prepare' failed
[00:01:07] make: *** [prepare] Error 1
[00:01:07] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:07] 
[00:01:07] Caused by:
[00:01:07] Caused by:
[00:01:07]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:07] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:07] Build completed unsuccessfully in 0:00:00
[00:01:07] Makefile:81: recipe for target 'prepare' failed
[00:01:07] make: *** [prepare] Error 1
[00:01:07] error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
[00:01:07] 
[00:01:07] Caused by:
[00:01:07] Caused by:
[00:01:07]   patch for `rustfmt-nightly` in `https://github.com/rust-lang/crates.io-index` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
[00:01:07] failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /checkout/src/bootstrap/Cargo.toml --locked
[00:01:07] Build completed unsuccessfully in 0:00:00
[00:01:07] make: *** [prepare] Error 1
[00:01:07] Makefile:81: recipe for target 'prepare' failed
[00:01:07] The command has failed after 5 attempts.

The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
travis_time:start:1f5ab135
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@samWson
Copy link
Author

samWson commented May 1, 2018

Still seem to be failing. @oli-obk i followed your directions. Then I git push origin issue-49938 --force to update the PR. That didn't work, so I pulled from Rust master then rebased on it without much trouble and pushed again.

No success.

@oli-obk
Copy link
Contributor

oli-obk commented May 1, 2018

Sorry. I meant git reset rust/master, not origin/master, since you want to compare with the master branch here. Then just outright delete all changes that you didn't want.

@bors
Copy link
Contributor

bors commented May 1, 2018

☔ The latest upstream changes (presumably #50198) made this pull request unmergeable. Please resolve the merge conflicts.

@samWson samWson force-pushed the issue-49938 branch 2 times, most recently from f9798ba to e8b473d Compare May 2, 2018 05:19
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:05:27]    Compiling backtrace v0.3.6
[00:05:35]    Compiling rustc_errors v0.0.0 (file:///checkout/src/librustc_errors)
[00:07:01]    Compiling proc_macro v0.0.0 (file:///checkout/src/libproc_macro)
[00:07:20]    Compiling syntax_ext v0.0.0 (file:///checkout/src/libsyntax_ext)
[00:07:23] error[E0433]: failed to resolve. Use of undeclared type or module `iter`
[00:07:23]    --> librustc/ty/layout.rs:222:61
[00:07:23]     |
[00:07:23] 222 |     pub fn index_by_increasing_offset<'a>(&'a self) -> impl iter::Iterator<Item=usize>+'a {
[00:07:23]     |                                                             ^^^^ Use of undeclared type or module `iter`
[00:07:24] error[E0412]: cannot find type `RangeInclusive` in this scope
[00:07:24]    --> librustc/ty/layout.rs:320:25
[00:07:24]     |
[00:07:24]     |
[00:07:24] 320 |         niche_variants: RangeInclusive<usize>,
[00:07:24]     |                         ^^^^^^^^^^^^^^ not found in this scope
[00:07:24] help: possible candidate is found in another module, you can import it into scope
[00:07:24] 11  | use std::ops::RangeInclusive;
[00:07:24]     |
[00:07:24] 
[00:07:24] 
[00:07:24] error[E0425]: cannot find value `discr` in this scope
[00:07:24]     --> librustc/ty/layout.rs:1800:65
[00:07:24]      |
[00:07:24] 1800 |                         let layout = LayoutDetails::scalar(tcx, discr.clone());
[00:07:24] 
[00:07:24] 
[00:07:24] error[E0425]: cannot find value `discr` in this scope
[00:07:24]     --> librustc/ty/layout.rs:1803:33
[00:07:24] 1803 |                             ty: discr.value.to_ty(tcx)
[00:07:24]      |                                 ^^^^^ not found in this scope
[00:07:24] 
[00:07:28] error: aborting due to 4 previous errors
[00:07:28] error: aborting due to 4 previous errors
[00:07:28] 
[00:07:28] Some errors occurred: E0412, E0425, E0433.
[00:07:28] For more information about an error, try `rustc --explain E0412`.
[00:07:28] error: Could not compile `rustc`.
[00:07:28] 
[00:07:28] Caused by:
[00:07:28]   process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc --crate-name rustc librustc/lib.rs --color always --error-format json --crate-type dylib --emit=dep-info,link -C prefer-dynamic -C opt-level=2 -C metadata=49eb0ce85cccebe8 -C extra-filename=-49eb0ce85cccebe8 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/release/deps --extern rustc_target=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_target-40a8b14ac2445c60.so --extern flate2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libflate2-1a0253e187e6500f.rlib --extern bitflags=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libbitflags-3780f5cb4ab85083.rlib --extern byteorder=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libbyteorder-9d60fa98a5a10c1e.rlib --extern rustc_apfloat=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_apfloat-6870b7044c859a70.rlib --extern jobserver=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libjobserver-ab2cf718bbbe7ba7.rlib --extern rustc_data_structures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-24d121bd290f1f21.so --extern proc_macro=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libproc_macro-c159e07ec5770fc7.so --extern log=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/liblog-af41b93aec4c1e93.rlib --extern syntax=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax-7cdf848b4ea36a34.so --extern arena=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libarena-19bf33dd406ed70a.so --extern backtrace=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libbacktrace-9432588caf307c31.rlib --extern fmt_macros=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libfmt_macros-bca5fb1f27226f8d.so --extern rustc_errors=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-5a636a569660b030.so --extern serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-cf2c0cb22fec89b8.so --extern serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-cf2c0cb22fec89b8.rlib --extern tempdir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libtempdir-0c7cf905e0cd6081.rlib --extern lazy_static=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/liblazy_static-3087f9759716c87e.rlib --extern graphviz=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libgraphviz-7c5db1f16c17a1cb.so --extern syntax_pos=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_pos-6ed50b2d1f28e8a9.so -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/backtrace-sys-838d7b7b46636e17/out/.libs -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/miniz-sys-c12600360c64db1e/out` (exit code: 101)
ustlib/x86_64-unknown-linux-gnu
314852 ./src/llvm
256636 ./obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib
241192 ./src/llvm-emscripten
---
149616 ./.git/modules/src
149128 ./src/llvm-emscripten/test
144684 ./obj/build/bootstrap/debug/incremental
123716 ./obj/build/bootstrap/debug/incremental/bootstrap-1wl4zjaz72e5d
123712 ./obj/build/bootstrap/debug/incremental/bootstrap-1wl4zjaz72e5d/s-f0ngxlpdqp-5w7v7g-1ujokh614sjd2
89692 ./src/llvm/test/CodeGen
82788 ./obj/build/x86_64-unknown-linux-gnu/stage0-rustc
71000 ./.git/modules/src/tools
70944 ./obj/build/x86_64-unknown-linux-gnu/native

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:05:22]    Compiling backtrace v0.3.6
[00:05:29]    Compiling rustc_errors v0.0.0 (file:///checkout/src/librustc_errors)
[00:06:52]    Compiling proc_macro v0.0.0 (file:///checkout/src/libproc_macro)
[00:07:10]    Compiling syntax_ext v0.0.0 (file:///checkout/src/libsyntax_ext)
[00:07:20] error[E0599]: no method named `hash_stable` found for type `&rustc_target::abi::Variants` in the current scope
[00:07:20]     --> librustc/macros.rs:104:27
[00:07:20]      |
[00:07:20] 104  |                   $( $field.hash_stable(__ctx, __hasher));*
[00:07:20]      | 
[00:07:20]      | 
[00:07:20]     ::: librustc/ty/layout.rs:1999:1
[00:07:20]      |
[00:07:20] 1999 | / impl_stable_hash_for!(struct ::ty::layout::LayoutDetails {
[00:07:20] 2000 | |     variants,
[00:07:20] 2001 | |     fields,
[00:07:20] 2002 | |     abi,
[00:07:20] 2004 | |     align
[00:07:20] 2005 | | });
[00:07:20] 2005 | | });
[00:07:20]      | |___- in this macro invocation
[00:07:20]      |
[00:07:20]      = note: the method `hash_stable` exists but the following trait bounds were not satisfied:
[00:07:20]              `&rustc_target::abi::Variants : rustc_data_structures::stable_hasher::HashStable<_>`
[00:07:20] 
[00:07:20] error[E0599]: no method named `hash_stable` found for type `&rustc_target::abi::FieldPlacement` in the current scope
[00:07:20]     --> librustc/macros.rs:104:27
[00:07:20]      |
[00:07:20] 104  |                   $( $field.hash_stable(__ctx, __hasher));*
[00:07:20]      | 
[00:07:20]      | 
[00:07:20]     ::: librustc/ty/layout.rs:1999:1
[00:07:20]      |
[00:07:20] 1999 | / impl_stable_hash_for!(struct ::ty::layout::LayoutDetails {
[00:07:20] 2000 | |     variants,
[00:07:20] 2001 | |     fields,
[00:07:20] 2002 | |     abi,
[00:07:20] 2004 | |     align
[00:07:20] 2005 | | });
[00:07:20] 2005 | | });
[00:07:20]      | |___- in this macro invocation
[00:07:20]      |
[00:07:20]      = note: the method `hash_stable` exists but the following trait bounds were not satisfied:
[00:07:20]              `&rustc_target::abi::FieldPlacement : rustc_data_structures::stable_hasher::HashStable<_>`
[00:07:20] 
[00:07:20] error[E0599]: no method named `hash_stable` found for type `&rustc_target::abi::Abi` in the current scope
[00:07:20]     --> librustc/macros.rs:104:27
[00:07:20]      |
[00:07:20] 104  |                   $( $field.hash_stable(__ctx, __hasher));*
[00:07:20]      | 
[00:07:20]      | 
[00:07:20]     ::: librustc/ty/layout.rs:1999:1
[00:07:20]      |
[00:07:20] 1999 | / impl_stable_hash_for!(struct ::ty::layout::LayoutDetails {
[00:07:20] 2000 | |     variants,
[00:07:20] 2001 | |     fields,
[00:07:20] 2002 | |     abi,
[00:07:20] 2004 | |     align
[00:07:20] 2005 | | });
[00:07:20] 2005 | | });
[00:07:20]      | |___- in this macro invocation
[00:07:20]      |
[00:07:20]      = note: the method `hash_stable` exists but the following trait bounds were not satisfied:
[00:07:20]              `&rustc_target::abi::Abi : rustc_data_structures::stable_hasher::HashStable<_>`
[00:07:20] 
[00:07:33] error[E0277]: the trait bound `ty::layout::LayoutError<'_>: serialize::UseSpecializedEncodable` is not satisfied
[00:07:33]   --> librustc/mir/interpret/error.rs:33:17
[00:07:33]    |
[00:07:33] 33 | #[derive(Clone, RustcEncodable, RustcDecodable)]
[00:07:33]    |                 ^^^^^^^^^^^^^^ the trait `serialize::UseSpecializedEncodable` is not implemented for `ty::layout::LayoutError<'_>`
[00:07:33]    |
[00:07:33]    = note: required because of the requirements on the impl of `serialize::Encodable` for `ty::layout::LayoutError<'_>`
[00:07:33]    = note: required by `serialize::Encodable::encode`
[00:07:33] 
[00:07:33] error[E0277]: the trait bound `ty::layout::LayoutError<'_>: serialize::UseSpecializedDecodable` is not satisfied
[00:07:33]   --> librustc/mir/interpret/error.rs:33:33
[00:07:33]    |
[00:07:33] 33 | #[derive(Clone, RustcEncodable, RustcDecodable)]
[00:07:33]    |                                 ^^^^^^^^^^^^^^ the trait `serialize::UseSpecializedDecodable` is not implemented for `ty::layout::LayoutError<'_>`
[00:07:33]    |
[00:07:33]    = note: required because of the requirements on the impl of `serialize::Decodable` for `ty::layout::LayoutError<'_>`
[00:07:33]    = note: required by `serialize::Decodable::decode`
[00:07:37] error[E0308]: mismatched types
[00:07:37]    --> librustc/ty/layout.rs:410:27
[00:07:37]     |
[00:07:37]     |
[00:07:37] 410 |                 variants: Variants::Single { index: 0 },
[00:07:37]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:37]     = note: expected type `rustc_target::abi::Variants`
[00:07:37]     = note: expected type `rustc_target::abi::Variants`
[00:07:37]                found type `ty::layout::Variants`
[00:07:37] error[E0308]: mismatched types
[00:07:37]    --> librustc/ty/layout.rs:411:25
[00:07:37]     |
[00:07:37]     |
[00:07:37] 411 |                   fields: FieldPlacement::Arbitrary {
[00:07:37]     |  _________________________^
[00:07:37] 412 | |                     offsets: vec![Size::from_bytes(0), b_offset],
[00:07:37] 413 | |                     memory_index: vec![0, 1]
[00:07:37] 414 | |                 },
[00:07:37]     | |_________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:07:37]     |
[00:07:37]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:07:37]                found type `ty::layout::FieldPlacement`
[00:07:37] error[E0308]: mismatched types
[00:07:37]    --> librustc/ty/layout.rs:415:22
[00:07:37]     |
[00:07:37]     |
[00:07:37] 415 |                 abi: Abi::ScalarPair(a, b),
[00:07:37]     |                      ^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:37]     = note: expected type `rustc_target::abi::Abi`
[00:07:37]     = note: expected type `rustc_target::abi::Abi`
[00:07:37]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:507:33
[00:07:38]     |
[00:07:38]     |
[00:07:38] 507 |                 if field.abi == Abi::Uninhabited {
[00:07:38]     |                                 ^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:597:60
[00:07:38]     |
[00:07:38]     |
[00:07:38] 597 |                             details: &LayoutDetails { abi: Abi::Scalar(ref a), .. }, ..
[00:07:38]     |                                                            ^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:599:60
[00:07:38]     |
[00:07:38]     |
[00:07:38] 599 |                             details: &LayoutDetails { abi: Abi::Scalar(ref b), .. }, ..
[00:07:38]     |                                                            ^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:582:37
[00:07:38]     |
[00:07:38]     |
[00:07:38] 582 |                                     Abi::Scalar(_) | Abi::Vector { .. } if optimize => {
[00:07:38]     |                                     ^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:582:54
[00:07:38]     |
[00:07:38]     |
[00:07:38] 582 |                                     Abi::Scalar(_) | Abi::Vector { .. } if optimize => {
[00:07:38]     |                                                      ^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:587:37
[00:07:38]     |
[00:07:38]     |
[00:07:38] 587 |                                     Abi::ScalarPair(..) => {
[00:07:38]     |                                     ^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:583:47
[00:07:38]     |
[00:07:38]     |
[00:07:38] 583 |                                         abi = field.abi.clone();
[00:07:38]     |                                               ^^^^^^^^^^^^^^^^^ expected enum `ty::layout::Abi`, found enum `rustc_target::abi::Abi`
[00:07:38]     |
[00:07:38]     = note: expected type `ty::layout::Abi`
[00:07:38] 
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:588:47
[00:07:38]     |
[00:07:38]     |
[00:07:38] 588 |                                         abi = field.abi.clone();
[00:07:38]     |                                               ^^^^^^^^^^^^^^^^^ expected enum `ty::layout::Abi`, found enum `rustc_target::abi::Abi`
[00:07:38]     |
[00:07:38]     = note: expected type `ty::layout::Abi`
[00:07:38] 
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:609:33
[00:07:38]     |
[00:07:38]     |
[00:07:38] 609 | /                                 FieldPlacement::Arbitrary {
[00:07:38] 610 | |                                     ref offsets,
[00:07:38] 611 | |                                     ref memory_index
[00:07:38] 612 | |                                 } => {
[00:07:38]     | |_________________________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:07:38]     |
[00:07:38]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:07:38]                found type `ty::layout::FieldPlacement`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:624:39
[00:07:38]     |
[00:07:38]     |
[00:07:38] 624 |                                 abi = pair.abi;
[00:07:38]     |                                       ^^^^^^^^ expected enum `ty::layout::Abi`, found enum `rustc_target::abi::Abi`
[00:07:38]     |
[00:07:38]     = note: expected type `ty::layout::Abi`
[00:07:38] 
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:634:27
[00:07:38]     |
[00:07:38]     |
[00:07:38] 634 |                 variants: Variants::Single { index: 0 },
[00:07:38]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:38]     = note: expected type `rustc_target::abi::Variants`
[00:07:38]     = note: expected type `rustc_target::abi::Variants`
[00:07:38]                found type `ty::layout::Variants`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:635:25
[00:07:38]     |
[00:07:38]     |
[00:07:38] 635 |                   fields: FieldPlacement::Arbitrary {
[00:07:38] 636 | |                     offsets,
[00:07:38] 637 | |                     memory_index
[00:07:38] 638 | |                 },
[00:07:38] 638 | |                 },
[00:07:38]     | |_________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:07:38]     |
[00:07:38]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:07:38]                found type `ty::layout::FieldPlacement`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:639:17
[00:07:38]     |
[00:07:38] 639 |                 abi,
[00:07:38] 639 |                 abi,
[00:07:38]     |                 ^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:730:31
[00:07:38]     |
[00:07:38]     |
[00:07:38] 730 |                     variants: Variants::Single { index: 0 },
[00:07:38]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:38]     = note: expected type `rustc_target::abi::Variants`
[00:07:38]     = note: expected type `rustc_target::abi::Variants`
[00:07:38]                found type `ty::layout::Variants`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:731:29
[00:07:38]     |
[00:07:38]     |
[00:07:38] 731 |                       fields: FieldPlacement::Array {
[00:07:38]     |  _____________________________^
[00:07:38] 732 | |                         stride: element.size,
[00:07:38] 734 | |                     },
[00:07:38] 734 | |                     },
[00:07:38]     | |_____________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:07:38]     |
[00:07:38]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:07:38]                found type `ty::layout::FieldPlacement`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:735:26
[00:07:38]     |
[00:07:38]     |
[00:07:38] 735 |                     abi: Abi::Aggregate { sized: true },
[00:07:38]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:743:31
[00:07:38]     |
[00:07:38]     |
[00:07:38] 743 |                     variants: Variants::Single { index: 0 },
[00:07:38]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:38]     = note: expected type `rustc_target::abi::Variants`
[00:07:38]     = note: expected type `rustc_target::abi::Variants`
[00:07:38]                found type `ty::layout::Variants`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:744:29
[00:07:38]     |
[00:07:38]     |
[00:07:38] 744 |                       fields: FieldPlacement::Array {
[00:07:38]     |  _____________________________^
[00:07:38] 745 | |                         stride: element.size,
[00:07:38] 747 | |                     },
[00:07:38] 747 | |                     },
[00:07:38]     | |_____________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:07:38]     |
[00:07:38]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:07:38]                found type `ty::layout::FieldPlacement`
[00:07:38] error[E0308]: mismatched types
[00:07:38]    --> librustc/ty/layout.rs:748:26
[00:07:38]     |
[00:07:38]     |
[00:07:38] 748 |                     abi: Abi::Aggregate { sized: false },
[00:07:38]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]     = note: expected type `rustc_target::abi::Abi`
[00:07:38]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:755:31
[00:07:39]     |
[00:07:39]     |
[00:07:39] 755 |                     variants: Variants::Single { index: 0 },
[00:07:39]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]                found type `ty::layout::Variants`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:756:29
[00:07:39]     |
[00:07:39]     |
[00:07:39] 756 |                       fields: FieldPlacement::Array {
[00:07:39]     |  _____________________________^
[00:07:39] 757 | |                         stride: Size::from_bytes(1),
[00:07:39] 759 | |                     },
[00:07:39] 759 | |                     },
[00:07:39]     | |_____________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:07:39]     |
[00:07:39]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:07:39]                found type `ty::layout::FieldPlacement`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:760:26
[00:07:39]     |
[00:07:39]     |
[00:07:39] 760 |                     abi: Abi::Aggregate { sized: false },
[00:07:39]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:774:21
[00:07:39]     |
[00:07:39]     |
[00:07:39] 774 |                     Abi::Aggregate { ref mut sized } => *sized = false,
[00:07:39]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:812:21
[00:07:39]     |
[00:07:39]     |
[00:07:39] 812 |                     Abi::Scalar(ref scalar) => scalar.clone(),
[00:07:39]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:825:31
[00:07:39]     |
[00:07:39]     |
[00:07:39] 825 |                     variants: Variants::Single { index: 0 },
[00:07:39]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]                found type `ty::layout::Variants`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:826:29
[00:07:39]     |
[00:07:39]     |
[00:07:39] 826 |                       fields: FieldPlacement::Array {
[00:07:39]     |  _____________________________^
[00:07:39] 827 | |                         stride: element.size,
[00:07:39] 829 | |                     },
[00:07:39] 829 | |                     },
[00:07:39]     | |_____________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:07:39]     |
[00:07:39]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:07:39]                found type `ty::layout::FieldPlacement`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:830:26
[00:07:39]     |
[00:07:39]     |
[00:07:39] 830 |                       abi: Abi::Vector {
[00:07:39]     |  __________________________^
[00:07:39] 831 | |                         element: scalar,
[00:07:39] 833 | |                     },
[00:07:39] 833 | |                     },
[00:07:39]     | |_____________________^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:885:35
[00:07:39]     |
[00:07:39]     |
[00:07:39] 885 |                         variants: Variants::Single { index: 0 },
[00:07:39]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]                found type `ty::layout::Variants`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:886:33
[00:07:39]     |
[00:07:39]     |
[00:07:39] 886 |                         fields: FieldPlacement::Union(variants[0].len()),
[00:07:39]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:07:39]     |
[00:07:39]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:07:39]                found type `ty::layout::FieldPlacement`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:887:30
[00:07:39]     |
[00:07:39]     |
[00:07:39] 887 |                         abi: Abi::Aggregate { sized: true },
[00:07:39]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:895:61
[00:07:39]     |
[00:07:39]     |
[00:07:39] 895 |                         variants[v].iter().all(|f| f.abi != Abi::Uninhabited)
[00:07:39]     |                                                             ^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:926:35
[00:07:39]     |
[00:07:39]     |
[00:07:39] 926 |                     st.variants = Variants::Single { index: v };
[00:07:39]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]                found type `ty::layout::Variants`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:930:29
[00:07:39]     |
[00:07:39]     |
[00:07:39] 930 |                             Abi::Scalar(ref mut scalar) |
[00:07:39]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:931:29
[00:07:39]     |
[00:07:39]     |
[00:07:39] 931 |                             Abi::ScalarPair(ref mut scalar, _) => {
[00:07:39]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:955:59
[00:07:39]     |
[00:07:39]     |
[00:07:39] 955 |                         if fields.iter().any(|f| f.abi == Abi::Uninhabited) {
[00:07:39]     |                                                           ^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:988:47
[00:07:39]     |
[00:07:39]     |
[00:07:39] 988 |                                 st.variants = Variants::Single { index: j };
[00:07:39]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]     = note: expected type `rustc_target::abi::Variants`
[00:07:39]                found type `ty::layout::Variants`
[00:07:39] error[E0308]: mismatched types
[00:07:39]    --> librustc/ty/layout.rs:999:33
[00:07:39]     |
[00:07:39]     |
[00:07:39] 999 |                                 Abi::Scalar(_) => Abi::Scalar(niche.clone()),
[00:07:39]     |                                 ^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]     = note: expected type `rustc_target::abi::Abi`
[00:07:39]                found type `ty::layout::Abi`
[00:07:39] error[E0308]: mismatched types
[00:07:39]     --> librustc/ty/layout.rs:1000:33
[00:07:39]      |
[00:07:39]      |
[00:07:39] 1000 |                                 Abi::ScalarPair(ref first, ref second) => {
[00:07:39]      |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:07:39]      = note: expected type `rustc_target::abi::Abi`
[00:07:39]      = note: expected type `rustc_target::abi::Abi`
[00:07:39]                 found type `ty::layout::Abi`
[00:07:40] error[E0308]: mismatched types
[00:07:40]     --> librustc/ty/layout.rs:1016:43
[00:07:40]      |
[00:07:40]      |
[00:07:40] 1016 |                                   variants: Variants::NicheFilling {
[00:07:40]      |  ___________________________________________^
[00:07:40] 1017 | |                                     dataful_variant: i,
[00:07:40] 1018 | |                                     niche_variants,
[00:07:40] 1019 | |                                     niche,
[00:07:40] 1020 | |                                     niche_start,
[00:07:40] 1021 | |                                     variants: st,
[00:07:40] 1022 | |                                 },
[00:07:40]      | |_________________________________^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:07:40]      = note: expected type `rustc_target::abi::Variants`
[00:07:40]      = note: expected type `rustc_target::abi::Variants`
[00:07:40]                 found type `ty::layout::Variants`
[00:07:40] error[E0308]: mismatched types
[00:07:40]     --> librustc/ty/layout.rs:1023:41
[00:07:40]      |

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:06:04]    Compiling arena v0.0.0 (file:///checkout/src/libarena)
[00:06:13]    Compiling rustc_errors v0.0.0 (file:///checkout/src/librustc_errors)
[00:07:52]    Compiling proc_macro v0.0.0 (file:///checkout/src/libproc_macro)
[00:08:14]    Compiling syntax_ext v0.0.0 (file:///checkout/src/libsyntax_ext)
[00:08:27] error[E0599]: no method named `hash_stable` found for type `&rustc_target::abi::Variants` in the current scope
[00:08:27]     --> librustc/macros.rs:104:27
[00:08:27]      |
[00:08:27] 104  |                   $( $field.hash_stable(__ctx, __hasher));*
[00:08:27]      | 
[00:08:27]      | 
[00:08:27]     ::: librustc/ty/layout.rs:1999:1
[00:08:27]      |
[00:08:27] 1999 | / impl_stable_hash_for!(struct ::ty::layout::LayoutDetails {
[00:08:27] 2000 | |     variants,
[00:08:27] 2001 | |     fields,
[00:08:27] 2002 | |     abi,
[00:08:27] 2004 | |     align
[00:08:27] 2005 | | });
[00:08:27] 2005 | | });
[00:08:27]      | |___- in this macro invocation
[00:08:27]      |
[00:08:27]      = note: the method `hash_stable` exists but the following trait bounds were not satisfied:
[00:08:27]              `&rustc_target::abi::Variants : rustc_data_structures::stable_hasher::HashStable<_>`
[00:08:27] 
[00:08:27] error[E0599]: no method named `hash_stable` found for type `&rustc_target::abi::FieldPlacement` in the current scope
[00:08:27]     --> librustc/macros.rs:104:27
[00:08:27]      |
[00:08:27] 104  |                   $( $field.hash_stable(__ctx, __hasher));*
[00:08:27]      | 
[00:08:27]      | 
[00:08:27]     ::: librustc/ty/layout.rs:1999:1
[00:08:27]      |
[00:08:27] 1999 | / impl_stable_hash_for!(struct ::ty::layout::LayoutDetails {
[00:08:27] 2000 | |     variants,
[00:08:27] 2001 | |     fields,
[00:08:27] 2002 | |     abi,
[00:08:27] 2004 | |     align
[00:08:27] 2005 | | });
[00:08:27] 2005 | | });
[00:08:27]      | |___- in this macro invocation
[00:08:27]      |
[00:08:27]      = note: the method `hash_stable` exists but the following trait bounds were not satisfied:
[00:08:27]              `&rustc_target::abi::FieldPlacement : rustc_data_structures::stable_hasher::HashStable<_>`
[00:08:27] 
[00:08:27] error[E0599]: no method named `hash_stable` found for type `&rustc_target::abi::Abi` in the current scope
[00:08:27]     --> librustc/macros.rs:104:27
[00:08:27]      |
[00:08:27] 104  |                   $( $field.hash_stable(__ctx, __hasher));*
[00:08:27]      | 
[00:08:27]      | 
[00:08:27]     ::: librustc/ty/layout.rs:1999:1
[00:08:27]      |
[00:08:27] 1999 | / impl_stable_hash_for!(struct ::ty::layout::LayoutDetails {
[00:08:27] 2000 | |     variants,
[00:08:27] 2001 | |     fields,
[00:08:27] 2002 | |     abi,
[00:08:27] 2004 | |     align
[00:08:27] 2005 | | });
[00:08:27] 2005 | | });
[00:08:27]      | |___- in this macro invocation
[00:08:27]      |
[00:08:27]      = note: the method `hash_stable` exists but the following trait bounds were not satisfied:
[00:08:27]              `&rustc_target::abi::Abi : rustc_data_structures::stable_hasher::HashStable<_>`
[00:08:27] 
[00:08:43] error[E0277]: the trait bound `ty::layout::LayoutError<'_>: serialize::UseSpecializedEncodable` is not satisfied
[00:08:43]   --> librustc/mir/interpret/error.rs:33:17
[00:08:43]    |
[00:08:43] 33 | #[derive(Clone, RustcEncodable, RustcDecodable)]
[00:08:43]    |                 ^^^^^^^^^^^^^^ the trait `serialize::UseSpecializedEncodable` is not implemented for `ty::layout::LayoutError<'_>`
[00:08:43]    |
[00:08:43]    = note: required because of the requirements on the impl of `serialize::Encodable` for `ty::layout::LayoutError<'_>`
[00:08:43]    = note: required by `serialize::Encodable::encode`
[00:08:43] 
[00:08:43] error[E0277]: the trait bound `ty::layout::LayoutError<'_>: serialize::UseSpecializedDecodable` is not satisfied
[00:08:43]   --> librustc/mir/interpret/error.rs:33:33
[00:08:43]    |
[00:08:43] 33 | #[derive(Clone, RustcEncodable, RustcDecodable)]
[00:08:43]    |                                 ^^^^^^^^^^^^^^ the trait `serialize::UseSpecializedDecodable` is not implemented for `ty::layout::LayoutError<'_>`
[00:08:43]    |
[00:08:43]    = note: required because of the requirements on the impl of `serialize::Decodable` for `ty::layout::LayoutError<'_>`
[00:08:43]    = note: required by `serialize::Decodable::decode`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:410:27
[00:08:48]     |
[00:08:48]     |
[00:08:48] 410 |                 variants: Variants::Single { index: 0 },
[00:08:48]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:48]     = note: expected type `rustc_target::abi::Variants`
[00:08:48]     = note: expected type `rustc_target::abi::Variants`
[00:08:48]                found type `ty::layout::Variants`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:411:25
[00:08:48]     |
[00:08:48]     |
[00:08:48] 411 |                   fields: FieldPlacement::Arbitrary {
[00:08:48]     |  _________________________^
[00:08:48] 412 | |                     offsets: vec![Size::from_bytes(0), b_offset],
[00:08:48] 413 | |                     memory_index: vec![0, 1]
[00:08:48] 414 | |                 },
[00:08:48]     | |_________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:08:48]     |
[00:08:48]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:08:48]                found type `ty::layout::FieldPlacement`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:415:22
[00:08:48]     |
[00:08:48]     |
[00:08:48] 415 |                 abi: Abi::ScalarPair(a, b),
[00:08:48]     |                      ^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]                found type `ty::layout::Abi`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:507:33
[00:08:48]     |
[00:08:48]     |
[00:08:48] 507 |                 if field.abi == Abi::Uninhabited {
[00:08:48]     |                                 ^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]                found type `ty::layout::Abi`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:597:60
[00:08:48]     |
[00:08:48]     |
[00:08:48] 597 |                             details: &LayoutDetails { abi: Abi::Scalar(ref a), .. }, ..
[00:08:48]     |                                                            ^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]                found type `ty::layout::Abi`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:599:60
[00:08:48]     |
[00:08:48]     |
[00:08:48] 599 |                             details: &LayoutDetails { abi: Abi::Scalar(ref b), .. }, ..
[00:08:48]     |                                                            ^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]                found type `ty::layout::Abi`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:582:37
[00:08:48]     |
[00:08:48]     |
[00:08:48] 582 |                                     Abi::Scalar(_) | Abi::Vector { .. } if optimize => {
[00:08:48]     |                                     ^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]                found type `ty::layout::Abi`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:582:54
[00:08:48]     |
[00:08:48]     |
[00:08:48] 582 |                                     Abi::Scalar(_) | Abi::Vector { .. } if optimize => {
[00:08:48]     |                                                      ^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]                found type `ty::layout::Abi`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:587:37
[00:08:48]     |
[00:08:48]     |
[00:08:48] 587 |                                     Abi::ScalarPair(..) => {
[00:08:48]     |                                     ^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]     = note: expected type `rustc_target::abi::Abi`
[00:08:48]                found type `ty::layout::Abi`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:583:47
[00:08:48]     |
[00:08:48]     |
[00:08:48] 583 |                                         abi = field.abi.clone();
[00:08:48]     |                                               ^^^^^^^^^^^^^^^^^ expected enum `ty::layout::Abi`, found enum `rustc_target::abi::Abi`
[00:08:48]     |
[00:08:48]     = note: expected type `ty::layout::Abi`
[00:08:48] 
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:588:47
[00:08:48]     |
[00:08:48]     |
[00:08:48] 588 |                                         abi = field.abi.clone();
[00:08:48]     |                                               ^^^^^^^^^^^^^^^^^ expected enum `ty::layout::Abi`, found enum `rustc_target::abi::Abi`
[00:08:48]     |
[00:08:48]     = note: expected type `ty::layout::Abi`
[00:08:48] 
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:609:33
[00:08:48]     |
[00:08:48]     |
[00:08:48] 609 | /                                 FieldPlacement::Arbitrary {
[00:08:48] 610 | |                                     ref offsets,
[00:08:48] 611 | |                                     ref memory_index
[00:08:48] 612 | |                                 } => {
[00:08:48]     | |_________________________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:08:48]     |
[00:08:48]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:08:48]                found type `ty::layout::FieldPlacement`
[00:08:48] error[E0308]: mismatched types
[00:08:48]    --> librustc/ty/layout.rs:624:39
[00:08:48]     |
[00:08:48]     |
[00:08:48] 624 |                                 abi = pair.abi;
[00:08:48]     |                                       ^^^^^^^^ expected enum `ty::layout::Abi`, found enum `rustc_target::abi::Abi`
[00:08:48]     |
[00:08:48]     = note: expected type `ty::layout::Abi`
[00:08:48] 
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:634:27
[00:08:49]     |
[00:08:49]     |
[00:08:49] 634 |                 variants: Variants::Single { index: 0 },
[00:08:49]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:49]     = note: expected type `rustc_target::abi::Variants`
[00:08:49]     = note: expected type `rustc_target::abi::Variants`
[00:08:49]                found type `ty::layout::Variants`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:635:25
[00:08:49]     |
[00:08:49]     |
[00:08:49] 635 |                   fields: FieldPlacement::Arbitrary {
[00:08:49] 636 | |                     offsets,
[00:08:49] 637 | |                     memory_index
[00:08:49] 638 | |                 },
[00:08:49] 638 | |                 },
[00:08:49]     | |_________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:08:49]     |
[00:08:49]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:08:49]                found type `ty::layout::FieldPlacement`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:639:17
[00:08:49]     |
[00:08:49] 639 |                 abi,
[00:08:49] 639 |                 abi,
[00:08:49]     |                 ^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]                found type `ty::layout::Abi`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:730:31
[00:08:49]     |
[00:08:49]     |
[00:08:49] 730 |                     variants: Variants::Single { index: 0 },
[00:08:49]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:49]     = note: expected type `rustc_target::abi::Variants`
[00:08:49]     = note: expected type `rustc_target::abi::Variants`
[00:08:49]                found type `ty::layout::Variants`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:731:29
[00:08:49]     |
[00:08:49]     |
[00:08:49] 731 |                       fields: FieldPlacement::Array {
[00:08:49]     |  _____________________________^
[00:08:49] 732 | |                         stride: element.size,
[00:08:49] 734 | |                     },
[00:08:49] 734 | |                     },
[00:08:49]     | |_____________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:08:49]     |
[00:08:49]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:08:49]                found type `ty::layout::FieldPlacement`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:735:26
[00:08:49]     |
[00:08:49]     |
[00:08:49] 735 |                     abi: Abi::Aggregate { sized: true },
[00:08:49]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]                found type `ty::layout::Abi`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:743:31
[00:08:49]     |
[00:08:49]     |
[00:08:49] 743 |                     variants: Variants::Single { index: 0 },
[00:08:49]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:49]     = note: expected type `rustc_target::abi::Variants`
[00:08:49]     = note: expected type `rustc_target::abi::Variants`
[00:08:49]                found type `ty::layout::Variants`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:744:29
[00:08:49]     |
[00:08:49]     |
[00:08:49] 744 |                       fields: FieldPlacement::Array {
[00:08:49]     |  _____________________________^
[00:08:49] 745 | |                         stride: element.size,
[00:08:49] 747 | |                     },
[00:08:49] 747 | |                     },
[00:08:49]     | |_____________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:08:49]     |
[00:08:49]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:08:49]                found type `ty::layout::FieldPlacement`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:748:26
[00:08:49]     |
[00:08:49]     |
[00:08:49] 748 |                     abi: Abi::Aggregate { sized: false },
[00:08:49]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]                found type `ty::layout::Abi`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:755:31
[00:08:49]     |
[00:08:49]     |
[00:08:49] 755 |                     variants: Variants::Single { index: 0 },
[00:08:49]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:49]     = note: expected type `rustc_target::abi::Variants`
[00:08:49]     = note: expected type `rustc_target::abi::Variants`
[00:08:49]                found type `ty::layout::Variants`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:756:29
[00:08:49]     |
[00:08:49]     |
[00:08:49] 756 |                       fields: FieldPlacement::Array {
[00:08:49]     |  _____________________________^
[00:08:49] 757 | |                         stride: Size::from_bytes(1),
[00:08:49] 759 | |                     },
[00:08:49] 759 | |                     },
[00:08:49]     | |_____________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:08:49]     |
[00:08:49]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:08:49]                found type `ty::layout::FieldPlacement`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:760:26
[00:08:49]     |
[00:08:49]     |
[00:08:49] 760 |                     abi: Abi::Aggregate { sized: false },
[00:08:49]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]                found type `ty::layout::Abi`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:774:21
[00:08:49]     |
[00:08:49]     |
[00:08:49] 774 |                     Abi::Aggregate { ref mut sized } => *sized = false,
[00:08:49]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]                found type `ty::layout::Abi`
[00:08:49] error[E0308]: mismatched types
[00:08:49]    --> librustc/ty/layout.rs:812:21
[00:08:49]     |
[00:08:49]     |
[00:08:49] 812 |                     Abi::Scalar(ref scalar) => scalar.clone(),
[00:08:49]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]     = note: expected type `rustc_target::abi::Abi`
[00:08:49]                found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:825:31
[00:08:50]     |
[00:08:50]     |
[00:08:50] 825 |                     variants: Variants::Single { index: 0 },
[00:08:50]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:50]     = note: expected type `rustc_target::abi::Variants`
[00:08:50]     = note: expected type `rustc_target::abi::Variants`
[00:08:50]                found type `ty::layout::Variants`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:826:29
[00:08:50]     |
[00:08:50]     |
[00:08:50] 826 |                       fields: FieldPlacement::Array {
[00:08:50]     |  _____________________________^
[00:08:50] 827 | |                         stride: element.size,
[00:08:50] 829 | |                     },
[00:08:50] 829 | |                     },
[00:08:50]     | |_____________________^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:08:50]     |
[00:08:50]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:08:50]                found type `ty::layout::FieldPlacement`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:830:26
[00:08:50]     |
[00:08:50]     |
[00:08:50] 830 |                       abi: Abi::Vector {
[00:08:50]     |  __________________________^
[00:08:50] 831 | |                         element: scalar,
[00:08:50] 833 | |                     },
[00:08:50] 833 | |                     },
[00:08:50]     | |_____________________^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]                found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:885:35
[00:08:50]     |
[00:08:50]     |
[00:08:50] 885 |                         variants: Variants::Single { index: 0 },
[00:08:50]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:50]     = note: expected type `rustc_target::abi::Variants`
[00:08:50]     = note: expected type `rustc_target::abi::Variants`
[00:08:50]                found type `ty::layout::Variants`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:886:33
[00:08:50]     |
[00:08:50]     |
[00:08:50] 886 |                         fields: FieldPlacement::Union(variants[0].len()),
[00:08:50]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::FieldPlacement`, found enum `ty::layout::FieldPlacement`
[00:08:50]     |
[00:08:50]     = note: expected type `rustc_target::abi::FieldPlacement`
[00:08:50]                found type `ty::layout::FieldPlacement`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:887:30
[00:08:50]     |
[00:08:50]     |
[00:08:50] 887 |                         abi: Abi::Aggregate { sized: true },
[00:08:50]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]                found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:895:61
[00:08:50]     |
[00:08:50]     |
[00:08:50] 895 |                         variants[v].iter().all(|f| f.abi != Abi::Uninhabited)
[00:08:50]     |                                                             ^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]                found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:926:35
[00:08:50]     |
[00:08:50]     |
[00:08:50] 926 |                     st.variants = Variants::Single { index: v };
[00:08:50]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:50]     = note: expected type `rustc_target::abi::Variants`
[00:08:50]     = note: expected type `rustc_target::abi::Variants`
[00:08:50]                found type `ty::layout::Variants`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:930:29
[00:08:50]     |
[00:08:50]     |
[00:08:50] 930 |                             Abi::Scalar(ref mut scalar) |
[00:08:50]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]                found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:931:29
[00:08:50]     |
[00:08:50]     |
[00:08:50] 931 |                             Abi::ScalarPair(ref mut scalar, _) => {
[00:08:50]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]                found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:955:59
[00:08:50]     |
[00:08:50]     |
[00:08:50] 955 |                         if fields.iter().any(|f| f.abi == Abi::Uninhabited) {
[00:08:50]     |                                                           ^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]                found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:988:47
[00:08:50]     |
[00:08:50]     |
[00:08:50] 988 |                                 st.variants = Variants::Single { index: j };
[00:08:50]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:50]     = note: expected type `rustc_target::abi::Variants`
[00:08:50]     = note: expected type `rustc_target::abi::Variants`
[00:08:50]                found type `ty::layout::Variants`
[00:08:50] error[E0308]: mismatched types
[00:08:50]    --> librustc/ty/layout.rs:999:33
[00:08:50]     |
[00:08:50]     |
[00:08:50] 999 |                                 Abi::Scalar(_) => Abi::Scalar(niche.clone()),
[00:08:50]     |                                 ^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]     = note: expected type `rustc_target::abi::Abi`
[00:08:50]                found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]     --> librustc/ty/layout.rs:1000:33
[00:08:50]      |
[00:08:50]      |
[00:08:50] 1000 |                                 Abi::ScalarPair(ref first, ref second) => {
[00:08:50]      |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `rustc_target::abi::Abi`, found enum `ty::layout::Abi`
[00:08:50]      = note: expected type `rustc_target::abi::Abi`
[00:08:50]      = note: expected type `rustc_target::abi::Abi`
[00:08:50]                 found type `ty::layout::Abi`
[00:08:50] error[E0308]: mismatched types
[00:08:50]     --> librustc/ty/layout.rs:1016:43
[00:08:50]      |
[00:08:50]      |
[00:08:50] 1016 |                                   variants: Variants::NicheFilling {
[00:08:50]      |  ___________________________________________^
[00:08:50] 1017 | |                                     dataful_variant: i,
[00:08:50] 1018 | |                                     niche_variants,
[00:08:50] 1019 | |                                     niche,
[00:08:50] 1020 | |                                     niche_start,
[00:08:50] 1021 | |                                     variants: st,
[00:08:50] 1022 | |                                 },
[00:08:50]      | |_________________________________^ expected enum `rustc_target::abi::Variants`, found enum `ty::layout::Variants`
[00:08:50]      = note: expected type `rustc_target::abi::Variants`
[00:08:50]      = note: expected type `rustc_target::abi::Variants`
[00:08:50]                 found type `ty::layout::Variants`
[00:08:50] error[E0308]: mismatched types
[00:08:50]     --> librustc/ty/layout.rs:1023:41
[00:08:50]      |
---
149616 ./.git/modules/src
149112 ./src/llvm-emscripten/test
144684 ./obj/build/bootstrap/debug/incremental
123716 ./obj/build/bootstrap/debug/incremental/bootstrap-1wl4zjaz72e5d
123712 ./obj/build/bootstrap/debug/incremental/bootstrap-1wl4zjaz72e5d/s-f0nnr8rzdp-1cd6nir-1ujokh614sjd2
89684 ./src/llvm/test/CodeGen
82788 ./obj/build/x86_64-unknown-linux-gnu/stage0-rustc
71000 ./.git/modules/src/tools
70944 ./obj/build/x86_64-unknown-linux-gnu/native
---
11744 ./src/doc
11000 ./.git/objects
10760 ./.git/objects/pack
10052 ./src/test/compile-fail
10012 ./src/llvm/test/MC/AMDGPU
9648 ./src/llvm/test/MC/Disassembler/AMDGPU
travis_time:end:00400a3c:start=1525253853370814361,finish=1525253853610249154,duration=239434793
travis_fold:end:after_failure.1
travis_fold:start:after_failure.2
travis_time:start:0287eb1b

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@samWson
Copy link
Author

samWson commented May 2, 2018

After git reset rust/master, I left out all the changes that were not mine. That seemed to have helped. Unfortunately now I suspect all the errors I'm getting are because of the changes I didn't include in my rebase. I'm going to need suggestions for how to move on from here.

@@ -838,6 +838,35 @@ impl<'a, 'tcx> PatternContext<'a, 'tcx> {
let variant_index = const_variant_index(
self.tcx, self.param_env, instance, val, cv.ty
).expect("const_variant_index failed");
let layout = self
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can delete this code

@@ -148,7 +151,183 @@ pub const FAT_PTR_ADDR: usize = 0;
/// - For a slice, this is the length.
pub const FAT_PTR_EXTRA: usize = 1;

#[derive(Copy, Clone, Debug, RustcEncodable, RustcDecodable)]
#[derive(PartialEq, Eq, Hash, Debug)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You ca delete all the green code here

@@ -20,6 +20,9 @@ use std::fmt;
use std::i128;
use std::mem;

use std::iter;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can probably be removed, too

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:05:46]    Compiling arena v0.0.0 (file:///checkout/src/libarena)
[00:05:54]    Compiling rustc_errors v0.0.0 (file:///checkout/src/librustc_errors)
[00:07:30]    Compiling proc_macro v0.0.0 (file:///checkout/src/libproc_macro)
[00:07:47]    Compiling syntax_ext v0.0.0 (file:///checkout/src/libsyntax_ext)
[00:08:17] error[E0559]: variant `rustc_target::abi::Variants::Tagged` has no field named `tag`
[00:08:17]     --> librustc/ty/layout.rs:1060:25
[00:08:17]      |
[00:08:17] 1060 |                         tag: tag,
[00:08:17]      |                         ^^^ `rustc_target::abi::Variants::Tagged` does not have this field
[00:08:18] error[E0308]: mismatched types
[00:08:18]     --> librustc/ty/layout.rs:1061:25
[00:08:18]      |
[00:08:18] 1061 |                         variants
[00:08:18] 1061 |                         variants
[00:08:18]      |                         ^^^^^^^^ expected struct `rustc_target::abi::LayoutDetails`, found struct `std::vec::Vec`
[00:08:18]      |
[00:08:18]      = note: expected type `std::vec::Vec<rustc_target::abi::LayoutDetails>`
[00:08:18]                 found type `std::vec::Vec<std::vec::Vec<rustc_target::abi::TyLayout<'_, &ty::TyS<'_>>>>`
[00:08:18] 
[00:08:18] error[E0026]: variant `rustc_target::abi::Variants::Tagged` does not have a field named `tag`
[00:08:18]     --> librustc/ty/layout.rs:1221:40
[00:08:18]      |
[00:08:18] 1221 |                     Variants::Tagged { ref tag, .. } => Some(tag.value.size(self)),
[00:08:18]      |                                        ^^^^^^^ variant `rustc_target::abi::Variants::Tagged` does not have this field
[00:08:18] 
[00:08:18] error[E0026]: variant `rustc_target::abi::Variants::Tagged` does not have a field named `tag`
[00:08:18]     --> librustc/ty/layout.rs:1625:40
[00:08:18]      |
[00:08:18] 1625 |                     Variants::Tagged { ref tag, .. } |
[00:08:18]      |                                        ^^^^^^^ variant `rustc_target::abi::Variants::Tagged` does not have this field
[00:08:18] 
[00:08:18] error[E0026]: variant `rustc_target::abi::Variants::Tagged` does not have a field named `tag`
[00:08:18]     --> librustc/ty/layout.rs:1739:17
[00:08:18] 1739 |                 ref tag,
[00:08:18] 1739 |                 ref tag,
[00:08:18]      |                 ^^^^^^^ variant `rustc_target::abi::Variants::Tagged` does not have this field
[00:08:18] 
[00:08:18] error[E0027]: pattern does not mention field `discr`
[00:08:18]     --> librustc/ty/layout.rs:1738:13
[00:08:18] 1738 | /             Tagged {
[00:08:18] 1739 | |                 ref tag,
[00:08:18] 1740 | |                 ref variants,
[00:08:18] 1741 | |             } => {
[00:08:18] 1741 | |             } => {
[00:08:18]      | |_____________^ missing field `discr`
[00:08:18] 
obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-b789a86e1ab64d11.so --extern bitflags=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libbitflags-401bddd0d1809e53.rlib --extern byteorder=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libbyteorder-c0908caf79d2e3f2.rlib --extern syntax=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax-566a8d95e6a18781.so --extern backtrace=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libbacktrace-19e2a5cf3e91d41b.rlib --extern proc_macro=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libproc_macro-8d928be2ff984c7f.so --extern log=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/liblog-4f0866e958f59455.rlib --extern graphviz=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libgraphviz-21ce4bd19908f0cc.so --extern serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-946eff7380f27f57.so --extern serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-946eff7380f27f57.rlib --extern flate2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libflate2-206e1aadbc3c6b8a.rlib --extern syntax_pos=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_pos-b9901acb1e9e6766.so --extern rustc_apfloat=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_apfloat-b7c66a9cab3ff5a6.rlib --extern fmt_macros=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libfmt_macros-33787dcdac3a4dd2.so --extern arena=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libarena-16776be762f4e8c2.so --extern rustc_target=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_target-aed9d8ab86b35123.so -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/backtrace-sys-31a3817325787acc/out/.libs -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/miniz-sys-90c24e5cae9d047e/out` (exit code: 101)
[00:08:21] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "--release" "--locked" "--color" "always" "--features" " jemalloc" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:08:21] expected success, got: exit code: 101
[00:08:21] thread 'main' panicked at 'cargo must succeed', bootstrap/compile.rs:1091:9
[00:08:21] travis_fold:end:stage0-rustc

[00:08:21] travis_time:end:stage0-rustc:start=1525430685389975501,finish=1525430883739677117,duration=198349702310776 .
1423056 ./obj
---
149532 ./.git/modules/src
149112 ./src/llvm-emscripten/test
144684 ./obj/build/bootstrap/debug/incremental
123716 ./obj/build/bootstrap/debug/incremental/bootstrap-1wl4zjaz72e5d
123712 ./obj/build/bootstrap/debug/incremental/bootstrap-1wl4zjaz72e5d/s-f0px3k31k2-1xgd6ur-1ujokh614sjd2
89684 ./src/llvm/test/CodeGen
83604 ./obj/build/x86_64-unknown-linux-gnu/stage0-rustc
71096 ./.git/modules/src/tools
70944 ./obj/build/x86_64-unknown-linux-gnu/native

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

Tagged {
discr: Scalar,
tag: Scalar,
variants: Vec<LayoutDetails>,
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if this declaration of Tagged here is describing the in memory representation of a tagged union, but my code wouldn't compile because of something I changed in layout.rs I think. So I made the change as shown here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's fine, this enum seems to have been moved from librustc to here

@samWson
Copy link
Author

samWson commented May 5, 2018

Green at last! Fixes for #49938 ready. Please review and let me know if any more changes are required.

@@ -1057,7 +1057,7 @@ impl<'a, 'tcx> LayoutCx<'tcx, TyCtxt<'a, 'tcx, 'tcx>> {
}
tcx.intern_layout(LayoutDetails {
variants: Variants::Tagged {
discr: tag,
tag: tag,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be written as just tag,

// Discriminant field for enums (where applicable).
Variants::Tagged { ref discr, .. } |
Variants::NicheFilling { niche: ref discr, .. } => {
// Tag field for enums (where applicable).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still "Discriminant" (which is either a tag or a niche), I would change ref discr to tag: ref discr.

Refer rust-lang#49938

Previously tagged unions' tag was refered to as a discr(iminant).
Here the changes use tag instead which is the correct terminology
when refering to the memory representation of tagged unions.
@samWson
Copy link
Author

samWson commented May 6, 2018

@eddyb changes have been made and latest build is green. Please review and comment.

@eddyb
Copy link
Member

eddyb commented May 6, 2018

@bors r+ Thanks!

@bors
Copy link
Contributor

bors commented May 6, 2018

📌 Commit 38a6eca has been approved by eddyb

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 6, 2018
@bors
Copy link
Contributor

bors commented May 6, 2018

⌛ Testing commit 38a6eca with merge 50d5a0264a922c8c663688e1ce948b3636a9aad4...

@bors
Copy link
Contributor

bors commented May 6, 2018

💔 Test failed - status-travis

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 6, 2018
@rust-highfive

This comment has been minimized.

1 similar comment
@rust-highfive

This comment has been minimized.

@kennytm
Copy link
Member

kennytm commented May 6, 2018

@bors retry

git segfaulted.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 6, 2018
@bors
Copy link
Contributor

bors commented May 6, 2018

⌛ Testing commit 38a6eca with merge 428ea5f...

bors added a commit that referenced this pull request May 6, 2018
Issue 49938: Reference tagged unions discr(iminant) as tag

Here the changes reference the Tagged type _discriminant_ as _tag_ instead. This is the correct terminology when referencing how tagged unions are represented in memory.
@bors
Copy link
Contributor

bors commented May 6, 2018

☀️ Test successful - status-appveyor, status-travis
Approved by: eddyb
Pushing 428ea5f to master...

@bors bors merged commit 38a6eca into rust-lang:master May 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants