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

Remove some unused code #50198

Merged
merged 16 commits into from
May 1, 2018
Merged

Remove some unused code #50198

merged 16 commits into from
May 1, 2018

Conversation

oli-obk
Copy link
Contributor

@oli-obk oli-obk commented Apr 24, 2018

No description provided.

@rust-highfive
Copy link
Collaborator

r? @eddyb

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 24, 2018
@@ -20,7 +20,7 @@ use std::ops::Neg;
pub struct DoubleFloat<F>(F, F);
pub type DoubleDouble = DoubleFloat<ieee::Double>;

// These are legacy semantics for the Fallback, inaccrurate implementation of
// These are legacy semantics for the Fallback, inaccurate implementation of
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Member

Choose a reason for hiding this comment

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

Perhaps it was meant to be ironic... 😏

}

_ => Err(CmpBetweenUnequalTypes),
_ => None,
Copy link
Member

Choose a reason for hiding this comment

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

I don't like this - why not retire ConstFloat instead, and use rustc_apfloat directly in miri? Also, you could use self.try_cmp(*other).ok() in the implementation of partial_ord if you really wanted to

@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:19:48]    Compiling rustc_trans v0.0.0 (file:///checkout/src/librustc_trans)
[00:19:48]    Compiling cc v1.0.10
[00:19:48]    Compiling num_cpus v1.8.0
[00:19:51]    Compiling rustc_llvm v0.0.0 (file:///checkout/src/librustc_llvm)
[00:19:58] error[E0432]: unresolved import `rustc_const_math::MAX_F32_PLUS_HALF_ULP`
[00:19:58]   --> librustc_trans/mir/rvalue.rs:18:5
[00:19:58]    |
[00:19:58] 18 | use rustc_const_math::MAX_F32_PLUS_HALF_ULP;
[00:19:58]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `MAX_F32_PLUS_HALF_ULP` in the root
[00:20:02] error: aborting due to previous error
[00:20:02] 
[00:20:02] For more information about this error, try `rustc --explain E0432`.
[00:20:02] error: Could not compile `rustc_trans`.
[00:20:02] error: Could not compile `rustc_trans`.
[00:20:02] 
[00:20:02] Caused by:
[00:20:02]   process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc --crate-name rustc_trans librustc_trans/lib.rs --color always --error-format json --crate-type dylib --emit=dep-info,link -C prefer-dynamic -C opt-level=2 --cfg feature="jemalloc" --cfg feature="rustc_back" -C metadata=44faf0b67e52f25e -C extra-filename=-44faf0b67e52f25e --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_llvm=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_llvm-4e82a86c422a4633.rlib --extern rustc_allocator=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_allocator-0bebbb5d7e5d7571.so --extern log=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/liblog-3e35efb9e5bc7a9a.rlib --extern syntax=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax-d3b6fcf798f7d22a.so --extern rustc_trans_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_trans_utils-91360f6f51642b1c.so --extern rustc_demangle=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_demangle-9090c44b5d5f6a2c.rlib --extern libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/liblibc-9b9c9af3e08f5b49.rlib --extern env_logger=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libenv_logger-3d78a256dcd72406.rlib --extern serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-c04ded78717d5d67.so --extern serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-c04ded78717d5d67.rlib --extern rustc_const_math=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_const_math-895f7ddc4467bb8d.so --extern rustc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc-3e9ac89279d9d9fd.so --extern jobserver=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libjobserver-5bcc8c1ccd509892.rlib --extern rustc_errors=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-609e2421d03f9c9a.so --extern rustc_back=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_back-861dba9fe03aa669.so --extern cc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libcc-67fd38886086f52b.rlib --extern tempdir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libtempdir-a9575695dd92c62e.rlib --extern rustc_mir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_mir-809b6518a044b653.so --extern rustc_incremental=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_incremental-4889218d54f10b16.so --extern rustc_apfloat=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_apfloat-1299638d641ea770.rlib --extern syntax_pos=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_pos-9f3518d56a01456f.so --extern bitflags=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libbitflags-9866e194db82a141.rlib --extern flate2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libflate2-9a88d517684202da.rlib --extern rustc_platform_intrinsics=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_platform_intrinsics-6f259a2a9f59267f.so --extern rustc_data_structures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-93cb1ddd29ab61a4.so --extern num_cpus=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libnum_cpus-1c305a7c9e7bb15b.rlib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/miniz-sys-4a7fffed6b170d5b/out -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/backtrace-sys-22398a187b4139a2/out/.libs -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-d21add30ecf7f845/out -L native=/usr/lib/llvm-3.9/lib` (exit code: 101)
[00:20:02] 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" "--manifest-path" "/checkout/src/librustc_trans/Cargo.toml" "--features" " jemalloc" "--message-format" "json"
[00:20:02] expected success, got: exit code: 101
[00:20:02] thread 'main' panicked at 'cargo must succeed', bootstrap/compile.rs:1091:9
[00:20:02] travis_fold:start:stage0-rustc_trans
travis_time:start:stage0-rustc_trans
travis_fold:end:stage0-rustc_trans


[00:20:02] travis_time:end:stage0-rustc_trans:start=1524664426843675726,finish=1524664441395413458,duration=14551737732

[00:20:02] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap build
[00:20:02] Build completed unsuccessfully in 0:15:17
[00:20:02] Makefile:28: recipe for target 'all' failed
[00:20:02] make: *** [all] Error 1

The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:08ed4051
$ 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)

let parse_float = |num: &str, fty| -> ConstFloat {
ConstFloat::from_str(num, fty).unwrap_or_else(|_| {
// FIXME(#31407) this is only necessary because float parsing is buggy
tcx.sess.span_fatal(sp, "could not evaluate float literal (see issue #31407)");
Copy link
Member

Choose a reason for hiding this comment

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

Where did this ICE go?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ups. it's back (luckily we do have a test for that)

@eddyb
Copy link
Member

eddyb commented Apr 25, 2018

@oli-obk so rustc_const_math only contains errors now, could those be moved to miri itself?
Especially the Op enum, that just duplicates similar ones in rustc::mir.

@oli-obk
Copy link
Contributor Author

oli-obk commented Apr 26, 2018

rustc_const_math is no more!

pub use self::ConstMathErr::*;

#[derive(Debug, PartialEq, Eq, Clone, RustcEncodable, RustcDecodable)]
pub enum Op {
Copy link
Member

Choose a reason for hiding this comment

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

You can just reuse mir::BinOp and have another variant for negation (just like division by zero has its own variant). Also, you can move these variants to EvalErrorKind.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

BinOp has more variants, so I'd have to reinsert the unreachable! branch or fill out error descriptions for things that'll never happen

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Also the ConstMathErr type is used elsewhere (e.g. mir assertions). Do we really want to allow all possible EvalErrorKinds in mir assertions?

Copy link
Member

Choose a reason for hiding this comment

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

I guess you could rename ConstMathErr to ArithErr and Op to ArithOp.

Copy link
Member

Choose a reason for hiding this comment

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

That or just inline Op into the error enum, since I don't think it's used elsewhere (so e.g. AddOverflow).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I didn't miss these comments, I just wanted to see how far it goes, and simply using EvalErrorKind everywhere makes a lot of code much simpler. Should I undo it and keep ConstMathErr/ArithErr?

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, just because we can get a simple &str from them, and it's a finite set of things that we can generate builtin panics for. Unleessss we can turn Assert into something we can stash miri errors into! E.g.:

ArrayIndexOutOfBounds(Span, u64, u64),

could be used instead of:

rust/src/librustc/mir/mod.rs

Lines 1192 to 1195 in 88cd367

BoundsCheck {
len: Operand<'tcx>,
index: Operand<'tcx>
},

by "simply" having EvalErrorKind parametrized on some O which would be u64 (by default / everywhere) except in mir::TerminatorKind::Assert where it would be Operand<'tcx>.
One downside of it is you have to write MIR visiting code for EvalErrorKind but it shouldn't be too bad.

Copy link
Member

Choose a reason for hiding this comment

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

If you don't like that crazy idea, I prefer ArithErr.

@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.
travis_time:start:test_mir-opt
Check compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:07:53] 
[01:07:53] running 50 tests
[01:08:16] ...F..............................................
[01:08:16] 
[01:08:16] ---- [mir-opt] mir-opt/deaggregator_test.rs stdout ----
[01:08:16] ---- [mir-opt] mir-opt/deaggregator_test.rs stdout ----
[01:08:16]  thread '[mir-opt] mir-opt/deaggregator_test.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:08:16] Expected Line: "    _0 = Baz { x: move _2, y: const 0f32, z: const false };"
[01:08:16] Expected:
[01:08:16] ... (elided)
[01:08:16] bb0: {
[01:08:16] ... (elided)
[01:08:16]     _2 = _1;
[01:08:16] ... (elided)
[01:08:16]     _0 = Baz { x: move _2, y: const 0f32, z: const false };
[01:08:16] ... (elided)
[01:08:16]     return;
[01:08:16] }
[01:08:16] Actual:
[01:08:16] fn bar(_1: usize) -> Baz{
[01:08:16]     let mut _0: Baz;
[01:08:16]     let mut _2: usize;
[01:08:16]     bb0: {                              
[01:08:16]         StorageLive(_2);
[01:08:16]         _2 = _1;
[01:08:16]         _0 = Baz { x: move _2, y: const 0, z: const false };
[01:08:16]         StorageDead(_2);
[01:08:16]         return;
[01:08:16]     bb1: {
[01:08:16]         resume;
[01:08:16]     }
[01:08:16]     }
[01:08:16] }', tools/compiletest/src/runtest.rs:2733:13
[01:08:16] 
[01:08:16] 
[01:08:16] failures:
[01:08:16]     [mir-opt] mir-opt/deaggregator_test.rs
[01:08:16]     [mir-opt] mir-opt/deaggregator_test.rs
[01:08:16] 
[01:08:16] test result: FAILED. 49 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
[01:08:16] 
[01:08:16] thread 'main' panicked at 'Some tests failed', tools/compiletest/src/main.rs:488:22
[01:08:16] 
[01:08:16] 
[01:08:16] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-3.9/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options " "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "3.9.1\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:08:16] 
[01:08:16] 
[01:08:16] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:08:16] Build completed unsuccessfully in 0:19:54
[01:08:16] Build completed unsuccessfully in 0:19:54
[01:08:16] make: *** [check] Error 1
[01:08:16] Makefile:58: recipe for target 'check' failed

The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0813ba91
$ 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)

@bors
Copy link
Contributor

bors commented Apr 26, 2018

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

@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.
Check compiletest suite=ui mode=ui (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:00:22] 
[01:00:22] running 1376 tests
[01:00:27] ..................................................................................i.................
[01:00:35] .............F................i.....................................................................
[01:00:39] .........................................F..........................................................
[01:00:48] ....................................................................................................
[01:00:52] ....................................................................................................
[01:00:59] ....................................................................................................
[01:01:06] ....................................................................................................
---
[01:01:49] /checkout/src/test/ui/update-references.sh '/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui' 'const-eval/index_out_of_bound.rs'
[01:01:49] 
[01:01:49] error: 1 errors occurred comparing output.
[01:01:49] status: exit code: 101
[01:01:49] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/const-eval/index_out_of_bound.rs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/const-eval/index_out_of_bound.stage2-x86_64-unknown-linux-gnu" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/const-eval/index_out_of_bound.stage2-x86_64-unknown-linux-gnu.aux" "-A" "unused"
[01:01:49] ------------------------------------------
[01:01:49] 
[01:01:49] ------------------------------------------
[01:01:49] stderr:
[01:01:49] stderr:
[01:01:49] ------------------------------------------
[01:01:49] {"message":"constant evaluation error","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/const-eval/index_out_of_bound.rs","byte_start":485,"byte_end":490,"line_start":11,"line_end":11,"column_start":19,"column_end":24,"is_primary":true,"text":[{"text":"static FOO: i32 = [][0];","highlight_start":19,"highlight_end":24}],"label":"index out of bounds: the len is 0 but the index is 0","suggested_replacement":null,"expansion":null}],"children":[],"rendered":"error[E0080]: constant evaluation error\n  --> /checkout/src/test/ui/const-eval/index_out_of_bound.rs:11:19\n   |\nLL | static FOO: i32 = [][0];\n   |                   ^^^^^ index out of bounds: the len is 0 but the index is 0\n\n"}
[01:01:49] {"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
[01:01:49] {"message":"For more information about this error, try `rustc --explain E0080`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0080`.\n"}
[01:01:49] ------------------------------------------
[01:01:49] 
[01:01:49] thread '[ui] ui/const-eval/index_out_of_bound.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:2965:9
[01:01:49] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:01:49] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:01:49] 
[01:01:49] ---- [ui] ui/error-codes/E0080.rs stdout ----
[01:01:49]  diff of stderr:
[01:01:49] 
[01:01:49] 26 LL |     Y = (1 / 0) //~ ERROR E0080
[01:01:49] 27    |         ^^^^^^^ attempt to divide with overflow
[01:01:49] - error[E0080]: constant evaluation error
[01:01:49] -   --> $DIR/E0080.rs:14:9
[01:01:49] -    |
[01:01:49] -    |
[01:01:49] - LL |     Y = (1 / 0) //~ ERROR E0080
[01:01:49] -    |         ^^^^^^^ attempt to divide by zero
[01:01:49] + error: internal compiler error: librustc_mir/interpret/terminator/mod.rs:166: impossible case reached
[01:01:49] 35 error: aborting due to 3 previous errors
[01:01:49] 36 
[01:01:49] 
[01:01:49] 
[01:01:49] 
[01:01:49] The actual stderr differed from the expected stderr.
[01:01:49] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/error-codes/E0080.stderr
[01:01:49] To update references, run this command from build directory:
[01:01:49] /checkout/src/test/ui/update-references.sh '/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui' 'error-codes/E0080.rs'
[01:01:49] error: 1 errors occurred comparing output.
[01:01:49] status: exit code: 101
[01:01:49] status: exit code: 101
[01:01:49] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/error-codes/E0080.rs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/error-codes/E0080.stage2-x86_64-unknown-linux-gnu" "-Crpath" "-O" "-Zunsn    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/error-codes/E0080.rs","byte_start":487,"byte_end":497,"line_start":12,"line_end":12,"column_start":9,"column_end":19,"is_primary":true,"text":[{"text":"    X = (1 << 500), //~ ERROR E0080","highlight_start":9,"highlight_end":19}],"label":"attempt to shift left with overflow","suggested_replacement":null,"expansion":null}],"children":[],"rendered":"error[E0080]: constant evaluation error\n  --> /checkout/src/test/ui/error-codes/E0080.rs:12:9\n   |\nLL |     X = (1 << 500), //~ ERROR E0080\n   |         ^^^^^^^^^^ attempt to shift left with overflow\n\n"}
[01:01:49] {"message":"attempt to divide by zero","code":{"code":"const_err","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/error-codes/E0080.rs","byte_start":557,"byte_end":564,"line_start":14,"line_end":14,"column_start":9,"column_end":16,"is_primary":true,"text":[{"text":"    Y = (1 / 0) //~ ERROR E0080","highlight_start":9,"highlight_end":16}],"label":null,"suggested_replacement":null,"expansion":null}],"children":[{"message":"#[warn(const_err)] on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"warning: attempt to divide by zero\n  --> /checkout/src/test/ui/error-codes/E0080.rs:14:9\n   |\nLL |     Y = (1 / 0) //~ ERROR E0080\n   |         ^^^^^^^\n   |\n   = note: #[warn(const_err)] on by default\n\n"}
[01:01:49] {"message":"constant evaluation error","code":{"code":"const_err","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/error-codes/E0080.rs","byte_start":557,"byte_end":564,"line_start":14,"line_end":14,"column_start":9,"column_end":16,"is_primary":true,"text":[{"text":"    Y = (1 / 0) //~ ERROR E0080","highlight_start":9,"highlight_end":16}],"label":"attempt to divide with overflow","suggested_replacement":null,"expansion":null}],"children":[],"rendered":"warning: constant evaluation error\n  --> /checkout/src/test/ui/error-codes/E0080.rs:14:9\n   |\nLL |     Y = (1 / 0) //~ ERROR E0080\n   |         ^^^^^^^ attempt to divide with overflow\n\n"}
[01:01:49] {"message":"librustc_mir/interpret/terminator/mod.rs:166: impossible case reached","code":null,"level":"error: internal compiler error","spans":[],"children":[],"rendered":"error: internal compiler error: librustc_mir/interpret/terminator/mod.rs:166: impossible case reached\n\n"}
[01:01:49] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:01:49] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:01:49] {"message":"aborting due to 3 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 3 previous errors\n\n"}
[01:01:49] {"message":"For more information about this error, try `rustc --explain E0080`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0080`.\n"}
[01:01:49] ------------------------------------------
[01:01:49] 
[01:01:49] thread '[ui] ui/error-codes/E0080.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:2965:9
[01:01:49] 
---
[01:01:49] test result: FAILED. 1367 passed; 2 failed; 7 ignored; 0 measured; 0 filtered out
[01:01:49] 
[01:01:49] 
[01:01:49] 
[01:01:49] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-3.9/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options " "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "3.9.1\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:01:49] 
[01:01:49] 
[01:01:49] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:01:49] Build completed unsuccessfully in 0:02:58
[01:01:49] Build completed unsuccessfully in 0:02:58
[01:01:49] make: *** [check] Error 1
[01:01:49] Makefile:58: recipe for target 'check' failed

