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

NLL: Add union justifications to conflicting borrows. #57102

Merged
merged 3 commits into from Jan 13, 2019

Conversation

Projects
None yet
6 participants
@davidtwco
Copy link
Member

davidtwco commented Dec 24, 2018

Fixes #57100.

This PR adds justifications to error messages for conflicting borrows of union fields.

Where previously an error message would say cannot borrow `u.b` as mutable.., it now says cannot borrow `u` (via `u.b`) as mutable...

r? @pnkfelix

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Dec 24, 2018

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:0f770f87:start=1545668103208610855,finish=1545668106004898033,duration=2796287178
$ 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:54:32] .................................................................................................... 2300/5198
[00:54:36] .................................................................................................... 2400/5198
[00:54:39] .................................................................................................... 2500/5198
[00:54:42] .................................................................................................... 2600/5198
[00:54:47] ..........................F......................................................................... 2700/5198
[00:54:53] .................................................................................................... 2900/5198
[00:54:56] .................................................................................................... 3000/5198
[00:54:59] ..................................................................................................i. 3100/5198
[00:55:02] .................................................................................................... 3200/5198
---
[00:56:05] 
[00:56:05] ---- [ui] ui/issues/issue-45157.rs stdout ----
[00:56:05] diff of stderr:
[00:56:05] 
[00:56:05] - error[E0502]: cannot borrow `u.z.c` as immutable because it is also borrowed as mutable
[00:56:05] + error[E0502]: cannot borrow `u.z` (via `u.z.c`) as immutable because it is also borrowed as mutable (via `u.s.a`)
[00:56:05] 3    |
[00:56:05] 3    |
[00:56:05] 4 LL |         let mref = &mut u.s.a;
[00:56:05] -    |                    ---------- mutable borrow occurs here
[00:56:05] -    |                    ---------- mutable borrow occurs here
[00:56:05] +    |                    ---------- mutable borrow occurs here (via `u.s.a`)
[00:56:05] 6 ...
[00:56:05] 7 LL |         let nref = &u.z.c;
[00:56:05] -    |                    ^^^^^^ immutable borrow occurs here
[00:56:05] +    |                    ^^^^^^ immutable borrow occurs here (via `u.z.c`)
[00:56:05] 9 LL |         //~^ ERROR cannot borrow `u.z.c` as immutable because it is also borrowed as mutable [E0502]
[00:56:05] 10 LL |         println!("{} {}", mref, nref)
[00:56:05] 11    |                           ---- mutable borrow later used here
[00:56:05] 
[00:56:05] The actual stderr differed from the expected stderr.
[00:56:05] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-45157/issue-45157.stderr
[00:56:05] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-45157/issue-45157.stderr
[00:56:05] To update references, rerun the tests and pass the `--bless` flag
[00:56:05] To only update this specific test, also pass `--test-args issues/issue-45157.rs`
[00:56:05] error: 1 errors occurred comparing output.
[00:56:05] status: exit code: 1
[00:56:05] status: exit code: 1
[00:56:05] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-45157.rs" "--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/issues/issue-45157/a" "-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/issues/issue-45157/auxiliary" "-A" "unused"
[00:56:05] ------------------------------------------
[00:56:05] 
[00:56:05] ------------------------------------------
[00:56:05] stderr:
[00:56:05] stderr:
[00:56:05] ------------------------------------------
[00:56:05] {"message":"cannot borrow `u.z` (via `u.z.c`) as immutable because it is also borrowed as mutable (via `u.s.a`)","code":{"code":"E0502","explanation":"\nThis error indicates that you are trying to borrow a variable as mutable when it\nhas already been borrowed as immutable.\n\nExample of erroneous code:\n\n```compile_fail,E0502\nfn bar(x: &mut i32) {}\nfn foo(a: &mut i32) {\n    let ref y = a; // a is borrowed as immutable.\n    bar(a); // error: cannot borrow `*a` as mutable because `a` is also borrowed\n            //        as immutable\n}\n```\n\nTo fix this error, ensure that you don't have any other references to the\nvariable before trying to access it mutably:\n\n```\nfn bar(x: &mut i32) {}\nfn foo(a: &mut i32) {\n    bar(a);\n    let ref y = a; // ok!\n}\n```\n\nFor more information on the rust ownership system, take a look at\nhttps://doc.rust-lang.org/stable/book/references-and-borrowing.html.\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/issues/issue-45157.rs","byte_start":817,"byte_end":823,"line_start":37,"line_end":37,"column_start":20,"column_end":26,"is_primary":true,"text":[{"text":"        let nref = &u.z.c;","highlight_start":20,"highlight_end":26}],"label":"immutable borrow occurs here (via `u.z.c`)","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/issues/issue-45157.rs","byte_start":765,"byte_end":775,"line_start":34,"line_end":34,"column_start":20,"column_end":30,"is_primary":false,"text":[{"text":"        let mref = &mut u.s.a;","highlight_start":20,"highlight_end":30}],"label":"mutable borrow occurs here (via `u.s.a`)","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/issues/issue-45157.rs","byte_start":952,"byte_end":956,"line_start":39,"line_end":39,"column_start":27,"column_end":31,"is_primary":false,"text":[{"text":"        println!(\"{} {}\", mref, nref)","highlight_start":27,"highlight_end":31}],"label":"mutable borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0502]: cannot borrow `u.z` (via `u.z.c`) as immutable because it is also borrowed as mutable (via `u.s.a`)\n  --> /checkout/src/test/ui/issues/issue-45157.rs:37:20\n   |\nLL |         let mref = &mut u.s.a;\n   |                    ---------- mutable borrow occurs here (via `u.s.a`)\n...\nLL |         let nref = &u.z.c;\n   |                    ^^^^^^ immutable borrow occurs here (via `u.z.c`)\nLL |         //~^ ERROR cannot borrow `u.z.c` as immutable because it is also borrowed as mutable [E0502]\nLL |         println!(\"{} {}\", mref, nref)\n   |                           ---- mutable borrow later used here\n\n"}
[00:56:05] {"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
[00:56:05] {"message":"For more information about this error, try `rustc --explain E0502`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0502`.\n"}
[00:56:05] ------------------------------------------
[00:56:05] 
[00:56:05] thread '[ui] ui/issues/issue-45157.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3255:9
[00:56:05] note: Run with `RUST_BACKTRACE=1` for a backtrace.
---
[00:56:05] 
[00:56:05] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:505:22
[00:56:05] 
[00:56:05] 
[00:56:05] 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-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=/3750028 .
2540248 ./obj/build
1880440 ./obj/build/x86_64-unknown-linux-gnu
1119612 ./src
509768 ./obj/build/x86_64-unknown-linux-gnu/stage0
---
150160 ./obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu
150156 ./obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release
147764 ./obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps
144216 ./obj/build/bootstrap/debug/incremental/bootstrap-2x7szixskz2uj
144212 ./obj/build/bootstrap/debug/incremental/bootstrap-2x7szixskz2uj/s-f7w662zkqk-b8sm1g-c95hburtu2sh
124972 ./obj/build-unknown-linux-gnu/release
57508 ./obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu
57504 ./obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release
56896 ./src/llvm/test/MC
---
24092 ./src/tools/lldb/packages/Python/lldbsuite
23856 ./src/tools/lldb/packages/Python/lldbsuite/test
23704 ./src/llvm-emscripten/test/tools
23524 ./obj/build/x86_64-unknown-linux-gnu/stage1-std/release
23520 ./obrashlog\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:0053a728
travis_time:start:0053a728
$ 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:025a455f
$ 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)

@davidtwco davidtwco force-pushed the davidtwco:issue-57100 branch from d7216a7 to a6f5d83 Dec 24, 2018

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Dec 24, 2018

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:2b13274e:start=1545676453477515398,finish=1545676455687540886,duration=2210025488
$ 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:03:23] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:03:23] tidy error: /checkout/src/test/ui/issues/issue-45157.rs:38: line longer than 100 chars
[00:03:24] some tidy checks failed
[00:03:24] 
[00:03:24] 
[00:03:24] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:03:24] 
[00:03:24] 
[00:03:24] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:03:24] Build completed unsuccessfully in 0:00:43
[00:03:24] Build completed unsuccessfully in 0:00:43
[00:03:24] Makefile:79: recipe for target 'tidy' failed
[00:03:24] make: *** [tidy] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:24f077a0
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Mon Dec 24 18:37:48 UTC 2018
---
travis_time:end:0b380350:start=1545676669062185744,finish=1545676669066475132,duration=4289388
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:118bb02a
$ 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:1906a6e9
travis_time:start:1906a6e9
$ 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:1712a987
$ 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)

