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

[WIP] Massive cosmetic PR, take 2 #58036

Open
wants to merge 15 commits into
base: master
from

Conversation

@alexreg
Copy link
Contributor

alexreg commented Jan 31, 2019

This is my second take on #57016, where I am doing a few things differently:

  • Splitting into many commits, depending on area of codebase and type of change. (I shall be doing this over the coming days.)
  • Excluding more controversial changes from previous attempt.
  • Factoring off subsets of commits into separate PRs to get met reviewed and merged separately, as needed.

This is sort of like a "tracking PR" for now, and probably shouldn't be merged as-is unless someone is happy with all my changes.

CC @nikomatsakis @steveklabnik

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Jan 31, 2019

r? @pnkfelix

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

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 79bd23d to 80269f7 Jan 31, 2019

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Feb 1, 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:2a753618:start=1548978228996960668,finish=1548978231984765286,duration=2987804618
$ 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_debuginfo
Check compiletest suite=debuginfo mode=debuginfo-both (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:14:26] 
[01:14:26] running 119 tests
[01:14:51] .iiiii...i.....i..i...i..i.i..i.ii...i.....i..i....i..........iiii..........i...ii...i.......ii.i.i. 100/119
[01:14:55] i......iii.i.....ii
[01:14:55] 
[01:14:55]  finished in 29.102
[01:14:55] travis_fold:end:test_debuginfo

---
travis_time:start:test_run-make-fulldeps
Check compiletest suite=run-make-fulldeps mode=run-make (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:40:38] 
[01:40:38] running 194 tests
[01:41:04] ......................i....................................................................F........ 100/194
[01:41:49] failures:
[01:41:49] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:502:22
[01:41:49] 
[01:41:49] ---- [run-make] run-make-fulldeps/libtest-json stdout ----
[01:41:49] ---- [run-make] run-make-fulldeps/libtest-json stdout ----
[01:41:49] 
[01:41:49] error: make failed
[01:41:49] status: exit code: 2
[01:41:49] command: "make"
[01:41:49] stdout:
[01:41:49] ------------------------------------------
[01:41:49] make[1]: Entering directory '/checkout/src/test/run-make-fulldeps/libtest-json'
[01:41:49] LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/libtest-json/libtest-json:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" '/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc' --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/libtest-json/libtest-json -L /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/libtest-json/libtest-json  --test f.rs
[01:41:49] RUST_BACKTRACE=0 LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/libtest-json/libtest-json:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/libtest-json/libtest-json/f -Z unstable-options --test-threads=1 --format=json > /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/libtest-json/libtest-json/libtest-json-output.json || true
[01:41:49] cat /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/libtest-json/libtest-json/libtest-json-output.json | "/usr/bin/python2.7" validate_json.py
[01:41:49] # Compare to output file
[01:41:49] diff output.json /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/libtest-json/libtest-json/libtest-json-output.json
[01:41:49] 5c5
[01:41:49] < { "type": "test", "name": "b", "event": "failed", "stdout": "thread 'main' panicked at 'assertion failed: false', f.rs:8:5\nnote: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\n" }
[01:41:49] ---
[01:41:49] > { "type": "test", "name": "b", "event": "failed", "stdout": "thread 'main' panicked at 'assertion failed: false', f.rs:8:5\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\n" }
[01:41:49] Makefile:8: recipe for target 'all' failed
[01:41:49] make[1]: Leaving directory '/checkout/src/test/run-make-fulldeps/libtest-json'
[01:41:49] ------------------------------------------
[01:41:49] stderr:
[01:41:49] ------------------------------------------
[01:41:49] ------------------------------------------
[01:41:49] make[1]: *** [all] Error 1
[01:41:49] ------------------------------------------
[01:41:49] 
[01:41:49] thread '[run-make] run-make-fulldeps/libtest-json' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:41:49] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
---
[01:41:49] test result: FAILED. 192 passed; 1 failed; 1 ignored; 0 measured; 0 filtered out
[01:41:49] 
[01:41:49] 
[01:41:49] 
[01:41: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" "--rustdoc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "--src-base" "/checkout/src/test/run-make-fulldeps" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "run-make" "--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" "cc" "--cxx" "c++" "--cflags" "-ffunction-sections -fdata-sections -fPIC -m64" "--llvm-components" "aarch64 aarch64asmparser aarch64asmprinter aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils all all-targets amdgpu amdgpuasmparser amdgpuasmprinter amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgpuutils analysis arm armasmparser armasmprinter armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter binaryformat bitreader bitwriter bpf bpfasmparser bpfasmprinter bpfcodegen bpfdesc bpfdisassembler bpfinfo codegen core coroutines coverage debuginfocodeview debuginfodwarf debuginfomsf debuginfopdb demangle dlltooldriver engine executionengine fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo instcombine instrumentation interpreter ipo irreader lanai lanaiasmparser lanaiasmprinter lanaicodegen lanaidesc lanaidisassembler lanaiinfo libdriver lineeditor linker lto mc mcdisassembler mcjit mcparser mips mipsasmparser mipsasmprinter mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmprinter msp430codegen msp430desc msp430info native nativecodegen nvptx nvptxasmprinter nvptxcodegen nvptxdesc nvptxinfo objcarcopts object objectyaml option orcjit passes powerpc powerpcasmparser powerpcasmprinter powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata runtimedyld scalaropts selectiondag sparc sparcasmparser sparcasmprinter sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzasmprinter systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target transformutils vectorize windowsmanifest x86 x86asmparser x86asmprinter x86codegen x86desc x86disassembler x86info x86utils xcore xcoreasmprinter xcorecodegen xcoredesc xcoredisassembler xcoreinfo" "--llvm-cxxflags" "-I/usr/lib/llvm-6.0/include -std=c++0x -fuse-ld=gold -Wl,--no-keep-files-mapped -Wl,--no-map-whole-files -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -ffunction-sections -fdata-sections -O2 -DNDEBUG  -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" "--ar" "ar" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:41:49] 
[01:41:49] 
[01:41:49] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:41:49] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:41:49] make: *** [check] Error 1
[01:41:49] Build completed unsuccessfully in 0:39:09
[01:41:49] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0401aaec
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Fri Feb  1 01:25:52 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)

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 80269f7 to 220bdcd Feb 1, 2019

@pnkfelix

This comment has been minimized.

Copy link
Member

pnkfelix commented Feb 1, 2019

I'm going to put WIP in the title to reflect that this is "a 'tracking PR' for now" that shoud not be merged as is.

@pnkfelix pnkfelix changed the title Massive cosmetic PR, take 2 [WIP] Massive cosmetic PR, take 2 Feb 1, 2019

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 1, 2019

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

@alexreg

This comment has been minimized.

Copy link
Contributor Author

alexreg commented Feb 1, 2019

@pnkfelix Sure. I’ll try to finish the commit splitting later today. In the meanwhile, please let me if I can reorganise things any mire to help get this merged.

@oli-obk
Copy link
Contributor

oli-obk left a comment

I'm not quite clear what the rules are where comments start with a capitalized letter and where they start with a lower case letter. As far as I can see there's both happening.

I reviewed the first commit, but I might have missed some things

Show resolved Hide resolved src/librustc/traits/auto_trait.rs
Show resolved Hide resolved src/librustc/traits/mod.rs Outdated
Show resolved Hide resolved src/librustc/traits/object_safety.rs Outdated
Show resolved Hide resolved src/librustc/traits/select.rs Outdated
@@ -835,7 +835,7 @@ pub type CanonicalUserType<'gcx> = Canonical<'gcx, UserType<'gcx>>;

impl CanonicalUserType<'gcx> {
/// Returns `true` if this represents a substitution of the form `[?0, ?1, ?2]`,
/// i.e. each thing is mapped to a canonical variable with the same index.
/// i.e., each thing is mapped to a canonical variable with the same index.

This comment has been minimized.

@oli-obk

oli-obk Feb 1, 2019

Contributor

these ., look really weird to me.

This comment has been minimized.

@alexreg

alexreg Feb 1, 2019

Author Contributor

It's weird, but it's standard in U.S. English. :-) Not in British English. The American motivation is that you're abbreviating "id est, ...", which is Latin for "that is, ...". In that sense, it makes sense, but I know what you mean still.

@@ -186,7 +186,7 @@ impl Semantics for X87DoubleExtendedS {
/// exponent = all 1's, integer bit 0, significand 0 ("pseudoinfinity")

This comment has been minimized.

@oli-obk

oli-obk Feb 1, 2019

Contributor

I think we're supposed to keep the librustc_apfloat crate (docs) in sync with llvm's. So the best course of action would be an additional patch against llvm.

This comment has been minimized.

@alexreg

alexreg Feb 1, 2019

Author Contributor

Hard to tell... it looks like some docs have already been Rustified.

Show resolved Hide resolved src/libsyntax/parse/parser.rs Outdated
Show resolved Hide resolved src/libsyntax/parse/parser.rs
Show resolved Hide resolved src/libsyntax/parse/parser.rs
Show resolved Hide resolved src/libsyntax/parse/parser.rs Outdated

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 220bdcd to f4eb488 Feb 1, 2019

@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Feb 1, 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:0934b666:start=1549048553992206752,finish=1549048557523865541,duration=3531658789
$ 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:06:57] ..................................................................i................................. 1700/5361
[01:07:01] .................................................................................................... 1800/5361
[01:07:05] .................................................................................................... 1900/5361
[01:07:08] .................................................................................................... 2000/5361
[01:07:11] ERROR 2019-02-01T20:23:18Z: compiletest::runtest: fatal error, panic: "aux-build `/checkout/src/test/ui/issues/auxiliary/use_from_trait_xc.rs` source not found"
[01:07:11] ..............i.................................................................................F... 2100/5361
[01:07:20] .................................................................................................... 2300/5361
[01:07:23] .................................................................................................... 2400/5361
[01:07:27] .................................................................................................... 2500/5361
[01:07:31] .................................................................................................... 2600/5361
---
[01:09:15] failures:
[01:09:15] 
[01:09:15] ---- [ui] ui/issues/issue-18986.rs stdout ----
[01:09:15] 
[01:09:15] error: aux-build `/checkout/src/test/ui/issues/auxiliary/use_from_trait_xc.rs` source not found
[01:09:15] thread '[ui] ui/issues/issue-18986.rs' panicked at 'fatal error', src/tools/compiletest/src/runtest.rs:2041:9
[01:09:15] 
[01:09:15] 
[01:09:15] failures:
[01:09:15]     [ui] ui/issues/issue-18986.rs
[01:09:15]     [ui] ui/issues/issue-18986.rs
[01:09:15] 
[01:09:15] test result: FAILED. 5337 passed; 1 failed; 23 ignored; 0 measured; 0 filtered out
[01:09:15] 
[01:09:15] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:502:22
[01:09:15] 
[01:09:15] 
[01:09:15] 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"
[01:09:15] 
[01:09:15] 
[01:09:15] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:09:15] Build completed unsuccessfully in 0:04:12
[01:09:15] Build completed unsuccessfully in 0:04:12
[01:09:15] Makefile:48: recipe for target 'check' failed
[01:09:15] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:287c0108
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Fri Feb  1 20:25:23 UTC 2019
---
travis_time:end:1ab893d2:start=1549052724328721056,finish=1549052724335432175,duration=6711119
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:0831a590
$ 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:0d5512c1
$ 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)

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from f4eb488 to 27f17a6 Feb 1, 2019

Show resolved Hide resolved src/build_helper/lib.rs Outdated
Show resolved Hide resolved src/build_helper/lib.rs Outdated

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 27f17a6 to 81d52ee Feb 1, 2019

Show resolved Hide resolved src/liballoc/collections/btree/set.rs Outdated
Show resolved Hide resolved src/liballoc/tests/lib.rs Outdated
@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Feb 2, 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:1c32eb34:start=1549062836042676408,finish=1549062839256178723,duration=3213502315
$ 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:04:21] .................................................................................................... 2500/5361
[01:04:25] .................................................................................................... 2600/5361
[01:04:29] .................................................................................................... 2700/5361
[01:04:34] .................................................................................................... 2800/5361
[01:04:38] ..............F..................................................................................... 2900/5361
[01:04:45] .................................................................................................... 3100/5361
[01:04:50] .................................................................................................... 3200/5361
[01:04:54] ...................i................................................................................ 3300/5361
[01:04:57] ....................................................................................ii...i..ii...... 3400/5361
---
[01:05:44] ............i...................................................................................F... 4600/5361
[01:05:50] .................................................................................................... 4700/5361
[01:05:53] .................................................................................................... 4800/5361
[01:05:58] .................................................................................................... 4900/5361
[01:06:01] ...................................................................................................F 5000/5361
[01:06:05] ...................................F................................................................ 5100/5361
[01:06:11] .................................................................................................... 5300/5361
[01:06:11] .................................................................................................... 5300/5361
[01:06:13] i...........................................F................
[01:06:13] 
[01:06:13] ---- [ui] ui/feature-gates/feature-gate-generic_associated_types.rs stdout ----
[01:06:13] diff of stderr:
[01:06:13] 
[01:06:13] 
[01:06:13] 14    |
[01:06:13] 15    = help: add #![feature(generic_associated_types)] to the crate attributes to enable
[01:06:13] 16 
[01:06:13] - error[E0658]: where clauses on associated types are unstable (see issue #44265)
[01:06:13] + error[E0658]: where-clauses on associated types are unstable (see issue #44265)
[01:06:13] 18   --> $DIR/feature-gate-generic_associated_types.rs:6:5
[01:06:13] 19    |
[01:06:13] 20 LL |     type Pointer2<T>: Deref<Target = T> where T: Clone, U: Clone;
[01:06:13] 38    |
[01:06:13] 39    = help: add #![feature(generic_associated_types)] to the crate attributes to enable
[01:06:13] 40 
[01:06:13] - error[E0658]: where clauses on associated types are unstable (see issue #44265)
[01:06:13] - error[E0658]: where clauses on associated types are unstable (see issue #44265)
[01:06:13] + error[E0658]: where-clauses on associated types are unstable (see issue #44265)
[01:06:13] 42   --> $DIR/feature-gate-generic_associated_types.rs:21:5
[01:06:13] 43    |
[01:06:13] 44 LL |     type Assoc where Self: Sized;
[01:06:13] 46    |
[01:06:13] 47    = help: add #![feature(generic_associated_types)] to the crate attributes to enable
[01:06:13] 48 
[01:06:13] - error[E0658]: where clauses on associated types are unstable (see issue #44265)
[01:06:13] - error[E0658]: where clauses on associated types are unstable (see issue #44265)
[01:06:13] + error[E0658]: where-clauses on associated types are unstable (see issue #44265)
[01:06:13] 50   --> $DIR/feature-gate-generic_associated_types.rs:26:5
[01:06:13] 51    |
[01:06:13] 52 LL |     type Assoc where Self: Sized = Foo;
[01:06:13] 
[01:06:13] The actual stderr differed from the expected stderr.
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/feature-gates/feature-gate-generic_associated_types/feature-gate-generic_associated_types.stderr
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/feature-gates/feature-gate-generic_associated_types/feature-gate-generic_associated_types.stderr
[01:06:13] To update references, rerun the tests and pass the `--bless` flag
[01:06:13] To only update this specific test, also pass `--test-args feature-gates/feature-gate-generic_associated_types.rs`
[01:06:13] error: 1 errors occurred comparing output.
[01:06:13] status: exit code: 1
[01:06:13] status: exit code: 1
[01:06:13] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs" "-Zthreads=1" "--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/feature-gates/feature-gate-generic_associated_types/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/feature-gates/feature-gate-generic_associated_types/auxiliary" "-A" "unused"
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] stderr:
[01:06:13] stderr:
[01:06:13] ------------------------------------------
[01:06:13] {"message":"generic associated types are unstable (see issue #44265)","code":{"code":"E0658","explanation":"\nAn unstable feature was used.\n\nErroneous code example:\n\n```compile_fail,E658\n#[repr(u128)] // error: use of unstable library feature 'repr128'\nenum Foo {\n    Bar(u64),\n}\n```\n\nIf you're using a stable or a beta version of rustc, you won't be able to use\nany unstable features. In order to do so, please switch to a nightly version of\nrustc (by using rustup).\n\nIf you're using a nightly version of rustc, just add the corresponding feature\nto be able to use it:\n\n```\n#![feature(repr128)]\n\n#[repr(u128)] // ok!\nenum Foo {\n    Bar(u64),\n}\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs","byte_start":51,"byte_end":86,"line_start":4,"line_end":4,"column_start":5,"column_end":40,"is_primary":true,"text":[{"text":"    type Pointer<T>: Deref<Target = T>;","highlight_start":5,"highlight_end":40}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"add #![feature(generic_associated_types)] to the crate attributes to enable","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0658]: generic associated types are unstable (see issue #44265)\n  --> /checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs:4:5\n   |\nLL |     type Pointer<T>: Deref<Target = T>;\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |\n   = help: add #![feature(generic_associated_types)] to the crate attributes to enable\n\n"}
[01:06:13] {"message":"generic associated types are unstable (see issue #44265)","code":{"code":"E0658","explanation":"\nAn unstable feature was used.\n\nErroneous code example:\n\n```compile_fail,E658\n#[repr(u128)] // error: use of unstable library feature 'repr128'\nenum Foo {\n    Bar(u64),\n}\n```\n\nIf you're using a stable or a beta version of rustc, you won't be able to use\nany unstable features. In order to do so, please switch to a nightly version of\nrustc (by using rustup).\n\nIf you're using a nightly version of rustc, just add the corresponding feature\nto be able to use it:\n\n```\n#![feature(repr128)]\n\n#[repr(u128)] // ok!\nenum Foo {\n    Bar(u64),\n}\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs","byte_start":144,"byte_end":205,"line_start":6,"line_end":6,"column_start":5,"column_end":66,"is_primary":true,"text":[{"text":"    type Pointer2<T>: Deref<Target = T> where T: Clone, U: Clone;","highlight_start":5,"highlight_end":66}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"add #![feature(generic_associated_types)] to the crate attributes to enable","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0658]: generic associated types are unstable (see issue #44265)\n  --> /checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs:6:5\n   |\nLL |     type Pointer2<T>: Deref<Target = T> where T: Clone, U: Clone;\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |\n   = help: add #![feature(generic_associated_types)] to the crate attributes to enable\n\n"}
[01:06:13] {"message":"where-clauses on associated types are unstable (see issue #44265)","code":{"code":"E0658","explanation":"\nAn unstable feature was used.\n\nErroneous code example:\n\n```compile_fail,E658\n#[repr(u128)] // error: use of unstable library feature 'repr128'\nenum Foo {\n    Bar(u64),\n}\n```\n\nIf you're using a stable or a beta version of rustc, you won't be able to use\nany unstable features. In order to do so, please switch to a nightly version of\nrustc (by using rustup).\n\nIf you're using a nightly version of rustc, just add the corresponding feature\nto be able to use it:\n\n```\n#![feature(repr128)]\n\n#[repr(u128)] // ok!\nenum Foo {\n    Bar(u64),\n}\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs","byte_start":144,"byte_end":205,"line_start":6,"line_end":6,"column_start":5,"column_end":66,"is_primary":true,"text":[{"text":"    type Pointer2<T>: Deref<Target = T> where T: Clone, U: Clone;","highlight_start":5,"highlight_end":66}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"add #![feature(generic_associated_types)] to the crate attributes to enable","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0658]: where-clauses on associated types are unstable (see issue #44265)\n  --> /checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs:6:5\n   |\nLL |     type Pointer2<T>: Deref<Target = T> where T: Clone, U: Clone;\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |\n   = help: add #![feature(generic_associated_types)] to the crate attributes to enable\n\n"}
[01:06:13] {"message":"generic associated types are unstable (see issue #44265)","code":{"code":"E0658","explanation":"\nAn unstable feature was used.\n\nErroneous code example:\n\n```compile_fail,E658\n#[repr(u128)] // error: use of unstable library feature 'repr128'\nenum Foo {\n    Bar(u64),\n}\n```\n\nIf you're using a stable or a beta version of rustc, you won't be able to use\nany unstable features. In order to do so, please switch to a nightly version of\nrustc (by using rustup).\n\nIf you're using a nightly version of rustc, just add the corresponding feature\nto be able to use it:\n\n```\n#![feature(repr128)]\n\n#[repr(u128)] // ok!\nenum Foo {\n    Bar(u64),\n}\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs","byte_start":375,"byte_end":408,"line_start":14,"line_end":14,"column_start":5,"column_end":38,"is_primary":true,"text":[{"text":"    type Pointer<Usize> = Box<Usize>;","highlight_start":5,"highlight_end":38}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"add #![feature(generic_associated_types)] to the crate attributes to enable","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0658]: generic associated types are unstable (see issue #44265)\n  --> /checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs:14:5\n   |\nLL |     type Pointer<Usize> = Box<Usize>;\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |\n   = help: add #![feature(generic_associated_types)] to the crate attributes to enable\n\n"}
[01:06:13] {"message":"generic associated types are unstable (see issue #44265)","code":{"code":"E0658","explanation":"\nAn unstable feature was used.\n\nErroneous code example:\n\n```compile_fail,E658\n#[repr(u128)] // error: use of unstable library feature 'repr128'\nenum Foo {\n    Bar(u64),\n}\n```\n\nIf you're using a stable or a beta version of rustc, you won't be able to use\nany unstable features. In order to do so, please switch to a nightly version of\nrustc (by using rustup).\n\nIf you're using a nightly version of rustc, just add the corresponding feature\nto be able to use it:\n\n```\n#![feature(repr128)]\n\n#[repr(u128)] // ok!\nenum Foo {\n    Bar(u64),\n}\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs","byte_start":466,"byte_end":496,"line_start":16,"line_end":16,"column_start":5,"column_end":35,"is_primary":true,"text":[{"text":"    type Pointer2<U32> = Box<U32>;","highlight_start":5,"highlight_end":35}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"add #![feature(generic_associated_types)] to the crate attributes to enable","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0658]: generic associated types are unstable (see issue #44265)\n  --> /checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs:16:5\n   |\nLL |     type Pointer2<U32> = Box<U32>;\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |\n   = help: add #![feature(generic_associated_types)] to the crate attributes to enable\n\n"}
[01:06:13] {"message":"where-clauses on associated types are unstable (see issue #44265)","code":{"code":"E0658","explanation":"\nAn unstable feature was used.\n\nErroneous code example:\n\n```compile_fail,E658\n#[repr(u128)] // error: use of unstable library feature 'repr128'\nenum Foo {\n    Bar(u64),\n}\n```\n\nIf you're using a stable or a beta version of rustc, you won't be able to use\nany unstable features. In order to do so, please switch to a nightly version of\nrustc (by using rustup).\n\nIf you're using a nightly version of rustc, just add the corresponding feature\nto be able to use it:\n\n```\n#![feature(repr128)]\n\n#[repr(u128)] // ok!\nenum Foo {\n    Bar(u64),\n}\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs","byte_start":569,"byte_end":598,"line_start":21,"line_end":21,"column_start":5,"column_end":34,"is_primary":true,"text":[{"text":"    type Assoc where Self: Sized;","highlight_start":5,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"add #![feature(generic_associated_types)] to the crate attributes to enable","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0658]: where-clauses on associated types are unstable (see issue #44265)\n  --> /checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs:21:5\n   |\nLL |     type Assoc where Self: Sized;\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |\n   = help: add #![feature(generic_associated_types)] to the crate attributes to enable\n\n"}
[01:06:13] {"message":"where-clauses on associated types are unstable (see issue #44265)","code":{"code":"E0658","explanation":"\nAn unstable feature was used.\n\nErroneous code example:\n\n```compile_fail,E658\n#[repr(u128)] // error: use of unstable library feature 'repr128'\nenum Foo {\n    Bar(u64),\n}\n```\n\nIf you're using a stable or a beta version of rustc, you won't be able to use\nany unstable features. In order to do so, please switch to a nightly version of\nrustc (by using rustup).\n\nIf you're using a nightly version of rustc, just add the corresponding feature\nto be able to use it:\n\n```\n#![feature(repr128)]\n\n#[repr(u128)] // ok!\nenum Foo {\n    Bar(u64),\n}\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs","byte_start":687,"byte_end":722,"line_start":26,"line_end":26,"column_start":5,"column_end":40,"is_primary":true,"text":[{"text":"    type Assoc where Self: Sized = Foo;","highlight_start":5,"highlight_end":40}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"add #![feature(generic_associated_types)] to the crate attributes to enable","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0658]: where-clauses on associated types are unstable (see issue #44265)\n  --> /checkout/src/test/ui/feature-gates/feature-gate-generic_associated_types.rs:26:5\n   |\nLL |     type Assoc where Self: Sized = Foo;\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |\n   = help: add #![feature(generic_associated_types)] to the crate attributes to enable\n\n"}
[01:06:13] {"message":"For more information about this error, try `rustc --explain E0658`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0658`.\n"}
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] 
---
[01:06:13] 
[01:06:13] 11    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[01:06:13] 12    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[01:06:13] 13    = note: for more information, see issue #51443 <https://github.com/rust-lang/rust/issues/51443>
[01:06:13] -    = note: method `foo` references the `Self` type in where clauses
[01:06:13] +    = note: method `foo` references the `Self` type in where-clauses
[01:06:13] 16 error: aborting due to previous error
[01:06:13] 17 
[01:06:13] 
[01:06:13] 
[01:06:13] 
[01:06:13] The actual stderr differed from the expected stderr.
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-50781/issue-50781.stderr
[01:06:13] To update references, rerun the tests and pass the `--bless` flag
[01:06:13] To only update this specific test, also pass `--test-args issues/issue-50781.rs`
[01:06:13] error: 1 errors occurred comparing output.
[01:06:13] status: exit code: 1
[01:06:13] status: exit code: 1
[01:06:13] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-50781.rs" "-Zthreads=1" "--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-50781/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-50781/auxiliary" "-A" "unused"
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] stderr:
[01:06:13] stderr:
[01:06:13] ------------------------------------------
[01:06:13] {"message":"the trait `X` cannot be made into an object","code":{"code":"where_clauses_object_safety","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/issues/issue-50781.rs","byte_start":69,"byte_end":101,"line_start":6,"line_end":6,"column_start":5,"column_end":37,"is_primary":true,"text":[{"text":"    fn foo(&self) where Self: Trait; //~ ERROR the trait `X` cannot be made into an object","highlight_start":5,"highlight_end":37}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"lint level defined here","code":null,"level":"note","spans":[{"file_name":"/checkout/src/test/ui/issues/issue-50781.rs","byte_start":8,"byte_end":35,"line_start":1,"line_end":1,"column_start":9,"column_end":36,"is_primary":true,"text":[{"text":"#![deny(where_clauses_object_safety)]","highlight_start":9,"highlight_end":36}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!","code":null,"level":"warning","spans":[],"children":[],"rendered":null},{"message":"for more information, see issue #51443 <https://github.com/rust-lang/rust/issues/51443>","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"method `foo` references the `Self` type in where-clauses","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: the trait `X` cannot be made into an object\n  --> /checkout/src/test/ui/issues/issue-50781.rs:6:5\n   |\nLL |     fn foo(&self) where Self: Trait; //~ ERROR the trait `X` cannot be made into an object\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |\nnote: lint level defined here\n  --> /checkout/src/test/ui/issues/issue-50781.rs:1:9\n   |\nLL | #![deny(where_clauses_object_safety)]\n   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!\n   = note: for more information, see issue #51443 <https://github.com/rust-lang/rust/issues/51443>\n   = note: method `foo` references the `Self` type in where-clauses\n\n"}
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] thread '[ui] ui/issues/issue-50781.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:13] thread '[ui] ui/issues/issue-50781.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:13] 
[01:06:13] ---- [ui] ui/rust-2018/edition-lint-infer-outlives.rs stdout ----
[01:06:13] diff of fixed:
[01:06:13] 
[01:06:13] 12 // combinations—
[01:06:13] 13 //
[01:06:13] 14 // • one generic parameter (T) bound inline
[01:06:13] - // • one parameter (T) with a where clause
[01:06:13] + // • one parameter (T) with a where-clause
[01:06:13] 16 // • two parameters (T and U), both bound inline
[01:06:13] - // • two parameters (T and U), one bound inline, one with a where clause
[01:06:13] - // • two parameters (T and U), both with where clauses
[01:06:13] + // • two parameters (T and U), one bound inline, one with a where-clause
[01:06:13] + // • two parameters (T and U), both with where-clauses
[01:06:13] 19 //
[01:06:13] 20 // —and for every permutation of 0, 1, or 2 lifetimes to outlive and 0 or 1
[01:06:13] - // trait bounds distributed among said parameters (subject to no where clause
[01:06:13] + // trait bounds distributed among said parameters (subject to no where-clause
[01:06:13] 22 // being empty and the struct having at least one lifetime).
[01:06:13] 24 
[01:06:13] 
[01:06:13] 
[01:06:13] The actual fixed differed from the expected fixed.
[01:06:13] The actual fixed differed from the expected fixed.
[01:06:13] Actual fixed saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2018/edition-lint-infer-outlives/edition-lint-infer-outlives.fixed
[01:06:13] To update references, rerun the tests and pass the `--bless` flag
[01:06:13] To only update this specific test, also pass `--test-args rust-2018/edition-lint-infer-outlives.rs`
[01:06:13] error: 1 errors occurred comparing output.
[01:06:13] status: exit code: 1
[01:06:13] status: exit code: 1
[01:06:13] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs" "-Zthreads=1" "--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/rust-2018/edition-lint-infer-outlives/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/rust-2018/edition-lint-infer-outlives/auxiliary" "-A" "unused"
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] stderr:
[01:06:13] stderr:
[01:06:13] ------------------------------------------
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":770,"byte_end":774,"line_start":25,"line_end":25,"column_start":27,"column_end":31,"is_primary":true,"text":[{"text":"struct TeeOutlivesAy<'a, T: 'a> {","highlight_start":27,"highlight_end":31}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"lint level defined here","code":null,"level":"note","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":42,"byte_end":72,"line_start":4,"line_end":4,"column_start":9,"column_end":39,"is_primary":true,"text":[{"text":"#![deny(explicit_outlives_requirements)]","highlight_start":9,"highlight_end":39}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":770,"byte_end":774,"line_start":25,"line_end":25,"column_start":27,"column_end":31,"is_primary":true,"text":[{"text":"struct TeeOutlivesAy<'a, T: 'a> {","highlight_start":27,"highlight_end":31}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:25:27\n   |\nLL | struct TeeOutlivesAy<'a, T: 'a> {\n   |                           ^^^^ help: remove this bound\n   |\nnote: lint level defined here\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:4:9\n   |\nLL | #![deny(explicit_outlives_requirements)]\n   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":884,"byte_end":889,"line_start":30,"line_end":30,"column_start":36,"column_end":41,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyIsDebug<'a, T: 'a + Debug> {","highlight_start":36,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":884,"byte_end":889,"line_start":30,"line_end":30,"column_start":36,"column_end":41,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyIsDebug<'a, T: 'a + Debug> {","highlight_start":36,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:30:36\n   |\nLL | struct TeeOutlivesAyIsDebug<'a, T: 'a + Debug> {\n   |                                    ^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1009,"byte_end":1014,"line_start":35,"line_end":35,"column_start":41,"column_end":46,"is_primary":true,"text":[{"text":"struct TeeIsDebugOutlivesAy<'a, T: Debug + 'a> {","highlight_start":41,"highlight_end":46}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1009,"byte_end":1014,"line_start":35,"line_end":35,"column_start":41,"column_end":46,"is_primary":true,"text":[{"text":"struct TeeIsDebugOutlivesAy<'a, T: Debug + 'a> {","highlight_start":41,"highlight_end":46}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:35:41\n   |\nLL | struct TeeIsDebugOutlivesAy<'a, T: Debug + 'a> {\n   |                                         ^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1122,"byte_end":1131,"line_start":40,"line_end":40,"column_start":34,"column_end":43,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b> {","highlight_start":34,"highlight_end":43}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1122,"byte_end":1131,"line_start":40,"line_end":40,"column_start":34,"column_end":43,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b> {","highlight_start":34,"highlight_end":43}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:40:34\n   |\nLL | struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b> {\n   |                                  ^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1252,"byte_end":1262,"line_start":45,"line_end":45,"column_start":43,"column_end":53,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug> {","highlight_start":43,"highlight_end":53}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1252,"byte_end":1262,"line_start":45,"line_end":45,"column_start":43,"column_end":53,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug> {","highlight_start":43,"highlight_end":53}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:45:43\n   |\nLL | struct TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug> {\n   |                                           ^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1393,"byte_end":1403,"line_start":50,"line_end":50,"column_start":48,"column_end":58,"is_primary":true,"text":[{"text":"struct TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b> {","highlight_start":48,"highlight_end":58}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1393,"byte_end":1403,"line_start":50,"line_end":50,"column_start":48,"column_end":58,"is_primary":true,"text":[{"text":"struct TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b> {","highlight_start":48,"highlight_end":58}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:50:48\n   |\nLL | struct TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b> {\n   |                                                ^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1514,"byte_end":1526,"line_start":55,"line_end":55,"column_start":33,"column_end":45,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAy<'a, T> where T: 'a {","highlight_start":33,"highlight_end":45}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1514,"byte_end":1526,"line_start":55,"line_end":55,"column_start":33,"column_end":45,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAy<'a, T> where T: 'a {","highlight_start":33,"highlight_end":45}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:55:33\n   |\nLL | struct TeeWhereOutlivesAy<'a, T> where T: 'a {\n   |                                 ^^^^^^^^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1649,"byte_end":1654,"line_start":60,"line_end":60,"column_start":50,"column_end":55,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyIsDebug<'a, T> where T: 'a + Debug {","highlight_start":50,"highlight_end":55}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1649,"byte_end":1654,"line_start":60,"line_end":60,"column_start":50,"column_end":55,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyIsDebug<'a, T> where T: 'a + Debug {","highlight_start":50,"highlight_end":55}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:60:50\n   |\nLL | struct TeeWhereOutlivesAyIsDebug<'a, T> where T: 'a + Debug {\n   |                                                  ^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1787,"byte_end":1792,"line_start":65,"line_end":65,"column_start":55,"column_end":60,"is_primary":true,"text":[{"text":"struct TeeWhereIsDebugOutlivesAy<'a, T> where T: Debug + 'a {","highlight_start":55,"highlight_end":60}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1787,"byte_end":1792,"line_start":65,"line_end":65,"column_start":55,"column_end":60,"is_primary":true,"text":[{"text":"struct TeeWhereIsDebugOutlivesAy<'a, T> where T: Debug + 'a {","highlight_start":55,"highlight_end":60}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:65:55\n   |\nLL | struct TeeWhereIsDebugOutlivesAy<'a, T> where T: Debug + 'a {\n   |                                                       ^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1905,"byte_end":1922,"line_start":70,"line_end":70,"column_start":40,"column_end":57,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyBee<'a, 'b, T> where T: 'a + 'b {","highlight_start":40,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":1905,"byte_end":1922,"line_start":70,"line_end":70,"column_start":40,"column_end":57,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyBee<'a, 'b, T> where T: 'a + 'b {","highlight_start":40,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:70:40\n   |\nLL | struct TeeWhereOutlivesAyBee<'a, 'b, T> where T: 'a + 'b {\n   |                                        ^^^^^^^^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2056,"byte_end":2066,"line_start":75,"line_end":75,"column_start":57,"column_end":67,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T> where T: 'a + 'b + Debug {","highlight_start":57,"highlight_end":67}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2056,"byte_end":2066,"line_start":75,"line_end":75,"column_start":57,"column_end":67,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T> where T: 'a + 'b + Debug {","highlight_start":57,"highlight_end":67}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:75:57\n   |\nLL | struct TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T> where T: 'a + 'b + Debug {\n   |                                                         ^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2210,"byte_end":2220,"line_start":80,"line_end":80,"column_start":62,"column_end":72,"is_primary":true,"text":[{"text":"struct TeeWhereIsDebugOutlivesAyBee<'a, 'b, T> where T: Debug + 'a + 'b {","highlight_start":62,"highlight_end":72}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2210,"byte_end":2220,"line_start":80,"line_end":80,"column_start":62,"column_end":72,"is_primary":true,"text":[{"text":"struct TeeWhereIsDebugOutlivesAyBee<'a, 'b, T> where T: Debug + 'a + 'b {","highlight_start":62,"highlight_end":72}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:80:62\n   |\nLL | struct TeeWhereIsDebugOutlivesAyBee<'a, 'b, T> where T: Debug + 'a + 'b {\n   |                                                              ^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2330,"byte_end":2334,"line_start":85,"line_end":85,"column_start":33,"column_end":37,"is_primary":true,"text":[{"text":"struct TeeYooOutlivesAy<'a, T, U: 'a> {","highlight_start":33,"highlight_end":37}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2330,"byte_end":2334,"line_start":85,"line_end":85,"column_start":33,"column_end":37,"is_primary":true,"text":[{"text":"struct TeeYooOutlivesAy<'a, T, U: 'a> {","highlight_start":33,"highlight_end":37}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:85:33\n   |\nLL | struct TeeYooOutlivesAy<'a, T, U: 'a> {\n   |                                 ^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2462,"byte_end":2467,"line_start":91,"line_end":91,"column_start":42,"column_end":47,"is_primary":true,"text":[{"text":"struct TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug> {","highlight_start":42,"highlight_end":47}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2462,"byte_end":2467,"line_start":91,"line_end":91,"column_start":42,"column_end":47,"is_primary":true,"text":[{"text":"struct TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug> {","highlight_start":42,"highlight_end":47}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:91:42\n   |\nLL | struct TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug> {\n   |                                          ^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2605,"byte_end":2610,"line_start":97,"line_end":97,"column_start":47,"column_end":52,"is_primary":true,"text":[{"text":"struct TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a> {","highlight_start":47,"highlight_end":52}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2605,"byte_end":2610,"line_start":97,"line_end":97,"column_start":47,"column_end":52,"is_primary":true,"text":[{"text":"struct TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a> {","highlight_start":47,"highlight_end":52}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:97:47\n   |\nLL | struct TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a> {\n   |                                               ^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2733,"byte_end":2737,"line_start":103,"line_end":103,"column_start":37,"column_end":41,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug> {","highlight_start":37,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2733,"byte_end":2737,"line_start":103,"line_end":103,"column_start":37,"column_end":41,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug> {","highlight_start":37,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:103:37\n   |\nLL | struct TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug> {\n   |                                     ^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2873,"byte_end":2882,"line_start":109,"line_end":109,"column_start":40,"column_end":49,"is_primary":true,"text":[{"text":"struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b> {","highlight_start":40,"highlight_end":49}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":2873,"byte_end":2882,"line_start":109,"line_end":109,"column_start":40,"column_end":49,"is_primary":true,"text":[{"text":"struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b> {","highlight_start":40,"highlight_end":49}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:109:40\n   |\nLL | struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b> {\n   |                                        ^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3021,"byte_end":3031,"line_start":115,"line_end":115,"column_start":49,"column_end":59,"is_primary":true,"text":[{"text":"struct TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug> {","highlight_start":49,"highlight_end":59}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3021,"byte_end":3031,"line_start":115,"line_end":115,"column_start":49,"column_end":59,"is_primary":true,"text":[{"text":"struct TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug> {","highlight_start":49,"highlight_end":59}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:115:49\n   |\nLL | struct TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug> {\n   |                                                 ^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3180,"byte_end":3190,"line_start":121,"line_end":121,"column_start":54,"column_end":64,"is_primary":true,"text":[{"text":"struct TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b> {","highlight_start":54,"highlight_end":64}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3180,"byte_end":3190,"line_start":121,"line_end":121,"column_start":54,"column_end":64,"is_primary":true,"text":[{"text":"struct TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b> {","highlight_start":54,"highlight_end":64}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:121:54\n   |\nLL | struct TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b> {\n   |                                                      ^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3324,"byte_end":3333,"line_start":127,"line_end":127,"column_start":44,"column_end":53,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug> {","highlight_start":44,"highlight_end":53}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3324,"byte_end":3333,"line_start":127,"line_end":127,"column_start":44,"column_end":53,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug> {","highlight_start":44,"highlight_end":53}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:127:44\n   |\nLL | struct TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug> {\n   |                                            ^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3472,"byte_end":3484,"line_start":133,"line_end":133,"column_start":39,"column_end":51,"is_primary":true,"text":[{"text":"struct TeeYooWhereOutlivesAy<'a, T, U> where U: 'a {","highlight_start":39,"highlight_end":51}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3472,"byte_end":3484,"line_start":133,"line_end":133,"column_start":39,"column_end":51,"is_primary":true,"text":[{"text":"struct TeeYooWhereOutlivesAy<'a, T, U> where U: 'a {","highlight_start":39,"highlight_end":51}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:133:39\n   |\nLL | struct TeeYooWhereOutlivesAy<'a, T, U> where U: 'a {\n   |                                       ^^^^^^^^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3625,"byte_end":3630,"line_start":139,"line_end":139,"column_start":56,"column_end":61,"is_primary":true,"text":[{"text":"struct TeeYooWhereOutlivesAyIsDebug<'a, T, U> where U: 'a + Debug {","highlight_start":56,"highlight_end":61}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3625,"byte_end":3630,"line_start":139,"line_end":139,"column_start":56,"column_end":61,"is_primary":true,"text":[{"text":"struct TeeYooWhereOutlivesAyIsDebug<'a, T, U> where U: 'a + Debug {","highlight_start":56,"highlight_end":61}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:139:56\n   |\nLL | struct TeeYooWhereOutlivesAyIsDebug<'a, T, U> where U: 'a + Debug {\n   |                                                        ^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3781,"byte_end":3786,"line_start":145,"line_end":145,"column_start":61,"column_end":66,"is_primary":true,"text":[{"text":"struct TeeYooWhereIsDebugOutlivesAy<'a, T, U> where U: Debug + 'a {","highlight_start":61,"highlight_end":66}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3781,"byte_end":3786,"line_start":145,"line_end":145,"column_start":61,"column_end":66,"is_primary":true,"text":[{"text":"struct TeeYooWhereIsDebugOutlivesAy<'a, T, U> where U: Debug + 'a {","highlight_start":61,"highlight_end":66}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:145:61\n   |\nLL | struct TeeYooWhereIsDebugOutlivesAy<'a, T, U> where U: Debug + 'a {\n   |                                                             ^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3913,"byte_end":3917,"line_start":151,"line_end":151,"column_start":42,"column_end":46,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U> where U: Debug {","highlight_start":42,"highlight_end":46}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":3913,"byte_end":3917,"line_start":151,"line_end":151,"column_start":42,"column_end":46,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U> where U: Debug {","highlight_start":42,"highlight_end":46}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:151:42\n   |\nLL | struct TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U> where U: Debug {\n   |                                          ^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4067,"byte_end":4084,"line_start":157,"line_end":157,"column_start":46,"column_end":63,"is_primary":true,"text":[{"text":"struct TeeYooWhereOutlivesAyBee<'a, 'b, T, U> where U: 'a + 'b {","highlight_start":46,"highlight_end":63}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4067,"byte_end":4084,"line_start":157,"line_end":157,"column_start":46,"column_end":63,"is_primary":true,"text":[{"text":"struct TeeYooWhereOutlivesAyBee<'a, 'b, T, U> where U: 'a + 'b {","highlight_start":46,"highlight_end":63}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:157:46\n   |\nLL | struct TeeYooWhereOutlivesAyBee<'a, 'b, T, U> where U: 'a + 'b {\n   |                                              ^^^^^^^^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4236,"byte_end":4246,"line_start":163,"line_end":163,"column_start":63,"column_end":73,"is_primary":true,"text":[{"text":"struct TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U> where U: 'a + 'b + Debug {","highlight_start":63,"highlight_end":73}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4236,"byte_end":4246,"line_start":163,"line_end":163,"column_start":63,"column_end":73,"is_primary":true,"text":[{"text":"struct TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U> where U: 'a + 'b + Debug {","highlight_start":63,"highlight_end":73}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:163:63\n   |\nLL | struct TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U> where U: 'a + 'b + Debug {\n   |                                                               ^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4408,"byte_end":4418,"line_start":169,"line_end":169,"column_start":68,"column_end":78,"is_primary":true,"text":[{"text":"struct TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U> where U: Debug + 'a + 'b {","highlight_start":68,"highlight_end":78}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4408,"byte_end":4418,"line_start":169,"line_end":169,"column_start":68,"column_end":78,"is_primary":true,"text":[{"text":"struct TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U> where U: Debug + 'a + 'b {","highlight_start":68,"highlight_end":78}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:169:68\n   |\nLL | struct TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U> where U: Debug + 'a + 'b {\n   |                                                                    ^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4556,"byte_end":4565,"line_start":175,"line_end":175,"column_start":49,"column_end":58,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U> where U: Debug {","highlight_start":49,"highlight_end":58}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4556,"byte_end":4565,"line_start":175,"line_end":175,"column_start":49,"column_end":58,"is_primary":true,"text":[{"text":"struct TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U> where U: Debug {","highlight_start":49,"highlight_end":58}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:175:49\n   |\nLL | struct TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U> where U: Debug {\n   |                                                 ^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4731,"byte_end":4738,"line_start":181,"line_end":181,"column_start":58,"column_end":65,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U> where T: 'a, U: Debug {","highlight_start":58,"highlight_end":65}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this bound","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4731,"byte_end":4738,"line_start":181,"line_end":181,"column_start":58,"column_end":65,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U> where T: 'a, U: Debug {","highlight_start":58,"highlight_end":65}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:181:58\n   |\nLL | struct TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U> where T: 'a, U: Debug {\n   |                                                          ^^^^^^^ help: remove this bound\n\n"}
[01:06:13] {"message":"outlives requirements can be inferred","code":{"code":"explicit_outlives_requirements","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4896,"byte_end":4908,"line_start":187,"line_end":187,"column_start":65,"column_end":77,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyBeeYooWhereIsDebug<'a, 'b, T, U> where T: 'a + 'b, U: Debug {","highlight_start":65,"highlight_end":77}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these bounds","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs","byte_start":4896,"byte_end":4908,"line_start":187,"line_end":187,"column_start":65,"column_end":77,"is_primary":true,"text":[{"text":"struct TeeWhereOutlivesAyBeeYooWhereIsDebug<'a, 'b, T, U> where T: 'a + 'b, U: Debug {","highlight_start":65,"highlight_end":77}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: outlives requirements can be inferred\n  --> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:187:65\n   |\nLL | struct TeeWhereOutlivesAyBeeYooWhereIsDebug<'a, 'b, T, U> where T: 'a + 'b, U: Debug {\n   |                                                                 ^^^^^^^^^^^^ help: remove these bounds\n\n"}
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] thread '[ui] ui/rust-2018/edition-lint-infer-outlives.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:13] thread '[ui] ui/rust-2018/edition-lint-infer-outlives.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:13] 
[01:06:13] ---- [ui] ui/trivial-bounds/trivial-bounds-inconsistent.rs stdout ----
[01:06:13] diff of stderr:
[01:06:13] 
[01:06:13] 24 LL | union U where i32: Foo { f: i32 }
[01:06:13] 26 
[01:06:13] - warning: where clauses are not enforced in type aliases
[01:06:13] - warning: where clauses are not enforced in type aliases
[01:06:13] + warning: where-clauses are not enforced in type aliases
[01:06:13] 29    |
[01:06:13] 29    |
[01:06:13] 30 LL | type Y where i32: Foo = ();
[01:06:13] 
[01:06:13] The actual stderr differed from the expected stderr.
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/trivial-bounds/trivial-bounds-inconsistent/trivial-bounds-inconsistent.stderr
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/trivial-bounds/trivial-bounds-inconsistent/trivial-bounds-inconsistent.stderr
[01:06:13] To update references, rerun the tests and pass the `--bless` flag
[01:06:13] To only update this specific test, also pass `--test-args trivial-bounds/trivial-bounds-inconsistent.rs`
[01:06:13] error: 1 errors occurred comparing output.
[01:06:13] status: exit code: 0
[01:06:13] status: exit code: 0
[01:06:13] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs" "-Zthreads=1" "--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/trivial-bounds/trivial-bounds-inconsistent/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/trivial-bounds/trivial-bounds-inconsistent/auxiliary" "-A" "unused"
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] stderr:
[01:06:13] stderr:
[01:06:13] ------------------------------------------
[01:06:13] {"message":"Trait bound i32: Foo does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":246,"byte_end":249,"line_start":14,"line_end":14,"column_start":19,"column_end":22,"is_primary":true,"text":[{"text":"enum E where i32: Foo { V }","highlight_start":19,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"#[warn(trivial_bounds)] on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"warning: Trait bound i32: Foo does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:14:19\n   |\nLL | enum E where i32: Foo { V }\n   |                   ^^^\n   |\n   = note: #[warn(trivial_bounds)] on by default\n\n"}
[01:06:13] {"message":"Trait bound i32: Foo does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":277,"byte_end":280,"line_start":16,"line_end":16,"column_start":21,"column_end":24,"is_primary":true,"text":[{"text":"struct S where i32: Foo;","highlight_start":21,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound i32: Foo does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:16:21\n   |\nLL | struct S where i32: Foo;\n   |                     ^^^\n\n"}
[01:06:13] {"message":"Trait bound i32: Foo does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":302,"byte_end":305,"line_start":18,"line_end":18,"column_start":20,"column_end":23,"is_primary":true,"text":[{"text":"trait T where i32: Foo {}","highlight_start":20,"highlight_end":23}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound i32: Foo does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:18:20\n   |\nLL | trait T where i32: Foo {}\n   |                    ^^^\n\n"}
[01:06:13] {"message":"Trait bound i32: Foo does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":329,"byte_end":332,"line_start":20,"line_end":20,"column_start":20,"column_end":23,"is_primary":true,"text":[{"text":"union U where i32: Foo { f: i32 }","highlight_start":20,"highlight_end":23}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound i32: Foo does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:20:20\n   |\nLL | union U where i32: Foo { f: i32 }\n   |                    ^^^\n\n"}
[01:06:13] {"message":"where-clauses are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":358,"byte_end":366,"line_start":22,"line_end":22,"column_start":14,"column_end":22,"is_primary":true,"text":[{"text":"type Y where i32: Foo = ();","highlight_start":14,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"#[warn(type_alias_bounds)] on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the clause will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"warning: where-clauses are not enforced in type aliases\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:22:14\n   |\nLL | type Y where i32: Foo = ();\n   |              ^^^^^^^^\n   |\n   = note: #[warn(type_alias_bounds)] on by default\n   = help: the clause will not be checked when the type alias is used, and should be removed\n\n"}
[01:06:13] {"message":"Trait bound i32: Foo does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":363,"byte_end":366,"line_start":22,"line_end":22,"column_start":19,"column_end":22,"is_primary":true,"text":[{"text":"type Y where i32: Foo = ();","highlight_start":19,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound i32: Foo does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:22:19\n   |\nLL | type Y where i32: Foo = ();\n   |                   ^^^\n\n"}
[01:06:13] {"message":"Trait bound i32: Foo does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":401,"byte_end":404,"line_start":24,"line_end":24,"column_start":28,"column_end":31,"is_primary":true,"text":[{"text":"impl Foo for () where i32: Foo {","highlight_start":28,"highlight_end":31}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound i32: Foo does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:24:28\n   |\nLL | impl Foo for () where i32: Foo {\n   |                            ^^^\n\n"}
[01:06:13] {"message":"Trait bound i32: Foo does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":534,"byte_end":537,"line_start":32,"line_end":32,"column_start":19,"column_end":22,"is_primary":true,"text":[{"text":"fn f() where i32: Foo {","highlight_start":19,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound i32: Foo does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:32:19\n   |\nLL | fn f() where i32: Foo {\n   |                   ^^^\n\n"}
[01:06:13] {"message":"Trait bound &'static str: Foo does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":652,"byte_end":655,"line_start":39,"line_end":39,"column_start":28,"column_end":31,"is_primary":true,"text":[{"text":"fn g() where &'static str: Foo {","highlight_start":28,"highlight_end":31}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound &'static str: Foo does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:39:28\n   |\nLL | fn g() where &'static str: Foo {\n   |                            ^^^\n\n"}
[01:06:13] {"message":"Trait bound str: std::marker::Sized does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":835,"byte_end":840,"line_start":53,"line_end":53,"column_start":37,"column_end":42,"is_primary":true,"text":[{"text":"struct TwoStrs(str, str) where str: Sized;","highlight_start":37,"highlight_end":42}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound str: std::marker::Sized does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:53:37\n   |\nLL | struct TwoStrs(str, str) where str: Sized;\n   |                                     ^^^^^\n\n"}
[01:06:13] {"message":"Trait bound for<'a> Dst<(dyn A + 'a)>: std::marker::Sized does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":889,"byte_end":894,"line_start":55,"line_end":55,"column_start":47,"column_end":52,"is_primary":true,"text":[{"text":"fn unsized_local() where for<'a> Dst<A + 'a>: Sized {","highlight_start":47,"highlight_end":52}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound for<'a> Dst<(dyn A + 'a)>: std::marker::Sized does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:55:47\n   |\nLL | fn unsized_local() where for<'a> Dst<A + 'a>: Sized {\n   |                                               ^^^^^\n\n"}
[01:06:13] {"message":"Trait bound str: std::marker::Sized does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":996,"byte_end":1001,"line_start":59,"line_end":59,"column_start":35,"column_end":40,"is_primary":true,"text":[{"text":"fn return_str() -> str where str: Sized {","highlight_start":35,"highlight_end":40}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound str: std::marker::Sized does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:59:35\n   |\nLL | fn return_str() -> str where str: Sized {\n   |                                   ^^^^^\n\n"}
[01:06:13] {"message":"Trait bound std::string::String: std::ops::Neg does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":1094,"byte_end":1126,"line_start":63,"line_end":63,"column_start":46,"column_end":78,"is_primary":true,"text":[{"text":"fn use_op(s: String) -> String where String: ::std::ops::Neg<Output = String> {","highlight_start":46,"highlight_end":78}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound std::string::String: std::ops::Neg does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:63:46\n   |\nLL | fn use_op(s: String) -> String where String: ::std::ops::Neg<Output = String> {\n   |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n"}
[01:06:13] {"message":"Trait bound i32: std::iter::Iterator does not depend on any type or lifetime parameters","code":{"code":"trivial_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs","byte_start":1163,"byte_end":1171,"line_start":67,"line_end":67,"column_start":25,"column_end":33,"is_primary":true,"text":[{"text":"fn use_for() where i32: Iterator {","highlight_start":25,"highlight_end":33}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"warning: Trait bound i32: std::iter::Iterator does not depend on any type or lifetime parameters\n  --> /checkout/src/test/ui/trivial-bounds/trivial-bounds-inconsistent.rs:67:25\n   |\nLL | fn use_for() where i32: Iterator {\n   |                         ^^^^^^^^\n\n"}
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] thread '[ui] ui/trivial-bounds/trivial-bounds-inconsistent.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:13] 
[01:06:13] 
[01:06:13] ---- [ui] ui/type/type-alias-bounds.rs stdout ----
[01:06:13] diff of stderr:
[01:06:13] 
[01:06:13] 7    = note: #[warn(type_alias_bounds)] on by default
[01:06:13] 8    = help: the bound will not be checked when the type alias is used, and should be removed
[01:06:13] - warning: where clauses are not enforced in type aliases
[01:06:13] - warning: where clauses are not enforced in type aliases
[01:06:13] + warning: where-clauses are not enforced in type aliases
[01:06:13] 12    |
[01:06:13] 12    |
[01:06:13] 13 LL | type S2Vec<T> where T: Send = Vec<T>;
[01:06:13] 31    |
[01:06:13] 31    |
[01:06:13] 32    = help: the bound will not be checked when the type alias is used, and should be removed
[01:06:13] - warning: where clauses are not enforced in type aliases
[01:06:13] - warning: where clauses are not enforced in type aliases
[01:06:13] + warning: where-clauses are not enforced in type aliases
[01:06:13] 36    |
[01:06:13] 36    |
[01:06:13] 37 LL | type W2Vec<'b, T> where T: 'b, T: 'b = (&'b u32, Vec<T>);
[01:06:13] 
[01:06:13] 52 LL | type T1<U: Bound> = U::Assoc; //~ WARN not enforced in type aliases
[01:06:13] 54 
[01:06:13] - warning: where clauses are not enforced in type aliases
[01:06:13] - warning: where clauses are not enforced in type aliases
[01:06:13] + warning: where-clauses are not enforced in type aliases
[01:06:13] 57    |
[01:06:13] 57    |
[01:06:13] 58 LL | type T2<U> where U: Bound = U::Assoc;  //~ WARN not enforced in type aliases
[01:06:13] 
[01:06:13] The actual stderr differed from the expected stderr.
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/type/type-alias-bounds/type-alias-bounds.stderr
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/type/type-alias-bounds/type-alias-bounds.stderr
[01:06:13] To update references, rerun the tests and pass the `--bless` flag
[01:06:13] To only update this specific test, also pass `--test-args type/type-alias-bounds.rs`
[01:06:13] error: 1 errors occurred comparing output.
[01:06:13] status: exit code: 0
[01:06:13] status: exit code: 0
[01:06:13] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/type/type-alias-bounds.rs" "-Zthreads=1" "--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/type/type-alias-bounds/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/type/type-alias-bounds/auxiliary" "-A" "unused"
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] stderr:
[01:06:13] stderr:
[01:06:13] ------------------------------------------
[01:06:13] {"message":"bounds on generic parameters are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":145,"byte_end":149,"line_start":8,"line_end":8,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"type SVec<T: Send + Send> = Vec<T>;","highlight_start":14,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":152,"byte_end":156,"line_start":8,"line_end":8,"column_start":21,"column_end":25,"is_primary":true,"text":[{"text":"type SVec<T: Send + Send> = Vec<T>;","highlight_start":21,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"#[warn(type_alias_bounds)] on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the bound will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"warning: bounds on generic parameters are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:8:14\n   |\nLL | type SVec<T: Send + Send> = Vec<T>;\n   |              ^^^^   ^^^^\n   |\n   = note: #[warn(type_alias_bounds)] on by default\n   = help: the bound will not be checked when the type alias is used, and should be removed\n\n"}
[01:06:13] {"message":"where-clauses are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":280,"byte_end":287,"line_start":10,"line_end":10,"column_start":21,"column_end":28,"is_primary":true,"text":[{"text":"type S2Vec<T> where T: Send = Vec<T>;","highlight_start":21,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the clause will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"warning: where-clauses are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:10:21\n   |\nLL | type S2Vec<T> where T: Send = Vec<T>;\n   |                     ^^^^^^^\n   |\n   = help: the clause will not be checked when the type alias is used, and should be removed\n\n"}
[01:06:13] {"message":"bounds on generic parameters are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":393,"byte_end":395,"line_start":12,"line_end":12,"column_start":19,"column_end":21,"is_primary":true,"text":[{"text":"type VVec<'b, 'a: 'b + 'b> = (&'b u32, Vec<&'a i32>);","highlight_start":19,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":398,"byte_end":400,"line_start":12,"line_end":12,"column_start":24,"column_end":26,"is_primary":true,"text":[{"text":"type VVec<'b, 'a: 'b + 'b> = (&'b u32, Vec<&'a i32>);","highlight_start":24,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the bound will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"warning: bounds on generic parameters are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:12:19\n   |\nLL | type VVec<'b, 'a: 'b + 'b> = (&'b u32, Vec<&'a i32>);\n   |                   ^^   ^^\n   |\n   = help: the bound will not be checked when the type alias is used, and should be removed\n\n"}
[01:06:13] {"message":"bounds on generic parameters are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":538,"byte_end":540,"line_start":14,"line_end":14,"column_start":18,"column_end":20,"is_primary":true,"text":[{"text":"type WVec<'b, T: 'b + 'b> = (&'b u32, Vec<T>);","highlight_start":18,"highlight_end":20}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":543,"byte_end":545,"line_start":14,"line_end":14,"column_start":23,"column_end":25,"is_primary":true,"text":[{"text":"type WVec<'b, T: 'b + 'b> = (&'b u32, Vec<T>);","highlight_start":23,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the bound will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"warning: bounds on generic parameters are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:14:18\n   |\nLL | type WVec<'b, T: 'b + 'b> = (&'b u32, Vec<T>);\n   |                  ^^   ^^\n   |\n   = help: the bound will not be checked when the type alias is used, and should be removed\n\n"}
[01:06:13] {"message":"where-clauses are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":684,"byte_end":689,"line_start":16,"line_end":16,"column_start":25,"column_end":30,"is_primary":true,"text":[{"text":"type W2Vec<'b, T> where T: 'b, T: 'b = (&'b u32, Vec<T>);","highlight_start":25,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":691,"byte_end":696,"line_start":16,"line_end":16,"column_start":32,"column_end":37,"is_primary":true,"text":[{"text":"type W2Vec<'b, T> where T: 'b, T: 'b = (&'b u32, Vec<T>);","highlight_start":32,"highlight_end":37}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the clause will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"warning: where-clauses are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:16:25\n   |\nLL | type W2Vec<'b, T> where T: 'b, T: 'b = (&'b u32, Vec<T>);\n   |                         ^^^^^  ^^^^^\n   |\n   = help: the clause will not be checked when the type alias is used, and should be removed\n\n"}
[01:06:13] {"message":"bounds on generic parameters are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":1886,"byte_end":1891,"line_start":47,"line_end":47,"column_start":12,"column_end":17,"is_primary":true,"text":[{"text":"type T1<U: Bound> = U::Assoc; //~ WARN not enforced in type aliases","highlight_start":12,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the bound will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":1895,"byte_end":1903,"line_start":47,"line_end":47,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":"type T1<U: Bound> = U::Assoc; //~ WARN not enforced in type aliases","highlight_start":21,"highlight_end":29}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"warning: bounds on generic parameters are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:47:12\n   |\nLL | type T1<U: Bound> = U::Assoc; //~ WARN not enforced in type aliases\n   |            ^^^^^\n   |\n   = help: the bound will not be checked when the type alias is used, and should be removed\nhelp: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:47:21\n   |\nLL | type T1<U: Bound> = U::Assoc; //~ WARN not enforced in type aliases\n   |                     ^^^^^^^^\n\n"}
[01:06:13] {"message":"where-clauses are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":1960,"byte_end":1968,"line_start":48,"line_end":48,"column_start":18,"column_end":26,"is_primary":true,"text":[{"text":"type T2<U> where U: Bound = U::Assoc;  //~ WARN not enforced in type aliases","highlight_start":18,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the clause will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases","code":null,"level":"help","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":1971,"byte_end":1979,"line_start":48,"line_end":48,"column_start":29,"column_end":37,"is_primary":true,"text":[{"text":"type T2<U> where U: Bound = U::Assoc;  //~ WARN not enforced in type aliases","highlight_start":29,"highlight_end":37}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"warning: where-clauses are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:48:18\n   |\nLL | type T2<U> where U: Bound = U::Assoc;  //~ WARN not enforced in type aliases\n   |                  ^^^^^^^^\n   |\n   = help: the clause will not be checked when the type alias is used, and should be removed\nhelp: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:48:29\n   |\nLL | type T2<U> where U: Bound = U::Assoc;  //~ WARN not enforced in type aliases\n   |                             ^^^^^^^^\n\n"}
[01:06:13] {"message":"bounds on generic parameters are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":2200,"byte_end":2205,"line_start":56,"line_end":56,"column_start":12,"column_end":17,"is_primary":true,"text":[{"text":"type T5<U: Bound> = <U as Bound>::Assoc;  //~ WARN not enforced in type aliases","highlight_start":12,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the bound will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"warning: bounds on generic parameters are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:56:12\n   |\nLL | type T5<U: Bound> = <U as Bound>::Assoc;  //~ WARN not enforced in type aliases\n   |            ^^^^^\n   |\n   = help: the bound will not be checked when the type alias is used, and should be removed\n\n"}
[01:06:13] {"message":"bounds on generic parameters are not enforced in type aliases","code":{"code":"type_alias_bounds","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/src/test/ui/type/type-alias-bounds.rs","byte_start":2280,"byte_end":2285,"line_start":57,"line_end":57,"column_start":12,"column_end":17,"is_primary":true,"text":[{"text":"type T6<U: Bound> = ::std::vec::Vec<U>;  //~ WARN not enforced in type aliases","highlight_start":12,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the bound will not be checked when the type alias is used, and should be removed","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"warning: bounds on generic parameters are not enforced in type aliases\n  --> /checkout/src/test/ui/type/type-alias-bounds.rs:57:12\n   |\nLL | type T6<U: Bound> = ::std::vec::Vec<U>;  //~ WARN not enforced in type aliases\n   |            ^^^^^\n   |\n   = help: the bound will not be checked when the type alias is used, and should be removed\n\n"}
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] thread '[ui] ui/type/type-alias-bounds.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:13] 
[01:06:13] 
[01:06:13] ---- [ui] ui/where-clauses/where-equality-constraints.rs stdout ----
[01:06:13] diff of stderr:
[01:06:13] 
[01:06:13] - error: equality constraints are not yet supported in where clauses (see #20041)
[01:06:13] + error: equality constraints are not yet supported in where-clauses (see #20041)
[01:06:13] 3    |
[01:06:13] 3    |
[01:06:13] 4 LL | fn f() where u8 = u16 {}
[01:06:13] 5    |              ^^^^^^^^
[01:06:13] 6 
[01:06:13] 6 
[01:06:13] - error: equality constraints are not yet supported in where clauses (see #20041)
[01:06:13] + error: equality constraints are not yet supported in where-clauses (see #20041)
[01:06:13] 9    |
[01:06:13] 9    |
[01:06:13] 10 LL | fn g() where for<'a> &'static (u8,) == u16, {}
[01:06:13] 
[01:06:13] The actual stderr differed from the expected stderr.
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/where-clauses/where-equality-constraints/where-equality-constraints.stderr
[01:06:13] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/where-clauses/where-equality-constraints/where-equality-constraints.stderr
[01:06:13] To update references, rerun the tests and pass the `--bless` flag
[01:06:13] To only update this specific test, also pass `--test-args where-clauses/where-equality-constraints.rs`
[01:06:13] error: 1 errors occurred comparing output.
[01:06:13] status: exit code: 1
[01:06:13] status: exit code: 1
[01:06:13] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/where-clauses/where-equality-constraints.rs" "-Zthreads=1" "--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/where-clauses/where-equality-constraints/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/where-clauses/where-equality-constraints/auxiliary" "-A" "unused"
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] stderr:
[01:06:13] stderr:
[01:06:13] ------------------------------------------
[01:06:13] {"message":"equality constraints are not yet supported in where-clauses (see #20041)","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/where-clauses/where-equality-constraints.rs","byte_start":13,"byte_end":21,"line_start":1,"line_end":1,"column_start":14,"column_end":22,"is_primary":true,"text":[{"text":"fn f() where u8 = u16 {}","highlight_start":14,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: equality constraints are not yet supported in where-clauses (see #20041)\n  --> /checkout/src/test/ui/where-clauses/where-equality-constraints.rs:1:14\n   |\nLL | fn f() where u8 = u16 {}\n   |              ^^^^^^^^\n\n"}
[01:06:13] {"message":"equality constraints are not yet supported in where-clauses (see #20041)","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/where-clauses/where-equality-constraints.rs","byte_start":109,"byte_end":138,"line_start":3,"line_end":3,"column_start":14,"column_end":43,"is_primary":true,"text":[{"text":"fn g() where for<'a> &'static (u8,) == u16, {}","highlight_start":14,"highlight_end":43}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: equality constraints are not yet supported in where-clauses (see #20041)\n  --> /checkout/src/test/ui/where-clauses/where-equality-constraints.rs:3:14\n   |\nLL | fn g() where for<'a> &'static (u8,) == u16, {}\n   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n"}
[01:06:13] 
[01:06:13] ------------------------------------------
[01:06:13] 
[01:06:13] thread '[ui] ui/where-clauses/where-equality-constraints.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
---
[01:06:13] 
[01:06:13] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:502:22
[01:06:13] 
[01:06:13] 
[01:06:13] 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"
[01:06:13] 
[01:06:13] 
[01:06:13] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:06:13] Build completed unsuccessfully in 0:04:24
[01:06:13] Build completed unsuccessfully in 0:04:24
[01:06:13] make: *** [check] Error 1
[01:06:13] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:07fdee2f
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sat Feb  2 00:20:23 UTC 2019
---
travis_time:end:214d54e2:start=1549066824420455903,finish=1549066824426089762,duration=5633859
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:035825a9
$ 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:05e049e4
travis_time:start:05e049e4
$ 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:11dece96
$ 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)

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 81d52ee to 768afc6 Feb 2, 2019

Show resolved Hide resolved src/bootstrap/builder.rs Outdated
Show resolved Hide resolved src/liballoc/collections/btree/node.rs
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 3, 2019

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

@@ -327,7 +327,7 @@ fn map_lib_features(base_src_path: &Path,
}
becoming_feature = None;
if line.contains("rustc_const_unstable(") {
// `const fn` features are handled specially.
// Const fn features are handled specially.

This comment has been minimized.

@steveklabnik

steveklabnik Feb 4, 2019

Member

I'm not sure this is a good change.

This comment has been minimized.

@alexreg

alexreg Feb 4, 2019

Author Contributor

Okay, happy to undo!

This comment has been minimized.

@alexreg

alexreg Feb 4, 2019

Author Contributor

On second thought, I ran a search, and it seems "const fn" without the quotes is much more common in comments. I think it's okay personally, since "fn" can be considered an abbreviation for "function", and "const" and attribute/adjective.

This comment has been minimized.

@alexreg

alexreg Feb 4, 2019

Author Contributor

(But I'll still revert it if you prefer.)

This comment has been minimized.

@steveklabnik

steveklabnik Feb 4, 2019

Member

I'm not entirely sure that commonality is the right argument here. I don't think that either of these is particularly bad, but given that it's a specific rust feature, and that's it's name, const fn seems like its "proper name". Dunno.

This comment has been minimized.

@alexreg

alexreg Feb 4, 2019

Author Contributor

It might not be... I am just of the mind to opt for consistency when in doubt as to which is "morally" better. "Fn" is used as an abbreviation all over the codebase without backticks as well, it's worth saying. Will leave this for now, but just tell me to revert if you decide on that. Just pushed BTW, so feel free to continue reviewing. Thanks!

@alexreg

This comment has been minimized.

Copy link
Contributor Author

alexreg commented Feb 4, 2019

(About to push some changes, FYI. @steveklabnik)

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 768afc6 to 600ba92 Feb 4, 2019

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Feb 4, 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:00d08b82:start=1549286668287651318,finish=1549286671534656906,duration=3247005588
$ 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:04:03] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:04:03] tidy error: /checkout/src/test/ui/feature-gate/issue-43106-gating-of-builtin-attrs.rs:63: line longer than 100 chars
[00:04:04] some tidy checks failed
[00:04:04] 
[00:04:04] 
[00:04:04] 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:04:04] 
[00:04:04] 
[00:04:04] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:04:04] Build completed unsuccessfully in 0:00:46
[00:04:04] Build completed unsuccessfully in 0:00:46
[00:04:04] make: *** [tidy] Error 1
[00:04:04] Makefile:68: recipe for target 'tidy' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:03aaa8dc
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Mon Feb  4 13:28:46 UTC 2019
---
travis_time:end:0d2a4880:start=1549286927499550591,finish=1549286927503754213,duration=4203622
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:0eb69140
$ 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:2e382609
travis_time:start:2e382609
$ 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:03d539e0
$ 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)

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 600ba92 to 03c91ae Feb 4, 2019

@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Feb 4, 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:0a608de0:start=1549292754314724033,finish=1549292757462884458,duration=3148160425
$ 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:00:33] iiiii............................................................................................... 1100/5364
[01:00:35] .................................................................................................... 1200/5364
[01:00:38] .................................................................................................... 1300/5364
[01:00:41] .................................................................................................... 1400/5364
[01:00:43] ...................................F................................................................ 1500/5364
[01:00:49] ..................................................................i................................. 1700/5364
[01:00:53] .................................................................................................... 1800/5364
[01:00:57] .................................................................................................... 1900/5364
[01:01:00] .................................................................................................... 2000/5364
---
[01:03:09] 37 warning: unknown lint: `x5400`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:104:25
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:105:25
[01:03:09] 39    |
[01:03:09] 40 LL |     mod inner { #![warn(x5400)] }
[01:03:09] 
[01:03:09] 42 
[01:03:09] 43 warning: unknown lint: `x5400`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:107:12
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:107:12
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:108:12
[01:03:09] 45    |
[01:03:09] 46 LL |     #[warn(x5400)] fn f() { }
[01:03:09] 
[01:03:09] 48 
[01:03:09] 49 warning: unknown lint: `x5400`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:110:12
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:110:12
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:111:12
[01:03:09] 51    |
[01:03:09] 52 LL |     #[warn(x5400)] struct S;
[01:03:09] 
[01:03:09] 54 
[01:03:09] 55 warning: unknown lint: `x5400`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:113:12
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:113:12
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:114:12
[01:03:09] 57    |
[01:03:09] 58 LL |     #[warn(x5400)] type T = S;
[01:03:09] 
[01:03:09] 60 
[01:03:09] 61 warning: unknown lint: `x5400`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:116:12
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:116:12
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:117:12
[01:03:09] 63    |
[01:03:09] 64 LL |     #[warn(x5400)] impl S { }
[01:03:09] 
[01:03:09] 66 
[01:03:09] 67 warning: unknown lint: `x5300`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:120:9
---
[01:03:09] 73 warning: unknown lint: `x5300`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:123:26
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:124:26
[01:03:09] 75    |
[01:03:09] 76 LL |     mod inner { #![allow(x5300)] }
[01:03:09] 
[01:03:09] 78 
[01:03:09] 79 warning: unknown lint: `x5300`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:126:13
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:126:13
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:127:13
[01:03:09] 81    |
[01:03:09] 82 LL |     #[allow(x5300)] fn f() { }
[01:03:09] 
[01:03:09] 84 
[01:03:09] 85 warning: unknown lint: `x5300`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:129:13
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:129:13
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:130:13
[01:03:09] 87    |
[01:03:09] 88 LL |     #[allow(x5300)] struct S;
[01:03:09] 
[01:03:09] 90 
[01:03:09] 91 warning: unknown lint: `x5300`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:132:13
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:132:13
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:133:13
[01:03:09] 93    |
[01:03:09] 94 LL |     #[allow(x5300)] type T = S;
[01:03:09] 
[01:03:09] 96 
[01:03:09] 97 warning: unknown lint: `x5300`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:135:13
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:135:13
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:136:13
[01:03:09] 99    |
[01:03:09] 100 LL |     #[allow(x5300)] impl S { }
[01:03:09] 
[01:03:09] 102 
[01:03:09] 103 warning: unknown lint: `x5200`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:139:10
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:139:10
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:140:10
[01:03:09] 105    |
[01:03:09] 106 LL | #[forbid(x5200)]
[01:03:09] 
[01:03:09] 108 
[01:03:09] 109 warning: unknown lint: `x5200`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:142:27
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:142:27
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:143:27
[01:03:09] 111    |
[01:03:09] 112 LL |     mod inner { #![forbid(x5200)] }
[01:03:09] 
[01:03:09] 114 
[01:03:09] 115 warning: unknown lint: `x5200`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:145:14
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:145:14
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:146:14
[01:03:09] 117    |
[01:03:09] 118 LL |     #[forbid(x5200)] fn f() { }
[01:03:09] 
[01:03:09] 120 
[01:03:09] 121 warning: unknown lint: `x5200`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:148:14
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:148:14
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:149:14
[01:03:09] 123    |
[01:03:09] 124 LL |     #[forbid(x5200)] struct S;
[01:03:09] 
[01:03:09] 126 
[01:03:09] 127 warning: unknown lint: `x5200`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:151:14
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:151:14
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:152:14
[01:03:09] 129    |
[01:03:09] 130 LL |     #[forbid(x5200)] type T = S;
[01:03:09] 
[01:03:09] 132 
[01:03:09] 133 warning: unknown lint: `x5200`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:154:14
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:154:14
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:155:14
[01:03:09] 135    |
[01:03:09] 136 LL |     #[forbid(x5200)] impl S { }
[01:03:09] 
[01:03:09] 138 
[01:03:09] 139 warning: unknown lint: `x5100`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:158:8
---
[01:03:09] 145 warning: unknown lint: `x5100`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:161:25
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:162:25
[01:03:09] 147    |
[01:03:09] 148 LL |     mod inner { #![deny(x5100)] }
[01:03:09] 
[01:03:09] 150 
[01:03:09] 151 warning: unknown lint: `x5100`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:164:12
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:164:12
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:165:12
[01:03:09] 153    |
[01:03:09] 154 LL |     #[deny(x5100)] fn f() { }
[01:03:09] 
[01:03:09] 156 
[01:03:09] 157 warning: unknown lint: `x5100`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:167:12
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:167:12
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:168:12
[01:03:09] 159    |
[01:03:09] 160 LL |     #[deny(x5100)] struct S;
[01:03:09] 
[01:03:09] 162 
[01:03:09] 163 warning: unknown lint: `x5100`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:170:12
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:170:12
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:171:12
[01:03:09] 165    |
[01:03:09] 166 LL |     #[deny(x5100)] type T = S;
[01:03:09] 
[01:03:09] 168 
[01:03:09] 169 warning: unknown lint: `x5100`
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:173:12
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:173:12
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:174:12
[01:03:09] 171    |
[01:03:09] 172 LL |     #[deny(x5100)] impl S { }
[01:03:09] 
[01:03:09] 174 
[01:03:09] 174 
[01:03:09] 175 warning: `macro_escape` is a deprecated synonym for `macro_use`
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:458:1
[01:03:09] 177    |
[01:03:09] 178 LL | #[macro_escape]
[01:03:09] 179    | ^^^^^^^^^^^^^^^
[01:03:09] 179    | ^^^^^^^^^^^^^^^
[01:03:09] 
[01:03:09] 180 
[01:03:09] 181 warning: `macro_escape` is a deprecated synonym for `macro_use`
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:461:17
[01:03:09] 183    |
[01:03:09] 183    |
[01:03:09] 184 LL |     mod inner { #![macro_escape] }
[01:03:09] 
[01:03:09] 
[01:03:09] 187    = help: consider an outer attribute, `#[macro_use] mod ...`
[01:03:09] 189 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:181:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:182:5
[01:03:09] 191    |
[01:03:09] 191    |
[01:03:09] 192 LL |     #[macro_use] fn f() { }
[01:03:09] 
[01:03:09] 199    |         ^^^^^^^^^^^^^^^^^
[01:03:09] 200 
[01:03:09] 201 warning: unused attribute
---
[01:03:09] 207 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:187:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:188:5
[01:03:09] 209    |
[01:03:09] 210 LL |     #[macro_use] type T = S;
[01:03:09] 
[01:03:09] 212 
[01:03:09] 213 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:190:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:190:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:191:5
[01:03:09] 215    |
[01:03:09] 216 LL |     #[macro_use] impl S { }
[01:03:09] 
[01:03:09] 218 
[01:03:09] 219 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:197:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:197:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:198:17
[01:03:09] 221    |
[01:03:09] 222 LL |     mod inner { #![macro_export] }
[01:03:09] 
[01:03:09] 224 
[01:03:09] 225 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:200:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:200:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:201:5
[01:03:09] 227    |
[01:03:09] 228 LL |     #[macro_export] fn f() { }
[01:03:09] 
[01:03:09] 230 
[01:03:09] 231 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:203:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:203:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:204:5
[01:03:09] 233    |
[01:03:09] 234 LL |     #[macro_export] struct S;
[01:03:09] 
[01:03:09] 236 
[01:03:09] 237 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:206:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:206:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:207:5
[01:03:09] 239    |
[01:03:09] 240 LL |     #[macro_export] type T = S;
[01:03:09] 
[01:03:09] 242 
[01:03:09] 243 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:209:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:209:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:210:5
[01:03:09] 245    |
[01:03:09] 246 LL |     #[macro_export] impl S { }
[01:03:09] 
[01:03:09] 248 
[01:03:09] 249 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:194:1
---
[01:03:09] 255 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:216:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:217:17
[01:03:09] 257    |
[01:03:09] 258 LL |     mod inner { #![plugin_registrar] }
[01:03:09] 
[01:03:09] 260 
[01:03:09] 261 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:221:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:221:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:222:5
[01:03:09] 263    |
[01:03:09] 264 LL |     #[plugin_registrar] struct S;
[01:03:09] 
[01:03:09] 266 
[01:03:09] 267 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:224:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:224:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:225:5
[01:03:09] 269    |
[01:03:09] 270 LL |     #[plugin_registrar] type T = S;
[01:03:09] 
[01:03:09] 272 
[01:03:09] 273 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:227:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:227:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:228:5
[01:03:09] 275    |
[01:03:09] 276 LL |     #[plugin_registrar] impl S { }
[01:03:09] 
[01:03:09] 278 
[01:03:09] 279 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:213:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:213:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:214:1
[01:03:09] 281    |
[01:03:09] 282 LL | #[plugin_registrar]
[01:03:09] 
[01:03:09] 284 
[01:03:09] 285 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:234:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:234:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:235:17
[01:03:09] 287    |
[01:03:09] 288 LL |     mod inner { #![main] }
[01:03:09] 
[01:03:09] 290 
[01:03:09] 291 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:239:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:239:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:240:5
[01:03:09] 293    |
[01:03:09] 294 LL |     #[main] struct S;
[01:03:09] 
[01:03:09] 296 
[01:03:09] 297 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:242:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:242:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:243:5
[01:03:09] 299    |
[01:03:09] 300 LL |     #[main] type T = S;
[01:03:09] 
[01:03:09] 302 
[01:03:09] 303 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:245:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:245:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:246:5
[01:03:09] 305    |
[01:03:09] 306 LL |     #[main] impl S { }
[01:03:09] 
[01:03:09] 308 
[01:03:09] 309 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:231:1
---
[01:03:09] 315 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:252:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:253:17
[01:03:09] 317    |
[01:03:09] 318 LL |     mod inner { #![start] }
[01:03:09] 
[01:03:09] 320 
[01:03:09] 321 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:257:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:257:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:258:5
[01:03:09] 323    |
[01:03:09] 324 LL |     #[start] struct S;
[01:03:09] 
[01:03:09] 326 
[01:03:09] 327 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:260:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:260:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:261:5
[01:03:09] 329    |
[01:03:09] 330 LL |     #[start] type T = S;
[01:03:09] 
[01:03:09] 332 
[01:03:09] 333 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:263:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:263:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:264:5
[01:03:09] 335    |
[01:03:09] 336 LL |     #[start] impl S { }
[01:03:09] 
[01:03:09] 338 
[01:03:09] 339 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:249:1
---
[01:03:09] 345 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:316:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:317:5
[01:03:09] 347    |
[01:03:09] 348 LL |     #[path = "3800"] fn f() { }
[01:03:09] 
[01:03:09] 350 
[01:03:09] 351 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:319:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:319:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:320:5
[01:03:09] 353    |
[01:03:09] 354 LL |     #[path = "3800"]  struct S;
[01:03:09] 
[01:03:09] 356 
[01:03:09] 357 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:322:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:322:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:323:5
[01:03:09] 359    |
[01:03:09] 360 LL |     #[path = "3800"] type T = S;
[01:03:09] 
[01:03:09] 362 
[01:03:09] 363 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:325:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:325:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:326:5
[01:03:09] 365    |
[01:03:09] 366 LL |     #[path = "3800"] impl S { }
[01:03:09] 
[01:03:09] 368 
[01:03:09] 369 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:332:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:332:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:333:17
[01:03:09] 371    |
[01:03:09] 372 LL |     mod inner { #![automatically_derived] }
[01:03:09] 
[01:03:09] 374 
[01:03:09] 375 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:335:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:335:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:336:5
[01:03:09] 377    |
[01:03:09] 378 LL |     #[automatically_derived] fn f() { }
[01:03:09] 
[01:03:09] 380 
[01:03:09] 381 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:338:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:338:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:339:5
[01:03:09] 383    |
[01:03:09] 384 LL |     #[automatically_derived] struct S;
[01:03:09] 
[01:03:09] 386 
[01:03:09] 387 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:341:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:341:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:342:5
[01:03:09] 389    |
[01:03:09] 390 LL |     #[automatically_derived] type T = S;
[01:03:09] 
[01:03:09] 392 
[01:03:09] 393 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:344:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:344:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:345:5
[01:03:09] 395    |
[01:03:09] 396 LL |     #[automatically_derived] impl S { }
[01:03:09] 
[01:03:09] 398 
[01:03:09] 399 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:329:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:329:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:330:1
[01:03:09] 401    |
[01:03:09] 402 LL | #[automatically_derived]
[01:03:09] 
[01:03:09] 404 
[01:03:09] 405 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:364:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:364:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:365:17
[01:03:09] 407    |
[01:03:09] 408 LL |     mod inner { #![no_link] }
[01:03:09] 
[01:03:09] 410 
[01:03:09] 411 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:367:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:367:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:368:5
[01:03:09] 413    |
[01:03:09] 414 LL |     #[no_link] fn f() { }
[01:03:09] 
[01:03:09] 416 
[01:03:09] 417 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:370:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:370:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:371:5
[01:03:09] 419    |
[01:03:09] 420 LL |     #[no_link] struct S;
[01:03:09] 
[01:03:09] 422 
[01:03:09] 423 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:373:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:373:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:374:5
[01:03:09] 425    |
[01:03:09] 426 LL |     #[no_link]type T = S;
[01:03:09] 
[01:03:09] 428 
[01:03:09] 429 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:376:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:376:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:377:5
[01:03:09] 431    |
[01:03:09] 432 LL |     #[no_link] impl S { }
[01:03:09] 
[01:03:09] 434 
[01:03:09] 435 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:361:1
---
[01:03:09] 441 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:383:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:384:17
[01:03:09] 443    |
[01:03:09] 444 LL |     mod inner { #![should_panic] }
[01:03:09] 
[01:03:09] 446 
[01:03:09] 447 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:386:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:386:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:387:5
[01:03:09] 449    |
[01:03:09] 450 LL |     #[should_panic] fn f() { }
[01:03:09] 
[01:03:09] 452 
[01:03:09] 453 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:389:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:389:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:390:5
[01:03:09] 455    |
[01:03:09] 456 LL |     #[should_panic] struct S;
[01:03:09] 
[01:03:09] 458 
[01:03:09] 459 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:392:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:392:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:393:5
[01:03:09] 461    |
[01:03:09] 462 LL |     #[should_panic] type T = S;
[01:03:09] 
[01:03:09] 464 
[01:03:09] 465 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:395:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:395:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:396:5
[01:03:09] 467    |
[01:03:09] 468 LL |     #[should_panic] impl S { }
[01:03:09] 
[01:03:09] 470 
[01:03:09] 471 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:380:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:380:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:381:1
[01:03:09] 473    |
[01:03:09] 474 LL | #[should_panic]
[01:03:09] 
[01:03:09] 476 
[01:03:09] 477 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:402:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:402:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:403:17
[01:03:09] 479    |
[01:03:09] 480 LL |     mod inner { #![ignore] }
[01:03:09] 
[01:03:09] 482 
[01:03:09] 483 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:405:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:405:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:406:5
[01:03:09] 485    |
[01:03:09] 486 LL |     #[ignore] fn f() { }
[01:03:09] 
[01:03:09] 488 
[01:03:09] 489 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:408:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:408:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:409:5
[01:03:09] 491    |
[01:03:09] 492 LL |     #[ignore] struct S;
[01:03:09] 
[01:03:09] 494 
[01:03:09] 495 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:411:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:411:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:412:5
[01:03:09] 497    |
[01:03:09] 498 LL |     #[ignore] type T = S;
[01:03:09] 
[01:03:09] 500 
[01:03:09] 501 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:414:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:414:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:415:5
[01:03:09] 503    |
[01:03:09] 504 LL |     #[ignore] impl S { }
[01:03:09] 
[01:03:09] 506 
[01:03:09] 507 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:399:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:399:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:400:1
[01:03:09] 509    |
[01:03:09] 510 LL | #[ignore]
[01:03:09] 
[01:03:09] 512 
[01:03:09] 513 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:421:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:421:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:422:17
[01:03:09] 515    |
[01:03:09] 516 LL |     mod inner { #![no_implicit_prelude] }
[01:03:09] 
[01:03:09] 518 
[01:03:09] 519 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:424:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:424:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:425:5
[01:03:09] 521    |
[01:03:09] 522 LL |     #[no_implicit_prelude] fn f() { }
[01:03:09] 
[01:03:09] 524 
[01:03:09] 525 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:427:5
---
[01:03:09] 531 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:430:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:431:5
[01:03:09] 533    |
[01:03:09] 534 LL |     #[no_implicit_prelude] type T = S;
[01:03:09] 
[01:03:09] 536 
[01:03:09] 537 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:433:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:433:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:434:5
[01:03:09] 539    |
[01:03:09] 540 LL |     #[no_implicit_prelude] impl S { }
[01:03:09] 
[01:03:09] 542 
[01:03:09] 543 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:418:1
---
[01:03:09] 549 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:440:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:441:17
[01:03:09] 551    |
[01:03:09] 552 LL |     mod inner { #![reexport_test_harness_main="2900"] }
[01:03:09] 
[01:03:09] 554 
[01:03:09] 555 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:443:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:443:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:444:5
[01:03:09] 557    |
[01:03:09] 558 LL |     #[reexport_test_harness_main = "2900"] fn f() { }
[01:03:09] 
[01:03:09] 560 
[01:03:09] 561 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:446:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:446:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:447:5
[01:03:09] 563    |
[01:03:09] 564 LL |     #[reexport_test_harness_main = "2900"] struct S;
[01:03:09] 
[01:03:09] 566 
[01:03:09] 567 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:449:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:449:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:450:5
[01:03:09] 569    |
[01:03:09] 570 LL |     #[reexport_test_harness_main = "2900"] type T = S;
[01:03:09] 
[01:03:09] 572 
[01:03:09] 573 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:452:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:452:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:453:5
[01:03:09] 575    |
[01:03:09] 576 LL |     #[reexport_test_harness_main = "2900"] impl S { }
[01:03:09] 
[01:03:09] 578 
[01:03:09] 579 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:437:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:437:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:438:1
[01:03:09] 581    |
[01:03:09] 582 LL | #[reexport_test_harness_main = "2900"]
[01:03:09] 
[01:03:09] 584 
[01:03:09] 585 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:463:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:463:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:464:5
[01:03:09] 587    |
[01:03:09] 588 LL |     #[macro_escape] fn f() { }
[01:03:09] 
[01:03:09] 590 
[01:03:09] 591 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:466:5
---
[01:03:09] 597 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:469:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:470:5
[01:03:09] 599    |
[01:03:09] 600 LL |     #[macro_escape] type T = S;
[01:03:09] 
[01:03:09] 602 
[01:03:09] 603 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:472:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:472:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:473:5
[01:03:09] 605    |
[01:03:09] 606 LL |     #[macro_escape] impl S { }
[01:03:09] 
[01:03:09] 608 
[01:03:09] 609 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:480:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:480:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:481:17
[01:03:09] 611    |
[01:03:09] 612 LL |     mod inner { #![no_std] }
[01:03:09] 
[01:03:09] 614 
[01:03:09] 615 warning: crate-level attribute should be in the root module
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:480:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:480:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:481:17
[01:03:09] 617    |
[01:03:09] 618 LL |     mod inner { #![no_std] }
[01:03:09] 
[01:03:09] 620 
[01:03:09] 621 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:484:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:484:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:485:5
[01:03:09] 623    |
[01:03:09] 624 LL |     #[no_std] fn f() { }
[01:03:09] 
[01:03:09] 626 
[01:03:09] 626 
[01:03:09] 627 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:485:5
[01:03:09] 629    |
[01:03:09] 629    |
[01:03:09] 630 LL |     #[no_std] fn f() { }
[01:03:09] 
[01:03:09] 632 
[01:03:09] 633 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:488:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:488:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:489:5
[01:03:09] 635    |
[01:03:09] 636 LL |     #[no_std] struct S;
[01:03:09] 
[01:03:09] 638 
[01:03:09] 638 
[01:03:09] 639 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:489:5
[01:03:09] 641    |
[01:03:09] 641    |
[01:03:09] 642 LL |     #[no_std] struct S;
[01:03:09] 
[01:03:09] 644 
[01:03:09] 645 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:492:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:492:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:493:5
[01:03:09] 647    |
[01:03:09] 648 LL |     #[no_std] type T = S;
[01:03:09] 
[01:03:09] 650 
[01:03:09] 650 
[01:03:09] 651 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:493:5
[01:03:09] 653    |
[01:03:09] 653    |
[01:03:09] 654 LL |     #[no_std] type T = S;
[01:03:09] 
[01:03:09] 656 
[01:03:09] 657 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:496:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:496:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:497:5
[01:03:09] 659    |
[01:03:09] 660 LL |     #[no_std] impl S { }
[01:03:09] 
[01:03:09] 662 
[01:03:09] 662 
[01:03:09] 663 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:497:5
[01:03:09] 665    |
[01:03:09] 665    |
[01:03:09] 666 LL |     #[no_std] impl S { }
[01:03:09] 
[01:03:09] 668 
[01:03:09] 669 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:476:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:476:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:477:1
[01:03:09] 671    |
[01:03:09] 672 LL | #[no_std]
[01:03:09] 673    | ^^^^^^^^^
[01:03:09] 
[01:03:09] 674 
[01:03:09] 675 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:477:1
[01:03:09] 677    |
[01:03:09] 678 LL | #[no_std]
[01:03:09] 679    | ^^^^^^^^^
[01:03:09] 679    | ^^^^^^^^^
[01:03:09] 
[01:03:09] 680 
[01:03:09] 681 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:635:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:636:17
[01:03:09] 683    |
[01:03:09] 684 LL |     mod inner { #![crate_name="0900"] }
[01:03:09] 
[01:03:09] 686 
[01:03:09] 687 warning: crate-level attribute should be in the root module
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:635:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:635:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:636:17
[01:03:09] 689    |
[01:03:09] 690 LL |     mod inner { #![crate_name="0900"] }
[01:03:09] 
[01:03:09] 692 
[01:03:09] 693 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:639:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:639:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:640:5
[01:03:09] 695    |
[01:03:09] 696 LL |     #[crate_name = "0900"] fn f() { }
[01:03:09] 
[01:03:09] 698 
[01:03:09] 698 
[01:03:09] 699 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:640:5
[01:03:09] 701    |
[01:03:09] 701    |
[01:03:09] 702 LL |     #[crate_name = "0900"] fn f() { }
[01:03:09] 
[01:03:09] 704 
[01:03:09] 705 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:643:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:643:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:644:5
[01:03:09] 707    |
[01:03:09] 708 LL |     #[crate_name = "0900"] struct S;
[01:03:09] 
[01:03:09] 710 
[01:03:09] 710 
[01:03:09] 711 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:644:5
[01:03:09] 713    |
[01:03:09] 713    |
[01:03:09] 714 LL |     #[crate_name = "0900"] struct S;
[01:03:09] 
[01:03:09] 716 
[01:03:09] 717 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:647:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:647:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:648:5
[01:03:09] 719    |
[01:03:09] 720 LL |     #[crate_name = "0900"] type T = S;
[01:03:09] 
[01:03:09] 722 
[01:03:09] 722 
[01:03:09] 723 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:648:5
[01:03:09] 725    |
[01:03:09] 725    |
[01:03:09] 726 LL |     #[crate_name = "0900"] type T = S;
[01:03:09] 
[01:03:09] 728 
[01:03:09] 729 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:651:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:651:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:652:5
[01:03:09] 731    |
[01:03:09] 732 LL |     #[crate_name = "0900"] impl S { }
[01:03:09] 
[01:03:09] 734 
[01:03:09] 734 
[01:03:09] 735 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:652:5
[01:03:09] 737    |
[01:03:09] 737    |
[01:03:09] 738 LL |     #[crate_name = "0900"] impl S { }
[01:03:09] 
[01:03:09] 740 
[01:03:09] 741 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:631:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:631:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:632:1
[01:03:09] 743    |
[01:03:09] 744 LL | #[crate_name = "0900"]
[01:03:09] 
[01:03:09] 746 
[01:03:09] 746 
[01:03:09] 747 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:632:1
[01:03:09] 749    |
[01:03:09] 749    |
[01:03:09] 750 LL | #[crate_name = "0900"]
[01:03:09] 
[01:03:09] 752 
[01:03:09] 753 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:660:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:660:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:661:17
[01:03:09] 755    |
[01:03:09] 756 LL |     mod inner { #![crate_type="0800"] }
[01:03:09] 
[01:03:09] 758 
[01:03:09] 759 warning: crate-level attribute should be in the root module
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:660:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:660:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:661:17
[01:03:09] 761    |
[01:03:09] 762 LL |     mod inner { #![crate_type="0800"] }
[01:03:09] 
[01:03:09] 764 
[01:03:09] 765 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:664:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:664:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:665:5
[01:03:09] 767    |
[01:03:09] 768 LL |     #[crate_type = "0800"] fn f() { }
[01:03:09] 
[01:03:09] 770 
[01:03:09] 770 
[01:03:09] 771 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:665:5
[01:03:09] 773    |
[01:03:09] 773    |
[01:03:09] 774 LL |     #[crate_type = "0800"] fn f() { }
[01:03:09] 
[01:03:09] 776 
[01:03:09] 777 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:668:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:668:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:669:5
[01:03:09] 779    |
[01:03:09] 780 LL |     #[crate_type = "0800"] struct S;
[01:03:09] 
[01:03:09] 782 
[01:03:09] 782 
[01:03:09] 783 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:669:5
[01:03:09] 785    |
[01:03:09] 785    |
[01:03:09] 786 LL |     #[crate_type = "0800"] struct S;
[01:03:09] 
[01:03:09] 788 
[01:03:09] 789 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:672:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:672:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:673:5
[01:03:09] 791    |
[01:03:09] 792 LL |     #[crate_type = "0800"] type T = S;
[01:03:09] 
[01:03:09] 794 
[01:03:09] 794 
[01:03:09] 795 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:673:5
[01:03:09] 797    |
[01:03:09] 797    |
[01:03:09] 798 LL |     #[crate_type = "0800"] type T = S;
[01:03:09] 
[01:03:09] 800 
[01:03:09] 801 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:676:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:676:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:677:5
[01:03:09] 803    |
[01:03:09] 804 LL |     #[crate_type = "0800"] impl S { }
[01:03:09] 
[01:03:09] 806 
[01:03:09] 806 
[01:03:09] 807 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:677:5
[01:03:09] 809    |
[01:03:09] 809    |
[01:03:09] 810 LL |     #[crate_type = "0800"] impl S { }
[01:03:09] 
[01:03:09] 812 
[01:03:09] 813 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:656:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:656:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:657:1
[01:03:09] 815    |
[01:03:09] 816 LL | #[crate_type = "0800"]
[01:03:09] 
[01:03:09] 818 
[01:03:09] 818 
[01:03:09] 819 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:657:1
[01:03:09] 821    |
[01:03:09] 821    |
[01:03:09] 822 LL | #[crate_type = "0800"]
[01:03:09] 
[01:03:09] 824 
[01:03:09] 825 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:685:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:685:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:686:17
[01:03:09] 827    |
[01:03:09] 828 LL |     mod inner { #![feature(x0600)] }
[01:03:09] 
[01:03:09] 830 
[01:03:09] 831 warning: crate-level attribute should be in the root module
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:685:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:685:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:686:17
[01:03:09] 833    |
[01:03:09] 834 LL |     mod inner { #![feature(x0600)] }
[01:03:09] 
[01:03:09] 836 
[01:03:09] 837 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:689:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:689:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:690:5
[01:03:09] 839    |
[01:03:09] 840 LL |     #[feature(x0600)] fn f() { }
[01:03:09] 
[01:03:09] 842 
[01:03:09] 842 
[01:03:09] 843 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:690:5
[01:03:09] 845    |
[01:03:09] 845    |
[01:03:09] 846 LL |     #[feature(x0600)] fn f() { }
[01:03:09] 
[01:03:09] 848 
[01:03:09] 849 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:693:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:693:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:694:5
[01:03:09] 851    |
[01:03:09] 852 LL |     #[feature(x0600)] struct S;
[01:03:09] 
[01:03:09] 854 
[01:03:09] 854 
[01:03:09] 855 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:694:5
[01:03:09] 857    |
[01:03:09] 857    |
[01:03:09] 858 LL |     #[feature(x0600)] struct S;
[01:03:09] 
[01:03:09] 860 
[01:03:09] 861 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:697:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:697:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:698:5
[01:03:09] 863    |
[01:03:09] 864 LL |     #[feature(x0600)] type T = S;
[01:03:09] 
[01:03:09] 866 
[01:03:09] 866 
[01:03:09] 867 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:698:5
[01:03:09] 869    |
[01:03:09] 869    |
[01:03:09] 870 LL |     #[feature(x0600)] type T = S;
[01:03:09] 
[01:03:09] 872 
[01:03:09] 873 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:701:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:701:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:702:5
[01:03:09] 875    |
[01:03:09] 876 LL |     #[feature(x0600)] impl S { }
[01:03:09] 
[01:03:09] 878 
[01:03:09] 878 
[01:03:09] 879 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:702:5
[01:03:09] 881    |
[01:03:09] 881    |
[01:03:09] 882 LL |     #[feature(x0600)] impl S { }
[01:03:09] 
[01:03:09] 884 
[01:03:09] 885 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:681:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:681:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:682:1
[01:03:09] 887    |
[01:03:09] 888 LL | #[feature(x0600)]
[01:03:09] 
[01:03:09] 890 
[01:03:09] 890 
[01:03:09] 891 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:682:1
[01:03:09] 893    |
[01:03:09] 893    |
[01:03:09] 894 LL | #[feature(x0600)]
[01:03:09] 
[01:03:09] 896 
[01:03:09] 897 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:711:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:711:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:712:17
[01:03:09] 899    |
[01:03:09] 900 LL |     mod inner { #![no_main] }
[01:03:09] 
[01:03:09] 902 
[01:03:09] 903 warning: crate-level attribute should be in the root module
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:711:17
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:711:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:712:17
[01:03:09] 905    |
[01:03:09] 906 LL |     mod inner { #![no_main] }
[01:03:09] 
[01:03:09] 908 
[01:03:09] 909 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:715:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:715:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:716:5
[01:03:09] 911    |
[01:03:09] 912 LL |     #[no_main] fn f() { }
[01:03:09] 
[01:03:09] 914 
[01:03:09] 914 
[01:03:09] 915 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:716:5
[01:03:09] 917    |
[01:03:09] 917    |
[01:03:09] 918 LL |     #[no_main] fn f() { }
[01:03:09] 
[01:03:09] 920 
[01:03:09] 921 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:719:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:719:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:720:5
[01:03:09] 923    |
[01:03:09] 924 LL |     #[no_main] struct S;
[01:03:09] 
[01:03:09] 926 
[01:03:09] 926 
[01:03:09] 927 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:720:5
[01:03:09] 929    |
[01:03:09] 929    |
[01:03:09] 930 LL |     #[no_main] struct S;
[01:03:09] 
[01:03:09] 932 
[01:03:09] 933 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:723:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:723:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:724:5
[01:03:09] 935    |
[01:03:09] 936 LL |     #[no_main] type T = S;
[01:03:09] 
[01:03:09] 938 
[01:03:09] 938 
[01:03:09] 939 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:724:5
[01:03:09] 941    |
[01:03:09] 941    |
[01:03:09] 942 LL |     #[no_main] type T = S;
[01:03:09] 
[01:03:09] 944 
[01:03:09] 945 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:727:5
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:727:5
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:728:5
[01:03:09] 947    |
[01:03:09] 948 LL |     #[no_main] impl S { }
[01:03:09] 
[01:03:09] 950 
[01:03:09] 950 
[01:03:09] 951 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:728:5
[01:03:09] 953    |
[01:03:09] 953    |
[01:03:09] 954 LL |     #[no_main] impl S { }
[01:03:09] 
[01:03:09] 956 
[01:03:09] 957 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:707:1
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:707:1
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:708:1
[01:03:09] 959    |
[01:03:09] 960 LL | #[no_main]
[01:03:09] 961    | ^^^^^^^^^^
[01:03:09] 
[01:03:09] 962 
[01:03:09] 963 warning: crate-level attribute should be an inner attribute: add an exclamation mark: #![foo]
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:708:1
[01:03:09] 965    |
[01:03:09] 966 LL | #[no_main]
[01:03:09] 967    | ^^^^^^^^^^
[01:03:09] 967    | ^^^^^^^^^^
[01:03:09] 
[01:03:09] 968 
[01:03:09] 969 warning: unused attribute
[01:03:09] -   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:749:17
[01:03:09] +   --> $DIR/issue-43106-gating-of-builtin-attrs.rs:750:17
[01:03:09] 971    |
---
[01:03:09] test result: FAILED. 5340 passed; 1 failed; 23 ignored; 0 measured; 0 filtered out
[01:03:09] 
[01:03:09] 
[01:03:09] 
[01:03:09] 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"
[01:03:09] 
[01:03:09] 
[01:03:09] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:03:09] Build completed unsuccessfully in 0:04:16
[01:03:09] Build completed unsuccessfully in 0:04:16
[01:03:09] Makefile:48: recipe for target 'check' failed
[01:03:09] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0674579c
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Mon Feb  4 16:09:17 UTC 2019
---
travis_time:end:0423f960:start=1549296558490315421,finish=1549296558495907909,duration=5592488
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:120910d0
$ 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:0a190d69
travis_time:start:0a190d69
$ 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:00313e08
$ 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)

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 5, 2019

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

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 8cde23a to 528ae6b Feb 16, 2019

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 16, 2019

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

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Feb 16, 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:0bff8d56:start=1550278885530292452,finish=1550278889457112872,duration=3926820420
$ 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:59] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:04:00] tidy error: /checkout/src/libcore/num/mod.rs:1227: line longer than 100 chars
[00:04:00] tidy error: /checkout/src/libcore/num/mod.rs:1254: line longer than 100 chars
[00:04:00] tidy error: /checkout/src/test/debuginfo/issue-12886.rs:21: line longer than 100 chars
[00:04:01] some tidy checks failed
[00:04:01] 
[00:04:01] 
[00:04:01] 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:04:01] 
[00:04:01] 
[00:04:01] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:04:01] Build completed unsuccessfully in 0:00:47
[00:04:01] Build completed unsuccessfully in 0:00:47
[00:04:01] make: *** [tidy] Error 1
[00:04:01] Makefile:68: recipe for target 'tidy' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:00fd2000
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sat Feb 16 01:05:41 UTC 2019
---
travis_time:end:097b3df9:start=1550279142281245577,finish=1550279142286405473,duration=5159896
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:2f43041e
$ 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:191c23b2
travis_time:start:191c23b2
$ 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:0a8556fe
$ 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)

@alexreg alexreg force-pushed the alexreg:cosmetic-2 branch from 528ae6b to 7a091d4 Feb 16, 2019

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Feb 16, 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:19ec5155:start=1550284405726214801,finish=1550284408769756612,duration=3043541811
$ 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:02:57] 
[01:02:57] running 5390 tests
[01:03:00] .................................................................................................... 100/5390
[01:03:03] .................................................................................................... 200/5390
[01:03:06] .....................................................F.............................................. 300/5390
[01:03:13] .................................................................................................... 500/5390
[01:03:17] ..............................i..................................................................... 600/5390
[01:03:21] .................................................................................................... 700/5390
[01:03:21] .................................................................................................... 700/5390
[01:03:26] ................F.............F.......F....................F..............F....FFFF.FFFFFF.......... 800/5390
[01:03:31] ................................F........................................F.......i...............i.. 900/5390
[01:03:39] ..........iiiii..................................................................................... 1100/5390
[01:03:39] ..........iiiii..................................................................................... 1100/5390
[01:03:42] ..............................F..........F.......................................................... 1200/5390
[01:03:47] .................................................................................................... 1400/5390
[01:03:47] .................................................................................................... 1400/5390
[01:03:50] ....................................................................................F............... 1500/5390
[01:03:56] ...i..........................................................................i..................... 1700/5390
[01:04:00] .................................................................................................... 1800/5390
[01:04:04] .................................................................................................... 1900/5390
[01:04:08] .................................................................................................... 2000/5390
[01:04:08] .................................................................................................... 2000/5390
[01:04:11] ...........................i........................................................................ 2100/5390
[01:04:15] .................................................................................................... 2200/5390
[01:04:20] .................................................................................................... 2300/5390
[01:04:24] .................................................................................................... 2400/5390
[01:04:28] .................................................................................................... 2500/5390
[01:04:32] .................................................................................................... 2600/5390
[01:04:36] .................................................................................................... 2700/5390
[01:04:40] ............................F....................................................................... 2800/5390
[01:04:45] ..................................................F................................................. 2900/5390
[01:04:52] .................................................................................................... 3100/5390
[01:04:56] .................................................................................................... 3200/5390
[01:04:56] .................................................................................................... 3200/5390
[01:05:00] ...................................iF............................................................... 3300/5390
[01:05:07] .....ii...i..ii..................................................................................... 3500/5390
[01:05:07] .....ii...i..ii..................................................................................... 3500/5390
[01:05:12] ....................................................F............................................... 3600/5390
[01:05:15] .................................................................................................... 3700/5390
[01:05:19] .......ii.......................................................F................................... 3800/5390
[01:05:23] ..................................................................................i................. 4000/5390
[01:05:25] .................................................................................................... 4100/5390
[01:05:32] .................................................................................................... 4200/5390
[01:05:41] .................................................................................................... 4300/5390
[01:05:41] .................................................................................................... 4300/5390
[01:05:44] .................................................................................................... 4400/5390
[01:05:48] .................................................................................................... 4500/5390
[01:05:52] ......................................i............................................................. 4600/5390
[01:05:59] .................................................................................................... 4700/5390
[01:06:03] .................................................................................................... 4800/5390
[01:06:06] .................................................................................................... 4900/5390
[01:06:11] ....................................F...F...F....................................................... 5000/5390
[01:06:18] .................................................................................................... 5200/5390
[01:06:21] .................................................................................................... 5300/5390
[01:06:24] .............................i............................................................
[01:06:24] failures:
[01:06:24] failures:
[01:06:24] 
[01:06:24] ---- [ui] ui/borrowck/borrowck-describe-lvalue.rs#mir stdout ----
[01:06:24] diff of stderr:
[01:06:24] 
[01:06:24] 34 LL | |                 }
[01:06:24] 35    | |_________________^ returns a closure that contains a reference to a captured variable, which then escapes the closure body
[01:06:24] 36    |
[01:06:24] -    = note: `FnMut` closures only have access to their captured variables while they are executing...
[01:06:24] -    = note: ...therefore, they cannot allow references to captured variables to escape
[01:06:24] +    = note: `FnMut` closures only have access to their captured variables while they are executing ...
[01:06:24] +    = note: ... therefore, they cannot allow references to captured variables to escape
[01:06:24] 39 
[01:06:24] 40 error[E0503]: cannot use `f.x` because it was mutably borrowed
[01:06:24] 
[01:06:24] 
[01:06:24] The actual stderr differed from the expected stderr.
[01:06:24] The actual stderr differed from the expected stderr.
[01:06:24] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/borrowck/borrowck-describe-lvalue.mir/borrowck-describe-lvalue.mir.stderr
[01:06:24] To update references, rerun the tests and pass the `--bless` flag
[01:06:24] To only update this specific test, also pass `--test-args borrowck/borrowck-describe-lvalue.rs`
[01:06:24] 
[01:06:24] error in revision `mir`: 1 errors occurred comparing output.
[01:06:24] status: exit code: 1
[01:06:24] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "mir" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/borrowck/borrowck-describe-lvalue.mir/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Z" "borrowck=mir" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/borrowck/borrowck-describe-lvalue.mir/auxiliary" "-A" "unused"
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] stderr:
[01:06:24] stderr:
[01:06:24] ------------------------------------------
[01:06:24] {"message":"cannot borrow `x` as mutable more than once at a time","code":{"code":"E0499","explanation":"\nA variable was borrowed as mutable more than once. Erroneous code example:\n\n```compile_fail,E0499\nlet mut i = 0;\nlet mut x = &mut i;\nlet mut a = &mut i;\n// error: cannot borrow `i` as mutable more than once at a time\n```\n\nPlease note that in rust, you can either have many immutable references, or one\nmutable reference. Take a look at\nhttps://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html for more\ninformation. Example:\n\n\n```\nlet mut i = 0;\nlet mut x = &mut i; // ok!\n\n// or:\nlet mut i = 0;\nlet a = &i; // ok!\nlet b = &i; // still ok!\nlet c = &i; // still ok!\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9642,"byte_end":9648,"line_start":284,"line_end":284,"column_start":21,"column_end":27,"is_primary":false,"text":[{"text":"            let y = &mut x;","highlight_start":21,"highlight_end":27}],"label":"first mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9662,"byte_end":9668,"line_start":285,"line_end":285,"column_start":13,"column_end":19,"is_primary":true,"text":[{"text":"            &mut x; //[ast]~ ERROR cannot borrow `**x` as mutable more than once at a time","highlight_start":13,"highlight_end":19}],"label":"second mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9843,"byte_end":9849,"line_start":287,"line_end":287,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":"            *y = 1;","highlight_start":13,"highlight_end":19}],"label":"first borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0499]: cannot borrow `x` as mutable more than once at a time\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:285:13\n   |\nLL |             let y = &mut x;\n   |                     ------ first mutable borrow occurs here\nLL |             &mut x; //[ast]~ ERROR cannot borrow `**x` as mutable more than once at a time\n   |             ^^^^^^ second mutable borrow occurs here\nLL |                     //[mir]~^ ERROR cannot borrow `x` as mutable more than once at a time\nLL |             *y = 1;\n   |             ------ first borrow later used here\n\n"}
[01:06:24] {"message":"cannot borrow `x` as mutable more than once at a time","code":{"code":"E0499","explanation":"\nA variable was borrowed as mutable more than once. Erroneous code example:\n\n```compile_fail,E0499\nlet mut i = 0;\nlet mut x = &mut i;\nlet mut a = &mut i;\n// error: cannot borrow `i` as mutable more than once at a time\n```\n\nPlease note that in rust, you can either have many immutable references, or one\nmutable reference. Take a look at\nhttps://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html for more\ninformation. Example:\n\n\n```\nlet mut i = 0;\nlet mut x = &mut i; // ok!\n\n// or:\nlet mut i = 0;\nlet a = &i; // ok!\nlet b = &i; // still ok!\nlet c = &i; // still ok!\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":10061,"byte_end":10067,"line_start":295,"line_end":295,"column_start":28,"column_end":34,"is_primary":false,"text":[{"text":"                   let y = &mut x;","highlight_start":28,"highlight_end":34}],"label":"first mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":10088,"byte_end":10094,"line_start":296,"line_end":296,"column_start":20,"column_end":26,"is_primary":true,"text":[{"text":"                   &mut x; //[ast]~ ERROR cannot borrow `**x` as mutable more than once at a time","highlight_start":20,"highlight_end":26}],"label":"second mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":10275,"byte_end":10281,"line_start":298,"line_end":298,"column_start":20,"column_end":26,"is_primary":false,"text":[{"text":"                   *y = 1;","highlight_start":20,"highlight_end":26}],"label":"first borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0499]: cannot borrow `x` as mutable more than once at a time\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:296:20\n   |\nLL |                    let y = &mut x;\n   |                            ------ first mutable borrow occurs here\nLL |                    &mut x; //[ast]~ ERROR cannot borrow `**x` as mutable more than once at a time\n   |                    ^^^^^^ second mutable borrow occurs here\nLL |                    //[mir]~^ ERROR cannot borrow `x` as mutable more than once at a time\nLL |                    *y = 1;\n   |                    ------ first borrow later used here\n\n"}
[01:06:24] {"message":"captured variable cannot escape `FnMut` closure body","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9961,"byte_end":10328,"line_start":294,"line_end":300,"column_start":16,"column_end":18,"is_primary":true,"text":[{"text":"               || { //[mir]~ ERROR captured variable cannot escape `FnMut` closure body","highlight_start":16,"highlight_end":88},{"text":"                   let y = &mut x;","highlight_start":1,"highlight_end":35},{"text":"                   &mut x; //[ast]~ ERROR cannot borrow `**x` as mutable more than once at a time","highlight_start":1,"highlight_end":98},{"text":"                   //[mir]~^ ERROR cannot borrow `x` as mutable more than once at a time","highlight_start":1,"highlight_end":89},{"text":"                   *y = 1;","highlight_start":1,"highlight_end":27},{"text":"                   drop(y);","highlight_start":1,"highlight_end":28},{"text":"                }","highlight_start":1,"highlight_end":18}],"label":"returns a closure that contains a reference to a captured variable, which then escapes the closure body","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9942,"byte_end":9943,"line_start":293,"line_end":293,"column_start":13,"column_end":14,"is_primary":false,"text":[{"text":"           || {","highlight_start":13,"highlight_end":14}],"label":"inferred to be a `FnMut` closure","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`FnMut` closures only have access to their captured variables while they are executing ...","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"... therefore, they cannot allow references to captured variables to escape","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: captured variable cannot escape `FnMut` closure body\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:294:16\n   |\nLL |              || {\n   |               - inferred to be a `FnMut` closure\nLL | /                || { //[mir]~ ERROR captured variable cannot escape `FnMut` closure body\nLL | |                    let y = &mut x;\nLL | |                    &mut x; //[ast]~ ERROR cannot borrow `**x` as mutable more than once at a time\nLL | |                    //[mir]~^ ERROR cannot borrow `x` as mutable more than once at a time\nLL | |                    *y = 1;\nLL | |                    drop(y);\nLL | |                 }\n   | |_________________^ returns a closure that contains a reference to a captured variable, which then escapes the closure body\n   |\n   = note: `FnMut` closures only have access to their captured variables while they are executing ...\n   = note: ... therefore, they cannot allow references to captured variables to escape\n\n"}
[01:06:24] {"message":"cannot use `f.x` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":588,"byte_end":589,"line_start":42,"line_end":42,"column_start":17,"column_end":18,"is_primary":false,"text":[{"text":"        let x = f.x();","highlight_start":17,"highlight_end":18}],"label":"borrow of `f` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":603,"byte_end":606,"line_start":43,"line_end":43,"column_start":9,"column_end":12,"is_primary":true,"text":[{"text":"        f.x; //[ast]~ ERROR cannot use `f.x` because it was mutably borrowed","highlight_start":9,"highlight_end":12}],"label":"use of borrowed `f`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":758,"byte_end":759,"line_start":45,"line_end":45,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `f.x` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:43:9\n   |\nLL |         let x = f.x();\n   |                 - borrow of `f` occurs here\nLL |         f.x; //[ast]~ ERROR cannot use `f.x` because it was mutably borrowed\n   |         ^^^ use of borrowed `f`\nLL |         //[mir]~^ ERROR cannot use `f.x` because it was mutably borrowed\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `g.0` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":861,"byte_end":862,"line_start":50,"line_end":50,"column_start":17,"column_end":18,"is_primary":false,"text":[{"text":"        let x = g.x();","highlight_start":17,"highlight_end":18}],"label":"borrow of `g` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":876,"byte_end":879,"line_start":51,"line_end":51,"column_start":9,"column_end":12,"is_primary":true,"text":[{"text":"        g.0; //[ast]~ ERROR cannot use `g.0` because it was mutably borrowed","highlight_start":9,"highlight_end":12}],"label":"use of borrowed `g`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1036,"byte_end":1037,"line_start":53,"line_end":53,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `g.0` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:51:9\n   |\nLL |         let x = g.x();\n   |                 - borrow of `g` occurs here\nLL |         g.0; //[ast]~ ERROR cannot use `g.0` because it was mutably borrowed\n   |         ^^^ use of borrowed `g`\nLL |              //[mir]~^ ERROR cannot use `g.0` because it was mutably borrowed\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `h.0` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1133,"byte_end":1141,"line_start":58,"line_end":58,"column_start":17,"column_end":25,"is_primary":false,"text":[{"text":"        let x = &mut h.0;","highlight_start":17,"highlight_end":25}],"label":"borrow of `h.0` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1151,"byte_end":1154,"line_start":59,"line_end":59,"column_start":9,"column_end":12,"is_primary":true,"text":[{"text":"        h.0; //[ast]~ ERROR cannot use `h.0` because it was mutably borrowed","highlight_start":9,"highlight_end":12}],"label":"use of borrowed `h.0`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1311,"byte_end":1312,"line_start":61,"line_end":61,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `h.0` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:59:9\n   |\nLL |         let x = &mut h.0;\n   |                 -------- borrow of `h.0` occurs here\nLL |         h.0; //[ast]~ ERROR cannot use `h.0` because it was mutably borrowed\n   |         ^^^ use of borrowed `h.0`\nLL |              //[mir]~^ ERROR cannot use `h.0` because it was mutably borrowed\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `e.0` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1408,"byte_end":1409,"line_start":66,"line_end":66,"column_start":17,"column_end":18,"is_primary":false,"text":[{"text":"        let x = e.x();","highlight_start":17,"highlight_end":18}],"label":"borrow of `e` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1452,"byte_end":1457,"line_start":68,"line_end":68,"column_start":20,"column_end":25,"is_primary":true,"text":[{"text":"            Baz::X(value) => value","highlight_start":20,"highlight_end":25}],"label":"use of borrowed `e`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1647,"byte_end":1648,"line_start":72,"line_end":72,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `e.0` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:68:20\n   |\nLL |         let x = e.x();\n   |                 - borrow of `e` occurs here\nLL |         match e {\nLL |             Baz::X(value) => value\n   |                    ^^^^^ use of borrowed `e`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `u.a` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1753,"byte_end":1761,"line_start":77,"line_end":77,"column_start":17,"column_end":25,"is_primary":false,"text":[{"text":"        let x = &mut u.a;","highlight_start":17,"highlight_end":25}],"label":"borrow of `u.a` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1771,"byte_end":1774,"line_start":78,"line_end":78,"column_start":9,"column_end":12,"is_primary":true,"text":[{"text":"        u.a; //[ast]~ ERROR cannot use `u.a` because it was mutably borrowed","highlight_start":9,"highlight_end":12}],"label":"use of borrowed `u.a`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":1931,"byte_end":1932,"line_start":80,"line_end":80,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `u.a` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:78:9\n   |\nLL |         let x = &mut u.a;\n   |                 -------- borrow of `u.a` occurs here\nLL |         u.a; //[ast]~ ERROR cannot use `u.a` because it was mutably borrowed\n   |         ^^^ use of borrowed `u.a`\nLL |              //[mir]~^ ERROR cannot use `u.a` because it was mutably borrowed\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `f.x` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2044,"byte_end":2045,"line_start":85,"line_end":85,"column_start":17,"column_end":18,"is_primary":false,"text":[{"text":"        let x = f.x();","highlight_start":17,"highlight_end":18}],"label":"borrow of `*f` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2059,"byte_end":2062,"line_start":86,"line_end":86,"column_start":9,"column_end":12,"is_primary":true,"text":[{"text":"        f.x; //[ast]~ ERROR cannot use `f.x` because it was mutably borrowed","highlight_start":9,"highlight_end":12}],"label":"use of borrowed `*f`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2219,"byte_end":2220,"line_start":88,"line_end":88,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `f.x` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:86:9\n   |\nLL |         let x = f.x();\n   |                 - borrow of `*f` occurs here\nLL |         f.x; //[ast]~ ERROR cannot use `f.x` because it was mutably borrowed\n   |         ^^^ use of borrowed `*f`\nLL |              //[mir]~^ ERROR cannot use `f.x` because it was mutably borrowed\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `g.0` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2332,"byte_end":2333,"line_start":93,"line_end":93,"column_start":17,"column_end":18,"is_primary":false,"text":[{"text":"        let x = g.x();","highlight_start":17,"highlight_end":18}],"label":"borrow of `*g` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2347,"byte_end":2350,"line_start":94,"line_end":94,"column_start":9,"column_end":12,"is_primary":true,"text":[{"text":"        g.0; //[ast]~ ERROR cannot use `g.0` because it was mutably borrowed","highlight_start":9,"highlight_end":12}],"label":"use of borrowed `*g`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2507,"byte_end":2508,"line_start":96,"line_end":96,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `g.0` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:94:9\n   |\nLL |         let x = g.x();\n   |                 - borrow of `*g` occurs here\nLL |         g.0; //[ast]~ ERROR cannot use `g.0` because it was mutably borrowed\n   |         ^^^ use of borrowed `*g`\nLL |              //[mir]~^ ERROR cannot use `g.0` because it was mutably borrowed\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `h.0` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2614,"byte_end":2622,"line_start":101,"line_end":101,"column_start":17,"column_end":25,"is_primary":false,"text":[{"text":"        let x = &mut h.0;","highlight_start":17,"highlight_end":25}],"label":"borrow of `h.0` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2632,"byte_end":2635,"line_start":102,"line_end":102,"column_start":9,"column_end":12,"is_primary":true,"text":[{"text":"        h.0; //[ast]~ ERROR cannot use `h.0` because it was mutably borrowed","highlight_start":9,"highlight_end":12}],"label":"use of borrowed `h.0`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2792,"byte_end":2793,"line_start":104,"line_end":104,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `h.0` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:102:9\n   |\nLL |         let x = &mut h.0;\n   |                 -------- borrow of `h.0` occurs here\nLL |         h.0; //[ast]~ ERROR cannot use `h.0` because it was mutably borrowed\n   |         ^^^ use of borrowed `h.0`\nLL |              //[mir]~^ ERROR cannot use `h.0` because it was mutably borrowed\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `e.0` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2899,"byte_end":2900,"line_start":109,"line_end":109,"column_start":17,"column_end":18,"is_primary":false,"text":[{"text":"        let x = e.x();","highlight_start":17,"highlight_end":18}],"label":"borrow of `*e` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":2944,"byte_end":2949,"line_start":111,"line_end":111,"column_start":20,"column_end":25,"is_primary":true,"text":[{"text":"            Baz::X(value) => value","highlight_start":20,"highlight_end":25}],"label":"use of borrowed `*e`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3139,"byte_end":3140,"line_start":115,"line_end":115,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `e.0` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:111:20\n   |\nLL |         let x = e.x();\n   |                 - borrow of `*e` occurs here\nLL |         match *e {\nLL |             Baz::X(value) => value\n   |                    ^^^^^ use of borrowed `*e`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `u.a` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3255,"byte_end":3263,"line_start":120,"line_end":120,"column_start":17,"column_end":25,"is_primary":false,"text":[{"text":"        let x = &mut u.a;","highlight_start":17,"highlight_end":25}],"label":"borrow of `u.a` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3273,"byte_end":3276,"line_start":121,"line_end":121,"column_start":9,"column_end":12,"is_primary":true,"text":[{"text":"        u.a; //[ast]~ ERROR cannot use `u.a` because it was mutably borrowed","highlight_start":9,"highlight_end":12}],"label":"use of borrowed `u.a`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3433,"byte_end":3434,"line_start":123,"line_end":123,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `u.a` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:121:9\n   |\nLL |         let x = &mut u.a;\n   |                 -------- borrow of `u.a` occurs here\nLL |         u.a; //[ast]~ ERROR cannot use `u.a` because it was mutably borrowed\n   |         ^^^ use of borrowed `u.a`\nLL |              //[mir]~^ ERROR cannot use `u.a` because it was mutably borrowed\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[..]` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3542,"byte_end":3548,"line_start":128,"line_end":128,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3582,"byte_end":3583,"line_start":130,"line_end":130,"column_start":15,"column_end":16,"is_primary":true,"text":[{"text":"            &[x, _, .., _, _] => println!(\"{}\", x),","highlight_start":15,"highlight_end":16}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4771,"byte_end":4772,"line_start":153,"line_end":153,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[..]` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:130:15\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\nLL |         match v {\nLL |             &[x, _, .., _, _] => println!(\"{}\", x),\n   |               ^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[..]` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3542,"byte_end":3548,"line_start":128,"line_end":128,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3887,"byte_end":3888,"line_start":136,"line_end":136,"column_start":18,"column_end":19,"is_primary":true,"text":[{"text":"            &[_, x, .., _, _] => println!(\"{}\", x),","highlight_start":18,"highlight_end":19}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4771,"byte_end":4772,"line_start":153,"line_end":153,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[..]` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:136:18\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\n...\nLL |             &[_, x, .., _, _] => println!(\"{}\", x),\n   |                  ^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[..]` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3542,"byte_end":3548,"line_start":128,"line_end":128,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4196,"byte_end":4197,"line_start":142,"line_end":142,"column_start":25,"column_end":26,"is_primary":true,"text":[{"text":"            &[_, _, .., x, _] => println!(\"{}\", x),","highlight_start":25,"highlight_end":26}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4771,"byte_end":4772,"line_start":153,"line_end":153,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[..]` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:142:25\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\n...\nLL |             &[_, _, .., x, _] => println!(\"{}\", x),\n   |                         ^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[..]` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":3542,"byte_end":3548,"line_start":128,"line_end":128,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4501,"byte_end":4502,"line_start":148,"line_end":148,"column_start":28,"column_end":29,"is_primary":true,"text":[{"text":"            &[_, _, .., _, x] => println!(\"{}\", x),","highlight_start":28,"highlight_end":29}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4771,"byte_end":4772,"line_start":153,"line_end":153,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[..]` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:148:28\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\n...\nLL |             &[_, _, .., _, x] => println!(\"{}\", x),\n   |                            ^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[..]` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4859,"byte_end":4865,"line_start":158,"line_end":158,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4899,"byte_end":4900,"line_start":160,"line_end":160,"column_start":15,"column_end":16,"is_primary":true,"text":[{"text":"            &[x..] => println!(\"{:?}\", x),","highlight_start":15,"highlight_end":16}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6000,"byte_end":6001,"line_start":183,"line_end":183,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[..]` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:160:15\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\nLL |         match v {\nLL |             &[x..] => println!(\"{:?}\", x),\n   |               ^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[..]` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4859,"byte_end":4865,"line_start":158,"line_end":158,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":5179,"byte_end":5180,"line_start":166,"line_end":166,"column_start":18,"column_end":19,"is_primary":true,"text":[{"text":"            &[_, x..] => println!(\"{:?}\", x),","highlight_start":18,"highlight_end":19}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6000,"byte_end":6001,"line_start":183,"line_end":183,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[..]` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:166:18\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\n...\nLL |             &[_, x..] => println!(\"{:?}\", x),\n   |                  ^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[..]` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4859,"byte_end":4865,"line_start":158,"line_end":158,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":5456,"byte_end":5457,"line_start":172,"line_end":172,"column_start":15,"column_end":16,"is_primary":true,"text":[{"text":"            &[x.., _] => println!(\"{:?}\", x),","highlight_start":15,"highlight_end":16}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6000,"byte_end":6001,"line_start":183,"line_end":183,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[..]` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:172:15\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\n...\nLL |             &[x.., _] => println!(\"{:?}\", x),\n   |               ^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[..]` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":4859,"byte_end":4865,"line_start":158,"line_end":158,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":5739,"byte_end":5740,"line_start":178,"line_end":178,"column_start":18,"column_end":19,"is_primary":true,"text":[{"text":"            &[_, x.., _] => println!(\"{:?}\", x),","highlight_start":18,"highlight_end":19}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6000,"byte_end":6001,"line_start":183,"line_end":183,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[..]` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:178:18\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\n...\nLL |             &[_, x.., _] => println!(\"{:?}\", x),\n   |                  ^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `e` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6124,"byte_end":6130,"line_start":190,"line_end":190,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut e;","highlight_start":17,"highlight_end":23}],"label":"borrow of `e` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6162,"byte_end":6174,"line_start":192,"line_end":192,"column_start":13,"column_end":25,"is_primary":true,"text":[{"text":"            E::A(ref ax) =>","highlight_start":13,"highlight_end":25}],"label":"use of borrowed `e`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6822,"byte_end":6823,"line_start":202,"line_end":202,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `e` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:192:13\n   |\nLL |         let x = &mut e;\n   |                 ------ borrow of `e` occurs here\nLL |         match e {\nLL |             E::A(ref ax) =>\n   |             ^^^^^^^^^^^^ use of borrowed `e`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot borrow `e.0` as immutable because it is also borrowed as mutable","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/book/ch04-02-references-and-borrowing.html.\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6167,"byte_end":6173,"line_start":192,"line_end":192,"column_start":18,"column_end":24,"is_primary":true,"text":[{"text":"            E::A(ref ax) =>","highlight_start":18,"highlight_end":24}],"label":"immutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6124,"byte_end":6130,"line_start":190,"line_end":190,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut e;","highlight_start":17,"highlight_end":23}],"label":"mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6822,"byte_end":6823,"line_start":202,"line_end":202,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"mutable borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0502]: cannot borrow `e.0` as immutable because it is also borrowed as mutable\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:192:18\n   |\nLL |         let x = &mut e;\n   |                 ------ mutable borrow occurs here\nLL |         match e {\nLL |             E::A(ref ax) =>\n   |                  ^^^^^^ immutable borrow occurs here\n...\nLL |         drop(x);\n   |              - mutable borrow later used here\n\n"}
[01:06:24] {"message":"cannot borrow `e.x` as immutable because it is also borrowed as mutable","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/book/ch04-02-references-and-borrowing.html.\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6533,"byte_end":6539,"line_start":197,"line_end":197,"column_start":23,"column_end":29,"is_primary":true,"text":[{"text":"            E::B { x: ref bx } =>","highlight_start":23,"highlight_end":29}],"label":"immutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6124,"byte_end":6130,"line_start":190,"line_end":190,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut e;","highlight_start":17,"highlight_end":23}],"label":"mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":6822,"byte_end":6823,"line_start":202,"line_end":202,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"mutable borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0502]: cannot borrow `e.x` as immutable because it is also borrowed as mutable\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:197:23\n   |\nLL |         let x = &mut e;\n   |                 ------ mutable borrow occurs here\n...\nLL |             E::B { x: ref bx } =>\n   |                       ^^^^^^ immutable borrow occurs here\n...\nLL |         drop(x);\n   |              - mutable borrow later used here\n\n"}
[01:06:24] {"message":"cannot borrow `s.y.0` as immutable because it is also borrowed as mutable","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/book/ch04-02-references-and-borrowing.html.\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":7065,"byte_end":7071,"line_start":211,"line_end":211,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":"            S  { y: (ref y0, _), .. } =>","highlight_start":22,"highlight_end":28}],"label":"immutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":7018,"byte_end":7024,"line_start":209,"line_end":209,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut s;","highlight_start":17,"highlight_end":23}],"label":"mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":7775,"byte_end":7776,"line_start":224,"line_end":224,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"mutable borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0502]: cannot borrow `s.y.0` as immutable because it is also borrowed as mutable\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:211:22\n   |\nLL |         let x = &mut s;\n   |                 ------ mutable borrow occurs here\nLL |         match s {\nLL |             S  { y: (ref y0, _), .. } =>\n   |                      ^^^^^^ immutable borrow occurs here\n...\nLL |         drop(x);\n   |              - mutable borrow later used here\n\n"}
[01:06:24] {"message":"cannot borrow `s.x.y` as immutable because it is also borrowed as mutable","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/book/ch04-02-references-and-borrowing.html.\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":7435,"byte_end":7441,"line_start":218,"line_end":218,"column_start":28,"column_end":34,"is_primary":true,"text":[{"text":"            S  { x: F { y: ref x0, .. }, .. } =>","highlight_start":28,"highlight_end":34}],"label":"immutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":7018,"byte_end":7024,"line_start":209,"line_end":209,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut s;","highlight_start":17,"highlight_end":23}],"label":"mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":7775,"byte_end":7776,"line_start":224,"line_end":224,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"mutable borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0502]: cannot borrow `s.x.y` as immutable because it is also borrowed as mutable\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:218:28\n   |\nLL |         let x = &mut s;\n   |                 ------ mutable borrow occurs here\n...\nLL |             S  { x: F { y: ref x0, .. }, .. } =>\n   |                            ^^^^^^ immutable borrow occurs here\n...\nLL |         drop(x);\n   |              - mutable borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `*v` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8848,"byte_end":8854,"line_start":260,"line_end":260,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8864,"byte_end":8868,"line_start":261,"line_end":261,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":"        v[0].y;","highlight_start":9,"highlight_end":13}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9111,"byte_end":9112,"line_start":265,"line_end":265,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `*v` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:261:9\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\nLL |         v[0].y;\n   |         ^^^^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot use `v[_].y` because it was mutably borrowed","code":{"code":"E0503","explanation":"\nA value was used after it was mutably borrowed.\n\nExample of erroneous code:\n\n```compile_fail,E0503\nfn main() {\n    let mut value = 3;\n    // Create a mutable borrow of `value`. This borrow\n    // lives until the end of this function.\n    let _borrow = &mut value;\n    let _sum = value + 1; // error: cannot use `value` because\n                          //        it was mutably borrowed\n}\n```\n\nIn this example, `value` is mutably borrowed by `borrow` and cannot be\nused to calculate `sum`. This is not possible because this would violate\nRust's mutability rules.\n\nYou can fix this error by limiting the scope of the borrow:\n\n```\nfn main() {\n    let mut value = 3;\n    // By creating a new block, you can limit the scope\n    // of the reference.\n    {\n        let _borrow = &mut value; // Use `_borrow` inside this block.\n    }\n    // The block has ended and with it the borrow.\n    // You can now use `value` again.\n    let _sum = value + 1;\n}\n```\n\nOr by cloning `value` before borrowing it:\n\n```\nfn main() {\n    let mut value = 3;\n    // We clone `value`, creating a copy.\n    let value_cloned = value.clone();\n    // The mutable borrow is a reference to `value` and\n    // not to `value_cloned`...\n    let _borrow = &mut value;\n    // ... which means we can still use `value_cloned`,\n    let _sum = value_cloned + 1;\n    // even though the borrow only ends here.\n}\n```\n\nYou can find more information about borrowing in the rust-book:\nhttp://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8848,"byte_end":8854,"line_start":260,"line_end":260,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"borrow of `v` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8864,"byte_end":8870,"line_start":261,"line_end":261,"column_start":9,"column_end":15,"is_primary":true,"text":[{"text":"        v[0].y;","highlight_start":9,"highlight_end":15}],"label":"use of borrowed `v`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9111,"byte_end":9112,"line_start":265,"line_end":265,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0503]: cannot use `v[_].y` because it was mutably borrowed\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:261:9\n   |\nLL |         let x = &mut v;\n   |                 ------ borrow of `v` occurs here\nLL |         v[0].y;\n   |         ^^^^^^ use of borrowed `v`\n...\nLL |         drop(x);\n   |              - borrow later used here\n\n"}
[01:06:24] {"message":"cannot borrow `v[..].x` as immutable because it is also borrowed as mutable","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/book/ch04-02-references-and-borrowing.html.\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9312,"byte_end":9318,"line_start":273,"line_end":273,"column_start":24,"column_end":30,"is_primary":true,"text":[{"text":"            &[_, F {x: ref xf, ..}] => println!(\"{}\", xf),","highlight_start":24,"highlight_end":30}],"label":"immutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9263,"byte_end":9269,"line_start":271,"line_end":271,"column_start":17,"column_end":23,"is_primary":false,"text":[{"text":"        let x = &mut v;","highlight_start":17,"highlight_end":23}],"label":"mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":9545,"byte_end":9546,"line_start":278,"line_end":278,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":"        drop(x);","highlight_start":14,"highlight_end":15}],"label":"mutable borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0502]: cannot borrow `v[..].x` as immutable because it is also borrowed as mutable\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:273:24\n   |\nLL |         let x = &mut v;\n   |                 ------ mutable borrow occurs here\nLL |         match v {\nLL |             &[_, F {x: ref xf, ..}] => println!(\"{}\", xf),\n   |                        ^^^^^^ immutable borrow occurs here\n...\nLL |         drop(x);\n   |              - mutable borrow later used here\n\n"}
[01:06:24] {"message":"cannot borrow `*block.current` as immutable because it is also borrowed as mutable","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/book/ch04-02-references-and-borrowing.html.\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8020,"byte_end":8035,"line_start":235,"line_end":235,"column_start":29,"column_end":44,"is_primary":true,"text":[{"text":"            let p: &'a u8 = &*block.current;","highlight_start":29,"highlight_end":44}],"label":"immutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":7980,"byte_end":7990,"line_start":234,"line_end":234,"column_start":21,"column_end":31,"is_primary":false,"text":[{"text":"            let x = &mut block;","highlight_start":21,"highlight_end":31}],"label":"mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8225,"byte_end":8226,"line_start":238,"line_end":238,"column_start":18,"column_end":19,"is_primary":false,"text":[{"text":"            drop(x);","highlight_start":18,"highlight_end":19}],"label":"mutable borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:235:29\n   |\nLL |             let x = &mut block;\n   |                     ---------- mutable borrow occurs here\nLL |             let p: &'a u8 = &*block.current;\n   |                             ^^^^^^^^^^^^^^^ immutable borrow occurs here\n...\nLL |             drop(x);\n   |                  - mutable borrow later used here\n\n"}
[01:06:24] {"message":"cannot borrow `*block.current` as immutable because it is also borrowed as mutable","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/book/ch04-02-references-and-borrowing.html.\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8487,"byte_end":8505,"line_start":250,"line_end":250,"column_start":33,"column_end":51,"is_primary":true,"text":[{"text":"            let p : *const u8 = &*(*block).current;","highlight_start":33,"highlight_end":51}],"label":"immutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8443,"byte_end":8453,"line_start":249,"line_end":249,"column_start":21,"column_end":31,"is_primary":false,"text":[{"text":"            let x = &mut block;","highlight_start":21,"highlight_end":31}],"label":"mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":8695,"byte_end":8696,"line_start":253,"line_end":253,"column_start":18,"column_end":19,"is_primary":false,"text":[{"text":"            drop(x);","highlight_start":18,"highlight_end":19}],"label":"mutable borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:250:33\n   |\nLL |             let x = &mut block;\n   |                     ---------- mutable borrow occurs here\nLL |             let p : *const u8 = &*(*block).current;\n   |                                 ^^^^^^^^^^^^^^^^^^ immutable borrow occurs here\n...\nLL |             drop(x);\n   |                  - mutable borrow later used here\n\n"}
[01:06:24] {"message":"use of moved value: `x`","code":{"code":"E0382","explanation":"\nThis error occurs when an attempt is made to use a variable after its contents\nhave been moved elsewhere. For example:\n\n```compile_fail,E0382\nstruct MyStruct { s: u32 }\n\nfn main() {\n    let mut x = MyStruct{ s: 5u32 };\n    let y = x;\n    x.s = 6;\n    println!(\"{}\", x.s);\n}\n```\n\nSince `MyStruct` is a type that is not marked `Copy`, the data gets moved out\nof `x` when we set `y`. This is fundamental to Rust's ownership system: outside\nof workarounds like `Rc`, a value cannot be owned by more than one variable.\n\nSometimes we don't need to move the value. Using a reference, we can let another\nfunction borrow the value without changing its ownership. In the example below,\nwe don't actually have to move our string to `calculate_length`, we can give it\na reference to it with `&` instead.\n\n```\nfn main() {\n    let s1 = String::from(\"hello\");\n\n    let len = calculate_length(&s1);\n\n    println!(\"The length of '{}' is {}.\", s1, len);\n}\n\nfn calculate_length(s: &String) -> usize {\n    s.len()\n}\n```\n\nA mutable reference can be created with `&mut`.\n\nSometimes we don't want a reference, but a duplicate. All types marked `Clone`\ncan be duplicated by calling `.clone()`. Subsequent changes to a clone do not\naffect the original variable.\n\nMost types in the standard library are marked `Clone`. The example below\ndemonstrates using `clone()` on a string. `s1` is first set to \"many\", and then\ncopied to `s2`. Then the first character of `s1` is removed, without affecting\n`s2`. \"any many\" is printed to the console.\n\n```\nfn main() {\n    let mut s1 = String::from(\"many\");\n    let s2 = s1.clone();\n    s1.remove(0);\n    println!(\"{} {}\", s1, s2);\n}\n```\n\nIf we control the definition of a type, we can implement `Clone` on it ourselves\nwith `#[derive(Clone)]`.\n\nSome types have no ownership semantics at all and are trivial to duplicate. An\nexample is `i32` and the other number types. We don't have to call `.clone()` to\nclone them, because they are marked `Copy` in addition to `Clone`. Implicit\ncloning is more convenient in this case. We can mark our own types `Copy` if\nall their members also are marked `Copy`.\n\nIn the example below, we implement a `Point` type. Because it only stores two\nintegers, we opt-out of ownership semantics with `Copy`. Then we can\n`let p2 = p1` without `p1` being moved.\n\n```\n#[derive(Copy, Clone)]\nstruct Point { x: i32, y: i32 }\n\nfn main() {\n    let mut p1 = Point{ x: -1, y: 2 };\n    let p2 = p1;\n    p1.x = 1;\n    println!(\"p1: {}, {}\", p1.x, p1.y);\n    println!(\"p2: {}, {}\", p2.x, p2.y);\n}\n```\n\nAlternatively, if we don't control the struct's definition, or mutable shared\nownership is truly required, we can use `Rc` and `RefCell`:\n\n```\nuse std::cell::RefCell;\nuse std::rc::Rc;\n\nstruct MyStruct { s: u32 }\n\nfn main() {\n    let mut x = Rc::new(RefCell::new(MyStruct{ s: 5u32 }));\n    let y = x.clone();\n    x.borrow_mut().s = 6;\n    println!(\"{}\", x.borrow().s);\n}\n```\n\nWith this approach, x and y share ownership of the data via the `Rc` (reference\ncount type). `RefCell` essentially performs runtime borrow checking: ensuring\nthat at most one writer or multiple readers can access the data at any one time.\n\nIf you wish to learn more about ownership in Rust, start with the chapter in the\nBook:\n\nhttps://doc.rust-lang.org/book/ch04-00-understanding-ownership.html\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":10431,"byte_end":10432,"line_start":306,"line_end":306,"column_start":22,"column_end":23,"is_primary":false,"text":[{"text":"                drop(x);","highlight_start":22,"highlight_end":23}],"label":"value moved here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs","byte_start":10456,"byte_end":10457,"line_start":307,"line_end":307,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":"                drop(x); //[ast]~ ERROR use of moved value: `x`","highlight_start":22,"highlight_end":23}],"label":"value used here after move","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"move occurs because `x` has type `std::vec::Vec<i32>`, which does not implement the `Copy` trait","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0382]: use of moved value: `x`\n  --> /checkout/src/test/ui/borrowck/borrowck-describe-lvalue.rs:307:22\n   |\nLL |                 drop(x);\n   |                      - value moved here\nLL |                 drop(x); //[ast]~ ERROR use of moved value: `x`\n   |                      ^ value used here after move\n   |\n   = note: move occurs because `x` has type `std::vec::Vec<i32>`, which does not implement the `Copy` trait\n\n"}
[01:06:24] {"message":"aborting due to 32 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 32 previous errors\n\n"}
[01:06:24] {"message":"Some errors occurred: E0382, E0499, E0502, E0503.","code":null,"level":"","spans":[],"children":[],"rendered":"Some errors occurred: E0382, E0499, E0502, E0503.\n"}
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] thread '[ui] ui/borrowck/borrowck-describe-lvalue.rs#mir' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] thread '[ui] ui/borrowck/borrowck-describe-lvalue.rs#mir' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:06:24] 
[01:06:24] ---- [ui] ui/consts/const-err4.rs stdout ----
[01:06:24] diff of stderr:
[01:06:24] 
[01:06:24] 4 LL |     Boo = [unsafe { Foo { b: () }.a }; 4][3],
[01:06:24] 5    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
[01:06:24] 6    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 9 error: aborting due to previous error
[01:06:24] 10 
[01:06:24] 
[01:06:24] 
[01:06:24] 
[01:06:24] The actual stderr differed from the expected stderr.
[01:06:24] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-err4/const-err4.stderr
[01:06:24] To update references, rerun the tests and pass the `--bless` flag
[01:06:24] To only update this specific test, also pass `--test-args consts/const-err4.rs`
[01:06:24] error: 1 errors occurred comparing output.
[01:06:24] status: exit code: 1
[01:06:24] status: exit code: 1
[01:06:24] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-err4.rs" "-Zthreads=1" "--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/consts/const-err4/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/consts/const-err4/auxiliary" "-A" "unused"
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] stderr:
[01:06:24] stderr:
[01:06:24] ------------------------------------------
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-err4.rs","byte_start":84,"byte_end":118,"line_start":8,"line_end":8,"column_start":11,"column_end":45,"is_primary":true,"text":[{"text":"    Boo = [unsafe { Foo { b: () }.a }; 4][3],","highlight_start":11,"highlight_end":45}],"label":"type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-err4.rs:8:11\n   |\nLL |     Boo = [unsafe { Foo { b: () }.a }; 4][3],\n   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"For more information about this error, try `rustc --explain E0080`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0080`.\n"}
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] 
[01:06:24] thread '[ui] ui/consts/const-err4.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] 
[01:06:24] ---- [ui] ui/consts/const-eval/const-pointer-values-in-various-types.rs stdout ----
[01:06:24] diff of stderr:
[01:06:24] 
[01:06:24] 4 LL |     const I32_REF_USIZE_UNION: usize = unsafe { Nonsense { int_32_ref: &3 }.u };
[01:06:24] 5    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 6    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 8 
[01:06:24] 9 error: any use of this value will cause an error
[01:06:24] 
[01:06:24] 
[01:06:24] 38 LL |     const I32_REF_U64_UNION: u64 = unsafe { Nonsense { int_32_ref: &3 }.uint_64 };
[01:06:24] 39    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 40    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 43 error[E0080]: it is undefined behavior to use this value
[01:06:24] 44   --> $DIR/const-pointer-values-in-various-types.rs:39:5
[01:06:24] 
[01:06:24] 
[01:06:24] 46 LL |     const I32_REF_U128_UNION: u128 = unsafe { Nonsense { int_32_ref: &3 }.uint_128 };
[01:06:24] 47    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
[01:06:24] 48    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 50 
[01:06:24] 51 error: any use of this value will cause an error
[01:06:24] 
[01:06:24] 
[01:06:24] 78 LL |     const I32_REF_I64_UNION: i64 = unsafe { Nonsense { int_32_ref: &3 }.int_64 };
[01:06:24] 79    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 80    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 83 error[E0080]: it is undefined behavior to use this value
[01:06:24] 84   --> $DIR/const-pointer-values-in-various-types.rs:54:5
[01:06:24] 
[01:06:24] 
[01:06:24] 86 LL |     const I32_REF_I128_UNION: i128 = unsafe { Nonsense { int_32_ref: &3 }.int_128 };
[01:06:24] 87    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
[01:06:24] 88    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 90 
[01:06:24] 91 error: any use of this value will cause an error
[01:06:24] 
[01:06:24] 
[01:06:24] 102 LL |     const I32_REF_F64_UNION: f64 = unsafe { Nonsense { int_32_ref: &3 }.float_64 };
[01:06:24] 103    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 104    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 106 
[01:06:24] 107 error: any use of this value will cause an error
[01:06:24] 
[01:06:24] 
[01:06:24] 150 LL |     const STR_U64_UNION: u64 = unsafe { Nonsense { stringy: "3" }.uint_64 };
[01:06:24] 151    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 152    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 154 
[01:06:24] 155 error: any use of this value will cause an error
[01:06:24] 
[01:06:24] 
[01:06:24] 190 LL |     const STR_I64_UNION: i64 = unsafe { Nonsense { stringy: "3" }.int_64 };
[01:06:24] 191    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 192    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 194 
[01:06:24] 195 error: any use of this value will cause an error
[01:06:24] 
[01:06:24] 
[01:06:24] 214 LL |     const STR_F64_UNION: f64 = unsafe { Nonsense { stringy: "3" }.float_64 };
[01:06:24] 215    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 216    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 218 
[01:06:24] 219 error: any use of this value will cause an error
[01:06:24] 
[01:06:24] 
[01:06:24] The actual stderr differed from the expected stderr.
[01:06:24] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/const-pointer-values-in-various-types/const-pointer-values-in-various-types.stderr
[01:06:24] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/const-pointer-values-in-various-types/const-pointer-values-in-various-types.stderr
[01:06:24] To update references, rerun the tests and pass the `--bless` flag
[01:06:24] To only update this specific test, also pass `--test-args consts/const-eval/const-pointer-values-in-various-types.rs`
[01:06:24] error: 1 errors occurred comparing output.
[01:06:24] status: exit code: 1
[01:06:24] status: exit code: 1
[01:06:24] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs" "-Zthreads=1" "--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/consts/const-eval/const-pointer-values-in-various-types/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/consts/const-eval/const-pointer-values-in-various-types/auxiliary" "-A" "unused"
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] stderr:
[01:06:24] stderr:
[01:06:24] ------------------------------------------
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":382,"byte_end":458,"line_start":24,"line_end":24,"column_start":5,"column_end":81,"is_primary":true,"text":[{"text":"    const I32_REF_USIZE_UNION: usize = unsafe { Nonsense { int_32_ref: &3 }.u };","highlight_start":5,"highlight_end":81}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:24:5\n   |\nLL |     const I32_REF_USIZE_UNION: usize = unsafe { Nonsense { int_32_ref: &3 }.u };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":560,"byte_end":594,"line_start":27,"line_end":27,"column_start":43,"column_end":77,"is_primary":false,"text":[{"text":"    const I32_REF_U8_UNION: u8 = unsafe { Nonsense { int_32_ref: &3 }.uint_8 };","highlight_start":43,"highlight_end":77}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":522,"byte_end":597,"line_start":27,"line_end":27,"column_start":5,"column_end":80,"is_primary":true,"text":[{"text":"    const I32_REF_U8_UNION: u8 = unsafe { Nonsense { int_32_ref: &3 }.uint_8 };","highlight_start":5,"highlight_end":80}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"#[deny(const_err)] on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:27:5\n   |\nLL |     const I32_REF_U8_UNION: u8 = unsafe { Nonsense { int_32_ref: &3 }.uint_8 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^\n   |                                           |\n   |                                           a raw memory access tried to access part of a pointer value as raw bytes\n   |\n   = note: #[deny(const_err)] on by default\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":700,"byte_end":735,"line_start":30,"line_end":30,"column_start":45,"column_end":80,"is_primary":false,"text":[{"text":"    const I32_REF_U16_UNION: u16 = unsafe { Nonsense { int_32_ref: &3 }.uint_16 };","highlight_start":45,"highlight_end":80}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":660,"byte_end":738,"line_start":30,"line_end":30,"column_start":5,"column_end":83,"is_primary":true,"text":[{"text":"    const I32_REF_U16_UNION: u16 = unsafe { Nonsense { int_32_ref: &3 }.uint_16 };","highlight_start":5,"highlight_end":83}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:30:5\n   |\nLL |     const I32_REF_U16_UNION: u16 = unsafe { Nonsense { int_32_ref: &3 }.uint_16 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^\n   |                                             |\n   |                                             a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":841,"byte_end":876,"line_start":33,"line_end":33,"column_start":45,"column_end":80,"is_primary":false,"text":[{"text":"    const I32_REF_U32_UNION: u32 = unsafe { Nonsense { int_32_ref: &3 }.uint_32 };","highlight_start":45,"highlight_end":80}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":801,"byte_end":879,"line_start":33,"line_end":33,"column_start":5,"column_end":83,"is_primary":true,"text":[{"text":"    const I32_REF_U32_UNION: u32 = unsafe { Nonsense { int_32_ref: &3 }.uint_32 };","highlight_start":5,"highlight_end":83}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:33:5\n   |\nLL |     const I32_REF_U32_UNION: u32 = unsafe { Nonsense { int_32_ref: &3 }.uint_32 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^\n   |                                             |\n   |                                             a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":942,"byte_end":1020,"line_start":36,"line_end":36,"column_start":5,"column_end":83,"is_primary":true,"text":[{"text":"    const I32_REF_U64_UNION: u64 = unsafe { Nonsense { int_32_ref: &3 }.uint_64 };","highlight_start":5,"highlight_end":83}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:36:5\n   |\nLL |     const I32_REF_U64_UNION: u64 = unsafe { Nonsense { int_32_ref: &3 }.uint_64 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1084,"byte_end":1165,"line_start":39,"line_end":39,"column_start":5,"column_end":86,"is_primary":true,"text":[{"text":"    const I32_REF_U128_UNION: u128 = unsafe { Nonsense { int_32_ref: &3 }.uint_128 };","highlight_start":5,"highlight_end":86}],"label":"type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:39:5\n   |\nLL |     const I32_REF_U128_UNION: u128 = unsafe { Nonsense { int_32_ref: &3 }.uint_128 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1267,"byte_end":1300,"line_start":42,"line_end":42,"column_start":43,"column_end":76,"is_primary":false,"text":[{"text":"    const I32_REF_I8_UNION: i8 = unsafe { Nonsense { int_32_ref: &3 }.int_8 };","highlight_start":43,"highlight_end":76}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1229,"byte_end":1303,"line_start":42,"line_end":42,"column_start":5,"column_end":79,"is_primary":true,"text":[{"text":"    const I32_REF_I8_UNION: i8 = unsafe { Nonsense { int_32_ref: &3 }.int_8 };","highlight_start":5,"highlight_end":79}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:42:5\n   |\nLL |     const I32_REF_I8_UNION: i8 = unsafe { Nonsense { int_32_ref: &3 }.int_8 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------^^^\n   |                                           |\n   |                                           a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1406,"byte_end":1440,"line_start":45,"line_end":45,"column_start":45,"column_end":79,"is_primary":false,"text":[{"text":"    const I32_REF_I16_UNION: i16 = unsafe { Nonsense { int_32_ref: &3 }.int_16 };","highlight_start":45,"highlight_end":79}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1366,"byte_end":1443,"line_start":45,"line_end":45,"column_start":5,"column_end":82,"is_primary":true,"text":[{"text":"    const I32_REF_I16_UNION: i16 = unsafe { Nonsense { int_32_ref: &3 }.int_16 };","highlight_start":5,"highlight_end":82}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:45:5\n   |\nLL |     const I32_REF_I16_UNION: i16 = unsafe { Nonsense { int_32_ref: &3 }.int_16 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^\n   |                                             |\n   |                                             a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1546,"byte_end":1580,"line_start":48,"line_end":48,"column_start":45,"column_end":79,"is_primary":false,"text":[{"text":"    const I32_REF_I32_UNION: i32 = unsafe { Nonsense { int_32_ref: &3 }.int_32 };","highlight_start":45,"highlight_end":79}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1506,"byte_end":1583,"line_start":48,"line_end":48,"column_start":5,"column_end":82,"is_primary":true,"text":[{"text":"    const I32_REF_I32_UNION: i32 = unsafe { Nonsense { int_32_ref: &3 }.int_32 };","highlight_start":5,"highlight_end":82}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:48:5\n   |\nLL |     const I32_REF_I32_UNION: i32 = unsafe { Nonsense { int_32_ref: &3 }.int_32 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^\n   |                                             |\n   |                                             a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1646,"byte_end":1723,"line_start":51,"line_end":51,"column_start":5,"column_end":82,"is_primary":true,"text":[{"text":"    const I32_REF_I64_UNION: i64 = unsafe { Nonsense { int_32_ref: &3 }.int_64 };","highlight_start":5,"highlight_end":82}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:51:5\n   |\nLL |     const I32_REF_I64_UNION: i64 = unsafe { Nonsense { int_32_ref: &3 }.int_64 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1787,"byte_end":1867,"line_start":54,"line_end":54,"column_start":5,"column_end":85,"is_primary":true,"text":[{"text":"    const I32_REF_I128_UNION: i128 = unsafe { Nonsense { int_32_ref: &3 }.int_128 };","highlight_start":5,"highlight_end":85}],"label":"type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:54:5\n   |\nLL |     const I32_REF_I128_UNION: i128 = unsafe { Nonsense { int_32_ref: &3 }.int_128 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1971,"byte_end":2007,"line_start":57,"line_end":57,"column_start":45,"column_end":81,"is_primary":false,"text":[{"text":"    const I32_REF_F32_UNION: f32 = unsafe { Nonsense { int_32_ref: &3 }.float_32 };","highlight_start":45,"highlight_end":81}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":1931,"byte_end":2010,"line_start":57,"line_end":57,"column_start":5,"column_end":84,"is_primary":true,"text":[{"text":"    const I32_REF_F32_UNION: f32 = unsafe { Nonsense { int_32_ref: &3 }.float_32 };","highlight_start":5,"highlight_end":84}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:57:5\n   |\nLL |     const I32_REF_F32_UNION: f32 = unsafe { Nonsense { int_32_ref: &3 }.float_32 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^\n   |                                             |\n   |                                             a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2073,"byte_end":2152,"line_start":60,"line_end":60,"column_start":5,"column_end":84,"is_primary":true,"text":[{"text":"    const I32_REF_F64_UNION: f64 = unsafe { Nonsense { int_32_ref: &3 }.float_64 };","highlight_start":5,"highlight_end":84}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:60:5\n   |\nLL |     const I32_REF_F64_UNION: f64 = unsafe { Nonsense { int_32_ref: &3 }.float_64 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2258,"byte_end":2299,"line_start":63,"line_end":63,"column_start":47,"column_end":88,"is_primary":false,"text":[{"text":"    const I32_REF_BOOL_UNION: bool = unsafe { Nonsense { int_32_ref: &3 }.truthy_falsey };","highlight_start":47,"highlight_end":88}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2216,"byte_end":2302,"line_start":63,"line_end":63,"column_start":5,"column_end":91,"is_primary":true,"text":[{"text":"    const I32_REF_BOOL_UNION: bool = unsafe { Nonsense { int_32_ref: &3 }.truthy_falsey };","highlight_start":5,"highlight_end":91}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:63:5\n   |\nLL |     const I32_REF_BOOL_UNION: bool = unsafe { Nonsense { int_32_ref: &3 }.truthy_falsey };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------------^^^\n   |                                               |\n   |                                               a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2407,"byte_end":2444,"line_start":66,"line_end":66,"column_start":47,"column_end":84,"is_primary":false,"text":[{"text":"    const I32_REF_CHAR_UNION: char = unsafe { Nonsense { int_32_ref: &3 }.character };","highlight_start":47,"highlight_end":84}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2365,"byte_end":2447,"line_start":66,"line_end":66,"column_start":5,"column_end":87,"is_primary":true,"text":[{"text":"    const I32_REF_CHAR_UNION: char = unsafe { Nonsense { int_32_ref: &3 }.character };","highlight_start":5,"highlight_end":87}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:66:5\n   |\nLL |     const I32_REF_CHAR_UNION: char = unsafe { Nonsense { int_32_ref: &3 }.character };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^\n   |                                               |\n   |                                               a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2544,"byte_end":2576,"line_start":69,"line_end":69,"column_start":39,"column_end":71,"is_primary":false,"text":[{"text":"    const STR_U8_UNION: u8 = unsafe { Nonsense { stringy: \"3\" }.uint_8 };","highlight_start":39,"highlight_end":71}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2510,"byte_end":2579,"line_start":69,"line_end":69,"column_start":5,"column_end":74,"is_primary":true,"text":[{"text":"    const STR_U8_UNION: u8 = unsafe { Nonsense { stringy: \"3\" }.uint_8 };","highlight_start":5,"highlight_end":74}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:69:5\n   |\nLL |     const STR_U8_UNION: u8 = unsafe { Nonsense { stringy: \"3\" }.uint_8 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------^^^\n   |                                       |\n   |                                       a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2678,"byte_end":2711,"line_start":72,"line_end":72,"column_start":41,"column_end":74,"is_primary":false,"text":[{"text":"    const STR_U16_UNION: u16 = unsafe { Nonsense { stringy: \"3\" }.uint_16 };","highlight_start":41,"highlight_end":74}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2642,"byte_end":2714,"line_start":72,"line_end":72,"column_start":5,"column_end":77,"is_primary":true,"text":[{"text":"    const STR_U16_UNION: u16 = unsafe { Nonsense { stringy: \"3\" }.uint_16 };","highlight_start":5,"highlight_end":77}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:72:5\n   |\nLL |     const STR_U16_UNION: u16 = unsafe { Nonsense { stringy: \"3\" }.uint_16 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------^^^\n   |                                         |\n   |                                         a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2813,"byte_end":2846,"line_start":75,"line_end":75,"column_start":41,"column_end":74,"is_primary":false,"text":[{"text":"    const STR_U32_UNION: u32 = unsafe { Nonsense { stringy: \"3\" }.uint_32 };","highlight_start":41,"highlight_end":74}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2777,"byte_end":2849,"line_start":75,"line_end":75,"column_start":5,"column_end":77,"is_primary":true,"text":[{"text":"    const STR_U32_UNION: u32 = unsafe { Nonsense { stringy: \"3\" }.uint_32 };","highlight_start":5,"highlight_end":77}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:75:5\n   |\nLL |     const STR_U32_UNION: u32 = unsafe { Nonsense { stringy: \"3\" }.uint_32 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------^^^\n   |                                         |\n   |                                         a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":2912,"byte_end":2984,"line_start":78,"line_end":78,"column_start":5,"column_end":77,"is_primary":true,"text":[{"text":"    const STR_U64_UNION: u64 = unsafe { Nonsense { stringy: \"3\" }.uint_64 };","highlight_start":5,"highlight_end":77}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:78:5\n   |\nLL |     const STR_U64_UNION: u64 = unsafe { Nonsense { stringy: \"3\" }.uint_64 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3086,"byte_end":3120,"line_start":81,"line_end":81,"column_start":43,"column_end":77,"is_primary":false,"text":[{"text":"    const STR_U128_UNION: u128 = unsafe { Nonsense { stringy: \"3\" }.uint_128 };","highlight_start":43,"highlight_end":77}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3048,"byte_end":3123,"line_start":81,"line_end":81,"column_start":5,"column_end":80,"is_primary":true,"text":[{"text":"    const STR_U128_UNION: u128 = unsafe { Nonsense { stringy: \"3\" }.uint_128 };","highlight_start":5,"highlight_end":80}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:81:5\n   |\nLL |     const STR_U128_UNION: u128 = unsafe { Nonsense { stringy: \"3\" }.uint_128 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^\n   |                                           |\n   |                                           a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3220,"byte_end":3251,"line_start":84,"line_end":84,"column_start":39,"column_end":70,"is_primary":false,"text":[{"text":"    const STR_I8_UNION: i8 = unsafe { Nonsense { stringy: \"3\" }.int_8 };","highlight_start":39,"highlight_end":70}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3186,"byte_end":3254,"line_start":84,"line_end":84,"column_start":5,"column_end":73,"is_primary":true,"text":[{"text":"    const STR_I8_UNION: i8 = unsafe { Nonsense { stringy: \"3\" }.int_8 };","highlight_start":5,"highlight_end":73}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:84:5\n   |\nLL |     const STR_I8_UNION: i8 = unsafe { Nonsense { stringy: \"3\" }.int_8 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------^^^\n   |                                       |\n   |                                       a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3353,"byte_end":3385,"line_start":87,"line_end":87,"column_start":41,"column_end":73,"is_primary":false,"text":[{"text":"    const STR_I16_UNION: i16 = unsafe { Nonsense { stringy: \"3\" }.int_16 };","highlight_start":41,"highlight_end":73}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3317,"byte_end":3388,"line_start":87,"line_end":87,"column_start":5,"column_end":76,"is_primary":true,"text":[{"text":"    const STR_I16_UNION: i16 = unsafe { Nonsense { stringy: \"3\" }.int_16 };","highlight_start":5,"highlight_end":76}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:87:5\n   |\nLL |     const STR_I16_UNION: i16 = unsafe { Nonsense { stringy: \"3\" }.int_16 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------^^^\n   |                                         |\n   |                                         a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3487,"byte_end":3519,"line_start":90,"line_end":90,"column_start":41,"column_end":73,"is_primary":false,"text":[{"text":"    const STR_I32_UNION: i32 = unsafe { Nonsense { stringy: \"3\" }.int_32 };","highlight_start":41,"highlight_end":73}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3451,"byte_end":3522,"line_start":90,"line_end":90,"column_start":5,"column_end":76,"is_primary":true,"text":[{"text":"    const STR_I32_UNION: i32 = unsafe { Nonsense { stringy: \"3\" }.int_32 };","highlight_start":5,"highlight_end":76}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:90:5\n   |\nLL |     const STR_I32_UNION: i32 = unsafe { Nonsense { stringy: \"3\" }.int_32 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------^^^\n   |                                         |\n   |                                         a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3585,"byte_end":3656,"line_start":93,"line_end":93,"column_start":5,"column_end":76,"is_primary":true,"text":[{"text":"    const STR_I64_UNION: i64 = unsafe { Nonsense { stringy: \"3\" }.int_64 };","highlight_start":5,"highlight_end":76}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:93:5\n   |\nLL |     const STR_I64_UNION: i64 = unsafe { Nonsense { stringy: \"3\" }.int_64 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3758,"byte_end":3791,"line_start":96,"line_end":96,"column_start":43,"column_end":76,"is_primary":false,"text":[{"text":"    const STR_I128_UNION: i128 = unsafe { Nonsense { stringy: \"3\" }.int_128 };","highlight_start":43,"highlight_end":76}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3720,"byte_end":3794,"line_start":96,"line_end":96,"column_start":5,"column_end":79,"is_primary":true,"text":[{"text":"    const STR_I128_UNION: i128 = unsafe { Nonsense { stringy: \"3\" }.int_128 };","highlight_start":5,"highlight_end":79}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:96:5\n   |\nLL |     const STR_I128_UNION: i128 = unsafe { Nonsense { stringy: \"3\" }.int_128 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------^^^\n   |                                           |\n   |                                           a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3893,"byte_end":3927,"line_start":99,"line_end":99,"column_start":41,"column_end":75,"is_primary":false,"text":[{"text":"    const STR_F32_UNION: f32 = unsafe { Nonsense { stringy: \"3\" }.float_32 };","highlight_start":41,"highlight_end":75}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3857,"byte_end":3930,"line_start":99,"line_end":99,"column_start":5,"column_end":78,"is_primary":true,"text":[{"text":"    const STR_F32_UNION: f32 = unsafe { Nonsense { stringy: \"3\" }.float_32 };","highlight_start":5,"highlight_end":78}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:99:5\n   |\nLL |     const STR_F32_UNION: f32 = unsafe { Nonsense { stringy: \"3\" }.float_32 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^\n   |                                         |\n   |                                         a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":3993,"byte_end":4066,"line_start":102,"line_end":102,"column_start":5,"column_end":78,"is_primary":true,"text":[{"text":"    const STR_F64_UNION: f64 = unsafe { Nonsense { stringy: \"3\" }.float_64 };","highlight_start":5,"highlight_end":78}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:102:5\n   |\nLL |     const STR_F64_UNION: f64 = unsafe { Nonsense { stringy: \"3\" }.float_64 };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":4168,"byte_end":4207,"line_start":105,"line_end":105,"column_start":43,"column_end":82,"is_primary":false,"text":[{"text":"    const STR_BOOL_UNION: bool = unsafe { Nonsense { stringy: \"3\" }.truthy_falsey };","highlight_start":43,"highlight_end":82}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":4130,"byte_end":4210,"line_start":105,"line_end":105,"column_start":5,"column_end":85,"is_primary":true,"text":[{"text":"    const STR_BOOL_UNION: bool = unsafe { Nonsense { stringy: \"3\" }.truthy_falsey };","highlight_start":5,"highlight_end":85}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:105:5\n   |\nLL |     const STR_BOOL_UNION: bool = unsafe { Nonsense { stringy: \"3\" }.truthy_falsey };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------------^^^\n   |                                           |\n   |                                           a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"any use of this value will cause an error","code":{"code":"const_err","explanation":null},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":4311,"byte_end":4346,"line_start":108,"line_end":108,"column_start":43,"column_end":78,"is_primary":false,"text":[{"text":"    const STR_CHAR_UNION: char = unsafe { Nonsense { stringy: \"3\" }.character };","highlight_start":43,"highlight_end":78}],"label":"a raw memory access tried to access part of a pointer value as raw bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs","byte_start":4273,"byte_end":4349,"line_start":108,"line_end":108,"column_start":5,"column_end":81,"is_primary":true,"text":[{"text":"    const STR_CHAR_UNION: char = unsafe { Nonsense { stringy: \"3\" }.character };","highlight_start":5,"highlight_end":81}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: any use of this value will cause an error\n  --> /checkout/src/test/ui/consts/const-eval/const-pointer-values-in-various-types.rs:108:5\n   |\nLL |     const STR_CHAR_UNION: char = unsafe { Nonsense { stringy: \"3\" }.character };\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^\n   |                                           |\n   |                                           a raw memory access tried to access part of a pointer value as raw bytes\n\n"}
[01:06:24] {"message":"For more information about this error, try `rustc --explain E0080`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0080`.\n"}
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] 
[01:06:24] thread '[ui] ui/consts/const-eval/const-pointer-values-in-various-types.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] 
[01:06:24] ---- [ui] ui/consts/const-eval/double_check2.rs stdout ----
[01:06:24] diff of stderr:
[01:06:24] 
[01:06:24] 7 LL | | )};
[01:06:24] 8    | |___^ type validation failed: encountered 5 at .1.<deref>, but expected a valid enum discriminant
[01:06:24] 9    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 12 error: aborting due to previous error
[01:06:24] 13 
[01:06:24] 
[01:06:24] 
[01:06:24] 
[01:06:24] The actual stderr differed from the expected stderr.
[01:06:24] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/double_check2/double_check2.stderr
[01:06:24] To update references, rerun the tests and pass the `--bless` flag
[01:06:24] To only update this specific test, also pass `--test-args consts/const-eval/double_check2.rs`
[01:06:24] error: 1 errors occurred comparing output.
[01:06:24] status: exit code: 1
[01:06:24] status: exit code: 1
[01:06:24] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-eval/double_check2.rs" "-Zthreads=1" "--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/consts/const-eval/double_check2/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/consts/const-eval/double_check2/auxiliary" "-A" "unused"
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] stderr:
[01:06:24] stderr:
[01:06:24] ------------------------------------------
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/double_check2.rs","byte_start":176,"byte_end":295,"line_start":15,"line_end":18,"column_start":1,"column_end":4,"is_primary":true,"text":[{"text":"static FOO: (&Foo, &Bar) = unsafe {( //~ undefined behavior","highlight_start":1,"highlight_end":60},{"text":"    Union { u8: &BAR }.foo,","highlight_start":1,"highlight_end":28},{"text":"    Union { u8: &BAR }.bar,","highlight_start":1,"highlight_end":28},{"text":")};","highlight_start":1,"highlight_end":4}],"label":"type validation failed: encountered 5 at .1.<deref>, but expected a valid enum discriminant","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/double_check2.rs:15:1\n   |\nLL | / static FOO: (&Foo, &Bar) = unsafe {( //~ undefined behavior\nLL | |     Union { u8: &BAR }.foo,\nLL | |     Union { u8: &BAR }.bar,\nLL | | )};\n   | |___^ type validation failed: encountered 5 at .1.<deref>, but expected a valid enum discriminant\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"For more information about this error, try `rustc --explain E0080`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0080`.\n"}
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] 
[01:06:24] thread '[ui] ui/consts/const-eval/double_check2.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] 
[01:06:24] ---- [ui] ui/consts/const-eval/issue-52442.rs stdout ----
[01:06:24] diff of stderr:
[01:06:24] 
[01:06:24] 10 LL |     [();  { &loop { break } as *const _ as usize } ]; //~ ERROR unimplemented expression type
[01:06:24] 11    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 12    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 15 error: aborting due to 2 previous errors
[01:06:24] 16 
[01:06:24] 
[01:06:24] 
[01:06:24] 
[01:06:24] The actual stderr differed from the expected stderr.
[01:06:24] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/issue-52442/issue-52442.stderr
[01:06:24] To update references, rerun the tests and pass the `--bless` flag
[01:06:24] To only update this specific test, also pass `--test-args consts/const-eval/issue-52442.rs`
[01:06:24] error: 1 errors occurred comparing output.
[01:06:24] status: exit code: 1
[01:06:24] status: exit code: 1
[01:06:24] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-eval/issue-52442.rs" "-Zthreads=1" "--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/consts/const-eval/issue-52442/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/consts/const-eval/issue-52442/auxiliary" "-A" "unused"
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] stderr:
[01:06:24] stderr:
[01:06:24] ------------------------------------------
[01:06:24] {"message":"constant contains unimplemented expression type","code":{"code":"E0019","explanation":"\nA function call isn't allowed in the const's initialization expression\nbecause the expression's value must be known at compile-time. Erroneous code\nexample:\n\n```compile_fail\nenum Test {\n    V1\n}\n\nimpl Test {\n    fn test(&self) -> i32 {\n        12\n    }\n}\n\nfn main() {\n    const FOO: Test = Test::V1;\n\n    const A: i32 = FOO.test(); // You can't call Test::func() here!\n}\n```\n\nRemember: you can't use a function call inside a const's initialization\nexpression! However, you can totally use it anywhere else:\n\n```\nenum Test {\n    V1\n}\n\nimpl Test {\n    fn func(&self) -> i32 {\n        12\n    }\n}\n\nfn main() {\n    const FOO: Test = Test::V1;\n\n    FOO.func(); // here is good\n    let x = FOO.func(); // or even here!\n}\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/issue-52442.rs","byte_start":25,"byte_end":39,"line_start":2,"line_end":2,"column_start":14,"column_end":28,"is_primary":true,"text":[{"text":"    [();  { &loop { break } as *const _ as usize } ]; //~ ERROR unimplemented expression type","highlight_start":14,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0019]: constant contains unimplemented expression type\n  --> /checkout/src/test/ui/consts/const-eval/issue-52442.rs:2:14\n   |\nLL |     [();  { &loop { break } as *const _ as usize } ]; //~ ERROR unimplemented expression type\n   |              ^^^^^^^^^^^^^^\n\n"}
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/issue-52442.rs","byte_start":22,"byte_end":62,"line_start":2,"line_end":2,"column_start":11,"column_end":51,"is_primary":true,"text":[{"text":"    [();  { &loop { break } as *const _ as usize } ]; //~ ERROR unimplemented expression type","highlight_start":11,"highlight_end":51}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/issue-52442.rs:2:11\n   |\nLL |     [();  { &loop { break } as *const _ as usize } ]; //~ ERROR unimplemented expression type\n   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"aborting due to 2 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 2 previous errors\n\n"}
[01:06:24] {"message":"Some errors occurred: E0019, E0080.","code":null,"level":"","spans":[],"children":[],"rendered":"Some errors occurred: E0019, E0080.\n"}
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] thread '[ui] ui/consts/const-eval/issue-52442.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] thread '[ui] ui/consts/const-eval/issue-52442.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] 
[01:06:24] ---- [ui] ui/consts/const-eval/ref_to_int_match.rs stdout ----
[01:06:24] diff of stderr:
[01:06:24] 
[01:06:24] 4 LL | const BAR: Int = unsafe { Foo { r: &42 }.f }; //~ ERROR it is undefined behavior to use this value
[01:06:24] 5    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
[01:06:24] 6    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 9 error: could not evaluate constant pattern
[01:06:24] 10   --> $DIR/ref_to_int_match.rs:7:14
[01:06:24] 
[01:06:24] 
[01:06:24] 
[01:06:24] The actual stderr differed from the expected stderr.
[01:06:24] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/ref_to_int_match/ref_to_int_match.stderr
[01:06:24] To update references, rerun the tests and pass the `--bless` flag
[01:06:24] To only update this specific test, also pass `--test-args consts/const-eval/ref_to_int_match.rs`
[01:06:24] error: 1 errors occurred comparing output.
[01:06:24] status: exit code: 1
[01:06:24] status: exit code: 1
[01:06:24] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-eval/ref_to_int_match.rs" "-Zthreads=1" "--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/consts/const-eval/ref_to_int_match/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/consts/const-eval/ref_to_int_match/auxiliary" "-A" "unused"
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] stderr:
[01:06:24] stderr:
[01:06:24] ------------------------------------------
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/ref_to_int_match.rs","byte_start":344,"byte_end":389,"line_start":23,"line_end":23,"column_start":1,"column_end":46,"is_primary":true,"text":[{"text":"const BAR: Int = unsafe { Foo { r: &42 }.f }; //~ ERROR it is undefined behavior to use this value","highlight_start":1,"highlight_end":46}],"label":"type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/ref_to_int_match.rs:23:1\n   |\nLL | const BAR: Int = unsafe { Foo { r: &42 }.f }; //~ ERROR it is undefined behavior to use this value\n   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"could not evaluate constant pattern","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/ref_to_int_match.rs","byte_start":111,"byte_end":114,"line_start":7,"line_end":7,"column_start":14,"column_end":17,"is_primary":true,"text":[{"text":"        10..=BAR => {}, //~ ERROR could not evaluate constant pattern","highlight_start":14,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: could not evaluate constant pattern\n  --> /checkout/src/test/ui/consts/const-eval/ref_to_int_match.rs:7:14\n   |\nLL |         10..=BAR => {}, //~ ERROR could not evaluate constant pattern\n   |              ^^^\n\n"}
[01:06:24] {"message":"For more information about this error, try `rustc --explain E0080`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0080`.\n"}
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] 
[01:06:24] thread '[ui] ui/consts/const-eval/ref_to_int_match.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] 
[01:06:24] ---- [ui] ui/consts/const-eval/transmute-const.rs stdout ----
[01:06:24] diff of stderr:
[01:06:24] 
[01:06:24] 4 LL | static FOO: bool = unsafe { mem::transmute(3u8) };
[01:06:24] 5    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 3, but expected something less or equal to 1
[01:06:24] 6    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 9 error: aborting due to previous error
[01:06:24] 10 
[01:06:24] 
[01:06:24] 
[01:06:24] 
[01:06:24] The actual stderr differed from the expected stderr.
[01:06:24] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/transmute-const/transmute-const.stderr
[01:06:24] To update references, rerun the tests and pass the `--bless` flag
[01:06:24] To only update this specific test, also pass `--test-args consts/const-eval/transmute-const.rs`
[01:06:24] error: 1 errors occurred comparing output.
[01:06:24] status: exit code: 1
[01:06:24] status: exit code: 1
[01:06:24] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-eval/transmute-const.rs" "-Zthreads=1" "--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/consts/const-eval/transmute-const/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/consts/const-eval/transmute-const/auxiliary" "-A" "unused"
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] stderr:
[01:06:24] stderr:
[01:06:24] ------------------------------------------
[01:06:24] {"message":"it is undefined behavior to use this value","code":{"code":"E0080","explanation":"\nThis error indicates that the compiler was unable to sensibly evaluate an\nconstant expression that had to be evaluated. Attempting to divide by 0\nor causing integer overflow are two ways to induce this error. For example:\n\n```compile_fail,E0080\nenum Enum {\n    X = (1 << 500),\n    Y = (1 / 0)\n}\n```\n\nEnsure that the expressions given can be evaluated as the desired integer type.\nSee the FFI section of the Reference for more information about using a custom\ninteger type:\n\nhttps://doc.rust-lang.org/reference.html#ffi-attributes\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui/consts/const-eval/transmute-const.rs","byte_start":45,"byte_end":95,"line_start":5,"line_end":5,"column_start":1,"column_end":51,"is_primary":true,"text":[{"text":"static FOO: bool = unsafe { mem::transmute(3u8) };","highlight_start":1,"highlight_end":51}],"label":"type validation failed: encountered 3, but expected something less or equal to 1","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0080]: it is undefined behavior to use this value\n  --> /checkout/src/test/ui/consts/const-eval/transmute-const.rs:5:1\n   |\nLL | static FOO: bool = unsafe { mem::transmute(3u8) };\n   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 3, but expected something less or equal to 1\n   |\n   = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior\n\n"}
[01:06:24] {"message":"For more information about this error, try `rustc --explain E0080`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0080`.\n"}
[01:06:24] 
[01:06:24] ------------------------------------------
[01:06:24] 
[01:06:24] 
[01:06:24] thread '[ui] ui/consts/const-eval/transmute-const.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3300:9
[01:06:24] 
[01:06:24] ---- [ui] ui/consts/const-eval/ub-enum.rs stdout ----
[01:06:24] diff of stderr:
[01:06:24] 
[01:06:24] 4 LL | const BAD_ENUM: Enum = unsafe { TransmuteEnum { in1: &1 }.out1 };
[01:06:24] 5    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected a valid enum discriminant
[01:06:24] 6    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 9 error[E0080]: it is undefined behavior to use this value
[01:06:24] 10   --> $DIR/ub-enum.rs:34:1
[01:06:24] 
[01:06:24] 
[01:06:24] 12 LL | const BAD_ENUM2: Enum2 = unsafe { TransmuteEnum2 { in1: 0 }.out1 };
[01:06:24] 13    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 0, but expected a valid enum discriminant
[01:06:24] 14    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 17 error[E0080]: it is undefined behavior to use this value
[01:06:24] 18   --> $DIR/ub-enum.rs:36:1
[01:06:24] 
[01:06:24] 
[01:06:24] 20 LL | const BAD_ENUM3: Enum2 = unsafe { TransmuteEnum2 { in2: &0 }.out1 };
[01:06:24] 21    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected a valid enum discriminant
[01:06:24] 22    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 25 error[E0080]: it is undefined behavior to use this value
[01:06:24] 26   --> $DIR/ub-enum.rs:38:1
[01:06:24] 
[01:06:24] 
[01:06:24] 28 LL | const BAD_ENUM4: Wrap<Enum2> = unsafe { TransmuteEnum2 { in2: &0 }.out2 };
[01:06:24] 29    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected something that cannot possibly fail to be in the range 2..=2
[01:06:24] 30    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 33 error[E0080]: it is undefined behavior to use this value
[01:06:24] 34   --> $DIR/ub-enum.rs:42:1
[01:06:24] 
[01:06:24] 
[01:06:24] 36 LL | const BAD_ENUM_UNDEF : Enum2 = unsafe { TransmuteEnum2 { in3: () }.out1 };
[01:06:24] 37    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected a valid enum discriminant
[01:06:24] 38    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 41 error[E0080]: it is undefined behavior to use this value
[01:06:24] 42   --> $DIR/ub-enum.rs:46:1
[01:06:24] 
[01:06:24] 
[01:06:24] 44 LL | const BAD_ENUM_PTR: Option<Enum2> = unsafe { TransmuteEnum2 { in2: &0 }.out3 };
[01:06:24] 45    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected a valid enum discriminant
[01:06:24] 46    |
[01:06:24] -    = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
[01:06:24] +    = note: the rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. please open an issue on the compiler repository if you believe it should not be considered undefined behavior
[01:06:24] 49 error[E0080]: it is undefined behavior to use this value
[01:06:24] 50   --> $DIR/ub-enum.rs:56:1
[01:06:24] 
[01:06:24] 
[01:06:24] 52 LL | const BAD_ENUM_CHAR: Option<(char, char)> = Some(('x', unsafe { TransmuteChar { a: !0 }.b }));
[01:06:24] 53    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 4294967295 at .<downcast-variant(Some)>.0.1, but expected something less or equal to 1114111
---
[01:06:24] test result: FAILED. 5338 passed; 29 failed; 23 ignored; 0 measured; 0 filtered out
[01:06:24] 
[01:06:24] 
[01:06:24] 
[01:06:24] 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"
[01:06:24] 
[01:06:24] 
[01:06:24] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:06:24] Build completed unsuccessfully in 0:04:28
[01:06:24] Build completed unsuccessfully in 0:04:28
[01:06:24] make: *** [check] Error 1
[01:06:24] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:219a7a30
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sat Feb 16 03:40:03 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)

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 17, 2019

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

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