The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:06f639cc
$ 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)

@@ -1188,17 +1174,6 @@ impl<'tcx> TerminatorKind<'tcx> {
}
}

#[derive(Clone, Debug, RustcEncodable, RustcDecodable)]
pub enum AssertMessage<'tcx> {
Copy link
Member

@eddyb eddyb Apr 27, 2018

Choose a reason for hiding this comment

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

Hmm, can you put Box around the use of AssertMessage in TerminatorKind::Assert? Just to avoid the memory usage blowup. Nevermind, terminators are once per block, what am I even thinking.

@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:52:23] ............................................................................ii......................
[00:53:13] ........................................i....................................................i.ii...
[00:53:20] ................test [run-pass] run-pass/saturating-float-casts.rs has been running for over 60 seconds
[00:53:56] ....................................................................................
[00:54:17] .iiiiiii............................................................................................
[00:54:57] ....................................................................................................
[00:55:15] .........................................................................
[00:55:15] test result: ok. 2954 passed; 0 failed; 19 ignored; 0 measured; 0 filtered out
[00:55:15] 
---
travis_time:start:test_mir-opt
Check compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[00:58:35] 
[00:58:35] running 50 tests
verflow") -> bb1;
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_10.1: bool), "attempt to subtract with overflow") -> bb2;
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_11.1: bool), "attempt to multiply with overflow") -> bb3;
[00:58:57] ... (elided)
[00:58:57]     _16 = Eq(const 5i128, const 0i128);
[00:58:57]     assert(!move _16, "attempt to calculate the remainder with a divisor of zero") -> bb6;
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_20.1: bool), "attempt to shift left with overflow") -> bb8;
[00:58:57] ... (elided)
[00:58:57]     _22 = const 6i32 as u128 (Misc);
[00:58:57]     _20 = const compiler_builtins::int::shift::rust_i128_shlo(move _3, move _22) -> bb14;
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_21.1: bool), "attempt to shift right with overflow") -> bb9;
[00:58:57] Actual:
[00:58:57] fn const_signed(_1: i128) -> i128{
[00:58:57]     let mut _0: i128;
[00:58:57]     let mut _2: i128;
[00:58:57]     let mut _3: i128;
[00:58:57]     let mut _4: i128;
[00:58:57]     let mut _5: i128;
[00:58:57]     let mut _6: i128;
[00:58:57]     let mut _7: i128;
[00:58:57]     let mut _8: i128;
[00:58:57]     let mut _9: (i128, bool);
[00:58:57]     let mut _10: (i128, bool);
[00:58:57]     let mut _11: (i128, bool);
[00:58:57]     let mut _12: bool;
[00:58:57]     let mut _13: bool;
[00:58:57]     let mut _14: bool;
[00:58:57]     let mut _15: bool;
[00:58:57]     let mut _16: bool;
[00:58:57]     let mut _17: bool;
[00:58:57]     let mut _18: bool;
[00:58:57]     let mut _19: bool;
[00:58:57]     let mut _20: (i128, bool);
[00:58:57]     let mut _21: (i128, bool);
[00:58:57]     let mut _22: u128;
[00:58:57]     let mut _23: u128;
[00:58:57]     bb0: {                              
[00:58:57]         StorageLive(_2);
[00:58:57]         StorageLive(_3);
[00:58:57]         StorageLive(_4);
[00:58:57]         StorageLive(_5);
[00:58:57]         StorageLive(_6);
[00:58:57]         StorageLive(_7);
[00:58:57]         StorageLive(_8);
[00:58:57]         _8 = _1;
[00:58:57]         _9 = const compiler_builtins::int::addsub::rust_i128_addo(move _8, const 1i128) -> bb10;
[00:58:57]     }
[00:58:57]     bb1: {                              
[00:58:57]         _7 = move (_9.0: i128);
[00:58:57]         StorageDead(_8);
[00:58:57]         _10 = const compiler_builtins::int::addsub::rust_i128_subo(move _7, const 2i128) -> bb11;
[00:58:57]     }
[00:58:57]     bb2: {                              
[00:58:57]         _6 = move (_10.0: i128);
[00:58:57]         StorageDead(_7);
[00:58:57]         _11 = const compiler_builtins::int::mul::rust_i128_mulo(move _6, const 3i128) -> bb12;
[00:58:57]     }
[00:58:57]     bb3: {                              
[00:58:57]         _5 = move (_11.0: i128);
[00:58:57]         StorageDead(_6);
[00:58:57]         _12 = Eq(const 4i128, const 0i128);
[00:58:57]         assert(!move _12, attempt to divide by zero) -> bb4;
[00:58:57]     }
[00:58:57]     bb4: {                              
[00:58:57]         _13 = Eq(const 4i128, const -1i128);
[00:58:57]         _14 = Eq(_5, const -170141183460469231731687303715884105728i128);
[00:58:57]         _15 = BitAnd(move _13, move _14);
[00:58:57]         assert(!move _15, attempt                  
[00:58:57]         assert(!move (_11.1: bool), attempt to multiply with overflow) -> bb3;
[00:58:57]     }
[00:58:57]     bb13: {                             
[00:58:57]         StorageDead(_5);
[00:58:57]         _16 = Eq(const 5i128, const 0i128);
[00:58:57]         assert(!move _16, attempt to calculate the remainder with a divisor of zero) -> bb6;
[00:58:57]     }
[00:58:57]     bb14: {                             
[00:58:57]         StorageDead(_22);
[00:58:57]         assert(!move (_20.1: bool), attempt to shift left with overflow) -> bb8;
[00:58:57]     }
[00:58:57]     bb15: {                             
[00:58:57]         StorageDead(_4);
[00:58:57]         StorageLive(_22);
[00:58:57]         _22 = const 6i32 as u128 (Misc);
[00:58:57]         _20 = const compiler_builtins::int::shift::rust_i128_shlo(move _3, move _22) -> bb14;
[00:58:57]     }
[00:58:57]     bb16: {                             
[00:58:57]         StorageDead(_23);
[00:58:57]         assert(!move (_21.1: bool), attempt to shift right with overflow) -> bb9;
[00:58:57]     }
[00:58:57] }', tools/compiletest/src/runtest.rs:2735:13
[00:58:57] 
[00:58:57] ---- [mir-opt] mir-opt/lower_128bit_debug_test.rs stdout ----
[00:58:57] ---- [mir-opt] mir-opt/lower_128bit_debug_test.rs stdout ----
[00:58:57]  thread '[mir-opt] mir-opt/lower_128bit_debug_test.rs' panicked at 'Did not find expected line, error: Mismatch in lines
[00:58:57] Current block: None
[00:58:57] Actual Line: "        assert(!move _12, attempt to divide by zero) -> bb4;"
[00:58:57] Expected Line: "    assert(!move _12, \"attempt to divide by zero\") -> bb4;"
[00:58:57] Expected:
[00:58:57] ... (elided)
[00:58:57]     _8 = _1;
[00:58:57]     _9 = const compiler_builtins::int::addsub::rust_i128_addo(move _8, const 1i128) -> bb10;
[00:58:57] ... (elided)
[00:58:57]     _7 = move (_9.0: i128);
[00:58:57] ... (elided)
[00:58:57]     _10 = const compiler_builtins::int::addsub::rust_i128_subo(move _7, const 2i128) -> bb11;
[00:58:57] ... (elided)
[00:58:57]     _6 = move (_10.0: i128);
[00:58:57] ... (elided)
[00:58:57]     _11 = const compiler_builtins::int::mul::rust_i128_mulo(move _6, const 3i128) -> bb12;
[00:58:57] ... (elided)
[00:58:57]     _5 = move (_11.0: i128);
[00:58:57] ... (elided)
[00:58:57]     _12 = Eq(const 4i128, const 0i128);
[00:58:57]     assert(!move _12, "attempt to divide by zero") -> bb4;
[00:58:57] ... (elided)
[00:58:57]     _13 = Eq(const 4i128, const -1i128);
[00:58:57]     _14 = Eq(_5, const -170141183460469231731687303715884105728i128);
[00:58:57]     _15 = BitAnd(move _13, move _14);
[00:58:57]     assert(!move _15, "attempt to divide with overflow") -> bb5;
[00:58:57] ... (elided)
[00:58:57]     _4 = const compiler_builtins::int::sdiv::rust_i128_div(move _5, const 4i128) -> bb13;
[00:58:57] ... (elided)
[00:58:57]     _17 = Eq(const 5i128, const -1i128);
[00:58:57]     _18 = Eq(_4, const -170141183460469231731687303715884105728i128);
[00:58:57]     _19 = BitAnd(move _17, move _18);
[00:58:57]     assert(!move _19, "attempt to calculate the remainder with overflow") -> bb7;
[00:58:57] ... (elided)
[00:58:57]     _3 = const compiler_builtins::int::sdiv::rust_i128_rem(move _4, const 5i128) -> bb15;
[00:58:57] ... (elided)
[00:58:57]     _2 = move (_20.0: i128);
[00:58:57] ... (elided)
[00:58:57]     _23 = const 7i32 as u128 (Misc);
[00:58:57]     _21 = const compiler_builtins::int::shift::rust_i128_shro(move _2, move _23) -> bb16;
[00:58:57] ... (elided)
[00:58:57]     _0 = move (_21.0: i128);
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_9.1: bool), "attempt to add with overflow") -> bb1;
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_10.1: bool), "attempt to subtract with overflow") -> bb2;
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_11.1: bool), "attempt to multiply with overflow") -> bb3;
[00:58:57] ... (elided)
[00:58:57]     _16 = Eq(const 5i128, const 0i128);
[00:58:57]     assert(!move _16, "attempt to calculate the remainder with a divisor of zero") -> bb6;
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_20.1: bool), "attempt to shift left with overflow") -> bb8;
[00:58:57] ... (elided)
[00:58:57]     _22 = const 6i32 as u128 (Misc);
[00:58:57]     _20 = const compiler_builtins::int::shift::rust_i128_shlo(move _3, move _22) -> bb14;
[00:58:57] ... (elided)
[00:58:57]     assert(!move (_21.1: bool), "attempt to shift right with overflow") -> bb9;
[00:58:57] Actual:
[00:58:57] fn const_signed(_1: i128) -> i128{
[00:58:57]     let mut _0: i128;
[00:58:57]     let mut _2: i128;
[00:58:57]     let mut _3: i128;
[00:58:57]     let mut _4: i128;
[00:58:57]     let mut _5: i128;
[00:58:57]     let mut _6: i128;
[00:58:57]     let mut _7: i128;
[00:58:57]     let mut _8: i128;
[00:58:57]     let mut _9: (i128, bool);
[00:58:57]     let mut _10: (i128, bool);
[00:58:57]     let        assert(!move _12, attempt to divide by zero) -> bb4;
[00:58:57]     }
[00:58:57]     bb4: {                              
[00:58:57]         _13 = Eq(const 4i128, const -1i128);
[00:58:57]         _14 = Eq(_5, const -170141183460469231731687303715884105728i128);
[00:58:57]         _15 = BitAnd(move _13, move _14);
[00:58:57]         assert(!move _15, attempt to divide with overflow) -> bb5;
[00:58:57]     }
[00:58:57]     bb5: {                              
[00:58:57]         _4 = const compiler_builtins::int::sdiv::rust_i128_div(move _5, const 4i128) -> bb13;
[00:58:57]     }
[00:58:57]     bb6: {                              
[00:58:57]         _17 = Eq(const 5i128, const -1i128);
[00:58:57]         _18 = Eq(_4, const -170141183460469231731687303715884105728i128);
[00:58:57]         _19 = BitAnd(move _17, move _18);
[00:58:57]         assert(!move _19, attempt to calculate the remainder with overflow) -> bb7;
[00:58:57]     }
[00:58:57]     bb7: {                              
[00:58:57]         _3 = const compiler_builtins::int::sdiv::rust_i128_rem(move _4, const 5i128) -> bb15;
[00:58:57]     }
[00:58:57]     bb8: {                              
[00:58:57]         _2 = move (_20.0: i128);
[00:58:57]         StorageDead(_3);
[00:58:57]         StorageLive(_23);
[00:58:57]         _23 = const 7i32 as u128 (Misc);
[00:58:57]         _21 = const compiler_builtins::int::shift::rust_i128_shro(move _2, move _23) -> bb16;
[00:58:57]     }
[00:58:57]     bb9: {                              
[00:58:57]         _0 = move (_21.0: i128);
[00:58:57]         StorageDead(_2);
[00:58:57]         retur:57]     [mir-opt] mir-opt/lower_128bit_test.rs
[00:58:57] test result: FAILED. 48 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[00:58:57] 
[00:58:57] 
[00:58:57] 
[00:58:57] 
[00:58:57] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-3.9/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options " "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "3.9.1\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[00:58:57] 
[00:58:57] 
[00:58:57] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[00:58:57] Build completed unsuccessfully in 0:17:26
[00:58:57] Build completed unsuccessfully in 0:17:26
[00:58:57] make: ***Sat, 28 Apr 2018 12:36:34 GMT