@davidtwco davidtwco force-pushed the davidtwco:issue-57100 branch from a6f5d83 to aaec069 Dec 24, 2018

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Dec 24, 2018

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:0394abd0:start=1545679466785563247,finish=1545679539125547910,duration=72339984663
$ 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:55:14] .................................................................................................... 2300/5198
[00:55:18] .................................................................................................... 2400/5198
[00:55:21] .................................................................................................... 2500/5198
[00:55:25] .................................................................................................... 2600/5198
[00:55:29] ..........................F......................................................................... 2700/5198
[00:55:35] .................................................................................................... 2900/5198
[00:55:38] .................................................................................................... 3000/5198
[00:55:42] ..................................................................................................i. 3100/5198
[00:55:45] .................................................................................................... 3200/5198
---
[00:56:49] 
[00:56:49] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:505:22
[00:56:49] 
[00:56:49] 
[00:56: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-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"
[00:56:49] 
[00:56:49] 
[00:56:49] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[00:56:49] Build completed unsuccessfully in 0:03:40
---
150164 ./obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu
150160 ./obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release
147768 ./obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps
144216 ./obj/build/bootstrap/debug/incremental/bootstrap-2x7szixskz2uj
144212 ./obj/build/bootstrap/debug/incremental/bootstrap-2x7szixskz2uj/s-f7wbf29w0r-1dmdvfy-c95hburtu2sh

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)

@davidtwco davidtwco force-pushed the davidtwco:issue-57100 branch from aaec069 to e33afe6 Dec 24, 2018

@bors

This comment was marked as resolved.

Copy link
Contributor

bors commented Dec 26, 2018

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

Add union justifications to conflicting borrows.
This commit adds justifications to error messages for conflicting
borrows of union fields.

Where previously an error message would say
``cannot borrow `u.b` as mutable..``, it now says
``cannot borrow `u` (via `u.b`) as mutable..``.

@davidtwco davidtwco force-pushed the davidtwco:issue-57100 branch from e33afe6 to 69bded2 Dec 26, 2018

@davidtwco

This comment has been minimized.

Copy link
Member

davidtwco commented Dec 30, 2018

davidtwco added some commits Jan 4, 2019

Make conflicting borrow description more robust.
This commit improves the logic for place descriptions in conflicting
borrow errors so that borrows of union fields have better messages even
when the unions are embedded in other unions or structs.
Improve diagnostic labels and add note.
This commit improves diagnostic labels to mention which field a borrow
overlaps with and adds a note explaining that the fields overlap.
@nikomatsakis

This comment has been minimized.

Copy link
Contributor

nikomatsakis commented Jan 8, 2019

I'm not sure about saying that we "borrow" u, but it's kind of nit-picking at this point. The error is quite nice.

@bors r+

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Jan 8, 2019

📌 Commit c2b477c has been approved by nikomatsakis

@bors

This comment was marked as outdated.

Copy link
Contributor

bors commented Jan 9, 2019

⌛️ Testing commit c2b477c with merge 61e8735...

bors added a commit that referenced this pull request Jan 9, 2019

Auto merge of #57102 - davidtwco:issue-57100, r=nikomatsakis
NLL: Add union justifications to conflicting borrows.

Fixes #57100.

This PR adds justifications to error messages for conflicting borrows of union fields.

Where previously an error message would say ``cannot borrow `u.b` as mutable..``, it now says ``cannot borrow `u` (via `u.b`) as mutable..``.

r? @pnkfelix
@bors

This comment was marked as outdated.

Copy link
Contributor

bors commented Jan 9, 2019

💔 Test failed - status-travis

@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Jan 9, 2019

