Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a HIR pass to check consts for `if`, `loop`, etc. #66170

Merged
merged 14 commits into from Nov 13, 2019

Conversation

@ecstatic-morse
Copy link
Contributor

ecstatic-morse commented Nov 6, 2019

Resolves #66125.

This PR adds a HIR pass to check for high-level control flow constructs that are forbidden in a const-context. The MIR const-checker is unable to provide good spans for these since they are lowered to control flow primitives (e.g., Goto and SwitchInt), and these often don't map back to the underlying statement as a whole. This PR is intended only to improve diagnostics once if and match become commonplace in constants (behind a feature flag). The MIR const-checker will continue to operate unchanged, and will catch anything this check might miss.

In this implementation, the HIR const-checking pass is run much earlier than the MIR one, so it will supersede any errors from the latter. I will need some mentoring if we wish to change this, since I'm not familiar with the diagnostics system. Moving this pass into the same phase as the MIR const-checker could also help keep backwards compatibility for items like const _: () = loop { break; };, which are currently (erroneously?) accepted by the MIR const-checker (see #62272).

r? @Centril
cc @eddyb (since they filed #62272)

@rust-highfive

This comment was marked as spam.

Copy link
Collaborator

rust-highfive commented Nov 6, 2019

Some changes occurred in diagnostic error codes

cc @GuillaumeGomez

@ecstatic-morse

This comment was marked as outdated.

Copy link
Contributor Author

ecstatic-morse commented Nov 6, 2019

For now, I've not done anything with tests related to #62272, so this will fail CI. I've also not changed any errors in the MIR const-checker to delay_span_bug, since we may end up not doing this if we decide that the code in #62272 must continue to work.

@eddyb

This comment has been minimized.

Copy link
Member

eddyb commented Nov 6, 2019

cc @rust-lang/compiler I was hoping we would implement const-checking for arbitrary CFGs and never have to deal with a HIR check on constants again, but I guess I was wrong.

@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Nov 6, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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.
2019-11-06T20:56:53.6344109Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-06T20:56:53.6512604Z ##[command]git config gc.auto 0
2019-11-06T20:56:53.6577217Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-06T20:56:53.6623425Z ##[command]git config --get-all http.proxy
2019-11-06T20:56:53.6760711Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66170/merge:refs/remotes/pull/66170/merge
---
2019-11-06T21:59:31.8214092Z ..................................................................F................................. 1600/9281
2019-11-06T21:59:37.4361731Z .................................................................................................... 1700/9281
2019-11-06T21:59:50.4306667Z ...............................................................i.................................... 1800/9281
2019-11-06T21:59:58.2275319Z .................................................................................................... 1900/9281
2019-11-06T22:00:11.8247591Z ...............................................iiiii................................................ 2000/9281
2019-11-06T22:00:21.5350828Z .................................................................................................... 2200/9281
2019-11-06T22:00:23.9131090Z .................................................................................................... 2300/9281
2019-11-06T22:00:27.5563115Z .................................................................................................... 2400/9281
2019-11-06T22:00:48.8342151Z .................................................................................................... 2500/9281
---
2019-11-06T22:03:23.8313384Z .F...........................................i...............i...................................... 4800/9281
2019-11-06T22:03:33.3648220Z ..F................................................................................................. 4900/9281
2019-11-06T22:03:41.7141687Z .................................................................................................... 5000/9281
2019-11-06T22:03:48.4148410Z .................................................................................................... 5100/9281
2019-11-06T22:03:58.1557722Z ..............................................ii.ii...........i..................................... 5200/9281
2019-11-06T22:04:08.1976144Z .................................................................................................... 5400/9281
2019-11-06T22:04:17.6287336Z .................................................................................................... 5500/9281
2019-11-06T22:04:24.3978385Z ............................i....................................................................... 5600/9281
2019-11-06T22:04:30.4053970Z .................................................................................................... 5700/9281
2019-11-06T22:04:30.4053970Z .................................................................................................... 5700/9281
2019-11-06T22:04:41.3631202Z .................................................................................................... 5800/9281
2019-11-06T22:04:51.9388445Z .............ii...i..ii...........i................................................................. 5900/9281
2019-11-06T22:05:10.7188478Z .................................................................................................... 6100/9281
2019-11-06T22:05:16.0237377Z .................................................................................................... 6200/9281
2019-11-06T22:05:16.0237377Z .................................................................................................... 6200/9281
2019-11-06T22:05:28.7486319Z ................................i..ii............................................................... 6300/9281
2019-11-06T22:05:47.4685232Z ...................................................................................................i 6500/9281
2019-11-06T22:05:49.4644791Z .................................................................................................... 6600/9281
2019-11-06T22:05:51.3986217Z ..............................................................................i..................... 6700/9281
2019-11-06T22:05:53.7843374Z .................................................................................................... 6800/9281
---
2019-11-06T22:07:31.4759209Z .................................................................................................... 7500/9281
2019-11-06T22:07:38.9140565Z .................................................................................................... 7600/9281
2019-11-06T22:07:48.8754767Z .................................................................................................... 7700/9281
2019-11-06T22:07:57.0806745Z .................................................................................................... 7800/9281
2019-11-06T22:08:03.1094919Z .ii......i.......................................................................................... 7900/9281
2019-11-06T22:08:22.4780666Z .................................................................................................... 8100/9281
2019-11-06T22:08:30.3828514Z .................................................................................................... 8200/9281
2019-11-06T22:08:37.8980343Z .................................................................................................... 8300/9281
2019-11-06T22:09:14.0254223Z .................................................................................................... 8400/9281
---
2019-11-06T22:10:18.3992926Z 
2019-11-06T22:10:18.3993539Z ---- [ui] ui/borrowck/issue-64453.rs stdout ----
2019-11-06T22:10:18.3993724Z diff of stderr:
2019-11-06T22:10:18.3993828Z 
2019-11-06T22:10:18.3994163Z - error[E0507]: cannot move out of static item `settings_dir`
2019-11-06T22:10:18.3995140Z -   --> $DIR/issue-64453.rs:15:37
2019-11-06T22:10:18.3995567Z -    |
2019-11-06T22:10:18.3995999Z - LL |     let settings_data = from_string(settings_dir);
2019-11-06T22:10:18.3996519Z -    |                                     ^^^^^^^^^^^^ move occurs because `settings_dir` has type `std::string::String`, which does not implement the `Copy` trait
2019-11-06T22:10:18.3997322Z - error[E0019]: static contains unimplemented expression type
2019-11-06T22:10:18.3997513Z + error[E0744]: match expression is not allowed in a static
2019-11-06T22:10:18.3997908Z 8   --> $DIR/issue-64453.rs:4:31
2019-11-06T22:10:18.3998428Z 9    |
2019-11-06T22:10:18.3998428Z 9    |
2019-11-06T22:10:18.3998540Z 10 LL | static settings_dir: String = format!("");
2019-11-06T22:10:18.3998755Z 12    |
2019-11-06T22:10:18.3999129Z 13    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.3999297Z 14 
2019-11-06T22:10:18.3999615Z - error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
2019-11-06T22:10:18.3999615Z - error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
2019-11-06T22:10:18.3999932Z -   --> $DIR/issue-64453.rs:4:31
2019-11-06T22:10:18.4000208Z -    |
2019-11-06T22:10:18.4000501Z - LL | static settings_dir: String = format!("");
2019-11-06T22:10:18.4001093Z -    |
2019-11-06T22:10:18.4001573Z -    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4001787Z + error: aborting due to previous error
2019-11-06T22:10:18.4001908Z 22 
2019-11-06T22:10:18.4001908Z 22 
2019-11-06T22:10:18.4002279Z - error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
2019-11-06T22:10:18.4002632Z -   --> $DIR/issue-64453.rs:4:31
2019-11-06T22:10:18.4002920Z -    |
2019-11-06T22:10:18.4003251Z - LL | static settings_dir: String = format!("");
2019-11-06T22:10:18.4003861Z -    |
2019-11-06T22:10:18.4004260Z -    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4005004Z - 
2019-11-06T22:10:18.4005439Z - error: aborting due to 4 previous errors
---
2019-11-06T22:10:18.4007440Z 
2019-11-06T22:10:18.4007579Z 
2019-11-06T22:10:18.4007721Z The actual stderr differed from the expected stderr.
2019-11-06T22:10:18.4008470Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/borrowck/issue-64453/issue-64453.stderr
2019-11-06T22:10:18.4008811Z To update references, rerun the tests and pass the `--bless` flag
2019-11-06T22:10:18.4009167Z To only update this specific test, also pass `--test-args borrowck/issue-64453.rs`
2019-11-06T22:10:18.4009431Z error: 1 errors occurred comparing output.
2019-11-06T22:10:18.4009542Z status: exit code: 1
2019-11-06T22:10:18.4009542Z status: exit code: 1
2019-11-06T22:10:18.4010223Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/borrowck/issue-64453.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/borrowck/issue-64453" "-Crpath" "-O" "-Cdebuginfo=0" "-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/borrowck/issue-64453/auxiliary" "-A" "unused"
2019-11-06T22:10:18.4010723Z ------------------------------------------
2019-11-06T22:10:18.4011173Z 
2019-11-06T22:10:18.4011578Z ------------------------------------------
2019-11-06T22:10:18.4015814Z stderr:
2019-11-06T22:10:18.4015814Z stderr:
2019-11-06T22:10:18.4016243Z ------------------------------------------
2019-11-06T22:10:18.4016329Z error[E0744]: match expression is not allowed in a static
2019-11-06T22:10:18.4016600Z   --> /checkout/src/test/ui/borrowck/issue-64453.rs:4:31
2019-11-06T22:10:18.4016656Z    |
2019-11-06T22:10:18.4016721Z LL | static settings_dir: String = format!("");
2019-11-06T22:10:18.4016830Z    |
2019-11-06T22:10:18.4017370Z    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4017420Z 
2019-11-06T22:10:18.4017633Z error: aborting due to previous error
---
2019-11-06T22:10:18.4018510Z ---- [ui] ui/consts/const-eval/issue-62272.rs stdout ----
2019-11-06T22:10:18.4018537Z 
2019-11-06T22:10:18.4018722Z error: test compilation failed although it shouldn't!
2019-11-06T22:10:18.4018779Z status: exit code: 1
2019-11-06T22:10:18.4026079Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-eval/issue-62272.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-62272/a" "-Crpath" "-O" "-Cdebuginfo=0" "-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-62272/auxiliary"
2019-11-06T22:10:18.4026533Z ------------------------------------------
2019-11-06T22:10:18.4026571Z 
2019-11-06T22:10:18.4026829Z ------------------------------------------
2019-11-06T22:10:18.4026878Z stderr:
2019-11-06T22:10:18.4026878Z stderr:
2019-11-06T22:10:18.4027104Z ------------------------------------------
2019-11-06T22:10:18.4027174Z error[E0744]: loop is not allowed in a const
2019-11-06T22:10:18.4027434Z   --> /checkout/src/test/ui/consts/const-eval/issue-62272.rs:5:17
2019-11-06T22:10:18.4027486Z    |
2019-11-06T22:10:18.4027551Z LL | const FOO: () = loop { break; };
2019-11-06T22:10:18.4027646Z 
2019-11-06T22:10:18.4027690Z error: aborting due to previous error
2019-11-06T22:10:18.4027735Z 
2019-11-06T22:10:18.4028297Z For more information about this error, try `rustc --explain E0744`.
---
2019-11-06T22:10:18.4031507Z ---- [ui] ui/consts/const-labeled-break.rs stdout ----
2019-11-06T22:10:18.4031549Z 
2019-11-06T22:10:18.4031738Z error: test compilation failed although it shouldn't!
2019-11-06T22:10:18.4031802Z status: exit code: 1
2019-11-06T22:10:18.4032361Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-labeled-break.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-labeled-break" "-Crpath" "-O" "-Cdebuginfo=0" "-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-labeled-break/auxiliary" "-A" "unused"
2019-11-06T22:10:18.4032630Z ------------------------------------------
2019-11-06T22:10:18.4032656Z 
2019-11-06T22:10:18.4032845Z ------------------------------------------
2019-11-06T22:10:18.4032880Z stderr:
2019-11-06T22:10:18.4032880Z stderr:
2019-11-06T22:10:18.4033046Z ------------------------------------------
2019-11-06T22:10:18.4033100Z error[E0744]: while loop is not allowed in a const
2019-11-06T22:10:18.4033286Z   --> /checkout/src/test/ui/consts/const-labeled-break.rs:8:19
2019-11-06T22:10:18.4033324Z    |
2019-11-06T22:10:18.4033509Z LL | const CRASH: () = 'a: while break 'a {};
2019-11-06T22:10:18.4033570Z 
2019-11-06T22:10:18.4033607Z error: aborting due to previous error
2019-11-06T22:10:18.4033645Z 
2019-11-06T22:10:18.4034675Z For more information about this error, try `rustc --explain E0744`.
---
2019-11-06T22:10:18.4035962Z -   --> $DIR/issue-46843.rs:7:26
2019-11-06T22:10:18.4036039Z + error[E0744]: match expression is not allowed in a const
2019-11-06T22:10:18.4036263Z +   --> $DIR/issue-46843.rs:7:20
2019-11-06T22:10:18.4036311Z 3    |
2019-11-06T22:10:18.4036542Z - LL | pub const Q: i32 = match non_const() {
2019-11-06T22:10:18.4036795Z -    |                          ^^^^^^^^^^^
2019-11-06T22:10:18.4036964Z + LL |   pub const Q: i32 = match non_const() {
2019-11-06T22:10:18.4037397Z + LL | |
2019-11-06T22:10:18.4037454Z + LL | |
2019-11-06T22:10:18.4037495Z + LL | |     Thing::This => 1,
2019-11-06T22:10:18.4037495Z + LL | |     Thing::This => 1,
2019-11-06T22:10:18.4037558Z + LL | |     Thing::That => 0
2019-11-06T22:10:18.4037601Z + LL | | };
2019-11-06T22:10:18.4038011Z 6 
2019-11-06T22:10:18.4038918Z - error[E0019]: constant contains unimplemented expression type
2019-11-06T22:10:18.4039109Z -   --> $DIR/issue-46843.rs:7:26
2019-11-06T22:10:18.4039255Z -    |
2019-11-06T22:10:18.4039255Z -    |
2019-11-06T22:10:18.4039451Z - LL | pub const Q: i32 = match non_const() {
2019-11-06T22:10:18.4039663Z + error: aborting due to previous error
2019-11-06T22:10:18.4039711Z 12 
2019-11-06T22:10:18.4039895Z - error[E0019]: constant contains unimplemented expression type
2019-11-06T22:10:18.4040063Z -   --> $DIR/issue-46843.rs:10:5
---
2019-11-06T22:10:18.4041667Z 
2019-11-06T22:10:18.4041703Z 
2019-11-06T22:10:18.4041736Z The actual stderr differed from the expected stderr.
2019-11-06T22:10:18.4041961Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-46843/issue-46843.stderr
2019-11-06T22:10:18.4042168Z To update references, rerun the tests and pass the `--bless` flag
2019-11-06T22:10:18.4042396Z To only update this specific test, also pass `--test-args issues/issue-46843.rs`
2019-11-06T22:10:18.4042466Z error: 1 errors occurred comparing output.
2019-11-06T22:10:18.4042516Z status: exit code: 1
2019-11-06T22:10:18.4042516Z status: exit code: 1
2019-11-06T22:10:18.4043063Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-46843.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-46843" "-Crpath" "-O" "-Cdebuginfo=0" "-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-46843/auxiliary" "-A" "unused"
2019-11-06T22:10:18.4043330Z ------------------------------------------
2019-11-06T22:10:18.4043359Z 
2019-11-06T22:10:18.4043557Z ------------------------------------------
2019-11-06T22:10:18.4043593Z stderr:
2019-11-06T22:10:18.4043593Z stderr:
2019-11-06T22:10:18.4043780Z ------------------------------------------
2019-11-06T22:10:18.4043959Z error[E0744]: match expression is not allowed in a const
2019-11-06T22:10:18.4044194Z   --> /checkout/src/test/ui/issues/issue-46843.rs:7:20
2019-11-06T22:10:18.4044234Z    |
2019-11-06T22:10:18.4044284Z LL |   pub const Q: i32 = match non_const() {
2019-11-06T22:10:18.4044319Z    |  ____________________^
2019-11-06T22:10:18.4044355Z LL | |     //~^ ERROR E0015
2019-11-06T22:10:18.4044391Z LL | |     //~^^ ERROR unimplemented expression type
2019-11-06T22:10:18.4044828Z LL | |     Thing::This => 1, //~ ERROR unimplemented expression type
2019-11-06T22:10:18.4044885Z LL | |     Thing::That => 0
2019-11-06T22:10:18.4044987Z    | |_^
2019-11-06T22:10:18.4045015Z 
2019-11-06T22:10:18.4045057Z error: aborting due to previous error
2019-11-06T22:10:18.4045086Z 
---
2019-11-06T22:10:18.4046229Z 
2019-11-06T22:10:18.4046292Z + error[E0744]: match expression is not allowed in a const
2019-11-06T22:10:18.4046518Z +   --> $DIR/issue-50577.rs:3:16
2019-11-06T22:10:18.4046564Z +    |
2019-11-06T22:10:18.4046610Z + LL |         Drop = assert_eq!(1, 1)
2019-11-06T22:10:18.4046716Z +    |
2019-11-06T22:10:18.4047046Z +    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4047126Z + 
2019-11-06T22:10:18.4047175Z + error[E0744]: if expression is not allowed in a const
2019-11-06T22:10:18.4047175Z + error[E0744]: if expression is not allowed in a const
2019-11-06T22:10:18.4047400Z +   --> $DIR/issue-50577.rs:3:16
2019-11-06T22:10:18.4047472Z +    |
2019-11-06T22:10:18.4047517Z + LL |         Drop = assert_eq!(1, 1)
2019-11-06T22:10:18.4047630Z +    |
2019-11-06T22:10:18.4047959Z +    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4048018Z + 
2019-11-06T22:10:18.4048247Z + error[E0744]: match expression is not allowed in a const
2019-11-06T22:10:18.4048247Z + error[E0744]: match expression is not allowed in a const
2019-11-06T22:10:18.4048595Z +   --> $DIR/issue-50577.rs:3:16
2019-11-06T22:10:18.4048628Z +    |
2019-11-06T22:10:18.4048660Z + LL |         Drop = assert_eq!(1, 1)
2019-11-06T22:10:18.4048740Z +    |
2019-11-06T22:10:18.4048979Z +    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4049036Z + 
2019-11-06T22:10:18.4049074Z 1 error[E0317]: if may be missing an else clause
---
2019-11-06T22:10:18.4050389Z 
2019-11-06T22:10:18.4050409Z 
2019-11-06T22:10:18.4050464Z The actual stderr differed from the expected stderr.
2019-11-06T22:10:18.4050778Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-50577/issue-50577.stderr
2019-11-06T22:10:18.4050967Z To update references, rerun the tests and pass the `--bless` flag
2019-11-06T22:10:18.4051181Z To only update this specific test, also pass `--test-args issues/issue-50577.rs`
2019-11-06T22:10:18.4051240Z error: 1 errors occurred comparing output.
2019-11-06T22:10:18.4051273Z status: exit code: 1
2019-11-06T22:10:18.4051273Z status: exit code: 1
2019-11-06T22:10:18.4051881Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-50577.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-50577" "-Crpath" "-O" "-Cdebuginfo=0" "-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-50577/auxiliary" "-A" "unused"
2019-11-06T22:10:18.4052165Z ------------------------------------------
2019-11-06T22:10:18.4052190Z 
2019-11-06T22:10:18.4052360Z ------------------------------------------
2019-11-06T22:10:18.4052411Z stderr:
2019-11-06T22:10:18.4052411Z stderr:
2019-11-06T22:10:18.4052574Z ------------------------------------------
2019-11-06T22:10:18.4052613Z error[E0744]: match expression is not allowed in a const
2019-11-06T22:10:18.4052808Z   --> /checkout/src/test/ui/issues/issue-50577.rs:3:16
2019-11-06T22:10:18.4052845Z    |
2019-11-06T22:10:18.4052877Z LL |         Drop = assert_eq!(1, 1)
2019-11-06T22:10:18.4052998Z    |
2019-11-06T22:10:18.4053241Z    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4053289Z 
2019-11-06T22:10:18.4053330Z error[E0744]: if expression is not allowed in a const
2019-11-06T22:10:18.4053330Z error[E0744]: if expression is not allowed in a const
2019-11-06T22:10:18.4053519Z   --> /checkout/src/test/ui/issues/issue-50577.rs:3:16
2019-11-06T22:10:18.4053554Z    |
2019-11-06T22:10:18.4053602Z LL |         Drop = assert_eq!(1, 1)
2019-11-06T22:10:18.4053664Z    |
2019-11-06T22:10:18.4053917Z    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4053948Z 
2019-11-06T22:10:18.4053982Z error[E0744]: match expression is not allowed in a const
2019-11-06T22:10:18.4053982Z error[E0744]: match expression is not allowed in a const
2019-11-06T22:10:18.4054177Z   --> /checkout/src/test/ui/issues/issue-50577.rs:3:16
2019-11-06T22:10:18.4054212Z    |
2019-11-06T22:10:18.4054243Z LL |         Drop = assert_eq!(1, 1)
2019-11-06T22:10:18.4054321Z    |
2019-11-06T22:10:18.4055317Z    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
2019-11-06T22:10:18.4055374Z 
2019-11-06T22:10:18.4055439Z error[E0317]: if may be missing an else clause
2019-11-06T22:10:18.4055439Z error[E0317]: if may be missing an else clause
2019-11-06T22:10:18.4055691Z   --> /checkout/src/test/ui/issues/issue-50577.rs:3:16
2019-11-06T22:10:18.4055739Z    |
2019-11-06T22:10:18.4055798Z LL |         Drop = assert_eq!(1, 1)
2019-11-06T22:10:18.4055889Z    |                |
2019-11-06T22:10:18.4055889Z    |                |
2019-11-06T22:10:18.4055935Z    |                expected (), found isize
2019-11-06T22:10:18.4055997Z    |                found here
2019-11-06T22:10:18.4056081Z    = note: expected type `()`
2019-11-06T22:10:18.4056142Z               found type `isize`
2019-11-06T22:10:18.4056142Z               found type `isize`
2019-11-06T22:10:18.4056190Z    = note: `if` expressions without `else` evaluate to `()`
2019-11-06T22:10:18.4056244Z    = help: consider adding an `else` block that evaluates to the expected type
2019-11-06T22:10:18.4056842Z 
2019-11-06T22:10:18.4056891Z error: aborting due to 4 previous errors
2019-11-06T22:10:18.4056922Z 
2019-11-06T22:10:18.4056986Z Some errors have detailed explanations: E0317, E0744.
---
2019-11-06T22:10:18.4060978Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-11-06T22:10:18.4061032Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-11-06T22:10:18.4061057Z 
2019-11-06T22:10:18.4061094Z 
2019-11-06T22:10:18.4062169Z 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 -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -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"
2019-11-06T22:10:18.4062369Z 
2019-11-06T22:10:18.4062390Z 
2019-11-06T22:10:18.4062424Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-11-06T22:10:18.4062481Z Build completed unsuccessfully in 1:06:20
2019-11-06T22:10:18.4062481Z Build completed unsuccessfully in 1:06:20
2019-11-06T22:10:18.4090307Z == clock drift check ==
2019-11-06T22:10:18.4108836Z   local time: Wed Nov  6 22:10:18 UTC 2019
2019-11-06T22:10:18.6873594Z   network time: Wed, 06 Nov 2019 22:10:18 GMT
2019-11-06T22:10:18.6879485Z == end clock drift check ==
2019-11-06T22:10:19.8075727Z 
2019-11-06T22:10:19.8190440Z ##[error]Bash exited with code '1'.
2019-11-06T22:10:19.8218987Z ##[section]Starting: Checkout
2019-11-06T22:10:19.8220519Z ==============================================================================
2019-11-06T22:10:19.8220564Z Task         : Get sources
2019-11-06T22:10:19.8220616Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

Copy link
Member

Centril left a comment

The checker code looks good aside from some nits and some thoughts for the future (cleanup tasks mostly unrelated to the PR but which I noticed along the way).

src/librustc_passes/error_codes.rs Outdated Show resolved Hide resolved
src/librustc_passes/error_codes.rs Outdated Show resolved Hide resolved
src/librustc/hir/map/mod.rs Outdated Show resolved Hide resolved
@@ -329,6 +329,11 @@ rustc_queries! {
desc { |tcx| "checking for unstable API usage in {}", key.describe_as_module(tcx) }
}

/// Checks the const bodies in the module for illegal operations (e.g. `if` or `loop`).
query check_mod_const_bodies(key: DefId) -> () {

This comment has been minimized.

Copy link
@Centril

Centril Nov 7, 2019

Member

Aside: I noticed that the categorization in this module wrt. Other, TypeChecking, and friends is rather messy and there doesn't seem to be a lot of logic to it? -- Maybe another C-cleanup issue...? (cc @Zoxc & @nikomatsakis)

This comment has been minimized.

Copy link
@eddyb

eddyb Nov 11, 2019

Member

Oh, this categorization was added as a very coarse grouping for profiling purposes IIRC, we can certainly clean things up here. cc @wesleywiser

This comment has been minimized.

Copy link
@wesleywiser

wesleywiser Nov 11, 2019

Member

Cleanups wrt categorization are definitely appreciated. I did the initial pass ~1yr ago and I don't think they've changed substantially since that time. Feel free to assign me to any such cleanup PRs.

src/librustc_passes/check_const.rs Outdated Show resolved Hide resolved
src/librustc_passes/check_const.rs Outdated Show resolved Hide resolved
src/librustc_passes/check_const.rs Outdated Show resolved Hide resolved
src/librustc_passes/check_const.rs Outdated Show resolved Hide resolved
src/librustc_passes/check_const.rs Outdated Show resolved Hide resolved
@Centril

This comment has been minimized.

Copy link
Member

Centril commented Nov 7, 2019

In this implementation, the HIR const-checking pass is run much earlier than the MIR one, so it will supersede any errors from the latter. I will need some mentoring if we wish to change this, since I'm not familiar with the diagnostics system. Moving this pass into the same phase as the MIR const-checker could also help keep backwards compatibility for items like const _: () = loop { break; };, which are currently (erroneously?) accepted by the MIR const-checker (see #62272).

I wouldn't expend any energy on making #62272 work; it's not very useful in any case and was never intended to be allowed on stable other than as a side-effect of how the compiler is structured. The check as written in this PR is good. :)

@ecstatic-morse

This comment has been minimized.

Copy link
Contributor Author

ecstatic-morse commented Nov 7, 2019

Okay, I fixed most of @Centril's suggestions, blessed the back-compat breakages, and added an explanation to them. Let me know if you're okay with the new error messages.

This should pass CI now. I'd like people to weigh in on where to put this in the compilation pipeline; I think it should go alongside the MIR const-checker if possible. I'll also look into checking array length expressions. (done)

@Centril

This comment has been minimized.

Copy link
Member

Centril commented Nov 7, 2019

On my end, the code & diagnostics look good, so r=me on that aspect when you feel comfortable.

@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Nov 7, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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.
2019-11-07T01:58:10.7072880Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-07T01:58:10.7252657Z ##[command]git config gc.auto 0
2019-11-07T01:58:10.7323414Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-07T01:58:10.7389726Z ##[command]git config --get-all http.proxy
2019-11-07T01:58:10.7542383Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66170/merge:refs/remotes/pull/66170/merge
---
2019-11-07T02:56:29.6005592Z ..................................................................F................................. 1600/9282
2019-11-07T02:56:35.2802528Z .................................................................................................... 1700/9282
2019-11-07T02:56:47.3087612Z ................................................................i................................... 1800/9282
2019-11-07T02:56:54.8982165Z .................................................................................................... 1900/9282
2019-11-07T02:57:08.9857025Z ................................................iiiii............................................... 2000/9282
2019-11-07T02:57:19.2301255Z .................................................................................................... 2200/9282
2019-11-07T02:57:21.6362452Z .................................................................................................... 2300/9282
2019-11-07T02:57:25.1594883Z .................................................................................................... 2400/9282
2019-11-07T02:57:47.4924687Z .................................................................................................... 2500/9282
---
2019-11-07T03:00:33.9867022Z ..............................................i...............i..................................... 4800/9282
2019-11-07T03:00:42.7655208Z .................................................................................................... 4900/9282
2019-11-07T03:00:50.8604856Z .................................................................................................... 5000/9282
2019-11-07T03:00:57.2954073Z .................................................................................................... 5100/9282
2019-11-07T03:01:06.8944236Z ...............................................ii.ii...........i.................................... 5200/9282
2019-11-07T03:01:16.2191398Z .................................................................................................... 5400/9282
2019-11-07T03:01:26.1953481Z .................................................................................................... 5500/9282
2019-11-07T03:01:33.3359472Z .............................i...................................................................... 5600/9282
2019-11-07T03:01:39.6870032Z .................................................................................................... 5700/9282
2019-11-07T03:01:39.6870032Z .................................................................................................... 5700/9282
2019-11-07T03:01:51.6648239Z .................................................................................................... 5800/9282
2019-11-07T03:02:02.7296790Z ..............ii...i..ii...........i................................................................ 5900/9282
2019-11-07T03:02:22.8103059Z .................................................................................................... 6100/9282
2019-11-07T03:02:30.0581489Z .................................................................................................... 6200/9282
2019-11-07T03:02:30.0581489Z .................................................................................................... 6200/9282
2019-11-07T03:02:43.6788884Z .................................i..ii.............................................................. 6300/9282
2019-11-07T03:03:03.9259293Z .................................................................................................... 6500/9282
2019-11-07T03:03:05.9799041Z i................................................................................................... 6600/9282
2019-11-07T03:03:08.0418250Z ...............................................................................i.................... 6700/9282
2019-11-07T03:03:10.5403929Z .................................................................................................... 6800/9282
---
2019-11-07T03:04:54.7444660Z .................................................................................................... 7500/9282
2019-11-07T03:05:02.7756317Z .................................................................................................... 7600/9282
2019-11-07T03:05:13.5675593Z .................................................................................................... 7700/9282
2019-11-07T03:05:22.4379674Z .................................................................................................... 7800/9282
2019-11-07T03:05:28.9500735Z ..ii......i......................................................................................... 7900/9282
2019-11-07T03:05:49.9393150Z .................................................................................................... 8100/9282
2019-11-07T03:05:58.4516736Z .................................................................................................... 8200/9282
2019-11-07T03:06:06.4779014Z .................................................................................................... 8300/9282
2019-11-07T03:06:44.8752280Z .................................................................................................... 8400/9282
---
2019-11-07T03:07:54.1930430Z 1 error[E0744]: `loop` is not allowed in a `const`
2019-11-07T03:07:54.1931440Z -   --> $DIR/issue-62272.rs:3:17
2019-11-07T03:07:54.1931996Z +   --> $DIR/issue-62272.rs:7:17
2019-11-07T03:07:54.1932374Z 3    |
2019-11-07T03:07:54.1932699Z 4 LL | const FOO: () = loop { break; };
2019-11-07T03:07:54.1933367Z 
2019-11-07T03:07:54.1933492Z 
2019-11-07T03:07:54.1933955Z The actual stderr differed from the expected stderr.
2019-11-07T03:07:54.1934350Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/issue-62272/issue-62272.stderr
2019-11-07T03:07:54.1934350Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/issue-62272/issue-62272.stderr
2019-11-07T03:07:54.1935079Z To update references, rerun the tests and pass the `--bless` flag
2019-11-07T03:07:54.1935789Z To only update this specific test, also pass `--test-args consts/const-eval/issue-62272.rs`
2019-11-07T03:07:54.1936118Z error: 1 errors occurred comparing output.
2019-11-07T03:07:54.1936235Z status: exit code: 1
2019-11-07T03:07:54.1936235Z status: exit code: 1
2019-11-07T03:07:54.1937864Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-eval/issue-62272.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-eval/issue-62272" "-Crpath" "-O" "-Cdebuginfo=0" "-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-62272/auxiliary" "-A" "unused"
2019-11-07T03:07:54.1938588Z ------------------------------------------
2019-11-07T03:07:54.1938760Z 
2019-11-07T03:07:54.1939128Z ------------------------------------------
2019-11-07T03:07:54.1939350Z stderr:
2019-11-07T03:07:54.1939350Z stderr:
2019-11-07T03:07:54.1939718Z ------------------------------------------
2019-11-07T03:07:54.1939910Z error[E0744]: `loop` is not allowed in a `const`
2019-11-07T03:07:54.1940322Z   --> /checkout/src/test/ui/consts/const-eval/issue-62272.rs:7:17
2019-11-07T03:07:54.1940515Z    |
2019-11-07T03:07:54.1940673Z LL | const FOO: () = loop { break; }; //~ ERROR `loop` is not allowed in a `const`
2019-11-07T03:07:54.1941304Z 
2019-11-07T03:07:54.1941410Z error: aborting due to previous error
2019-11-07T03:07:54.1941521Z 
2019-11-07T03:07:54.1941817Z For more information about this error, try `rustc --explain E0744`.
---
2019-11-07T03:07:54.1943313Z 1 error[E0744]: `while` is not allowed in a `const`
2019-11-07T03:07:54.1943609Z -   --> $DIR/const-labeled-break.rs:6:19
2019-11-07T03:07:54.1943909Z +   --> $DIR/const-labeled-break.rs:10:19
2019-11-07T03:07:54.1944072Z 3    |
2019-11-07T03:07:54.1944367Z 4 LL | const CRASH: () = 'a: while break 'a {};
2019-11-07T03:07:54.1944606Z 
2019-11-07T03:07:54.1944716Z 
2019-11-07T03:07:54.1944822Z The actual stderr differed from the expected stderr.
2019-11-07T03:07:54.1945157Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-labeled-break/const-labeled-break.stderr
2019-11-07T03:07:54.1945157Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-labeled-break/const-labeled-break.stderr
2019-11-07T03:07:54.1945502Z To update references, rerun the tests and pass the `--bless` flag
2019-11-07T03:07:54.1945898Z To only update this specific test, also pass `--test-args consts/const-labeled-break.rs`
2019-11-07T03:07:54.1946184Z error: 1 errors occurred comparing output.
2019-11-07T03:07:54.1946304Z status: exit code: 1
2019-11-07T03:07:54.1946304Z status: exit code: 1
2019-11-07T03:07:54.1947286Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/consts/const-labeled-break.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/consts/const-labeled-break" "-Crpath" "-O" "-Cdebuginfo=0" "-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-labeled-break/auxiliary" "-A" "unused"
2019-11-07T03:07:54.1948327Z ------------------------------------------
2019-11-07T03:07:54.1948519Z 
2019-11-07T03:07:54.1948890Z ------------------------------------------
2019-11-07T03:07:54.1949093Z stderr:
2019-11-07T03:07:54.1949093Z stderr:
2019-11-07T03:07:54.1949448Z ------------------------------------------
2019-11-07T03:07:54.1949749Z error[E0744]: `while` is not allowed in a `const`
2019-11-07T03:07:54.1950233Z   --> /checkout/src/test/ui/consts/const-labeled-break.rs:10:19
2019-11-07T03:07:54.1950431Z    |
2019-11-07T03:07:54.1950865Z LL | const CRASH: () = 'a: while break 'a {}; //~ ERROR `while` is not allowed in a `const`
2019-11-07T03:07:54.1951314Z 
2019-11-07T03:07:54.1951441Z error: aborting due to previous error
2019-11-07T03:07:54.1951537Z 
2019-11-07T03:07:54.1951832Z For more information about this error, try `rustc --explain E0744`.
---
2019-11-07T03:07:54.1958415Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-11-07T03:07:54.1959447Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-11-07T03:07:54.1976706Z 
2019-11-07T03:07:54.1976791Z 
2019-11-07T03:07:54.1980371Z 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 -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -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"
2019-11-07T03:07:54.1980859Z 
2019-11-07T03:07:54.1981244Z 
2019-11-07T03:07:54.1982426Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-11-07T03:07:54.1982477Z Build completed unsuccessfully in 1:03:18
2019-11-07T03:07:54.1982477Z Build completed unsuccessfully in 1:03:18
2019-11-07T03:07:54.2031985Z == clock drift check ==
2019-11-07T03:07:54.8788095Z   local time: Thu Nov  7 03:07:54 UTC 2019
2019-11-07T03:07:54.8799979Z   network time: Thu, 07 Nov 2019 03:07:54 GMT
2019-11-07T03:07:54.8800367Z == end clock drift check ==
2019-11-07T03:07:55.7372544Z 
2019-11-07T03:07:55.7482170Z ##[error]Bash exited with code '1'.
2019-11-07T03:07:55.7509965Z ##[section]Starting: Checkout
2019-11-07T03:07:55.7511651Z ==============================================================================
2019-11-07T03:07:55.7511693Z Task         : Get sources
2019-11-07T03:07:55.7511745Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@ecstatic-morse ecstatic-morse force-pushed the ecstatic-morse:hir-const-check branch from ddc87f8 to f539d6e Nov 7, 2019
@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Nov 7, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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.
2019-11-07T03:43:46.1155445Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-07T03:43:46.1360931Z ##[command]git config gc.auto 0
2019-11-07T03:43:46.1415747Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-07T03:43:46.1471782Z ##[command]git config --get-all http.proxy
2019-11-07T03:43:46.1606525Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66170/merge:refs/remotes/pull/66170/merge
---
2019-11-07T04:43:20.5962421Z .................................................................................................... 1600/9282
2019-11-07T04:43:26.4768148Z .................................................................................................... 1700/9282
2019-11-07T04:43:39.1692097Z ................................................................i................................... 1800/9282
2019-11-07T04:43:47.2812857Z .................................................................................................... 1900/9282
2019-11-07T04:44:02.0723921Z ................................................iiiii............................................... 2000/9282
2019-11-07T04:44:12.9757988Z .................................................................................................... 2200/9282
2019-11-07T04:44:15.5259208Z .................................................................................................... 2300/9282
2019-11-07T04:44:19.2255790Z .................................................................................................... 2400/9282
2019-11-07T04:44:42.3124899Z .................................................................................................... 2500/9282
---
2019-11-07T04:47:34.7847723Z ..............................................i...............i..................................... 4800/9282
2019-11-07T04:47:44.0974819Z .................................................................................................... 4900/9282
2019-11-07T04:47:52.5232436Z .................................................................................................... 5000/9282
2019-11-07T04:47:59.2456379Z .................................................................................................... 5100/9282
2019-11-07T04:48:09.3236779Z ...............................................ii.ii...........i.................................... 5200/9282
2019-11-07T04:48:19.2815487Z .................................................................................................... 5400/9282
2019-11-07T04:48:29.6236425Z .................................................................................................... 5500/9282
2019-11-07T04:48:37.0703992Z .............................i...................................................................... 5600/9282
2019-11-07T04:48:43.6188261Z .................................................................................................... 5700/9282
2019-11-07T04:48:43.6188261Z .................................................................................................... 5700/9282
2019-11-07T04:48:55.8486581Z .................................................................................................... 5800/9282
2019-11-07T04:49:07.4118282Z ..............ii...i..ii...........i................................................................ 5900/9282
2019-11-07T04:49:28.0397403Z .................................................................................................... 6100/9282
2019-11-07T04:49:36.1770822Z .................................................................................................... 6200/9282
2019-11-07T04:49:36.1770822Z .................................................................................................... 6200/9282
2019-11-07T04:49:50.1448274Z .................................i..ii.............................................................. 6300/9282
2019-11-07T04:50:11.2602065Z .................................................................................................... 6500/9282
2019-11-07T04:50:13.4226939Z i................................................................................................... 6600/9282
2019-11-07T04:50:15.6216064Z ...............................................................................i.................... 6700/9282
2019-11-07T04:50:18.2520452Z .................................................................................................... 6800/9282
---
2019-11-07T04:52:05.7281337Z .................................................................................................... 7500/9282
2019-11-07T04:52:14.0586705Z .................................................................................................... 7600/9282
2019-11-07T04:52:25.0200765Z .................................................................................................... 7700/9282
2019-11-07T04:52:34.2783603Z .................................................................................................... 7800/9282
2019-11-07T04:52:40.9217757Z ..ii......i......................................................................................... 7900/9282
2019-11-07T04:53:02.3680464Z .................................................................................................... 8100/9282
2019-11-07T04:53:11.4807646Z .................................................................................................... 8200/9282
2019-11-07T04:53:20.0827543Z .................................................................................................... 8300/9282
2019-11-07T04:54:00.0221422Z .................................................................................................... 8400/9282
---
2019-11-07T04:55:13.5783663Z failures:
2019-11-07T04:55:13.5783887Z 
2019-11-07T04:55:13.5788671Z ---- [compile-fail] compile-fail/consts/const-fn-error.rs stdout ----
2019-11-07T04:55:13.5788760Z 
2019-11-07T04:55:13.5789325Z error: /checkout/src/test/compile-fail/consts/const-fn-error.rs:7: unexpected error: '7:5: 14:6: `for` is not allowed in a `const fn` [E0744]'
2019-11-07T04:55:13.5789446Z error: 1 unexpected errors found, 0 expected errors not found
2019-11-07T04:55:13.5789489Z status: exit code: 1
2019-11-07T04:55:13.5789489Z status: exit code: 1
2019-11-07T04:55:13.5790535Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/compile-fail/consts/const-fn-error.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/compile-fail/consts/const-fn-error" "-Crpath" "-O" "-Cdebuginfo=0" "-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/compile-fail/consts/const-fn-error/auxiliary" "-A" "unused"
2019-11-07T04:55:13.5790818Z unexpected errors (from JSON output): [
2019-11-07T04:55:13.5790931Z         line_num: 7,
2019-11-07T04:55:13.5790971Z         kind: Some(
2019-11-07T04:55:13.5791011Z             Error,
2019-11-07T04:55:13.5791068Z         ),
2019-11-07T04:55:13.5791068Z         ),
2019-11-07T04:55:13.5791209Z         msg: "7:5: 14:6: `for` is not allowed in a `const fn` [E0744]",
2019-11-07T04:55:13.5791314Z ]
2019-11-07T04:55:13.5791339Z 
2019-11-07T04:55:13.5792138Z thread '[compile-fail] compile-fail/consts/const-fn-error.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:1520:13
2019-11-07T04:55:13.5792231Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
---
2019-11-07T04:55:13.5792909Z test result: FAILED. 31 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
2019-11-07T04:55:13.5792944Z 
2019-11-07T04:55:13.5802768Z 
2019-11-07T04:55:13.5802878Z 
2019-11-07T04:55:13.5805146Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-11-07T04:55:13.5807100Z 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/compile-fail" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/compile-fail" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "compile-fail" "--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 -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -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"
2019-11-07T04:55:13.5807822Z 
2019-11-07T04:55:13.5807899Z 
2019-11-07T04:55:13.5818626Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-11-07T04:55:13.5819087Z Build completed unsuccessfully in 1:04:35
2019-11-07T04:55:13.5819087Z Build completed unsuccessfully in 1:04:35
2019-11-07T04:55:13.5876511Z == clock drift check ==
2019-11-07T04:55:13.5891264Z   local time: Thu Nov  7 04:55:13 UTC 2019
2019-11-07T04:55:14.1459702Z   network time: Thu, 07 Nov 2019 04:55:13 GMT
2019-11-07T04:55:14.1459898Z == end clock drift check ==
2019-11-07T04:55:15.0478293Z 
2019-11-07T04:55:15.0558356Z ##[error]Bash exited with code '1'.
2019-11-07T04:55:15.0591080Z ##[section]Starting: Checkout
2019-11-07T04:55:15.0593155Z ==============================================================================
2019-11-07T04:55:15.0593228Z Task         : Get sources
2019-11-07T04:55:15.0593278Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Nov 7, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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.
2019-11-07T05:25:10.6503990Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-07T05:25:10.6689532Z ##[command]git config gc.auto 0
2019-11-07T05:25:10.6791545Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-07T05:25:10.6902883Z ##[command]git config --get-all http.proxy
2019-11-07T05:25:10.7094680Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66170/merge:refs/remotes/pull/66170/merge
---
2019-11-07T06:27:53.9298980Z .................................................................................................... 1600/9282
2019-11-07T06:28:00.1526402Z .................................................................................................... 1700/9282
2019-11-07T06:28:13.6740006Z ................................................................i................................... 1800/9282
2019-11-07T06:28:22.4783876Z .................................................................................................... 1900/9282
2019-11-07T06:28:38.2643242Z ................................................iiiii............................................... 2000/9282
2019-11-07T06:28:49.3786054Z .................................................................................................... 2200/9282
2019-11-07T06:28:52.0228755Z .................................................................................................... 2300/9282
2019-11-07T06:28:55.8721972Z .................................................................................................... 2400/9282
2019-11-07T06:29:19.8836954Z .................................................................................................... 2500/9282
---
2019-11-07T06:32:14.0379462Z ..............................................i...............i..................................... 4800/9282
2019-11-07T06:32:23.1189454Z ....FF..................................F........................................................... 4900/9282
2019-11-07T06:32:31.7907069Z .................................................................................................... 5000/9282
2019-11-07T06:32:38.5269047Z .................................................................................................... 5100/9282
2019-11-07T06:32:48.7327983Z ...............................................ii.ii...........i.................................... 5200/9282
2019-11-07T06:32:58.8078443Z .................................................................................................... 5400/9282
2019-11-07T06:33:09.4126970Z .................................................................................................... 5500/9282
2019-11-07T06:33:16.8767680Z .............................i...................................................................... 5600/9282
2019-11-07T06:33:23.7036170Z .................................................................................................... 5700/9282
2019-11-07T06:33:23.7036170Z .................................................................................................... 5700/9282
2019-11-07T06:33:36.0336777Z .................................................................................................... 5800/9282
2019-11-07T06:33:47.8360551Z ..............i.i..i..ii...........i................................................................ 5900/9282
2019-11-07T06:34:08.6162755Z .................................................................................................... 6100/9282
2019-11-07T06:34:15.4686214Z .................................................................................................... 6200/9282
2019-11-07T06:34:15.4686214Z .................................................................................................... 6200/9282
2019-11-07T06:34:29.5743282Z .................................i..ii.............................................................. 6300/9282
2019-11-07T06:34:51.0951885Z .................................................................................................... 6500/9282
2019-11-07T06:34:53.3604588Z i................................................................................................... 6600/9282
2019-11-07T06:34:55.6680334Z ...............................................................................i.................... 6700/9282
2019-11-07T06:34:58.4165862Z .................................................................................................... 6800/9282
---
2019-11-07T06:36:49.5009214Z ........................F........................................................................... 7500/9282
2019-11-07T06:36:57.8657681Z .........................F.......................................................................... 7600/9282
2019-11-07T06:37:09.2759308Z .................................................................................................... 7700/9282
2019-11-07T06:37:18.5814081Z .................................................................................................... 7800/9282
2019-11-07T06:37:25.3530357Z ..ii......i......................................................................................... 7900/9282
2019-11-07T06:37:46.9209291Z .................................................................................................... 8100/9282
2019-11-07T06:37:55.8944179Z .................................................................................................... 8200/9282
2019-11-07T06:38:04.5474939Z .................................................................................................... 8300/9282
2019-11-07T06:38:46.1332712Z .................................................................................................... 8400/9282
---
2019-11-07T06:40:00.0099578Z 
2019-11-07T06:40:00.0100709Z ---- [ui] ui/closures/issue-52437.rs stdout ----
2019-11-07T06:40:00.0100990Z diff of stderr:
2019-11-07T06:40:00.0101157Z 
2019-11-07T06:40:00.0101669Z 4 LL |     [(); &(&'static: loop { |x| {}; }) as *const _ as usize]
2019-11-07T06:40:00.0102072Z 6 
2019-11-07T06:40:00.0102232Z + error[E0744]: `loop` is not allowed in a `const`
2019-11-07T06:40:00.0102640Z +   --> $DIR/issue-52437.rs:2:13
2019-11-07T06:40:00.0103364Z +    |
2019-11-07T06:40:00.0103364Z +    |
2019-11-07T06:40:00.0104001Z + LL |     [(); &(&'static: loop { |x| {}; }) as *const _ as usize]
2019-11-07T06:40:00.0104399Z + 
2019-11-07T06:40:00.0104554Z 7 error[E0282]: type annotations needed
2019-11-07T06:40:00.0105843Z 8   --> $DIR/issue-52437.rs:2:30
2019-11-07T06:40:00.0106171Z 9    |
2019-11-07T06:40:00.0106171Z 9    |
2019-11-07T06:40:00.0106312Z 
2019-11-07T06:40:00.0106788Z 10 LL |     [(); &(&'static: loop { |x| {}; }) as *const _ as usize]
2019-11-07T06:40:00.0107236Z 11    |                              ^ consider giving this closure parameter a type
2019-11-07T06:40:00.0107893Z - error: aborting due to 2 previous errors
2019-11-07T06:40:00.0108133Z + error: aborting due to 3 previous errors
2019-11-07T06:40:00.0108287Z 14 
2019-11-07T06:40:00.0108723Z - For more information about this error, try `rustc --explain E0282`.
2019-11-07T06:40:00.0108723Z - For more information about this error, try `rustc --explain E0282`.
2019-11-07T06:40:00.0108967Z + Some errors have detailed explanations: E0282, E0744.
2019-11-07T06:40:00.0109402Z + For more information about an error, try `rustc --explain E0282`.
2019-11-07T06:40:00.0109625Z 16 
2019-11-07T06:40:00.0110573Z 
2019-11-07T06:40:00.0110754Z 
2019-11-07T06:40:00.0110916Z The actual stderr differed from the expected stderr.
2019-11-07T06:40:00.0111881Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/closures/issue-52437/issue-52437.stderr
2019-11-07T06:40:00.0112460Z To update references, rerun the tests and pass the `--bless` flag
2019-11-07T06:40:00.0113415Z To only update this specific test, also pass `--test-args closures/issue-52437.rs`
2019-11-07T06:40:00.0113837Z error: 1 errors occurred comparing output.
2019-11-07T06:40:00.0114008Z status: exit code: 1
2019-11-07T06:40:00.0114008Z status: exit code: 1
2019-11-07T06:40:00.0115002Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/closures/issue-52437.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/closures/issue-52437" "-Crpath" "-O" "-Cdebuginfo=0" "-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/closures/issue-52437/auxiliary" "-A" "unused"
2019-11-07T06:40:00.0118061Z ------------------------------------------
2019-11-07T06:40:00.0121492Z 
2019-11-07T06:40:00.0121894Z ------------------------------------------
2019-11-07T06:40:00.0121949Z stderr:
2019-11-07T06:40:00.0121949Z stderr:
2019-11-07T06:40:00.0122209Z ------------------------------------------
2019-11-07T06:40:00.0122470Z error: invalid label name `'static`
2019-11-07T06:40:00.0123058Z   --> /checkout/src/test/ui/closures/issue-52437.rs:2:13
2019-11-07T06:40:00.0123127Z    |
2019-11-07T06:40:00.0123480Z LL |     [(); &(&'static: loop { |x| {}; }) as *const _ as usize]
2019-11-07T06:40:00.0123570Z 
2019-11-07T06:40:00.0123621Z error[E0744]: `loop` is not allowed in a `const`
2019-11-07T06:40:00.0123910Z   --> /checkout/src/test/ui/closures/issue-52437.rs:2:13
2019-11-07T06:40:00.0123963Z    |
2019-11-07T06:40:00.0123963Z    |
2019-11-07T06:40:00.0124228Z LL |     [(); &(&'static: loop { |x| {}; }) as *const _ as usize]
2019-11-07T06:40:00.0124337Z 
2019-11-07T06:40:00.0124385Z error[E0282]: type annotations needed
2019-11-07T06:40:00.0124922Z   --> /checkout/src/test/ui/closures/issue-52437.rs:2:30
2019-11-07T06:40:00.0124997Z    |
2019-11-07T06:40:00.0124997Z    |
2019-11-07T06:40:00.0125279Z LL |     [(); &(&'static: loop { |x| {}; }) as *const _ as usize]
2019-11-07T06:40:00.0125343Z    |                              ^ consider giving this closure parameter a type
2019-11-07T06:40:00.0125454Z error: aborting due to 3 previous errors
2019-11-07T06:40:00.0125486Z 
2019-11-07T06:40:00.0125536Z Some errors have detailed explanations: E0282, E0744.
2019-11-07T06:40:00.0125835Z For more information about an error, try `rustc --explain E0282`.
---
2019-11-07T06:40:00.0126529Z 
2019-11-07T06:40:00.0126594Z + error[E0744]: `for` is not allowed in a `const`
2019-11-07T06:40:00.0126848Z +   --> $DIR/issue-50582.rs:2:20
2019-11-07T06:40:00.0126899Z +    |
2019-11-07T06:40:00.0127071Z + LL |     Vec::<[(); 1 + for x in 0..1 {}]>::new();
2019-11-07T06:40:00.0127179Z + 
2019-11-07T06:40:00.0127245Z 1 error[E0277]: cannot add `()` to `{integer}`
2019-11-07T06:40:00.0127525Z 2   --> $DIR/issue-50582.rs:2:18
2019-11-07T06:40:00.0127576Z 3    |
2019-11-07T06:40:00.0127576Z 3    |
2019-11-07T06:40:00.0127606Z 
2019-11-07T06:40:00.0127668Z 6    |
2019-11-07T06:40:00.0127723Z 7    = help: the trait `std::ops::Add<()>` is not implemented for `{integer}`
2019-11-07T06:40:00.0128018Z - error: aborting due to previous error
2019-11-07T06:40:00.0128091Z + error: aborting due to 2 previous errors
2019-11-07T06:40:00.0128138Z 10 
2019-11-07T06:40:00.0128415Z - For more information about this error, try `rustc --explain E0277`.
2019-11-07T06:40:00.0128415Z - For more information about this error, try `rustc --explain E0277`.
2019-11-07T06:40:00.0128493Z + Some errors have detailed explanations: E0277, E0744.
2019-11-07T06:40:00.0159948Z + For more information about an error, try `rustc --explain E0277`.
2019-11-07T06:40:00.0160049Z 12 
2019-11-07T06:40:00.0160135Z 
2019-11-07T06:40:00.0160166Z 
2019-11-07T06:40:00.0160219Z The actual stderr differed from the expected stderr.
2019-11-07T06:40:00.0160649Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-50582/issue-50582.stderr
2019-11-07T06:40:00.0160967Z To update references, rerun the tests and pass the `--bless` flag
2019-11-07T06:40:00.0161306Z To only update this specific test, also pass `--test-args issues/issue-50582.rs`
2019-11-07T06:40:00.0161423Z error: 1 errors occurred comparing output.
2019-11-07T06:40:00.0161476Z status: exit code: 1
2019-11-07T06:40:00.0161476Z status: exit code: 1
2019-11-07T06:40:00.0162343Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-50582.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-50582" "-Crpath" "-O" "-Cdebuginfo=0" "-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-50582/auxiliary" "-A" "unused"
2019-11-07T06:40:00.0163222Z ------------------------------------------
2019-11-07T06:40:00.0163295Z 
2019-11-07T06:40:00.0163555Z ------------------------------------------
2019-11-07T06:40:00.0163608Z stderr:
2019-11-07T06:40:00.0163608Z stderr:
2019-11-07T06:40:00.0163849Z ------------------------------------------
2019-11-07T06:40:00.0163924Z error[E0744]: `for` is not allowed in a `const`
2019-11-07T06:40:00.0164194Z   --> /checkout/src/test/ui/issues/issue-50582.rs:2:20
2019-11-07T06:40:00.0164249Z    |
2019-11-07T06:40:00.0164318Z LL |     Vec::<[(); 1 + for x in 0..1 {}]>::new();
2019-11-07T06:40:00.0164585Z 
2019-11-07T06:40:00.0164637Z error[E0277]: cannot add `()` to `{integer}`
2019-11-07T06:40:00.0164989Z   --> /checkout/src/test/ui/issues/issue-50582.rs:2:18
2019-11-07T06:40:00.0165043Z    |
2019-11-07T06:40:00.0165043Z    |
2019-11-07T06:40:00.0165094Z LL |     Vec::<[(); 1 + for x in 0..1 {}]>::new();
2019-11-07T06:40:00.0165169Z    |                  ^ no implementation for `{integer} + ()`
2019-11-07T06:40:00.0165220Z    |
2019-11-07T06:40:00.0165277Z    = help: the trait `std::ops::Add<()>` is not implemented for `{integer}`
2019-11-07T06:40:00.0165381Z error: aborting due to 2 previous errors
2019-11-07T06:40:00.0165412Z 
2019-11-07T06:40:00.0165462Z Some errors have detailed explanations: E0277, E0744.
2019-11-07T06:40:00.0165768Z For more information about an error, try `rustc --explain E0277`.
---
2019-11-07T06:40:00.0166478Z 
2019-11-07T06:40:00.0166667Z + error[E0744]: `for` is not allowed in a `const`
2019-11-07T06:40:00.0166956Z +   --> $DIR/issue-50585.rs:2:18
2019-11-07T06:40:00.0167008Z +    |
2019-11-07T06:40:00.0167057Z + LL |     |y: Vec<[(); for x in 0..2 {}]>| {};
2019-11-07T06:40:00.0167175Z + 
2019-11-07T06:40:00.0167223Z 1 error[E0308]: mismatched types
2019-11-07T06:40:00.0167487Z 2   --> $DIR/issue-50585.rs:2:18
2019-11-07T06:40:00.0167536Z 3    |
---
2019-11-07T06:40:00.0168831Z 
2019-11-07T06:40:00.0168877Z 
2019-11-07T06:40:00.0168926Z The actual stderr differed from the expected stderr.
2019-11-07T06:40:00.0169265Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-50585/issue-50585.stderr
2019-11-07T06:40:00.0169563Z To update references, rerun the tests and pass the `--bless` flag
2019-11-07T06:40:00.0169890Z To only update this specific test, also pass `--test-args issues/issue-50585.rs`
2019-11-07T06:40:00.0169984Z error: 1 errors occurred comparing output.
2019-11-07T06:40:00.0170053Z status: exit code: 1
2019-11-07T06:40:00.0170053Z status: exit code: 1
2019-11-07T06:40:00.0170902Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-50585.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-50585" "-Crpath" "-O" "-Cdebuginfo=0" "-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-50585/auxiliary" "-A" "unused"
2019-11-07T06:40:00.0171299Z ------------------------------------------
2019-11-07T06:40:00.0171338Z 
2019-11-07T06:40:00.0171625Z ------------------------------------------
2019-11-07T06:40:00.0171678Z stderr:
2019-11-07T06:40:00.0171678Z stderr:
2019-11-07T06:40:00.0171938Z ------------------------------------------
2019-11-07T06:40:00.0172015Z error[E0744]: `for` is not allowed in a `const`
2019-11-07T06:40:00.0172306Z   --> /checkout/src/test/ui/issues/issue-50585.rs:2:18
2019-11-07T06:40:00.0172363Z    |
2019-11-07T06:40:00.0172541Z LL |     |y: Vec<[(); for x in 0..2 {}]>| {};
2019-11-07T06:40:00.0172632Z 
2019-11-07T06:40:00.0172927Z error[E0308]: mismatched types
2019-11-07T06:40:00.0173334Z   --> /checkout/src/test/ui/issues/issue-50585.rs:2:18
2019-11-07T06:40:00.0173390Z    |
2019-11-07T06:40:00.0173390Z    |
2019-11-07T06:40:00.0173441Z LL |     |y: Vec<[(); for x in 0..2 {}]>| {};
2019-11-07T06:40:00.0173515Z    |                  ^^^^^^^^^^^^^^^^ expected usize, found ()
2019-11-07T06:40:00.0173620Z    = note: expected type `usize`
2019-11-07T06:40:00.0173669Z               found type `()`
2019-11-07T06:40:00.0173719Z 
2019-11-07T06:40:00.0173768Z error: aborting due to 2 previous errors
---
2019-11-07T06:40:00.0174993Z 
2019-11-07T06:40:00.0175066Z + error[E0744]: `while let` is not allowed in a `const`
2019-11-07T06:40:00.0175348Z +   --> $DIR/issue-51714.rs:11:17
2019-11-07T06:40:00.0175399Z +    |
2019-11-07T06:40:00.0175467Z + LL |     [(); return while let Some(n) = Some(0) {}];
2019-11-07T06:40:00.0175567Z + 
2019-11-07T06:40:00.0175636Z 1 error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0175883Z 2   --> $DIR/issue-51714.rs:2:14
2019-11-07T06:40:00.0175932Z 3    |
2019-11-07T06:40:00.0175932Z 3    |
2019-11-07T06:40:00.0175962Z 
2019-11-07T06:40:00.0176028Z 22 LL |     [(); return while let Some(n) = Some(0) {}];
2019-11-07T06:40:00.0176140Z 24 
2019-11-07T06:40:00.0176410Z - error: aborting due to 4 previous errors
2019-11-07T06:40:00.0176465Z + error: aborting due to 5 previous errors
2019-11-07T06:40:00.0176520Z 26 
---
2019-11-07T06:40:00.0177255Z 
2019-11-07T06:40:00.0177283Z 
2019-11-07T06:40:00.0177332Z The actual stderr differed from the expected stderr.
2019-11-07T06:40:00.0177668Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-51714/issue-51714.stderr
2019-11-07T06:40:00.0177965Z To update references, rerun the tests and pass the `--bless` flag
2019-11-07T06:40:00.0178284Z To only update this specific test, also pass `--test-args issues/issue-51714.rs`
2019-11-07T06:40:00.0178430Z error: 1 errors occurred comparing output.
2019-11-07T06:40:00.0178482Z status: exit code: 1
2019-11-07T06:40:00.0178482Z status: exit code: 1
2019-11-07T06:40:00.0179329Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-51714.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-51714" "-Crpath" "-O" "-Cdebuginfo=0" "-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-51714/auxiliary" "-A" "unused"
2019-11-07T06:40:00.0179721Z ------------------------------------------
2019-11-07T06:40:00.0179781Z 
2019-11-07T06:40:00.0180048Z ------------------------------------------
2019-11-07T06:40:00.0180101Z stderr:
2019-11-07T06:40:00.0180101Z stderr:
2019-11-07T06:40:00.0180360Z ------------------------------------------
2019-11-07T06:40:00.0180546Z error[E0744]: `while let` is not allowed in a `const`
2019-11-07T06:40:00.0180884Z   --> /checkout/src/test/ui/issues/issue-51714.rs:11:17
2019-11-07T06:40:00.0180942Z    |
2019-11-07T06:40:00.0181021Z LL |     [(); return while let Some(n) = Some(0) {}];
2019-11-07T06:40:00.0181112Z 
2019-11-07T06:40:00.0181182Z error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0181486Z   --> /checkout/src/test/ui/issues/issue-51714.rs:2:14
2019-11-07T06:40:00.0181542Z    |
2019-11-07T06:40:00.0181542Z    |
2019-11-07T06:40:00.0181593Z LL |     |_:  [_; return || {}] | {};
2019-11-07T06:40:00.0181698Z 
2019-11-07T06:40:00.0181749Z error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0182061Z   --> /checkout/src/test/ui/issues/issue-51714.rs:5:10
2019-11-07T06:40:00.0182115Z    |
2019-11-07T06:40:00.0182115Z    |
2019-11-07T06:40:00.0182166Z LL |     [(); return || {}];
2019-11-07T06:40:00.0182278Z 
2019-11-07T06:40:00.0182422Z error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0183052Z   --> /checkout/src/test/ui/issues/issue-51714.rs:8:10
2019-11-07T06:40:00.0183136Z    |
2019-11-07T06:40:00.0183136Z    |
2019-11-07T06:40:00.0183185Z LL |     [(); return |ice| {}];
2019-11-07T06:40:00.0183267Z 
2019-11-07T06:40:00.0183390Z error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0183720Z   --> /checkout/src/test/ui/issues/issue-51714.rs:11:10
2019-11-07T06:40:00.0183772Z    |
2019-11-07T06:40:00.0183772Z    |
2019-11-07T06:40:00.0183840Z LL |     [(); return while let Some(n) = Some(0) {}];
2019-11-07T06:40:00.0183929Z 
2019-11-07T06:40:00.0183977Z error: aborting due to 5 previous errors
2019-11-07T06:40:00.0184026Z 
2019-11-07T06:40:00.0184076Z Some errors have detailed explanations: E0572, E0744.
---
2019-11-07T06:40:00.0185109Z 
2019-11-07T06:40:00.0185158Z + error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0185431Z +   --> $DIR/return-match-array-const.rs:2:17
2019-11-07T06:40:00.0185484Z +    |
2019-11-07T06:40:00.0185532Z + LL |     [(); return match 0 { n => n }];
2019-11-07T06:40:00.0185647Z + 
2019-11-07T06:40:00.0185697Z + error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0185952Z +   --> $DIR/return-match-array-const.rs:4:17
2019-11-07T06:40:00.0186020Z +    |
2019-11-07T06:40:00.0186020Z +    |
2019-11-07T06:40:00.0186078Z + LL |     [(); return match 0 { 0 => 0 }];
2019-11-07T06:40:00.0186192Z + 
2019-11-07T06:40:00.0186248Z + error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0186505Z +   --> $DIR/return-match-array-const.rs:6:17
2019-11-07T06:40:00.0186556Z +    |
2019-11-07T06:40:00.0186556Z +    |
2019-11-07T06:40:00.0186835Z + LL |     [(); return match () { 'a' => 0, _ => 0 }];
2019-11-07T06:40:00.0186939Z + 
2019-11-07T06:40:00.0187007Z 1 error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0187264Z 2   --> $DIR/return-match-array-const.rs:2:10
2019-11-07T06:40:00.0187314Z 3    |
2019-11-07T06:40:00.0187314Z 3    |
2019-11-07T06:40:00.0187343Z 
2019-11-07T06:40:00.0187619Z 16 LL |     [(); return match () { 'a' => 0, _ => 0 }];
2019-11-07T06:40:00.0187723Z 18 
2019-11-07T06:40:00.0187986Z - error: aborting due to 3 previous errors
2019-11-07T06:40:00.0188174Z + error: aborting due to 6 previous errors
2019-11-07T06:40:00.0188219Z 20 
2019-11-07T06:40:00.0188219Z 20 
2019-11-07T06:40:00.0188565Z - For more information about this error, try `rustc --explain E0572`.
2019-11-07T06:40:00.0188627Z + Some errors have detailed explanations: E0572, E0744.
2019-11-07T06:40:00.0188908Z + For more information about an error, try `rustc --explain E0572`.
2019-11-07T06:40:00.0188979Z 22 
2019-11-07T06:40:00.0189008Z 
2019-11-07T06:40:00.0189036Z 
2019-11-07T06:40:00.0189086Z The actual stderr differed from the expected stderr.
2019-11-07T06:40:00.0189466Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/return/return-match-array-const/return-match-array-const.stderr
2019-11-07T06:40:00.0189752Z To update references, rerun the tests and pass the `--bless` flag
2019-11-07T06:40:00.0190059Z To only update this specific test, also pass `--test-args return/return-match-array-const.rs`
2019-11-07T06:40:00.0190165Z error: 1 errors occurred comparing output.
2019-11-07T06:40:00.0190224Z status: exit code: 1
2019-11-07T06:40:00.0190224Z status: exit code: 1
2019-11-07T06:40:00.0191188Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/return/return-match-array-const.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/return/return-match-array-const" "-Crpath" "-O" "-Cdebuginfo=0" "-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/return/return-match-array-const/auxiliary" "-A" "unused"
2019-11-07T06:40:00.0191629Z ------------------------------------------
2019-11-07T06:40:00.0191669Z 
2019-11-07T06:40:00.0191940Z ------------------------------------------
2019-11-07T06:40:00.0191993Z stderr:
2019-11-07T06:40:00.0191993Z stderr:
2019-11-07T06:40:00.0192276Z ------------------------------------------
2019-11-07T06:40:00.0192345Z error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0192648Z   --> /checkout/src/test/ui/return/return-match-array-const.rs:2:17
2019-11-07T06:40:00.0192733Z    |
2019-11-07T06:40:00.0192795Z LL |     [(); return match 0 { n => n }]; //~ ERROR: return statement outside of function body
2019-11-07T06:40:00.0193141Z 
2019-11-07T06:40:00.0193191Z error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0193537Z   --> /checkout/src/test/ui/return/return-match-array-const.rs:4:17
2019-11-07T06:40:00.0193610Z    |
2019-11-07T06:40:00.0193610Z    |
2019-11-07T06:40:00.0193667Z LL |     [(); return match 0 { 0 => 0 }]; //~ ERROR: return statement outside of function body
2019-11-07T06:40:00.0193756Z 
2019-11-07T06:40:00.0193824Z error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0194109Z   --> /checkout/src/test/ui/return/return-match-array-const.rs:6:17
2019-11-07T06:40:00.0194174Z    |
2019-11-07T06:40:00.0194174Z    |
2019-11-07T06:40:00.0194518Z LL |     [(); return match () { 'a' => 0, _ => 0 }]; //~ ERROR: return statement outside of function body
2019-11-07T06:40:00.0194615Z 
2019-11-07T06:40:00.0194665Z error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0194965Z   --> /checkout/src/test/ui/return/return-match-array-const.rs:2:10
2019-11-07T06:40:00.0195018Z    |
2019-11-07T06:40:00.0195018Z    |
2019-11-07T06:40:00.0195074Z LL |     [(); return match 0 { n => n }]; //~ ERROR: return statement outside of function body
2019-11-07T06:40:00.0195182Z 
2019-11-07T06:40:00.0195231Z error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0196309Z   --> /checkout/src/test/ui/return/return-match-array-const.rs:4:10
2019-11-07T06:40:00.0196380Z    |
2019-11-07T06:40:00.0196380Z    |
2019-11-07T06:40:00.0196435Z LL |     [(); return match 0 { 0 => 0 }]; //~ ERROR: return statement outside of function body
2019-11-07T06:40:00.0196827Z 
2019-11-07T06:40:00.0196884Z error[E0572]: return statement outside of function body
2019-11-07T06:40:00.0197216Z   --> /checkout/src/test/ui/return/return-match-array-const.rs:6:10
2019-11-07T06:40:00.0197290Z    |
2019-11-07T06:40:00.0197290Z    |
2019-11-07T06:40:00.0197607Z LL |     [(); return match () { 'a' => 0, _ => 0 }]; //~ ERROR: return statement outside of function body
2019-11-07T06:40:00.0197704Z 
2019-11-07T06:40:00.0197768Z error: aborting due to 6 previous errors
2019-11-07T06:40:00.0197800Z 
2019-11-07T06:40:00.0197850Z Some errors have detailed explanations: E0572, E0744.
---
2019-11-07T06:40:00.0198507Z 
2019-11-07T06:40:00.0198804Z ---- [ui] ui/rfc-2497-if-let-chains/disallowed-positions.rs stdout ----
2019-11-07T06:40:00.0198858Z diff of stderr:
2019-11-07T06:40:00.0198989Z 
2019-11-07T06:40:00.0199054Z 513 LL | #![feature(let_chains)] // Avoid inflating `.stderr` with overzealous gates in this test.
2019-11-07T06:40:00.0199177Z 515 
2019-11-07T06:40:00.0199227Z + error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0199537Z +   --> $DIR/disallowed-positions.rs:218:17
2019-11-07T06:40:00.0199588Z +    |
2019-11-07T06:40:00.0199588Z +    |
2019-11-07T06:40:00.0199635Z + LL |         true && let 1 = 1
2019-11-07T06:40:00.0199747Z + 
2019-11-07T06:40:00.0199796Z + error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0200069Z +   --> $DIR/disallowed-positions.rs:224:17
2019-11-07T06:40:00.0200121Z +    |
2019-11-07T06:40:00.0200121Z +    |
2019-11-07T06:40:00.0200166Z + LL |         true && let 1 = 1
2019-11-07T06:40:00.0200289Z + 
2019-11-07T06:40:00.0200337Z + error[E0744]: `match` is not allowed in a `const`
2019-11-07T06:40:00.0200603Z +   --> $DIR/disallowed-positions.rs:230:17
2019-11-07T06:40:00.0200672Z +    |
2019-11-07T06:40:00.0200672Z +    |
2019-11-07T06:40:00.0200719Z + LL |         true && let 1 = 1
2019-11-07T06:40:00.0200833Z + 
2019-11-07T06:40:00.0200880Z 516 error[E0308]: mismatched types
2019-11-07T06:40:00.0201135Z 517   --> $DIR/disallowed-positions.rs:32:8
2019-11-07T06:40:00.0201187Z 518    |
2019-11-07T06:40:00.0201187Z 518    |
2019-11-07T06:40:00.0201236Z 
2019-11-07T06:40:00.0201283Z 989 LL |         true && let 1 = 1
2019-11-07T06:40:00.0201378Z 991 
2019-11-07T06:40:00.0201656Z - error: aborting due to 109 previous errors
2019-11-07T06:40:00.0201711Z + error: aborting due to 112 previous errors
2019-11-07T06:40:00.0201757Z 993 
---
2019-11-07T06:40:00.0202920Z 
2019-11-07T06:40:00.0202948Z 
2019-11-07T06:40:00.0202998Z The actual stderr differed from the expected stderr.
2019-11-07T06:40:00.0203432Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rfc-2497-if-let-chains/disallowed-positions/disallowed-positions.stderr
2019-11-07T06:40:00.0203720Z To update references, rerun the tests and pass the `--bless` flag
2019-11-07T06:40:00.0204047Z To only update this specific test, also pass `--test-args rfc-2497-if-let-chains/disallowed-positions.rs`
2019-11-07T06:40:00.0204158Z error: 1 errors occurred comparing output.
2019-11-07T06:40:00.0204207Z status: exit code: 1
2019-11-07T06:40:00.0204207Z status: exit code: 1
2019-11-07T06:40:00.0205334Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rfc-2497-if-let-chains/disallowed-positions" "-Crpath" "-O" "-Cdebuginfo=0" "-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/rfc-2497-if-let-chains/disallowed-positions/auxiliary" "-A" "unused"
2019-11-07T06:40:00.0205712Z ------------------------------------------
2019-11-07T06:40:00.0205749Z 
2019-11-07T06:40:00.0205992Z ------------------------------------------
2019-11-07T06:40:00.0206061Z stderr:
2019-11-07T06:40:00.0206061Z stderr:
2019-11-07T06:40:00.0206302Z ------------------------------------------
2019-11-07T06:40:00.0206358Z error: expected one of `,` or `>`, found `&&`
2019-11-07T06:40:00.0208171Z    |
2019-11-07T06:40:00.0208171Z    |
2019-11-07T06:40:00.0208373Z LL |         true && let 1 = 1 //~ ERROR expected one of `,` or `>`, found `&&`
2019-11-07T06:40:00.0208460Z    |              ^^ expected one of `,` or `>` here
2019-11-07T06:40:00.0208548Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0208989Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:32:9
2019-11-07T06:40:00.0209070Z    |
2019-11-07T06:40:00.0209070Z    |
2019-11-07T06:40:00.0209128Z LL |     if &let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0209249Z    |
2019-11-07T06:40:00.0209249Z    |
2019-11-07T06:40:00.0209563Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0209630Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0209749Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0210079Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:35:9
2019-11-07T06:40:00.0210137Z    |
2019-11-07T06:40:00.0210137Z    |
2019-11-07T06:40:00.0210213Z LL |     if !let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0210315Z    |
2019-11-07T06:40:00.0210315Z    |
2019-11-07T06:40:00.0210647Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0210715Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0210805Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0211139Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:36:9
2019-11-07T06:40:00.0211195Z    |
2019-11-07T06:40:00.0211195Z    |
2019-11-07T06:40:00.0211251Z LL |     if *let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0211383Z    |
2019-11-07T06:40:00.0211383Z    |
2019-11-07T06:40:00.0211699Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0211784Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0211873Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0212192Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:38:9
2019-11-07T06:40:00.0212266Z    |
2019-11-07T06:40:00.0212266Z    |
2019-11-07T06:40:00.0212980Z LL |     if -let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0213113Z    |
2019-11-07T06:40:00.0213113Z    |
2019-11-07T06:40:00.0213407Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0213472Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0213712Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0214050Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:46:9
2019-11-07T06:40:00.0214118Z    |
2019-11-07T06:40:00.0214118Z    |
2019-11-07T06:40:00.0214195Z LL |     if (let 0 = 0)? {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0214299Z    |
2019-11-07T06:40:00.0214299Z    |
2019-11-07T06:40:00.0214629Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0214695Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0214804Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0215126Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:50:16
2019-11-07T06:40:00.0215184Z    |
2019-11-07T06:40:00.0215184Z    |
2019-11-07T06:40:00.0215240Z LL |     if true || let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0215375Z    |
2019-11-07T06:40:00.0215375Z    |
2019-11-07T06:40:00.0215688Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0215863Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0215958Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0216328Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:51:17
2019-11-07T06:40:00.0216385Z    |
2019-11-07T06:40:00.0216385Z    |
2019-11-07T06:40:00.0216444Z LL |     if (true || let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0216566Z    |
2019-11-07T06:40:00.0216566Z    |
2019-11-07T06:40:00.0216876Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0216943Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0217049Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0217381Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:52:25
2019-11-07T06:40:00.0217457Z    |
2019-11-07T06:40:00.0217457Z    |
2019-11-07T06:40:00.0217526Z LL |     if true && (true || let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0217651Z    |
2019-11-07T06:40:00.0217651Z    |
2019-11-07T06:40:00.0217963Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0218029Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0218137Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0218455Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:53:25
2019-11-07T06:40:00.0218513Z    |
2019-11-07T06:40:00.0218513Z    |
2019-11-07T06:40:00.0218591Z LL |     if true || (true && let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0218709Z    |
2019-11-07T06:40:00.0218709Z    |
2019-11-07T06:40:00.0219037Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0219160Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0219252Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0219600Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:56:12
2019-11-07T06:40:00.0219657Z    |
2019-11-07T06:40:00.0219657Z    |
2019-11-07T06:40:00.0219714Z LL |     if x = let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0219834Z    |
2019-11-07T06:40:00.0219834Z    |
2019-11-07T06:40:00.0220144Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0220227Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0220427Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0220781Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:59:15
2019-11-07T06:40:00.0220869Z    |
2019-11-07T06:40:00.0220869Z    |
2019-11-07T06:40:00.0220927Z LL |     if true..(let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0221047Z    |
2019-11-07T06:40:00.0221047Z    |
2019-11-07T06:40:00.0221363Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0221429Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0221537Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0221847Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:61:11
2019-11-07T06:40:00.0221905Z    |
2019-11-07T06:40:00.0221905Z    |
2019-11-07T06:40:00.0221977Z LL |     if ..(let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0222089Z    |
2019-11-07T06:40:00.0222089Z    |
2019-11-07T06:40:00.0222646Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0222848Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0222965Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0223355Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:63:9
2019-11-07T06:40:00.0223412Z    |
2019-11-07T06:40:00.0223412Z    |
2019-11-07T06:40:00.0223485Z LL |     if (let 0 = 0).. {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0223583Z    |
2019-11-07T06:40:00.0223583Z    |
2019-11-07T06:40:00.0223888Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0223953Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0224039Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0224361Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:67:8
2019-11-07T06:40:00.0224418Z    |
2019-11-07T06:40:00.0224418Z    |
2019-11-07T06:40:00.0224484Z LL |     if let Range { start: _, end: _ } = true..true && false {}
2019-11-07T06:40:00.0224607Z    |
2019-11-07T06:40:00.0224607Z    |
2019-11-07T06:40:00.0224919Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0225006Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0225095Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0225416Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:71:8
2019-11-07T06:40:00.0225489Z    |
2019-11-07T06:40:00.0225489Z    |
2019-11-07T06:40:00.0225542Z LL |     if let Range { start: _, end: _ } = true..true || false {}
2019-11-07T06:40:00.0225679Z    |
2019-11-07T06:40:00.0225679Z    |
2019-11-07T06:40:00.0225987Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0226062Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0226167Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0228048Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:78:8
2019-11-07T06:40:00.0228127Z    |
2019-11-07T06:40:00.0228127Z    |
2019-11-07T06:40:00.0228426Z LL |     if let Range { start: F, end } = F..|| true {}
2019-11-07T06:40:00.0228535Z    |
2019-11-07T06:40:00.0228535Z    |
2019-11-07T06:40:00.0229867Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0230232Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0230330Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0230960Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:86:8
2019-11-07T06:40:00.0231019Z    |
2019-11-07T06:40:00.0231019Z    |
2019-11-07T06:40:00.0231084Z LL |     if let Range { start: true, end } = t..&&false {}
2019-11-07T06:40:00.0231211Z    |
2019-11-07T06:40:00.0231211Z    |
2019-11-07T06:40:00.0231526Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0231609Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0231698Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0232033Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:92:19
2019-11-07T06:40:00.0232091Z    |
2019-11-07T06:40:00.0232149Z LL |     if let true = let true = true {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0232149Z LL |     if let true = let true = true {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0232207Z    |                   ^^^^^^^^^^^^^^^
2019-11-07T06:40:00.0232283Z    |
2019-11-07T06:40:00.0232981Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0233181Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0233298Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0233641Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:96:12
2019-11-07T06:40:00.0233717Z    |
2019-11-07T06:40:00.0233717Z    |
2019-11-07T06:40:00.0233773Z LL |     while &let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0233872Z    |
2019-11-07T06:40:00.0233872Z    |
2019-11-07T06:40:00.0234179Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0234243Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0234348Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0241365Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:99:12
2019-11-07T06:40:00.0241449Z    |
2019-11-07T06:40:00.0241449Z    |
2019-11-07T06:40:00.0241546Z LL |     while !let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0241646Z    |
2019-11-07T06:40:00.0241646Z    |
2019-11-07T06:40:00.0242076Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0242164Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0242251Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0242947Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:100:12
2019-11-07T06:40:00.0243013Z    |
2019-11-07T06:40:00.0243013Z    |
2019-11-07T06:40:00.0243067Z LL |     while *let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0243183Z    |
2019-11-07T06:40:00.0243183Z    |
2019-11-07T06:40:00.0243491Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0243580Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0243668Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0243966Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:102:12
2019-11-07T06:40:00.0244035Z    |
2019-11-07T06:40:00.0244035Z    |
2019-11-07T06:40:00.0244321Z LL |     while -let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0244438Z    |
2019-11-07T06:40:00.0244438Z    |
2019-11-07T06:40:00.0244721Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0244782Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0244882Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0245176Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:110:12
2019-11-07T06:40:00.0245410Z    |
2019-11-07T06:40:00.0245410Z    |
2019-11-07T06:40:00.0245496Z LL |     while (let 0 = 0)? {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0245599Z    |
2019-11-07T06:40:00.0245599Z    |
2019-11-07T06:40:00.0245950Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0246013Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0246100Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0246481Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:114:19
2019-11-07T06:40:00.0246535Z    |
2019-11-07T06:40:00.0246535Z    |
2019-11-07T06:40:00.0246590Z LL |     while true || let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0246708Z    |
2019-11-07T06:40:00.0246708Z    |
2019-11-07T06:40:00.0246990Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0247078Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0247267Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0247595Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:115:20
2019-11-07T06:40:00.0247668Z    |
2019-11-07T06:40:00.0247668Z    |
2019-11-07T06:40:00.0247724Z LL |     while (true || let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0247843Z    |
2019-11-07T06:40:00.0247843Z    |
2019-11-07T06:40:00.0248128Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0248191Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0248291Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0248584Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:116:28
2019-11-07T06:40:00.0248664Z    |
2019-11-07T06:40:00.0248664Z    |
2019-11-07T06:40:00.0248731Z LL |     while true && (true || let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0248835Z    |
2019-11-07T06:40:00.0248835Z    |
2019-11-07T06:40:00.0249199Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0249262Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0249362Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0249657Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:117:28
2019-11-07T06:40:00.0249710Z    |
2019-11-07T06:40:00.0249710Z    |
2019-11-07T06:40:00.0249782Z LL |     while true || (true && let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0249895Z    |
2019-11-07T06:40:00.0249895Z    |
2019-11-07T06:40:00.0250179Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0250268Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0250355Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0250671Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:120:15
2019-11-07T06:40:00.0250724Z    |
2019-11-07T06:40:00.0250724Z    |
2019-11-07T06:40:00.0250778Z LL |     while x = let 0 = 0 {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0250894Z    |
2019-11-07T06:40:00.0250894Z    |
2019-11-07T06:40:00.0251177Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0251256Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0251339Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0251759Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:123:18
2019-11-07T06:40:00.0251830Z    |
2019-11-07T06:40:00.0251830Z    |
2019-11-07T06:40:00.0251894Z LL |     while true..(let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0252012Z    |
2019-11-07T06:40:00.0252012Z    |
2019-11-07T06:40:00.0252298Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0252360Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0254363Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0254764Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:125:14
2019-11-07T06:40:00.0254817Z    |
2019-11-07T06:40:00.0254817Z    |
2019-11-07T06:40:00.0254891Z LL |     while ..(let 0 = 0) {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0254992Z    |
2019-11-07T06:40:00.0254992Z    |
2019-11-07T06:40:00.0255313Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0255506Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0255600Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0255951Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:127:12
2019-11-07T06:40:00.0256003Z    |
2019-11-07T06:40:00.0256003Z    |
2019-11-07T06:40:00.0256058Z LL |     while (let 0 = 0).. {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0256173Z    |
2019-11-07T06:40:00.0256173Z    |
2019-11-07T06:40:00.0256457Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0256537Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0256620Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0256945Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:131:11
2019-11-07T06:40:00.0256998Z    |
2019-11-07T06:40:00.0256998Z    |
2019-11-07T06:40:00.0257060Z LL |     while let Range { start: _, end: _ } = true..true && false {}
2019-11-07T06:40:00.0257185Z    |
2019-11-07T06:40:00.0257185Z    |
2019-11-07T06:40:00.0257471Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0257534Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0257633Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0257928Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:135:11
2019-11-07T06:40:00.0257996Z    |
2019-11-07T06:40:00.0257996Z    |
2019-11-07T06:40:00.0258048Z LL |     while let Range { start: _, end: _ } = true..true || false {}
2019-11-07T06:40:00.0258161Z    |
2019-11-07T06:40:00.0258161Z    |
2019-11-07T06:40:00.0258465Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0258536Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0258637Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0258934Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:142:11
2019-11-07T06:40:00.0258987Z    |
2019-11-07T06:40:00.0258987Z    |
2019-11-07T06:40:00.0259054Z LL |     while let Range { start: F, end } = F..|| true {}
2019-11-07T06:40:00.0259156Z    |
2019-11-07T06:40:00.0259156Z    |
2019-11-07T06:40:00.0259438Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0259518Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0259602Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0260039Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:150:11
2019-11-07T06:40:00.0260093Z    |
2019-11-07T06:40:00.0260093Z    |
2019-11-07T06:40:00.0260155Z LL |     while let Range { start: true, end } = t..&&false {}
2019-11-07T06:40:00.0260275Z    |
2019-11-07T06:40:00.0260275Z    |
2019-11-07T06:40:00.0260562Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0260639Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0260723Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0261016Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:156:22
2019-11-07T06:40:00.0261085Z    |
2019-11-07T06:40:00.0261142Z LL |     while let true = let true = true {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0261142Z LL |     while let true = let true = true {} //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0261198Z    |                      ^^^^^^^^^^^^^^^
2019-11-07T06:40:00.0261273Z    |
2019-11-07T06:40:00.0261560Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0267808Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0267942Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0268380Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:170:6
2019-11-07T06:40:00.0268453Z    |
2019-11-07T06:40:00.0268453Z    |
2019-11-07T06:40:00.0268508Z LL |     &let 0 = 0; //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0268606Z    |
2019-11-07T06:40:00.0268606Z    |
2019-11-07T06:40:00.0268914Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0268977Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0269078Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0269389Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:172:6
2019-11-07T06:40:00.0269441Z    |
2019-11-07T06:40:00.0269441Z    |
2019-11-07T06:40:00.0269520Z LL |     !let 0 = 0; //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0269619Z    |
2019-11-07T06:40:00.0269619Z    |
2019-11-07T06:40:00.0269904Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0269986Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0270071Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0270444Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:173:6
2019-11-07T06:40:00.0270499Z    |
2019-11-07T06:40:00.0270499Z    |
2019-11-07T06:40:00.0270551Z LL |     *let 0 = 0; //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0270662Z    |
2019-11-07T06:40:00.0270662Z    |
2019-11-07T06:40:00.0270950Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0271040Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0271133Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0271429Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:175:6
2019-11-07T06:40:00.0271499Z    |
2019-11-07T06:40:00.0271499Z    |
2019-11-07T06:40:00.0271777Z LL |     -let 0 = 0; //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0271969Z    |
2019-11-07T06:40:00.0271969Z    |
2019-11-07T06:40:00.0272261Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0272323Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0272796Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0273154Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:183:6
2019-11-07T06:40:00.0273338Z    |
2019-11-07T06:40:00.0273338Z    |
2019-11-07T06:40:00.0273409Z LL |     (let 0 = 0)?; //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0273513Z    |
2019-11-07T06:40:00.0273513Z    |
2019-11-07T06:40:00.0273854Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0273918Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0274002Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0274319Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:187:13
2019-11-07T06:40:00.0274372Z    |
2019-11-07T06:40:00.0274372Z    |
2019-11-07T06:40:00.0274425Z LL |     true || let 0 = 0; //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0274541Z    |
2019-11-07T06:40:00.0274541Z    |
2019-11-07T06:40:00.0274826Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0274917Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0275079Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0275662Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:188:14
2019-11-07T06:40:00.0275743Z    |
2019-11-07T06:40:00.0275743Z    |
2019-11-07T06:40:00.0275796Z LL |     (true || let 0 = 0); //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0275946Z    |
2019-11-07T06:40:00.0275946Z    |
2019-11-07T06:40:00.0276244Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0276308Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0276408Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0276702Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:189:22
2019-11-07T06:40:00.0276771Z    |
2019-11-07T06:40:00.0276771Z    |
2019-11-07T06:40:00.0276838Z LL |     true && (true || let 0 = 0); //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0276949Z    |
2019-11-07T06:40:00.0276949Z    |
2019-11-07T06:40:00.0277255Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0277317Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0277417Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0277709Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:192:9
2019-11-07T06:40:00.0277763Z    |
2019-11-07T06:40:00.0277763Z    |
2019-11-07T06:40:00.0277834Z LL |     x = let 0 = 0; //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0277932Z    |
2019-11-07T06:40:00.0277932Z    |
2019-11-07T06:40:00.0278218Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0278307Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0278399Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0278714Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:194:12
2019-11-07T06:40:00.0278767Z    |
2019-11-07T06:40:00.0278767Z    |
2019-11-07T06:40:00.0278820Z LL |     true..(let 0 = 0); //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0278936Z    |
2019-11-07T06:40:00.0278936Z    |
2019-11-07T06:40:00.0279220Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0279282Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0279382Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0279677Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:195:8
2019-11-07T06:40:00.0279748Z    |
2019-11-07T06:40:00.0279748Z    |
2019-11-07T06:40:00.0279927Z LL |     ..(let 0 = 0); //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0280041Z    |
2019-11-07T06:40:00.0280041Z    |
2019-11-07T06:40:00.0280371Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0280435Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0280537Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0280836Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:196:6
2019-11-07T06:40:00.0280889Z    |
2019-11-07T06:40:00.0280889Z    |
2019-11-07T06:40:00.0280961Z LL |     (let 0 = 0)..; //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0281057Z    |
2019-11-07T06:40:00.0281057Z    |
2019-11-07T06:40:00.0281361Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0281424Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0281516Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0281937Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:198:6
2019-11-07T06:40:00.0281998Z    |
2019-11-07T06:40:00.0281998Z    |
2019-11-07T06:40:00.0282049Z LL |     (let Range { start: _, end: _ } = true..true || false);
2019-11-07T06:40:00.0282167Z    |
2019-11-07T06:40:00.0282167Z    |
2019-11-07T06:40:00.0282779Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0282872Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0282957Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0283262Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:202:6
2019-11-07T06:40:00.0283331Z    |
2019-11-07T06:40:00.0283380Z LL |     (let true = let true = true);
2019-11-07T06:40:00.0283380Z LL |     (let true = let true = true);
2019-11-07T06:40:00.0283444Z    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-11-07T06:40:00.0283508Z    |
2019-11-07T06:40:00.0283808Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0283871Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0283972Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0284270Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:202:17
2019-11-07T06:40:00.0284324Z    |
2019-11-07T06:40:00.0284390Z LL |     (let true = let true = true);
2019-11-07T06:40:00.0284390Z LL |     (let true = let true = true);
2019-11-07T06:40:00.0284441Z    |                 ^^^^^^^^^^^^^^^
2019-11-07T06:40:00.0284487Z    |
2019-11-07T06:40:00.0284789Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0284852Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0284936Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0285259Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:207:6
2019-11-07T06:40:00.0285321Z    |
2019-11-07T06:40:00.0285321Z    |
2019-11-07T06:40:00.0285367Z LL |     &let 0 = 0
2019-11-07T06:40:00.0285476Z    |
2019-11-07T06:40:00.0285476Z    |
2019-11-07T06:40:00.0285761Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0285841Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0285924Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0286218Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:218:17
2019-11-07T06:40:00.0286288Z    |
2019-11-07T06:40:00.0286288Z    |
2019-11-07T06:40:00.0286341Z LL |         true && let 1 = 1 //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0286458Z    |
2019-11-07T06:40:00.0286458Z    |
2019-11-07T06:40:00.0286908Z    = note: only supported directly in conditions of `if`- and `while`-expressions
2019-11-07T06:40:00.0286983Z    = note: as well as when nested within `&&` and parenthesis in those conditions
2019-11-07T06:40:00.0287087Z error: `let` expressions are not supported here
2019-11-07T06:40:00.0287384Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:224:17
---
2019-11-07T06:40:00.0371891Z 
2019-11-07T06:40:00.0371944Z error[E0019]: constant contains unimplemented expression type
2019-11-07T06:40:00.0372267Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:218:25
2019-11-07T06:40:00.0372336Z    |
2019-11-07T06:40:00.0372392Z LL |         true && let 1 = 1 //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0372493Z 
2019-11-07T06:40:00.0372546Z error[E0019]: constant contains unimplemented expression type
2019-11-07T06:40:00.0373117Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:218:21
2019-11-07T06:40:00.0373200Z    |
2019-11-07T06:40:00.0373200Z    |
2019-11-07T06:40:00.0373273Z LL |         true && let 1 = 1 //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0373370Z 
2019-11-07T06:40:00.0373445Z error[E0019]: constant contains unimplemented expression type
2019-11-07T06:40:00.0373796Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:224:25
2019-11-07T06:40:00.0373851Z    |
2019-11-07T06:40:00.0373851Z    |
2019-11-07T06:40:00.0373917Z LL |         true && let 1 = 1 //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0374003Z 
2019-11-07T06:40:00.0374053Z error[E0019]: constant contains unimplemented expression type
2019-11-07T06:40:00.0374365Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:224:21
2019-11-07T06:40:00.0374420Z    |
2019-11-07T06:40:00.0374420Z    |
2019-11-07T06:40:00.0374472Z LL |         true && let 1 = 1 //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0374572Z 
2019-11-07T06:40:00.0374622Z error[E0019]: constant contains unimplemented expression type
2019-11-07T06:40:00.0375078Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:230:25
2019-11-07T06:40:00.0375157Z    |
2019-11-07T06:40:00.0375157Z    |
2019-11-07T06:40:00.0375210Z LL |         true && let 1 = 1 //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0375306Z 
2019-11-07T06:40:00.0375355Z error[E0019]: constant contains unimplemented expression type
2019-11-07T06:40:00.0375652Z   --> /checkout/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs:230:21
2019-11-07T06:40:00.0375704Z    |
2019-11-07T06:40:00.0375704Z    |
2019-11-07T06:40:00.0375769Z LL |         true && let 1 = 1 //~ ERROR `let` expressions are not supported here
2019-11-07T06:40:00.0375852Z 
2019-11-07T06:40:00.0375912Z error: aborting due to 112 previous errors
2019-11-07T06:40:00.0375944Z 
2019-11-07T06:40:00.0375996Z Some errors have detailed explanations: E0019, E0277, E0308, E0600, E0614, E0744.
---
2019-11-07T06:40:00.0378765Z test result: FAILED. 9233 passed; 6 failed; 43 ignored; 0 measured; 0 filtered out
2019-11-07T06:40:00.0378804Z 
2019-11-07T06:40:00.0378832Z 
2019-11-07T06:40:00.0378874Z 
2019-11-07T06:40:00.0380532Z 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 -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -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"
2019-11-07T06:40:00.0380803Z 
2019-11-07T06:40:00.0380839Z 
2019-11-07T06:40:00.0381145Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-11-07T06:40:00.0381224Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-11-07T06:40:00.0381224Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-11-07T06:40:00.0381287Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-11-07T06:40:00.0381340Z Build completed unsuccessfully in 1:07:58
2019-11-07T06:40:00.0381404Z == clock drift check ==
2019-11-07T06:40:00.0381455Z   local time: Thu Nov  7 06:40:00 UTC 2019
2019-11-07T06:40:00.3037816Z   network time: Thu, 07 Nov 2019 06:40:00 GMT
2019-11-07T06:40:00.3040840Z == end clock drift check ==
2019-11-07T06:40:01.5918491Z 
2019-11-07T06:40:01.6036908Z ##[error]Bash exited with code '1'.
2019-11-07T06:40:01.6077014Z ##[section]Starting: Checkout
2019-11-07T06:40:01.6078950Z ==============================================================================
2019-11-07T06:40:01.6079028Z Task         : Get sources
2019-11-07T06:40:01.6079082Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@ecstatic-morse ecstatic-morse force-pushed the ecstatic-morse:hir-const-check branch from eede3d6 to 1fdd6bd Nov 7, 2019
@@ -13,7 +11,6 @@ fn set_editor(_: Value) {}

fn main() {
let settings_data = from_string(settings_dir);
//~^ ERROR cannot move out of static item `settings_dir` [E0507]

This comment has been minimized.

Copy link
@ecstatic-morse

ecstatic-morse Nov 7, 2019

Author Contributor

It's unfortunate that this error no longer occurs. I believe it's simply because the compiler stops working before the move checker runs?


fn main() {
[FOO; { let x; loop { x = 5; break; } x }];
[FOO; { let x; loop { x = 5; break; } x }]; //~ ERROR `loop` is not allowed in a `const`

This comment has been minimized.

Copy link
@ecstatic-morse

ecstatic-morse Nov 7, 2019

Author Contributor

How do we feel about the term const for an array initializer? Is there a preexisting convention here? It's pretty easy to change.

This comment has been minimized.

Copy link
@Centril

Centril Nov 7, 2019

Member

Maybe @estebank has thoughts?

This comment has been minimized.

Copy link
@estebank

estebank Nov 7, 2019

Contributor

I would prefer us to be correct mentioning the array length is a const context, but this should be ok for now, we have plenty of other places where we are inconsistent about calling this out.

This comment has been minimized.

Copy link
@ecstatic-morse

ecstatic-morse Nov 7, 2019

Author Contributor

Oh, also, I think const generic arguments are also anon_const, so this isn't that easy. Probably the right way is to add an AnonConstKind to AnonConst in hir/mod.rs. With that in mind, I'm inclined to fix this later :).

@ecstatic-morse

This comment has been minimized.

Copy link
Contributor Author

ecstatic-morse commented Nov 7, 2019

I've rebased to clean up the history a bit and (hopefully) blessed the remaining tests. I've left some comments where the new error messages aren't a clear improvement.

This is still waiting for @rust-lang/compiler to weigh in on whether breaking #62272 is okay. It might need an FCP/crater run?

Also, I would still like for someone to review the relative order of the check_mod_const_bodies query. It would be nice run this at the same time as the MIR const-checker instead of superseding it, so we could leave the min_const_fn tests unchanged. We could then change the if/match errors in the MIR const-checker to delay_span_bugs (I think).

@ecstatic-morse ecstatic-morse force-pushed the ecstatic-morse:hir-const-check branch from 1fdd6bd to 469040b Nov 7, 2019
@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Nov 7, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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.
2019-11-07T18:51:34.0369949Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-07T18:51:34.0607572Z ##[command]git config gc.auto 0
2019-11-07T18:51:34.0687383Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-07T18:51:34.0756838Z ##[command]git config --get-all http.proxy
2019-11-07T18:51:34.0928807Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66170/merge:refs/remotes/pull/66170/merge
---
2019-11-07T19:53:21.9614944Z .................................................................................................... 1600/9289
2019-11-07T19:53:27.8917094Z .................................................................................................... 1700/9289
2019-11-07T19:53:40.7644246Z ................................................................i................................... 1800/9289
2019-11-07T19:53:48.9814207Z .................................................................................................... 1900/9289
2019-11-07T19:54:04.4256333Z ................................................iiiii............................................... 2000/9289
2019-11-07T19:54:15.5050622Z .................................................................................................... 2200/9289
2019-11-07T19:54:18.1314165Z .................................................................................................... 2300/9289
2019-11-07T19:54:22.1229318Z .................................................................................................... 2400/9289
2019-11-07T19:54:47.0591922Z .................................................................................................... 2500/9289
---
2019-11-07T19:57:51.8038893Z .............................................i...............i...................................... 4800/9289
2019-11-07T19:58:01.6440402Z .................................................................................................... 4900/9289
2019-11-07T19:58:11.0385392Z .................................................................................................... 5000/9289
2019-11-07T19:58:18.4769160Z .................................................................................................... 5100/9289
2019-11-07T19:58:30.1455753Z ...............................................ii.ii...........i.................................... 5200/9289
2019-11-07T19:58:40.1257499Z .................................................................................................... 5400/9289
2019-11-07T19:58:51.3106406Z .................................................................................................... 5500/9289
2019-11-07T19:58:59.2976125Z .............................i...................................................................... 5600/9289
2019-11-07T19:59:06.3564025Z .................................................................................................... 5700/9289
2019-11-07T19:59:06.3564025Z .................................................................................................... 5700/9289
2019-11-07T19:59:19.3037567Z .................................................................................................... 5800/9289
2019-11-07T19:59:31.9089060Z ..............ii...i..ii...........i................................................................ 5900/9289
2019-11-07T19:59:53.5356144Z .................................................................................................... 6100/9289
2019-11-07T20:00:02.3306221Z .................................................................................................... 6200/9289
2019-11-07T20:00:02.3306221Z .................................................................................................... 6200/9289
2019-11-07T20:00:22.6414768Z .................................i..ii.............................................................. 6300/9289
2019-11-07T20:00:46.0121430Z .................................................................................................... 6500/9289
2019-11-07T20:00:48.5501369Z .i.................................................................................................. 6600/9289
2019-11-07T20:00:51.1173322Z .....................................................................................i.............. 6700/9289
2019-11-07T20:00:54.2158444Z .................................................................................................... 6800/9289
---
2019-11-07T20:06:12.7020568Z failures:
2019-11-07T20:06:12.7020602Z 
2019-11-07T20:06:12.7020905Z ---- [compile-fail] compile-fail/issue-52443.rs stdout ----
2019-11-07T20:06:12.7020943Z 
2019-11-07T20:06:12.7021507Z error: /checkout/src/test/compile-fail/issue-52443.rs:2: unexpected error: '2:14: 2:31: `loop` is not allowed in a `const` [E0744]'
2019-11-07T20:06:12.7021568Z 
2019-11-07T20:06:12.7021959Z error: /checkout/src/test/compile-fail/issue-52443.rs:3: unexpected error: '3:10: 3:24: `loop` is not allowed in a `const` [E0744]'
2019-11-07T20:06:12.7022019Z 
2019-11-07T20:06:12.7022342Z error: /checkout/src/test/compile-fail/issue-52443.rs:4: unexpected error: '4:11: 4:29: `while` is not allowed in a `const` [E0744]'
2019-11-07T20:06:12.7022395Z 
2019-11-07T20:06:12.7022714Z error: /checkout/src/test/compile-fail/issue-52443.rs:8: unexpected error: '8:12: 8:32: `for` is not allowed in a `const` [E0744]'
2019-11-07T20:06:12.7022820Z error: 4 unexpected errors found, 0 expected errors not found
2019-11-07T20:06:12.7022869Z status: exit code: 1
2019-11-07T20:06:12.7022869Z status: exit code: 1
2019-11-07T20:06:12.7023699Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/compile-fail/issue-52443.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/compile-fail/issue-52443" "-Crpath" "-O" "-Cdebuginfo=0" "-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/compile-fail/issue-52443/auxiliary" "-A" "unused"
2019-11-07T20:06:12.7023929Z unexpected errors (from JSON output): [
2019-11-07T20:06:12.7024040Z         line_num: 2,
2019-11-07T20:06:12.7024082Z         kind: Some(
2019-11-07T20:06:12.7024140Z             Error,
2019-11-07T20:06:12.7024180Z         ),
2019-11-07T20:06:12.7024180Z         ),
2019-11-07T20:06:12.7024228Z         msg: "2:14: 2:31: `loop` is not allowed in a `const` [E0744]",
2019-11-07T20:06:12.7024330Z     Error {
2019-11-07T20:06:12.7024370Z         line_num: 3,
2019-11-07T20:06:12.7024412Z         kind: Some(
2019-11-07T20:06:12.7024476Z             Error,
2019-11-07T20:06:12.7024476Z             Error,
2019-11-07T20:06:12.7024516Z         ),
2019-11-07T20:06:12.7024561Z         msg: "3:10: 3:24: `loop` is not allowed in a `const` [E0744]",
2019-11-07T20:06:12.7024660Z     Error {
2019-11-07T20:06:12.7024701Z         line_num: 4,
2019-11-07T20:06:12.7024756Z         kind: Some(
2019-11-07T20:06:12.7024799Z             Error,
2019-11-07T20:06:12.7024799Z             Error,
2019-11-07T20:06:12.7024845Z         ),
2019-11-07T20:06:12.7024892Z         msg: "4:11: 4:29: `while` is not allowed in a `const` [E0744]",
2019-11-07T20:06:12.7024989Z     Error {
2019-11-07T20:06:12.7025029Z         line_num: 8,
2019-11-07T20:06:12.7025084Z         kind: Some(
2019-11-07T20:06:12.7025126Z             Error,
2019-11-07T20:06:12.7025126Z             Error,
2019-11-07T20:06:12.7025165Z         ),
2019-11-07T20:06:12.7025225Z         msg: "8:12: 8:32: `for` is not allowed in a `const` [E0744]",
2019-11-07T20:06:12.7025308Z ]
2019-11-07T20:06:12.7025335Z 
2019-11-07T20:06:12.7025733Z thread '[compile-fail] compile-fail/issue-52443.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:1520:13
2019-11-07T20:06:12.7025778Z 
---
2019-11-07T20:06:12.7026496Z 
2019-11-07T20:06:12.7026786Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-11-07T20:06:12.7026895Z 
2019-11-07T20:06:12.7026924Z 
2019-11-07T20:06:12.7029716Z 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/compile-fail" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/compile-fail" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "compile-fail" "--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 -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -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"
2019-11-07T20:06:12.7031194Z 
2019-11-07T20:06:12.7031224Z 
2019-11-07T20:06:12.7031323Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-11-07T20:06:12.7031373Z Build completed unsuccessfully in 1:07:51
2019-11-07T20:06:12.7031373Z Build completed unsuccessfully in 1:07:51
2019-11-07T20:06:12.7091313Z == clock drift check ==
2019-11-07T20:06:12.7122064Z   local time: Thu Nov  7 20:06:12 UTC 2019
2019-11-07T20:06:12.7295031Z   network time: Thu, 07 Nov 2019 20:06:12 GMT
2019-11-07T20:06:12.7301219Z == end clock drift check ==
2019-11-07T20:06:13.5183163Z 
2019-11-07T20:06:13.5350372Z ##[error]Bash exited with code '1'.
2019-11-07T20:06:13.5391713Z ##[section]Starting: Checkout
2019-11-07T20:06:13.5393459Z ==============================================================================
2019-11-07T20:06:13.5393513Z Task         : Get sources
2019-11-07T20:06:13.5393652Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@ecstatic-morse ecstatic-morse force-pushed the ecstatic-morse:hir-const-check branch from 469040b to 05c4808 Nov 7, 2019
@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Nov 7, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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.
2019-11-07T20:50:33.3927793Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-07T20:50:33.4112360Z ##[command]git config gc.auto 0
2019-11-07T20:50:33.4193942Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-07T20:50:33.4251899Z ##[command]git config --get-all http.proxy
2019-11-07T20:50:33.4392176Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66170/merge:refs/remotes/pull/66170/merge
---
2019-11-07T21:51:49.0813753Z .................................................................................................... 1600/9289
2019-11-07T21:51:54.8960318Z .................................................................................................... 1700/9289
2019-11-07T21:52:07.5738911Z ................................................................i................................... 1800/9289
2019-11-07T21:52:15.5702156Z .................................................................................................... 1900/9289
2019-11-07T21:52:30.5837010Z ................................................iiiii............................................... 2000/9289
2019-11-07T21:52:41.4695042Z .................................................................................................... 2200/9289
2019-11-07T21:52:44.0443337Z .................................................................................................... 2300/9289
2019-11-07T21:52:47.8684254Z .................................................................................................... 2400/9289
2019-11-07T21:53:11.6631418Z .................................................................................................... 2500/9289
---
2019-11-07T21:56:04.6340932Z .............................................i...............i...................................... 4800/9289
2019-11-07T21:56:14.0523914Z .................................................................................................... 4900/9289
2019-11-07T21:56:22.5082998Z .................................................................................................... 5000/9289
2019-11-07T21:56:29.3969725Z .................................................................................................... 5100/9289
2019-11-07T21:56:39.5652054Z ...............................................ii.ii...........i.................................... 5200/9289
2019-11-07T21:56:49.3989267Z .................................................................................................... 5400/9289
2019-11-07T21:56:59.9382859Z .................................................................................................... 5500/9289
2019-11-07T21:57:07.3667927Z .............................i...................................................................... 5600/9289
2019-11-07T21:57:13.9283169Z .................................................................................................... 5700/9289
2019-11-07T21:57:13.9283169Z .................................................................................................... 5700/9289
2019-11-07T21:57:26.0866521Z .................................................................................................... 5800/9289
2019-11-07T21:57:37.8604952Z ..............ii...i..ii...........i................................................................ 5900/9289
2019-11-07T21:57:58.6518114Z .................................................................................................... 6100/9289
2019-11-07T21:58:04.0171826Z .................................................................................................... 6200/9289
2019-11-07T21:58:04.0171826Z .................................................................................................... 6200/9289
2019-11-07T21:58:18.0401973Z .................................i..ii.............................................................. 6300/9289
2019-11-07T21:58:39.4012381Z .................................................................................................... 6500/9289
2019-11-07T21:58:41.6400392Z .i.................................................................................................. 6600/9289
2019-11-07T21:58:43.9394048Z .....................................................................................i.............. 6700/9289
2019-11-07T21:58:46.7118671Z .................................................................................................... 6800/9289
---
2019-11-07T22:04:11.6766510Z  finished in 5.741
2019-11-07T22:04:11.6957909Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-07T22:04:11.8750229Z 
2019-11-07T22:04:11.8750503Z running 156 tests
2019-11-07T22:04:14.9138409Z iiii....iii......iii..iiii...i.............................i..i..................i....i...........ii 100/156
2019-11-07T22:04:16.9293870Z .i.i..iiii..............i.........iii.i.........ii......
2019-11-07T22:04:16.9295312Z 
2019-11-07T22:04:16.9301128Z  finished in 5.234
2019-11-07T22:04:16.9505925Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-07T22:04:17.1271909Z 
---
2019-11-07T22:04:19.1548410Z  finished in 2.204
2019-11-07T22:04:19.1754467Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-07T22:04:19.3385029Z 
2019-11-07T22:04:19.3385392Z running 9 tests
2019-11-07T22:04:19.3387884Z iiiiiiiii
2019-11-07T22:04:19.3388766Z 
2019-11-07T22:04:19.3389042Z  finished in 0.163
2019-11-07T22:04:19.3600755Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-07T22:04:20.1482004Z 
---
2019-11-07T22:04:39.3790808Z  finished in 20.019
2019-11-07T22:04:39.4011779Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-07T22:04:40.0281292Z 
2019-11-07T22:04:40.0281821Z running 123 tests
2019-11-07T22:05:04.8036967Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-11-07T22:05:09.5719893Z i.i.i......iii.i.....ii
2019-11-07T22:05:09.5721037Z 
2019-11-07T22:05:09.5721643Z  finished in 30.171
2019-11-07T22:05:09.5731747Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-07T22:05:09.5732329Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-11-07T22:17:22.1677934Z 
2019-11-07T22:17:22.1681253Z    Doc-tests core
2019-11-07T22:17:27.1105656Z 
2019-11-07T22:17:27.1106837Z running 2417 tests
2019-11-07T22:17:38.2472871Z ......iiiii......................................................................................... 100/2417
2019-11-07T22:17:49.1063083Z ................................................................................ii.................. 200/2417
2019-11-07T22:18:14.3596878Z ..i................................................................................................. 400/2417
2019-11-07T22:18:14.3596878Z ..i................................................................................................. 400/2417
2019-11-07T22:18:24.9999748Z ..................................................i..i.................iiii......................... 500/2417
2019-11-07T22:18:45.0087101Z .................................................................................................... 700/2417
2019-11-07T22:18:55.3576210Z .................................................................................................... 800/2417
2019-11-07T22:19:05.6932709Z .................................................................................................... 900/2417
2019-11-07T22:19:16.0338839Z .................................................................................................... 1000/2417
---
2019-11-07T22:23:31.1011153Z 
2019-11-07T22:23:31.1018940Z running 1000 tests
2019-11-07T22:23:52.4591426Z i................................................................................................... 100/1000
2019-11-07T22:24:04.3045943Z .................................................................................................... 200/1000
2019-11-07T22:24:12.7938631Z ...................iii......i......i...i......i..................................................... 300/1000
2019-11-07T22:24:18.4034001Z .................................................................................................... 400/1000
2019-11-07T22:24:26.2381801Z ...........................................i..i.................................ii.................. 500/1000
2019-11-07T22:24:40.9700026Z .................................................................................................... 700/1000
2019-11-07T22:24:40.9700026Z .................................................................................................... 700/1000
2019-11-07T22:24:48.8313330Z ..........................iiii...................................................................... 800/1000
2019-11-07T22:25:04.8188097Z .................................................................................................... 900/1000
2019-11-07T22:25:12.8486349Z ................................................iiii................................................ 1000/1000
2019-11-07T22:25:12.8487996Z test result: ok. 980 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out
2019-11-07T22:25:12.8488064Z 
2019-11-07T22:25:12.8590454Z  finished in 198.264
2019-11-07T22:25:12.8607661Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
2019-11-07T22:43:40.7377466Z   |          ^ expected type
2019-11-07T22:43:40.7377496Z 
2019-11-07T22:43:40.7377540Z error: aborting due to previous error
2019-11-07T22:43:40.7377587Z 
2019-11-07T22:43:40.7377632Z Some expected error codes were not found: ["E0744"]
2019-11-07T22:43:40.7377704Z failures:
2019-11-07T22:43:40.7378016Z     /checkout/obj/build/x86_64-unknown-linux-gnu/test/error-index.md - Rust_Compiler_Error_Index::E0744 (line 13411)
2019-11-07T22:43:40.7378063Z 
2019-11-07T22:43:40.7378112Z test result: FAILED. 780 passed; 1 failed; 25 ignored; 0 measured; 0 filtered out
---
2019-11-07T22:43:40.7378767Z   local time: Thu Nov  7 22:43:40 UTC 2019
2019-11-07T22:43:40.9947897Z   network time: Thu, 07 Nov 2019 22:43:40 GMT
2019-11-07T22:43:40.9947994Z == end clock drift check ==
2019-11-07T22:43:41.6012125Z 
2019-11-07T22:43:41.6158660Z ##[error]Bash exited with code '1'.
2019-11-07T22:43:41.6205124Z ##[section]Starting: Checkout
2019-11-07T22:43:41.6206925Z ==============================================================================
2019-11-07T22:43:41.6207000Z Task         : Get sources
2019-11-07T22:43:41.6207049Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

Control-flow expressions are not allowed inside a const context.
At the moment, `if` and `match`, as well as the looping constructs `for`,
`while`, and `loop`, are forbidden inside a `const`, `static`, or `const fn`.

This comment has been minimized.

Copy link
@Centril

Centril Nov 8, 2019

Member

Upon re-reading this it occurred to me that we could link to the tracking issues... should we perhaps do that?
cc @estebank @oli-obk

This comment has been minimized.

Copy link
@ecstatic-morse

ecstatic-morse Nov 10, 2019

Author Contributor

I'll do this in a follow-up PR since the bulk of this one is ready.

@Centril
Centril approved these changes Nov 8, 2019
@Centril

This comment has been minimized.

Copy link
Member

Centril commented Nov 8, 2019

Also, I would still like for someone to review the relative order of the check_mod_const_bodies query. It would be nice run this at the same time as the MIR const-checker instead of superseding it, so we could leave the min_const_fn tests unchanged. We could then change the if/match errors in the MIR const-checker to delay_span_bugs (I think).

This part is unfortunately out of my expertise to mentor; I'll defer to folks on T-Compiler.

This PR BREAKS CODE THAT WAS ACCEPTED ON STABLE. It's arguably a bug
that this was accepted in the first place, but here we are. See #62272
for more info.
The MIR const-checker errors for if/match/loop are now delay span bugs,
so nothing will be emitted unless the HIR checker misses something.
@ecstatic-morse ecstatic-morse force-pushed the ecstatic-morse:hir-const-check branch from 16c674f to 7552bd6 Nov 13, 2019
@ecstatic-morse

This comment has been minimized.

Copy link
Contributor Author

ecstatic-morse commented Nov 13, 2019

Once again broken by a refactoring. @Centril can I make this p=1? I guess it won't matter since this is old enough to be at the top of the queue now.

@bors r=Centril,oli-obk

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Nov 13, 2019

📌 Commit 7552bd6 has been approved by Centril,oli-obk

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Nov 13, 2019

⌛️ Testing commit 7552bd6 with merge ded5ee0...

bors added a commit that referenced this pull request Nov 13, 2019
Add a HIR pass to check consts for `if`, `loop`, etc.

Resolves #66125.

This PR adds a HIR pass to check for high-level control flow constructs that are forbidden in a const-context. The MIR const-checker is unable to provide good spans for these since they are lowered to control flow primitives (e.g., `Goto` and `SwitchInt`), and these often don't map back to the underlying statement as a whole. This PR is intended only to improve diagnostics once `if` and `match` become commonplace in constants (behind a feature flag). The MIR const-checker will continue to operate unchanged, and will catch anything this check might miss.

In this implementation, the HIR const-checking pass is run much earlier than the MIR one, so it will supersede any errors from the latter. I will need some mentoring if we wish to change this, since I'm not familiar with the diagnostics system. Moving this pass into the same phase as the MIR const-checker could also help keep backwards compatibility for items like `const _: () = loop { break; };`, which are currently (erroneously?) accepted by the MIR const-checker (see #62272).

r? @Centril
cc @eddyb (since they filed #62272)
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Nov 13, 2019

☀️ Test successful - checks-azure
Approved by: Centril,oli-obk
Pushing ded5ee0 to master...

@bors bors added the merged-by-bors label Nov 13, 2019
@bors bors merged commit 7552bd6 into rust-lang:master Nov 13, 2019
5 checks passed
5 checks passed
homu Test successful
Details
pr Build #20191113.46 succeeded
Details
pr (Linux mingw-check) Linux mingw-check succeeded
Details
pr (Linux x86_64-gnu-llvm-6.0) Linux x86_64-gnu-llvm-6.0 succeeded
Details
pr (Linux x86_64-gnu-tools) Linux x86_64-gnu-tools succeeded
Details
@rust-lang rust-lang deleted a comment from bors Nov 13, 2019
@rust-lang rust-lang deleted a comment from bors Nov 13, 2019
@rust-lang rust-lang deleted a comment from bors Nov 13, 2019
tmandry added a commit to tmandry/rust that referenced this pull request Nov 14, 2019
…msg, r=estebank

Link to tracking issue in HIR const-check error code description

This is a follow up to rust-lang#66170 that addresses [this comment](rust-lang#66170 (comment)).

As an aside, the only other error code whose description uses the phrase "tracking issue" is `E0202`. We may want to come up with standards around this, especially since error codes are now centralized and easier to keep track of (thanks @GuillaumeGomez).

r? @estebank (since they +1'ed the comment)
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Nov 15, 2019
…msg, r=estebank

Link to tracking issue in HIR const-check error code description

This is a follow up to rust-lang#66170 that addresses [this comment](rust-lang#66170 (comment)).

As an aside, the only other error code whose description uses the phrase "tracking issue" is `E0202`. We may want to come up with standards around this, especially since error codes are now centralized and easier to keep track of (thanks @GuillaumeGomez).

r? @estebank (since they +1'ed the comment)
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Nov 15, 2019
…msg, r=estebank

Link to tracking issue in HIR const-check error code description

This is a follow up to rust-lang#66170 that addresses [this comment](rust-lang#66170 (comment)).

As an aside, the only other error code whose description uses the phrase "tracking issue" is `E0202`. We may want to come up with standards around this, especially since error codes are now centralized and easier to keep track of (thanks @GuillaumeGomez).

r? @estebank (since they +1'ed the comment)
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Nov 15, 2019
…msg, r=estebank

Link to tracking issue in HIR const-check error code description

This is a follow up to rust-lang#66170 that addresses [this comment](rust-lang#66170 (comment)).

As an aside, the only other error code whose description uses the phrase "tracking issue" is `E0202`. We may want to come up with standards around this, especially since error codes are now centralized and easier to keep track of (thanks @GuillaumeGomez).

r? @estebank (since they +1'ed the comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.