The command "date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
" exited with 0.
travis_fold:start:after_failure.1

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 Author

oli-obk commented Apr 28, 2018

As a side effect, we now even get better errors for div by zero.

@bors
Copy link
Contributor

bors commented Apr 29, 2018

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

write!(fmt, "{:?}", "generator resumed after panicking")?;
}
}
write!(fmt, "\"{:?}\"", msg)?;
Copy link
Member

Choose a reason for hiding this comment

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

You can combine these write! calls now.

Copy link
Member

Choose a reason for hiding this comment

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

Also, isn't there a description method? Or fmt::Display impl? Debug seems the wrong thing to put the user-facing message into.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done & we need debug, because we're recursively printing the Operands, and they were printed with debug printing before.

@eddyb
Copy link
Member

eddyb commented Apr 30, 2018

LGTM. If you want to also remove src/librustc/middle/const_val.rs, please do, otherwise, r=me.

@oli-obk
Copy link
Contributor Author

oli-obk commented May 1, 2018

@bors r=eddyb

@bors
Copy link
Contributor

bors commented May 1, 2018

📌 Commit 487f7bc 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 1, 2018
@bors
Copy link
Contributor

bors commented May 1, 2018

⌛ Testing commit 487f7bc with merge 0d8321b...

bors added a commit that referenced this pull request May 1, 2018
@bors
Copy link
Contributor

bors commented May 1, 2018

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

oli-obk added a commit to oli-obk/rust that referenced this pull request Mar 11, 2021
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Mar 11, 2021
Reintroduce accidentally deleted assertions.

These were removed in rust-lang#50198
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Mar 11, 2021
Reintroduce accidentally deleted assertions.

These were removed in rust-lang#50198
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Mar 11, 2021
Reintroduce accidentally deleted assertions.

These were removed in rust-lang#50198
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.

5 participants