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

Revert stabilization of never_type (!) et al #50121

Merged
merged 4 commits into from Apr 22, 2018

Conversation

Projects
None yet
7 participants
@pnkfelix
Copy link
Member

pnkfelix commented Apr 20, 2018

Fix #49691

I think this correctly adopts @nikomatsakis 's desired fix of:

  • reverting stabilization of ! and TryFrom, and
  • returning to the previous fallback semantics (i.e. it is once again dependent on whether the crate has opted into #[feature(never_type)],
  • without attempting to put back in the previous future-proofing warnings regarding the change in fallback semantics.

(I'll be away from computers for a week starting now, so any updates to this PR should be either pushed into it, or someone else should adopt the task of polishing this fix and put up their own PR.)

pnkfelix added some commits Apr 20, 2018

Revert stabilization of `feature(never_type)`.
This commit is just covering the feature gate itself and the tests
that made direct use of `!` and thus need to opt back into the
feature.

A follow on commit brings back the other change that motivates the
revert: Namely, going back to the old rules for falling back to `()`.
Bring back old fallback semantics: Without feature(never_type), fallb…
…ack to `()`, not `!`.

Note that this commit, since it is trying to be minimal in order to
ease backporting to the beta and release channels, does *not* include
the old future-proofing warnings that we used to have associated with
such fallback to `()`; see discussion at this comment:

#49691 (comment)
@pnkfelix

This comment has been minimized.

Copy link
Member

pnkfelix commented Apr 20, 2018

@pnkfelix

This comment has been minimized.

Copy link
Member

pnkfelix commented Apr 20, 2018

Even though @nikomatsakis is on PTO, I believe he will be back soon enough that he would be a good choice as a reviewer. (However, if any one else wants to jump on board, I will not object.)

r? @nikomatsakis

@alexcrichton

This comment has been minimized.

Copy link
Member

alexcrichton commented Apr 20, 2018

Thanks @pnkfelix! The libs parts here look good to me

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Apr 20, 2018

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:23:10]    Compiling rustc_const_math v0.0.0 (file:///checkout/src/librustc_const_math)
[00:23:26]    Compiling syntax_ext v0.0.0 (file:///checkout/src/libsyntax_ext)
[00:28:32]    Compiling rustc_mir v0.0.0 (file:///checkout/src/librustc_mir)
[00:28:32]    Compiling rustc_typeck v0.0.0 (file:///checkout/src/librustc_typeck)
[00:28:34] error[E0658]: The `!` type is experimental (see issue #35121)
[00:28:34]     --> librustc_typeck/check/coercion.rs:1274:25
[00:28:34]      |
[00:28:34] 1274 | impl AsCoercionSite for ! {
[00:28:34]      |
[00:28:34]      |
[00:28:34]      = help: add #![feature(never_type)] to the crate attributes to enable
[00:28:34] error: aborting due to previous error
[00:28:34] 
[00:28:34] For more information about this error, try `rustc --explain E0658`.
[00:28:34] error: Could not compile `rustc_typeck`.
[00:28:34] error: Could not compile `rustc_typeck`.
[00:28:34] 
[00:28:34] Caused by:
[00:28:34]   process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc --crate-name rustc_typeck librustc_typeck/lib.rs --color always --error-format json --crate-type dylib --emit=dep-info,link -C prefer-dynamic -C opt-level=2 -C metadata=74af54dfc2929890 -C extra-filename=-74af54dfc2929890 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps --extern rustc_const_math=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_const_math-c4c7b11d5784a197.so --extern syntax_pos=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_pos-caf863901ba00d4d.so --extern fmt_macros=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libfmt_macros-3d30704c9bf94823.so --extern arena=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libarena-ae4e6f9a0a04fcfd.so --extern rustc_data_structures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-e7f38b02feb371ba.so --extern rustc_errors=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-4751eaacfa9b82b1.so --extern rustc_platform_intrinsics=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_platform_intrinsics-7c8f07fcfb43dd0e.so --extern log=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/liblog-94d776423bcbc65e.rlib --extern rustc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc-7c1e997399553280.so --extern syntax=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax-4acf4151e5e9c3f9.so -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/backtrace-sys-306b41e2ad232afa/out/.libs -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/miniz-sys-21ebc33766ad71e1/out` (exit code: 101)
[00:28:34] warning: build failed, waiting for other jobs to finish...
[00:28:34] error[E0658]: The `!` type is experimental (see issue #35121)
[00:28:34]    --> librustc_mir/borrow_check/nll/region_infer/dfs.rs:159:18
[00:28:34]     |
[00:28:34] 159 |     type Early = !;
[00:28:34]     |
[00:28:34]     |
[00:28:34]     = help: add #![feature(never_type)] to the crate attributes to enable
[00:28:34] 
[00:28:34] error[E0658]: The `!` type is experimental (see issue #35121)
[00:28:34]    --> librustc_mir/borrow_check/nll/region_infer/dfs.rs:170:89
[00:28:34]     |
[00:28:34] 170 |     fn add_to_target_region(&mut self, point_index: RegionElementIndex) -> Result<bool, !> {
[00:28:34]     |
[00:28:34]     |
[00:28:34]     = help: add #![feature(never_type)] to the crate attributes to enable
[00:28:34] 
[00:28:34] error[E0658]: The `!` type is experimental (see issue #35121)
[00:28:34]    --> librustc_mir/borrow_check/nll/region_infer/dfs.rs:180:86
[00:28:34]     |
[00:28:34] 180 |     fn add_universal_regions_outlived_by_source_to_target(&mut self) -> Result<bool, !> {
[00:28:34]     |
[00:28:34]     |
[00:28:34]     = help: add #![feature(never_type)] to the crate attributes to enable
[00:28:34] 
[00:28:34] error[E0658]: The `!` type is experimental (see issue #35121)
[00:28:34]    --> librustc_mir/interpret/const_eval.rs:198:24
[00:28:34]     |
[00:28:34] 198 |     type MemoryKinds = !;
[00:28:34]     |
[00:28:34]     |
[00:28:34]     = help: add #![feature(never_type)] to the crate attributes to enable
[00:28:34] error: aborting due to 4 previous errors
[00:28:34] 
[00:28:34] For more information about this error, try `rustc --explain E0658`.
[00:28:34] error: Could not compile `rustc_mir`.
[00:28:34] error: Could not compile `rustc_mir`.
[00:28:34] 
[00:28:34] Caused by:
[00:28:34]   process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc --crate-name rustc_mir librustc_mir/lib.rs --color always --error-format json --crate-type dylib --emit=dep-info,link -C prefer-dynamic -C opt-level=2 -C metadata=68f9749be38056d4 -C extra-filename=-68f9749be38056d4 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps --extern arena=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libarena-ae4e6f9a0a04fcfd.so --extern rustc_const_math=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_const_math-c4c7b11d5784a197.so --extern rustc_data_structures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-e7f38b02feb371ba.so --extern rustc_apfloat=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_apfloat-30add66c119d2ec6.rlib --extern graphviz=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libgraphviz-d401bc3652c24ca6.so --extern log=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/liblog-94d776423bcbc65e.rlib --extern rustc_errors=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-4751eaacfa9b82b1.so --extern syntax=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax-4acf4151e5e9c3f9.so --extern log_settings=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/liblog_settings-1cd6988448867a7d.rlib --extern byteorder=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libbyteorder-77b7f1eec921fd34.rlib --extern bitflags=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libbitflags-9f4c6335ef95c2b7.rlib --extern rustc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc-7c1e997399553280.so --extern syntax_pos=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_pos-caf863901ba00d4d.so --extern rustc_back=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_back-24fcd3d511791c40.so --extern serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-07d9bc58d0cd25b1.so --extern serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-07d9bc58d0cd25b1.rlib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/backtrace-sys-306b41e2ad232afa/out/.libs -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/miniz-sys-21ebc33766ad71e1/out` (exit code: 101)
[00:29:08] error: build failed
[00:29:08] error: build failed
[00:29:08] 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:29:08] expected success, got: exit code: 101
[00:29:08] thread 'main' panicked at 'cargo must succeed', bootstrap/compile.rs:1091:9
[00:29:08] travis_fold:end:stage1-rustc

[00:29:08] travis_time:end:stage1-rustc:start=1524242267141012193,finish=1524242711671590783,duration=444530578590


[00:29:08] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap build
[00:29:08] Build completed unsuccessfully in 0:24:27
[00:29:08] make: *** [all] Error 1
[00:29:08] Makefile:28: recipe for target 'all' failed

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

@kennytm

This comment has been minimized.

Copy link
Member

kennytm commented Apr 20, 2018

(I've added 42b6d46 to address the trivial build failures)

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Apr 20, 2018

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:59:10] ....i............................................................................test [run-pass] run-pass/mir_heavy_promoted.rs has been running for over 60 seconds
[00:59:20] ...................
[00:59:54] ....................................................................................................
[01:00:25] ......................................................................ii............................
[01:01:17] .................................i...................................................test [run-pass] run-pass/saturating-float-casts.rs has been running for over 60 seconds
[01:01:23] .i.ii..........
[01:02:08] ..............................................................................................iiiiii
[01:03:08] ....................................................................................................
[01:03:35] ....................................................................................................
[01:03:53] .................................................................
[01:03:53] test result: ok. 2946 passed; 0 failed; 19 ignored; 0 measured; 0 filtered out
---
travis_time:start:test_run-fail
Check compiletest suite=run-fail mode=run-fail (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:07:24] 
[01:07:24] running 138 tests
[01:07:35] F...........F..F........................................................F.F.........................
[01:07:39] failures:
[01:07:39] thread 'main' panicked at 'Some tests failed', tools/compiletest/src/main.rs:488:22
[01:07:39] 
[01:07:39] ---- [run-fail] run-fail/adjust_never.rs stdout ----
[01:07:39] ---- [run-fail] run-fail/adjust_never.rs stdout ----
[01:07:39]  
[01:07:39] error: compilation failed!
[01:07:39] status: exit code: 101
[01:07:39] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/run-fail/adjust_never.rs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail" "--target=x86_64-unknown-linux-gnu" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail/adjust_never.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/run-fail/adjust_never.stage2-x86_64-unknown-linux-gnu.aux"
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] stderr:
[01:07:39] stderr:
[01:07:39] ------------------------------------------
[01:07:39] error[E0658]: The `!` type is experimental (see issue #35121)
[01:07:39]    |
[01:07:39]    |
[01:07:39] 15 |     let x: ! = panic!();
[01:07:39]    |
[01:07:39]    |
[01:07:39]    = help: add #![feature(never_type)] to the crate attributes to enable
[01:07:39] error: aborting due to previous error
[01:07:39] 
[01:07:39] For more information about this error, try `rustc --explain E0658`.
[01:07:39] 
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] thread '[run-fail] run-fail/adjust_never.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:2936:9
[01:07:39] 
[01:07:39] ---- [run-fail] run-fail/call-fn-never-arg.rs stdout ----
[01:07:39]  
[01:07:39] error: compilation failed!
[01:07:39] error: compilation failed!
[01:07:39] status: exit code: 101
[01:07:39] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/run-fail/call-fn-never-arg.rs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail" "--target=x86_64-unknown-linux-gnu" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail/call-fn-never-arg.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/run-fail/call-fn-never-arg.stage2-x86_64-unknown-linux-gnu.aux"
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] stderr:
[01:07:39] stderr:
[01:07:39] ------------------------------------------
[01:07:39] error[E0658]: The `!` type is experimental (see issue #35121)
[01:07:39]    |
[01:07:39]    |
[01:07:39] 17 | fn foo(x: !) -> ! {
[01:07:39]    |
[01:07:39]    |
[01:07:39]    = help: add #![feature(never_type)] to the crate attributes to enable
[01:07:39] error: aborting due to previous error
[01:07:39] 
[01:07:39] For more information about this error, try `rustc --explain E0658`.
[01:07:39] 
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] thread '[run-fail] run-fail/call-fn-never-arg.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:2936:9
[01:07:39] ---- [run-fail] run-fail/cast-never.rs stdout ----
[01:07:39]  
[01:07:39] error: compilation failed!
[01:07:39] status: exit code: 101
[01:07:39] status: exit code: 101
[01:07:39] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/run-fail/cast-never.rs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail" "--target=x86_64-unknown-linux-gnu" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail/cast-never.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/run-fail/cast-never.stage2-x86_64-unknown-linux-gnu.aux"
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] stderr:
[01:07:39] stderr:
[01:07:39] ------------------------------------------
[01:07:39] error[E0658]: The `!` type is experimental (see issue #35121)
[01:07:39]    |
[01:07:39]    |
[01:07:39] 15 |     let x: ! = panic!();
[01:07:39]    |
[01:07:39]    |
[01:07:39]    = help: add #![feature(never_type)] to the crate attributes to enable
[01:07:39] error: aborting due to previous error
[01:07:39] 
[01:07:39] For more information about this error, try `rustc --explain E0658`.
[01:07:39] 
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] thread '[run-fail] run-fail/cast-never.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:2936:9
[01:07:39] ---- [run-fail] run-fail/never-associated-type.rs stdout ----
[01:07:39]  
[01:07:39] error: compilation failed!
[01:07:39] status: exit code: 101
[01:07:39] status: exit code: 101
[01:07:39] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/run-fail/never-associated-type.rs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail" "--target=x86_64-unknown-linux-gnu" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail/never-associated-type.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/run-fail/never-associated-type.stage2-x86_64-unknown-linux-gnu.aux"
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] stderr:
[01:07:39] stderr:
[01:07:39] ------------------------------------------
[01:07:39] error[E0658]: The `!` type is experimental (see issue #35121)
[01:07:39]    |
[01:07:39]    |
[01:07:39] 23 |     type Wow = !;
[01:07:39]    |
[01:07:39]    |
[01:07:39]    = help: add #![feature(never_type)] to the crate attributes to enable
[01:07:39] error: aborting due to previous error
[01:07:39] 
[01:07:39] For more information about this error, try `rustc --explain E0658`.
[01:07:39] 
---
[01:07:39] ---- [run-fail] run-fail/never-type-arg.rs stdout ----
[01:07:39]  
[01:07:39] error: compilation failed!
[01:07:39] status: exit code: 101
[01:07:39] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/run-fail/never-type-arg.rs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail" "--target=x86_64-unknown-linux-gnu" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail/never-type-arg.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/run-fail/never-type-arg.stage2-x86_64-unknown-linux-gnu.aux"
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] stderr:
[01:07:39] stderr:
[01:07:39] ------------------------------------------
[01:07:39] error[E0658]: The `!` type is experimental (see issue #35121)
[01:07:39]    |
[01:07:39]    |
[01:07:39] 17 | impl PartialEq<!> for Wub {
[01:07:39]    |
[01:07:39]    |
[01:07:39]    = help: add #![feature(never_type)] to the crate attributes to enable
[01:07:39] 
[01:07:39] error[E0658]: The `!` type is experimental (see issue #35121)
[01:07:39]    |
[01:07:39]    |
[01:07:39] 18 |     fn eq(&self, other: &!) -> bool {
[01:07:39]    |
[01:07:39]    |
[01:07:39]    = help: add #![feature(never_type)] to the crate attributes to enable
[01:07:39] error: aborting due to 2 previous errors
[01:07:39] 
[01:07:39] For more information about this error, try `rustc --explain E0658`.
[01:07:39] 
[01:07:39] 
[01:07:39] ------------------------------------------
[01:07:39] 
[01:07:39] thread '[run-fail] run-fail/never-type-arg.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:2936:9
[01:07:39] 
[01:07:39] failures:
[01:07:39]     [run-fail] run-fail/adjust_never.rs
[01:07:39]     [run-fail] run-fail/call-fn-never-arg.rs
---
[01:07:39] test result: FAILED. 132 passed; 5 failed; 1 ignored; 0 measured; 0 filtered out
[01:07:39] 
[01:07:39] 
[01:07:39] 
[01:07:39] 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/run-fail" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-fail" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "run-fail" "--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:07:39] 
[01:07:39] 
[01:07:39] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:07:39] Build completed unsuccessfully in 0:19:44
[01:07:39] Build completed unsuccessfully in 0:19:44
[01:07:39] Makefile:58: recipe for target 'check' failed
[01:07:39] make: *** [check] Error 1

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

@kennytm kennytm force-pushed the pnkfelix:revert-stabilization-of-never-type-et-al branch from 594a552 to 76639f7 Apr 20, 2018

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Apr 20, 2018

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.
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading https://files.pythonhosted.org/packages/3d/9b/989165ea2972bcb7013c593ccff1bcabb6f2e002163867839b761c9e15db/awscli-1.15.6-py2.py3-none-any.whl (1.3MB)
    0% |▎                               | 10kB 17.0MB/s eta 0:00:01
    1% |▌                               | 20kB 1.2MB/s eta 0:00:02
    2% |▉                               | 30kB 1.3MB/s eta 0:00:01
    3% |█                               | 40kB 1.2MB/s eta 0:00:02
---
    100% |████████████████████████████████| 1.3MB 1.0MB/s 
Collecting botocore==1.10.6 (from awscli)
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading https://files.pythonhosted.org/packages/bd/7b/c4436ba14adda753c77cccb11c9ea200ada0f44b8b10ff6b3247d2de5041/botocore-1.10.6-py2.py3-none-any.whl (4.2MB)
    0% |                                | 10kB 39.4MB/s eta 0:00:01
    0% |▏                               | 20kB 16.0MB/s eta 0:00:01
    0% |▎                               | 30kB 21.2MB/s eta 0:00:01
    0% |▎                               | 40kB 13.5MB/s eta 0:00:01
---
Collecting jmespath<1.0.0,>=0.7.1 (from botocore==1.10.6->awscli)
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading https://files.pythonhosted.org/packages/b7/31/05c8d001f7f87f0f07289a5fc0fc3832e9a57f2dbd4d3b0fee70e0d51365/jmespath-0.9.3-py2.py3-none-any.whl
Collecting python-dateutil<3.0.0,>=2.1; python_version >= "2.7" (from botocore==1.10.6->awscli)
  InsecurePlatformWarning
  InsecurePlatformWarning
  Downloading https://files.pythonhosted.org/packages/0c/57/19f3a65bcf6d5be570ee8c35a5398496e10a0ddcbc95393b2d17f86aaaf8/python_dateutil-2.7.2-py2.py3-none-any.whl (212kB)
    4% |█▌                              | 10kB 39.1MB/s eta 0:00:01
    9% |███                             | 20kB 39.0MB/s eta 0:00:01
    14% |████▋                           | 30kB 45.6MB/s eta 0:00:01
    19% |██████▏                         | 40kB 48.8MB/s eta 0:00:01
---
Collecting futures<4.0.0,>=2.2.0; python_version == "2.6" or python_version == "2.7" (from s3transfer<0.2.0,>=0.1.12->awscli)
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading https://files.pythonhosted.org/packages/2d/99/b2c4e9d5a30f6471e410a146232b4118e697fa3ffc06d6a65efde84debd0/futures-3.2.0-py2-none-any.whl
Requirement already satisfied: six>=1.5 in /usr/lib/python2.7/dist-packages (from python-dateutil<3.0.0,>=2.1; python_version >= "2.7"->botocore==1.10.6->awscli)
Installing collected packages: docutils, jmespath, python-dateutil, botocore, pyasn1, rsa, futures, s3transfer, colorama, awscli
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
---
[00:56:08] ....i....................................................................................test [run-pass] run-pass/mir_heavy_promoted.rs has been running for over 60 seconds
[00:56:14] ...........
[00:56:46] ....................................................................................................
[00:57:16] ......................................................................ii............................
[00:58:08] .................................i....................................................i.ii.....test [run-pass] run-pass/saturating-float-casts.rs has been running for over 60 seconds
[00:58:53] ..............................................................................................iiiiii
[00:59:21] i...................................................................................................
[00:59:51] ....................................................................................................
[01:00:19] ....................................................................................................
---
[01:25:22] .......................iii......i......i...i......i.................................................
[01:25:31] ....................................................................................................
[01:25:45] .............................................iiii........ii.........................................
[01:25:55] ....................................................................................................
[01:26:11] ............................................................................................iF..F...
[01:26:47] ....................................................................................................
[01:26:56] ..iiii...............................................
[01:26:56] failures:
[01:26:56] 
[01:26:56] 
[01:26:56] ---- primitive_docs.rs - prim_never (line 157) stdout ----
[01:26:56]  error[E0658]: The `!` type is experimental (see issue #35121)
[01:26:56]  --> primitive_docs.rs:162:16
[01:26:56]   |
[01:26:56] 8 | impl Debug for ! {
[01:26:56]   |
[01:26:56]   |
[01:26:56]   = help: add #![feature(never_type)] to the crate attributes to enable
[01:26:56] 
[01:26:56] thread 'primitive_docs.rs - prim_never (line 157)' panicked at 'couldn't compile the test', librustdoc/test.rs:321:13
[01:26:56] 
[01:26:56] 
[01:26:56] ---- primitive_docs.rs - prim_never (line 81) stdout ----
[01:26:56]  error[E0658]: The `!` type is experimental (see issue #35121)
[01:26:56]  --> primitive_docs.rs:83:8
[01:26:56]   |
[01:26:56] 5 | let x: ! = {
[01:26:56]   |
[01:26:56]   |
[01:26:56]   = help: add #![feature(never_type)] to the crate attributes to enable
[01:26:56] 
[01:26:56] thread 'primitive_docs.rs - prim_never (line 81)' panicked at 'couldn't compile the test', librustdoc/test.rs:321:13
[01:26:56] 
[01:26:56] failures:
[01:26:56]     primitive_docs.rs - prim_never (line 157)
[01:26:56]     primitive_docs.rs - prim_never (line 81)
[01:26:56]     primitive_docs.rs - prim_never (line 81)
[01:26:56] 
[01:26:56] test result: FAILED. 931 passed; 2 failed; 20 ignored; 0 measured; 0 filtered out
[01:26:56] 
[01:26:56] error: test failed, to rerun pass '--doc'
[01:26:56] 
[01:26:56] 
[01:26:56] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "--release" "--locked" "--color" "always" "--features" "panic-unwind jemalloc backtrace" "--manifest-path" "/checkout/src/libstd/Cargo.toml" "-p" "std" "--" "--quiet"
[01:26:56] 
[01:26:56] 
[01:26:56] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:26:56] Build completed unsuccessfully in 0:41:48
[01:26:56] Build completed unsuccessfully in 0:41:48
[01:26:56] make: *** [check] Error 1
[01:26:56] Makefile:58: recipe for target 'check' failed

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

@kennytm kennytm force-pushed the pnkfelix:revert-stabilization-of-never-type-et-al branch from 76639f7 to 7c4b7c6 Apr 21, 2018

@kennytm kennytm force-pushed the pnkfelix:revert-stabilization-of-never-type-et-al branch from 7c4b7c6 to 42b6d46 Apr 21, 2018

@alexcrichton

This comment has been minimized.

Copy link
Member

alexcrichton commented Apr 21, 2018

@bors: r+

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Apr 21, 2018

📌 Commit 42b6d46 has been approved by alexcrichton

@alexcrichton

This comment has been minimized.

Copy link
Member

alexcrichton commented Apr 21, 2018

@bors: p=1

due to backport status

@SimonSapin

This comment has been minimized.

Copy link
Contributor

SimonSapin commented Apr 21, 2018

@alexcrichton Do we also want to revert the addition of impl FromStr for PathBuf #48292 so that in can be later re-added with type Err = !; #49039 rather than a dedicated empty enum ?

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Apr 21, 2018

⌛️ Testing commit 42b6d46 with merge aa7ce89...

bors added a commit that referenced this pull request Apr 21, 2018

Auto merge of #50121 - pnkfelix:revert-stabilization-of-never-type-et…
…-al, r=alexcrichton

Revert stabilization of never_type (!) et al

Fix #49691

I *think* this correctly adopts @nikomatsakis 's desired fix of:
 * reverting stabilization of `!` and `TryFrom`, and
 * returning to the previous fallback semantics (i.e. it is once again dependent on whether the crate has opted into `#[feature(never_type)]`,
 * **without** attempting to put back in the previous future-proofing warnings regarding the change in fallback semantics.

(I'll be away from computers for a week starting now, so any updates to this PR should be either pushed into it, or someone else should adopt the task of polishing this fix and put up their own PR.)
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Apr 22, 2018

☀️ Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing aa7ce89 to master...

@bors bors merged commit 42b6d46 into rust-lang:master Apr 22, 2018

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details

@bors bors referenced this pull request Apr 22, 2018

Merged

Stabilize dyn trait #49968

@zackmdavis zackmdavis referenced this pull request Apr 23, 2018

Merged

don't see issue #0 #49985

bors added a commit that referenced this pull request Apr 23, 2018

Auto merge of #50182 - alexcrichton:beta-next, r=alexcrichton
[beta] Another round of backports

This is a backport of:

* #50039
* #50121

@SergioBenitez SergioBenitez referenced this pull request Apr 27, 2018

Open

Compile with stable Rust #19

7 of 12 tasks complete

@kennytm kennytm referenced this pull request Apr 29, 2018

Open

Tracking issue for TryFrom/TryInto traits #33417

1 of 3 tasks complete

@termoshtt termoshtt referenced this pull request May 3, 2018

Open

Compile with stable rust #5

5 of 6 tasks complete

@losfair losfair referenced this pull request May 6, 2018

Merged

Fix compile ia error #11

kennytm added a commit to kennytm/rust that referenced this pull request Sep 14, 2018

Rollup merge of rust-lang#54207 - QuietMisdreavus:never-docs-stab, r=…
…kennytm

re-mark the never docs as unstable

Fixes rust-lang#54198

This stability attribute was removed in rust-lang#47630, but not replaced with a `#[stable]` attribute, and when rust-lang#50121 reverted that stabilization, it didn't set the docs back to unstable. I'm concerned as to why it was allowed to not have the stability attribute at all, but at least this can put it back.

I'm nominating this for beta backport because it's a really small change, and right now our docs are in an awkward position where the `!` type is technically unstable to use, but the docs don't say so the same way any other library feature would. (And this is also the case *on stable* now, but i'm not suggesting a stable backport for a docs fix.)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment