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

Always emit an error for a query cycle #57880

Merged
merged 2 commits into from Feb 16, 2019

Conversation

@Zoxc
Copy link
Contributor

Zoxc commented Jan 24, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Jan 24, 2019

The job x86_64-gnu-llvm-6.0 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:end:007c3116:start=1548356913735356130,finish=1548356915038419954,duration=1303063824
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
[00:06:05]    Compiling arena v0.0.0 (/checkout/src/libarena)
[00:06:06]    Compiling syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:06:10]    Compiling rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:07:24]    Compiling syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:08:10] error[E0502]: cannot borrow `lock` as mutable because it is also borrowed as immutable
[00:08:10]    --> src/librustc/ty/query/plumbing.rs:120:21
[00:08:10]     |
[00:08:10] 115 |             if let Some(value) = lock.results.get(key) {
[00:08:10] ...
[00:08:10] ...
[00:08:10] 120 |                     lock.cache_hits += 1;
[00:08:10] 121 |                 }
[00:08:10] 121 |                 }
[00:08:10] 122 |                 return TryGetJob::JobCompleted((value.value.clone(), value.index));
[00:08:10] 
[00:08:14] error: aborting due to previous error
[00:08:14] 
[00:08:14] For more information about this error, try `rustc --explain E0502`.
[00:08:14] For more information about this error, try `rustc --explain E0502`.
[00:08:14] error: Could not compile `rustc`.
[00:08:14] 
[00:08:14] To learn more, run the command again with --verbose.
[00:08:14] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--locked" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:08:14] expected success, got: exit code: 101
[00:08:14] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap build
[00:08:14] Build completed unsuccessfully in 0:04:07
[00:08:14] make: *** [all] Error 1
[00:08:14] Makefile:18: recipe for target 'all' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:03e04b04
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Thu Jan 24 19:17:00 UTC 2019
---
186348 ./obj/build/cache/2019-01-04
161192 ./obj/build/bootstrap/debug/incremental
153280 ./src/tools/clang
145084 ./obj/build/bootstrap/debug/incremental/bootstrap-1o7ipylf5x405
145080 ./obj/build/bootstrap/debug/incremental/bootstrap-1o7ipylf5x405/s-f8uhfakhgm-ezrgfz-2c88epco22fc8
110108 ./obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends
107424 ./src/tools/lldb
95108 ./src/tools/clang/test
89964 ./src/llvm-emscripten/test/CodeGen
---
travis_time:end:035a7d88:start=1548357421547692183,finish=1548357421553731501,duration=6039318
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:1412ae60
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:00b9082c
travis_time:start:00b9082c
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory

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)

Show resolved Hide resolved src/librustc/ty/steal.rs Outdated
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Jan 24, 2019

The job x86_64-gnu-llvm-6.0 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:end:1431ced0:start=1548360361065227711,finish=1548360363094871615,duration=2029643904
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
[00:06:02]    Compiling arena v0.0.0 (/checkout/src/libarena)
[00:06:03]    Compiling syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:06:07]    Compiling rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:07:20]    Compiling syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:08:06] error[E0502]: cannot borrow `lock` as mutable because it is also borrowed as immutable
[00:08:06]    --> src/librustc/ty/query/plumbing.rs:120:21
[00:08:06]     |
[00:08:06] 115 |             if let Some(value) = lock.results.get(key) {
[00:08:06] ...
[00:08:06] ...
[00:08:06] 120 |                     lock.cache_hits += 1;
[00:08:06] 121 |                 }
[00:08:06] 121 |                 }
[00:08:06] 122 |                 return TryGetJob::JobCompleted((value.value.clone(), value.index));
[00:08:06] 
[00:08:10] error: aborting due to previous error
[00:08:10] 
[00:08:10] For more information about this error, try `rustc --explain E0502`.
[00:08:10] For more information about this error, try `rustc --explain E0502`.
[00:08:10] error: Could not compile `rustc`.
[00:08:10] 
[00:08:10] To learn more, run the command again with --verbose.
[00:08:10] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--locked" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:08:10] expected success, got: exit code: 101
[00:08:10] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap build
[00:08:10] Build completed unsuccessfully in 0:04:07
[00:08:10] make: *** [all] Error 1
[00:08:10] Makefile:18: recipe for target 'all' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:07d27390
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Thu Jan 24 20:14:24 UTC 2019
---
travis_time:end:3315ad0f:start=1548360864805257719,finish=1548360864810534134,duration=5276415
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:238e7b66
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:04216166
travis_time:start:04216166
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:0efed1e1
$ dmesg | grep -i kill

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)

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from c752066 to 2c0e06a Jan 24, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Jan 24, 2019

The job x86_64-gnu-llvm-6.0 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:end:09734c46:start=1548363834218751662,finish=1548363835223353250,duration=1004601588
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
Check compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:15:23] 
[01:15:23] running 38 tests
[01:15:42] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:495:22
[01:15:42] .............F..F.....................
[01:15:42] 
[01:15:42] ---- [mir-opt] mir-opt/inline-retag.rs stdout ----
[01:15:42] ---- [mir-opt] mir-opt/inline-retag.rs stdout ----
[01:15:42] thread '[mir-opt] mir-opt/inline-retag.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:15:42] Expected Line: "        Retag(_3);"
[01:15:42] Test Name: rustc.bar.Inline.after.mir
[01:15:42] ... (elided)
[01:15:42] ... (elided)
[01:15:42]     bb0: {
[01:15:42] ... (elided)
[01:15:42] ... (elided)
[01:15:42]         Retag(_3);
[01:15:42] ... (elided)
[01:15:42]         Retag(_3);
[01:15:42]         Retag(_6);
[01:15:42]         StorageLive(_9);
[01:15:42]         _9 = (*_3);
[01:15:42]         StorageLive(_10);
[01:15:42]         _10 = (*_6);
[01:15:42]         _0 = Eq(move _9, move _10);
[01:15:42] ... (elided)
[01:15:42]         return;
[01:15:42] ... (elided)
[01:15:42] Actual:
[01:15:42] fn bar() -> bool{
[01:15:42] fn bar() -> bool{
[01:15:42]     let mut _0: bool;
[01:15:42]     scope 1 {
[01:15:42]         scope 3 {
[01:15:42]     }
[01:15:42]     scope 2 {
[01:15:42]     scope 2 {
[01:15:42]         let _1: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo};
[01:15:42]     }
[01:15:42]     let mut _2: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo};
[01:15:42]     let mut _3: &i32;
[01:15:42]     let mut _4: &i32;
[01:15:42]     let _5: i32;
[01:15:42]     let mut _6: &i32;
[01:15:42]     let mut _7: &i32;
[01:15:42]     let _8: i32;
[01:15:42]     let mut _9: i32;
[01:15:42]     let mut _10: i32;
[01:15:42]     bb0: {                              
[01:15:42]         StorageLive(_1);
[01:15:42]         _1 = const foo;
[01:15:42]         StorageLive(_2);
[01:15:42]         _2 = _1;
[01:15:42]         StorageLive(_3);
[01:15:42]         StorageLive(_4);
[01:15:42]         _4 = &(promoted[1]: i32);
[01:15:42]         Retag(_4);
[01:15:42]         _3 = &(*_4);
[01:15:42]         Retag(_3);
[01:15:42]         StorageLive(_6);
[01:15:42]         StorageLive(_7);
[01:15:42]         _7 = &(promoted[0]: i32);
[01:15:42]         Retag(_7);
[01:15:42]         _6 = &(*_7);
[01:15:42]         Retag(_6);
[01:15:42]         StorageLive(_9);
[01:15:42]         _9 = (*_3);
[01:15:42]         StorageLive(_10);
[01:15:42]         _10 = (*_6);
[01:15:42]         _0 = Eq(move _9, move _10);
[01:15:42]         StorageDead(_10);
[01:15:42]         StorageDead(_9);
[01:15:42]         StorageDead(_6);
[01:15:42]         StorageDead(_3);
[01:15:42]         StorageDead(_2);
[01:15:42]         StorageDead(_1);
[01:15:42]         StorageDead(_7);
[01:15:42]         StorageDead(_4);
[01:15:42]         return;
[01:15:42] }', src/tools/compiletest/src/runtest.rs:2910:13
[01:15:42] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:15:42] 
[01:15:42] ---- [mir-opt] mir-opt/inline-trait-method_2.rs stdout ----
[01:15:42] ---- [mir-opt] mir-opt/inline-trait-method_2.rs stdout ----
[01:15:42] thread '[mir-opt] mir-opt/inline-trait-method_2.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:15:42] Expected Line: "    _0 = const X::y(move _2) -> bb1;"
[01:15:42] Test Name: rustc.test2.Inline.after.mir
[01:15:42] ... (elided)
[01:15:42] ... (elided)
[01:15:42] bb0: {
[01:15:42] ... (elided)
[01:15:42] ... (elided)
[01:15:42]     _0 = const X::y(move _2) -> bb1;
[01:15:42] }
[01:15:42] ... (elided)
[01:15:42] Actual:
[01:15:42] fn test2(_1: &dyn X) -> bool{
[01:15:42]     let mut _0: bool;
[01:15:42]     scope 1 {
[01:15:42]     }
[01:15:42]     let mut _2: &dyn X;
[01:15:42]     let mut _3: &dyn X;
[01:15:42]     let mut _4: &dyn X;
[01:15:42]     bb0: {                              
[01:15:42]         StorageLive(_2);
[01:15:42]         StorageLive(_3);
[01:15:42]         _3 = &(*_1);
[01:15:42]         _2 = move _3 as &dyn X (Unsize);
[01:15:42]         StorageDead(_3);
[01:15:42]         StorageLive(_4);
[01:15:42]         _4 = &(*_2);
[01:15:42]         _0 = const X::y(move _4) -> [return: bb2, unwind: bb1];
[01:15:42]     bb1: {
[01:15:42]         resume;
[01:15:42]     }
[01:15:42]     }
[01:15:42]     bb2: {                              
[01:15:42]         StorageDead(_4);
[01:15:42]         StorageDead(_2);
[01:15:42]         return;
[01:15:42] }', src/tools/compiletest/src/runtest.rs:2910:13
[01:15:42] 
[01:15:42] 
[01:15:42] failures:
[01:15:42] failures:
[01:15:42]     [mir-opt] mir-opt/inline-retag.rs
[01:15:42]     [mir-opt] mir-opt/inline-trait-method_2.rs
[01:15:42] 
[01:15:42] test result: FAILED. 36 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[01:15:42] 
[01:15:42] 
[01:15:42] 
[01:15:42] 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-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--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" "6.0.0\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:15:42] 
[01:15:42] 
[01:15:42] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:15:42] Build completed unsuccessfully in 0:11:37
[01:15:42] Build completed unsuccessfully in 0:11:37
[01:15:42] Makefile:48: recipe for target 'check' failed
[01:15:42] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:14b9f83c
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Thu Jan 24 22:19:48 UTC 2019

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)

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from 2c0e06a to f4182f9 Jan 26, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Jan 26, 2019

The job x86_64-gnu-llvm-6.0 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:end:07f6d26e:start=1548518452449537595,finish=1548518454789505962,duration=2339968367
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
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:14:05] 
[01:14:05] running 38 tests
[01:14:30] ..........F..F..F.....................
[01:14:30] failures:
[01:14:30] 
[01:14:30] ---- [mir-opt] mir-opt/inline-any-operand.rs stdout ----
[01:14:30] ---- [mir-opt] mir-opt/inline-any-operand.rs stdout ----
[01:14:30] thread '[mir-opt] mir-opt/inline-any-operand.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:14:30] Expected Line: "    _0 = Eq(move _3, move _4);"
[01:14:30] Test Name: rustc.bar.Inline.after.mir
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30] bb0: {
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30]     _0 = Eq(move _3, move _4);
[01:14:30] ... (elided)
[01:14:30]     return;
[01:14:30] }
[01:14:30] ... (elided)
[01:14:30] Actual:
[01:14:30] fn bar() -> bool{
[01:14:30]     let mut _0: bool;
[01:14:30]     scope 1 {
[01:14:30]     scope 2 {
[01:14:30]     scope 2 {
[01:14:30]         let _1: fn(i32, i32) -> bool {foo};
[01:14:30]     }
[01:14:30]     let mut _2: fn(i32, i32) -> bool {foo};
[01:14:30]     bb0: {                              
[01:14:30]         StorageLive(_1);
[01:14:30]         _1 = const foo;
[01:14:30]         StorageLive(_2);
[01:14:30]         _2 = _1;
[01:14:30]         _0 = move _2(const 1i32, const -1i32) -> bb1;
[01:14:30]     }
[01:14:30]     bb1: {                              
[01:14:30]         StorageDead(_2);
[01:14:30]         StorageDead(_1);
[01:14:30]         return;
[01:14:30]     bb2: {
[01:14:30]         resume;
[01:14:30]     }
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
[01:14:30] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:14:30] 
[01:14:30] ---- [mir-opt] mir-opt/inline-retag.rs stdout ----
[01:14:30] thread '[mir-opt] mir-opt/inline-retag.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:14:30] Expected Line: "        Retag(_3);"
[01:14:30] Test Name: rustc.bar.Inline.after.mir
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30]     bb0: {
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30]         Retag(_3);
[01:14:30] ... (elided)
[01:14:30]         Retag(_3);
[01:14:30]         Retag(_6);
[01:14:30]         StorageLive(_9);
[01:14:30]         _9 = (*_3);
[01:14:30]         StorageLive(_10);
[01:14:30]         _10 = (*_6);
[01:14:30]         _0 = Eq(move _9, move _10);
[01:14:30] ... (elided)
[01:14:30]         return;
[01:14:30] ... (elided)
[01:14:30] Actual:
[01:14:30] fn bar() -> bool{
[01:14:30] fn bar() -> bool{
[01:14:30]     let mut _0: bool;
[01:14:30]     scope 1 {
[01:14:30]     scope 2 {
[01:14:30]     scope 2 {
[01:14:30]         let _1: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo};
[01:14:30]     }
[01:14:30]     let mut _2: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo};
[01:14:30]     let mut _3: &i32;
[01:14:30]     let mut _4: &i32;
[01:14:30]     let _5: i32;
[01:14:30]     let mut _6: &i32;
[01:14:30]     let mut _7: &i32;
[01:14:30]     let _8: i32;
[01:14:30]     bb0: {                              
[01:14:30]         StorageLive(_1);
[01:14:30]         _1 = const foo;
[01:14:30]         StorageLive(_2);
[01:14:30]         _2 = _1;
[01:14:30]         StorageLive(_3);
[01:14:30]         StorageLive(_4);
[01:14:30]         _4 = &(promoted[1]: i32);
[01:14:30]         Retag(_4);
[01:14:30]         _3 = &(*_4);
[01:14:30]         Retag(_3);
[01:14:30]         StorageLive(_6);
[01:14:30]         StorageLive(_7);
[01:14:30]         _7 = &(promoted[0]: i32);
[01:14:30]         Retag(_7);
[01:14:30]         _6 = &(*_7);
[01:14:30]         Retag(_6);
[01:14:30]         _0 = move _2(move _3, move _6) -> bb1;
[01:14:30]     }
[01:14:30]     bb1: {                              
[01:14:30]         StorageDead(_6);
[01:14:30]         StorageDead(_3);
[01:14:30]         StorageDead(_2);
[01:14:30]         StorageDead(_1);
[01:14:30]         StorageDead(_7);
[01:14:30]         StorageDead(_4);
[01:14:30]         return;
[01:14:30]     bb2: {
[01:14:30]         resume;
[01:14:30]     }
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
[01:14:30] 
[01:14:30] ---- [mir-opt] mir-opt/inline-trait-method_2.rs stdout ----
[01:14:30] thread '[mir-opt] mir-opt/inline-trait-method_2.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:14:30] Expected Line: "    _0 = const X::y(move _2) -> bb1;"
[01:14:30] Test Name: rustc.test2.Inline.after.mir
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30] bb0: {
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30]     _0 = const X::y(move _2) -> bb1;
[01:14:30] }
[01:14:30] ... (elided)
[01:14:30] Actual:
[01:14:30] fn test2(_1: &dyn X) -> bool{
[01:14:30]     let mut _0: bool;
[01:14:30]     let mut _2: &dyn X;
[01:14:30]     let mut _3: &dyn X;
[01:14:30]     bb0: {                              
[01:14:30]         StorageLive(_2);
[01:14:30]         StorageLive(_3);
[01:14:30]         _3 = &(*_1);
[01:14:30]         _2 = move _3 as &dyn X (Unsize);
[01:14:30]         StorageDead(_3);
[01:14:30]         _0 = const test(move _2) -> bb1;
[01:14:30]     }
[01:14:30]     bb1: {                              
[01:14:30]         StorageDead(_2);
[01:14:30]         return;
[01:14:30]     bb2: {
[01:14:30]         resume;
[01:14:30]     }
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
---
[01:14:30] test result: FAILED. 35 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out
[01:14:30] 
[01:14:30] 
[01:14:30] 
[01:14:30] 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-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--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" "6.0.0\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:14:30] 
[01:14:30] 
[01:14:30] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:14:30] Build completed unsuccessfully in 0:11:59
[01:14:30] Build completed unsuccessfully in 0:11:59
[01:14:30] Makefile:48: recipe for target 'check' failed
[01:14:30] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0aac967d
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sat Jan 26 17:15:36 UTC 2019
---
travis_time:end:07bc7418:start=1548522938540120707,finish=1548522938545873180,duration=5752473
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:15853b70
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:2449eb73
travis_time:start:2449eb73
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:327aacd3
$ dmesg | grep -i kill

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)

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from f4182f9 to 2d7c64c Jan 27, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Jan 27, 2019

The job x86_64-gnu-llvm-6.0 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:end:23bf3ddb:start=1548606586968328481,finish=1548606666831744968,duration=79863416487
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
[01:10:02] running 38 tests
[01:10:06] ERROR 2019-01-27T17:41:21Z: compiletest::runtest: None
[01:10:06] ERROR 2019-01-27T17:41:21Z: compiletest::runtest: None
[01:10:20] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:495:22
[01:10:20] ...........FF.........................
[01:10:20] 
[01:10:20] ---- [mir-opt] mir-opt/inline-closure-borrows-arg.rs stdout ----
[01:10:20] ---- [mir-opt] mir-opt/inline-closure-borrows-arg.rs stdout ----
[01:10:20] thread '[mir-opt] mir-opt/inline-closure-borrows-arg.rs' panicked at 'Did not find expected line, error: Mismatch in lines
[01:10:20] Current block: None
[01:10:20] Actual Line: "        _0 = const std::ops::Fn::call(move _4, move _5) -> bb1;"
[01:10:20] Expected Line: "    _8 = move (_5.0: &i32);"
[01:10:20] Test Name: rustc.foo.Inline.after.mir
[01:10:20] ... (elided)
[01:10:20] ... (elided)
[01:10:20] bb0: {
[01:10:20] ... (elided)
[01:10:20] ... (elided)
[01:10:20]     _3 = [closure@NodeId(53)];
[01:10:20] ... (elided)
[01:10:20]     _4 = &_3;
[01:10:20] ... (elided)
[01:10:20]     _6 = &(*_2);
[01:10:20] ... (elided)
[01:10:20]     _7 = &(*_2);
[01:10:20]     _5 = (move _6, move _7);
[01:10:20]     _8 = move (_5.0: &i32);
[01:10:20]     _9 = move (_5.1: &i32);
[01:10:20] ... (elided)
[01:10:20]     _0 = (*_8);
[01:10:20] ... (elided)
[01:10:20]     return;
[01:10:20] }
[01:10:20] ... (elided)
[01:10:20] Actual:
[01:10:20] fn foo(_1: T, _2: &i32) -> i32{
[01:10:20]     let mut _0: i32;
[01:10:20]     scope 1 {
[01:10:20]     scope 2 {
[01:10:20]     scope 2 {
[01:10:20]         let _3: [closure@NodeId(53)];
[01:10:20]     }
[01:10:20]     let mut _4: &[closure@NodeId(53)];
[01:10:20]     let mut _5: (&i32, &i32);
[01:10:20]     let mut _6: &i32;
[01:10:20]     let mut _7: &i32;
[01:10:20]     bb0: {                              
[01:10:20]         StorageLive(_3);
[01:10:20]         _3 = [closure@NodeId(53)];
[01:10:20]         StorageLive(_4);
[01:10:20]         _4 = &_3;
[01:10:20]         StorageLive(_5);
[01:10:20]         StorageLive(_6);
[01:10:20]         _6 = &(*_2);
[01:10:20]         StorageLive(_7);
[01:10:20]         _7 = &(*_2);
[01:10:20]         _5 = (move _6, move _7);
[01:10:20]         _0 = const std::ops::Fn::call(move _4, move _5) -> bb1;
[01:10:20]     }
[01:10:20]     bb1: {                              
[01:10:20]         StorageDead(_5);
[01:10:20]         StorageDead(_7);
[01:10:20]         StorageDead(_6);
[01:10:20]         StorageDead(_4);
[01:10:20]         StorageDead(_3);
[01:10:20]         return;
[01:10:20]     bb2: {
[01:10:20]         resume;
[01:10:20]     }
[01:10:20] }', src/tools/compiletest/src/runtest.rs:2953:13
[01:10:20] }', src/tools/compiletest/src/runtest.rs:2953:13
[01:10:20] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:10:20] 
[01:10:20] ---- [mir-opt] mir-opt/inline-closure.rs stdout ----
[01:10:20] thread '[mir-opt] mir-opt/inline-closure.rs' panicked at 'Did not find expected line, error: Mismatch in lines
[01:10:20] Current block: None
[01:10:20] Actual Line: "        _0 = const std::ops::Fn::call(move _4, move _5) -> bb1;"
[01:10:20] Expected Line: "    _8 = move (_5.0: i32);"
[01:10:20] Test Name: rustc.foo.Inline.after.mir
[01:10:20] ... (elided)
[01:10:20] ... (elided)
[01:10:20] bb0: {
[01:10:20] ... (elided)
[01:10:20] ... (elided)
[01:10:20]     _3 = [closure@NodeId(39)];
[01:10:20] ... (elided)
[01:10:20]     _4 = &_3;
[01:10:20] ... (elided)
[01:10:20]     _6 = _2;
[01:10:20] ... (elided)
[01:10:20]     _7 = _2;
[01:10:20]     _5 = (move _6, move _7);
[01:10:20]     _8 = move (_5.0: i32);
[01:10:20]     _9 = move (_5.1: i32);
[01:10:20]     _0 = _8;
[01:10:20] ... (elided)
[01:10:20]     return;
[01:10:20] }
[01:10:20] ... (elided)
[01:10:20] Actual:
[01:10:20] fn foo(_1: T, _2: i32) -> i32{
[01:10:20]     let mut _0: i32;
[01:10:20]     scope 1 {
[01:10:20]     scope 2 {
[01:10:20]     scope 2 {
[01:10:20]         let _3: [closure@NodeId(39)];
[01:10:20]     }
[01:10:20]     let mut _4: &[closure@NodeId(39)];
[01:10:20]     let mut _5: (i32, i32);
[01:10:20]     let mut _6: i32;
[01:10:20]     let mut _7: i32;
[01:10:20]     bb0: {                              
[01:10:20]         StorageLive(_3);
[01:10:20]         _3 = [closure@NodeId(39)];
[01:10:20]         StorageLive(_4);
[01:10:20]         _4 = &_3;
[01:10:20]         StorageLive(_5);
[01:10:20]         StorageLive(_6);
[01:10:20]         _6 = _2;
[01:10:20]         StorageLive(_7);
[01:10:20]         _7 = _2;
[01:10:20]         _5 = (move _6, move _7);
[01:10:20]         _0 = const std::ops::Fn::call(move _4, move _5) -> bb1;
[01:10:20]     }
[01:10:20]     bb1: {                              
[01:10:20]         StorageDead(_5);
[01:10:20]         StorageDead(_7);
[01:10:20]         StorageDead(_6);
[01:10:20]         StorageDead(_4);
[01:10:20]         StorageDead(_3);
[01:10:20]         return;
[01:10:20]     bb2: {
[01:10:20]         resume;
[01:10:20]     }
[01:10:20] }', src/tools/compiletest/src/runtest.rs:2953:13
---
[01:10:20] test result: FAILED. 36 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[01:10:20] 
[01:10:20] 
[01:10:20] 
[01:10:20] 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-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--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" "6.0.0\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:10:20] 
[01:10:20] 
[01:10:20] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:10:20] Build completed unsuccessfully in 0:10:59
[01:10:20] Build completed unsuccessfully in 0:10:59
[01:10:20] make: *** [check] Error 1
[01:10:20] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:23782b9c
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sun Jan 27 17:41:36 UTC 2019
---
travis_time:end:00034608:start=1548610897979051224,finish=1548610897983303605,duration=4252381
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:01f910f4
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:1d0c0070
travis_time:start:1d0c0070
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:08c08b02
$ dmesg | grep -i kill

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)

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch 2 times, most recently from 531c85a to e139e86 Jan 27, 2019

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Jan 29, 2019

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

@Dylan-DPC

This comment has been minimized.

Copy link
Member

Dylan-DPC commented Feb 11, 2019

ping from triage @Zoxc you have conflicts and failing tests to resolve

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from e139e86 to 7a620bf Feb 12, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Feb 12, 2019

The job mingw-check 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:end:000b46d4:start=1549932841453215883,finish=1549932843084944192,duration=1631728309
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=mingw-check
---
    73% |███████████████████████▍        | 51kB 45.7MB/s eta 0:00:01
    87% |████████████████████████████    | 61kB 45.8MB/s eta 0:00:01
    100% |████████████████████████████████| 71kB 26.2MB/s 
Collecting botocore==1.12.92 (from awscli)
  Downloading https://files.pythonhosted.org/packages/a6/ec/e68d5d9b5eaa53d3552de0638231a8678c327737f4fc9fa62733483260fc/botocore-1.12.92-py2.py3-none-any.whl (5.3MB)
    0% |▏                               | 20kB 23.7MB/s eta 0:00:01
    0% |▏                               | 30kB 28.6MB/s eta 0:00:01
    0% |▎                               | 40kB 30.8MB/s eta 0:00:01
    0% |▎                               | 51kB 31.8MB/s eta 0:00:01
---
[00:04:37]     Checking arena v0.0.0 (/checkout/src/libarena)
[00:04:37]     Checking syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:04:38]     Checking rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:04:52]     Checking syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:04:57] error: unused import: `rustc_data_structures::cold_path`
[00:04:57]   --> src/librustc/ty/query/plumbing.rs:23:5
[00:04:57] 23 | use rustc_data_structures::cold_path;
[00:04:57]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[00:04:57]    |
[00:04:57]    = note: `-D unused-imports` implied by `-D warnings`
[00:04:57]    = note: `-D unused-imports` implied by `-D warnings`
[00:04:57] 
[00:05:16] error: aborting due to previous error
[00:05:16] 
[00:05:16] error: Could not compile `rustc`.
[00:05:16] 
[00:05:16] To learn more, run the command again with --verbose.
[00:05:16] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "check" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:05:16] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap check
[00:05:16] Build completed unsuccessfully in 0:03:12
travis_time:end:0df3fdb5:start=1549932854158230584,finish=1549933171447112833,duration=317288882249
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
---
travis_time:end:10295d09:start=1549933172281680011,finish=1549933172288237714,duration=6557703
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:3664f439
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:084f7998
travis_time:start:084f7998
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:0932a9de
$ dmesg | grep -i kill

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)

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from 7a620bf to fd69e3c Feb 12, 2019

@michaelwoerister

This comment has been minimized.

Copy link
Contributor

michaelwoerister commented Feb 12, 2019

Sorry, I'm behind on reviewing this...

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 12, 2019

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

@michaelwoerister
Copy link
Contributor

michaelwoerister left a comment

The PR looks good. @rust-lang/compiler who is looking into MIR inlining at the moment? There are some changes in here that might affect it (but I assume that the current solution is temporary anyway?).

@@ -43,4 +43,8 @@ impl<T> Steal<T> {
let value = value_ref.take();
value.expect("attempt to read from stolen value")
}

pub fn stolen(&self) -> bool {

This comment has been minimized.

@michaelwoerister

michaelwoerister Feb 13, 2019

Contributor

Is this used anywhere? I don't see it anywhere else in the diff.

This comment has been minimized.

@Zoxc

Zoxc Feb 13, 2019

Author Contributor

It was used in a previous version. I'll remove it.

@wesleywiser

This comment has been minimized.

Copy link
Member

wesleywiser commented Feb 13, 2019

@michaelwoerister I've played around with it a bit in the past. FYI, there's some more context for this PR here https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/always.20error.20on.20query.20cycles

@michaelwoerister

This comment has been minimized.

Copy link
Contributor

michaelwoerister commented Feb 13, 2019

OK, r=me with the nits addressed.

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from fd69e3c to 786b13c Feb 13, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Feb 13, 2019

The job x86_64-gnu-llvm-6.0 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:end:02301d64:start=1550060180614110827,finish=1550060181503423529,duration=889312702
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
travis_time:end:05b5cc4c:start=1550060715782858846,finish=1550060715787704548,duration=4845702
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:0f6300e2
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:08d098b8
travis_time:start:08d098b8
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asa

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)

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from 786b13c to fbd8259 Feb 13, 2019

let callee_mir = if let Some(callee_node_id) = callee_node_id {
// Avoid a cycle here by only using `optimized_mir` only if we have
// a lower node id than the callee. This ensures that the callee will
// not inline us. This trick only works without incremental compilation.

This comment has been minimized.

@oli-obk

oli-obk Feb 13, 2019

Contributor

Why does this only work without incremental? Even if the order of evaluation is the other way around, the node id comparison will impose a strict order. The actual optimizations done might vary between incremental compilations, but that should be sound.

This comment has been minimized.

@Zoxc

Zoxc Feb 13, 2019

Author Contributor

We do not want optimizations to vary though.

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 14, 2019

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

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from fbd8259 to 1b44df5 Feb 14, 2019

@Zoxc

This comment has been minimized.

Copy link
Contributor Author

Zoxc commented Feb 14, 2019

@bors r=michaelwoerister

@Zoxc Zoxc force-pushed the Zoxc:error-on-cycle branch from 1b44df5 to 82d7e33 Feb 15, 2019

@Zoxc

This comment has been minimized.

Copy link
Contributor Author

Zoxc commented Feb 15, 2019

@bors r=michaelwoerister

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 15, 2019

📌 Commit 82d7e33 has been approved by michaelwoerister

kennytm added a commit to kennytm/rust that referenced this pull request Feb 15, 2019

bors added a commit that referenced this pull request Feb 15, 2019

Auto merge of #58495 - kennytm:rollup, r=kennytm
Rollup of 16 pull requests

Successful merges:

 - #57880 (Always emit an error for a query cycle)
 - #57981 (Fix #57730)
 - #58074 (Stabilize slice_sort_by_cached_key)
 - #58196 (Add specific feature gate error for const-unstable features)
 - #58293 (Remove code for updating copyright years in generate-deriving-span-tests)
 - #58306 (Don't default on std crate when manipulating browser history)
 - #58359 (librustc_mir: use ? in impl_snapshot_for! macro)
 - #58429 (fix Box::into_unique effecitvely transmuting to a raw ptr)
 - #58433 (Update which libcore/liballoc tests Miri ignores, and document why)
 - #58438 (Use posix_spawn_file_actions_addchdir_np when possible)
 - #58440 (Whitelist the ARM v6 target-feature)
 - #58448 (rustdoc: mask `compiler_builtins` docs)
 - #58468 (split MaybeUninit into several features, expand docs a bit)
 - #58477 (Fix the syntax error in publish_toolstate.py)
 - #58479 (compile-pass test for #53606)
 - #58489 (Fix runtime error in generate-keyword-tests)

Failed merges:

r? @ghost
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 15, 2019

⌛️ Testing commit 82d7e33 with merge 50e4593...

bors added a commit that referenced this pull request Feb 15, 2019

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 15, 2019

💔 Test failed - checks-travis

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Feb 15, 2019

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.

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)