The job arm-android 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.
[01:43:39] test string::test_str_clear ... ok
[01:43:39] test string::test_str_truncate_invalid_len ... ok
[01:43:39] test string::test_str_truncate ... ok
[01:43:39] test string::test_str_truncate_split_codepoint ... ok
[01:43:40] died due to signal 11
[01:43:40] 
[01:43:40] 
[01:43:40] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "arm-linux-androideabi" "-j" "4" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace" "--manifest-path" "/checkout/src/libstd/Cargo.toml" "-p" "alloc" "--"
[01:43:40] expected success, got: exit code: 3
---
travis_time:end:008afae0:start=1547032017236567798,finish=1547032017258666505,duration=22098707
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:108fe070
$ 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:010e8f9b
travis_time:start:010e8f9b
$ 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:0219930c
$ 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)

@davidtwco

This comment has been minimized.

Copy link
Member

davidtwco commented Jan 9, 2019

@bors retry

cc #55861

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Jan 10, 2019

⌛️ Testing commit c2b477c with merge c62ef99...

bors added a commit that referenced this pull request Jan 10, 2019

Auto merge of #57102 - davidtwco:issue-57100, r=nikomatsakis
NLL: Add union justifications to conflicting borrows.

Fixes #57100.

This PR adds justifications to error messages for conflicting borrows of union fields.

Where previously an error message would say ``cannot borrow `u.b` as mutable..``, it now says ``cannot borrow `u` (via `u.b`) as mutable..``.

r? @pnkfelix
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Jan 10, 2019

💔 Test failed - status-appveyor

@pietroalbini

This comment has been minimized.

Copy link
Member

pietroalbini commented Jan 10, 2019

@bors retry
AppVeyor... what's wrong with you today?

Centril added a commit to Centril/rust that referenced this pull request Jan 13, 2019

Rollup merge of rust-lang#57102 - davidtwco:issue-57100, r=nikomatsakis
NLL: Add union justifications to conflicting borrows.

Fixes rust-lang#57100.

This PR adds justifications to error messages for conflicting borrows of union fields.

Where previously an error message would say ``cannot borrow `u.b` as mutable..``, it now says ``cannot borrow `u` (via `u.b`) as mutable..``.

r? @pnkfelix

Centril added a commit to Centril/rust that referenced this pull request Jan 13, 2019

Rollup merge of rust-lang#57102 - davidtwco:issue-57100, r=nikomatsakis
NLL: Add union justifications to conflicting borrows.

Fixes rust-lang#57100.

This PR adds justifications to error messages for conflicting borrows of union fields.

Where previously an error message would say ``cannot borrow `u.b` as mutable..``, it now says ``cannot borrow `u` (via `u.b`) as mutable..``.

r? @pnkfelix

Centril added a commit to Centril/rust that referenced this pull request Jan 13, 2019

Rollup merge of rust-lang#57102 - davidtwco:issue-57100, r=nikomatsakis
NLL: Add union justifications to conflicting borrows.

Fixes rust-lang#57100.

This PR adds justifications to error messages for conflicting borrows of union fields.

Where previously an error message would say ``cannot borrow `u.b` as mutable..``, it now says ``cannot borrow `u` (via `u.b`) as mutable..``.

r? @pnkfelix

Centril added a commit to Centril/rust that referenced this pull request Jan 13, 2019

Rollup merge of rust-lang#57102 - davidtwco:issue-57100, r=nikomatsakis
NLL: Add union justifications to conflicting borrows.

Fixes rust-lang#57100.

This PR adds justifications to error messages for conflicting borrows of union fields.

Where previously an error message would say ``cannot borrow `u.b` as mutable..``, it now says ``cannot borrow `u` (via `u.b`) as mutable..``.

r? @pnkfelix

bors added a commit that referenced this pull request Jan 13, 2019

Auto merge of #57577 - Centril:rollup, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #57004 (Make `TokenStream` less recursive.)
 - #57102 (NLL: Add union justifications to conflicting borrows.)
 - #57337 (rustc: Place wasm linker args first instead of last)
 - #57549 (Add #[must_use] message to Iterator and Future)

Failed merges:

r? @ghost

@bors bors merged commit c2b477c into rust-lang:master Jan 13, 2019

1 of 2 checks passed

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

@davidtwco davidtwco deleted the davidtwco:issue-57100 branch Jan 14, 2019

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