@pietroalbini

This comment has been minimized.

Copy link
Member

pietroalbini commented Feb 15, 2019

@bors retry -- apparently we can't clone the repo anymore on macOS

bors added a commit that referenced this pull request Feb 15, 2019

Auto merge of #58495 - kennytm:rollup, r=kennytm
Rollup of 16 pull requests

Successful merges:

 - #57880 (Always emit an error for a query cycle)
 - #57981 (Fix #57730)
 - #58074 (Stabilize slice_sort_by_cached_key)
 - #58196 (Add specific feature gate error for const-unstable features)
 - #58293 (Remove code for updating copyright years in generate-deriving-span-tests)
 - #58306 (Don't default on std crate when manipulating browser history)
 - #58359 (librustc_mir: use ? in impl_snapshot_for! macro)
 - #58429 (fix Box::into_unique effecitvely transmuting to a raw ptr)
 - #58433 (Update which libcore/liballoc tests Miri ignores, and document why)
 - #58438 (Use posix_spawn_file_actions_addchdir_np when possible)
 - #58440 (Whitelist the ARM v6 target-feature)
 - #58448 (rustdoc: mask `compiler_builtins` docs)
 - #58468 (split MaybeUninit into several features, expand docs a bit)
 - #58477 (Fix the syntax error in publish_toolstate.py)
 - #58479 (compile-pass test for #53606)
 - #58489 (Fix runtime error in generate-keyword-tests)

Failed merges:

r? @ghost
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 15, 2019

⌛️ Testing commit 82d7e33 with merge eac0908...

bors added a commit that referenced this pull request Feb 15, 2019

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 16, 2019

☀️ Test successful - checks-travis, status-appveyor
Approved by: michaelwoerister
Pushing eac0908 to master...

@bors bors added the merged-by-bors label Feb 16, 2019

@bors bors merged commit 82d7e33 into rust-lang:master Feb 16, 2019

1 check passed

homu Test successful
Details
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Feb 16, 2019

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_fold:end:services

travis_fold:start:git.checkout
travis_time:start:01fd8bc0
$ git clone --depth=2 --branch=master https://github.com/rust-lang/rust.git rust-lang/rust
---
  fi
travis_time:end:145c6d9e:start=1550279306520791225,finish=1550279306527296005,duration=6504780
travis_fold:end:before_script.3
travis_time:start:29e72fa0
$ MESSAGE_FILE=$(mktemp -t msg.XXXXXX); . src/ci/docker/x86_64-gnu-tools/repo.sh; commit_toolstate_change "$MESSAGE_FILE" "$TRAVIS_BUILD_DIR/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE" "$TOOLSTATE_REPO_ACCESS_TOKEN";

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)

@Zoxc Zoxc deleted the Zoxc:error-on-cycle branch Feb 16, 2019

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