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

Organize intrinsics const evaluability checks #61835

Conversation

vertexclique
Copy link
Member

@vertexclique vertexclique commented Jun 14, 2019

Organize intrinsics const evaluability checks.

@rust-highfive
Copy link
Collaborator

r? @varkor

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

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jun 14, 2019
@vertexclique
Copy link
Member Author

r? @oli-obk

@rust-highfive rust-highfive assigned oli-obk and unassigned varkor Jun 14, 2019
@vertexclique vertexclique force-pushed the organize-intrinsics-promotion-checks branch from 60ae651 to 0c2a54d Compare June 14, 2019 14:11
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:043ef77a:start=1560521686673148765,finish=1560521687482975464,duration=809826699
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---

[00:05:59] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:05:59] tidy error: /checkout/src/librustc_mir/transform/qualify_consts.rs:1227: line longer than 100 chars
[00:06:00] tidy error: /checkout/src/librustc/ty/constness.rs:77: line longer than 100 chars
[00:06:04] some tidy checks failed
[00:06:04] 
[00:06:04] 
[00:06:04] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:06:04] 
[00:06:04] 
[00:06:04] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:06:04] Build completed unsuccessfully in 0:01:15
---
travis_time:end:0129167a:start=1560522064608535076,finish=1560522064613691035,duration=5155959
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:01af3560
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:04b1d45c
travis_time:start:04b1d45c
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:0b04b2f2
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:07f12704:start=1560522667101281825,finish=1560522669993611222,duration=2892329397
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
[00:09:16]    Compiling syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:15:15]    Compiling rustc_typeck v0.0.0 (/checkout/src/librustc_typeck)
[00:15:15]    Compiling rustc_allocator v0.0.0 (/checkout/src/librustc_allocator)
[00:15:39]    Compiling rustc_mir v0.0.0 (/checkout/src/librustc_mir)
[00:15:48] error[E0599]: no variant or associated item named `Fn` found for type `transform::qualify_consts::Mode` in the current scope
[00:15:48]     --> src/librustc_mir/transform/qualify_consts.rs:1230:51
[00:15:48] 37   | enum Mode {
[00:15:48] 37   | enum Mode {
[00:15:48]      | --------- variant or associated item `Fn` not found here
[00:15:48] 1230 |                             if self.mode != Mode::Fn {
[00:15:48] 1230 |                             if self.mode != Mode::Fn {
[00:15:48]      |                                                   ^^ variant or associated item not found in `transform::qualify_consts::Mode`
[00:15:53] error: aborting due to previous error
[00:15:53] 
[00:15:53] For more information about this error, try `rustc --explain E0599`.
[00:15:53] error: Could not compile `rustc_mir`.
---
travis_time:end:2b05fc57:start=1560523783960527952,finish=1560523783965114945,duration=4586993
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:1e23eb2d
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:0d73f858
travis_time:start:0d73f858
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:13a21f46
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@vertexclique vertexclique changed the title Organize intrinsics promotion checks Organize intrinsics const evaluability checks Jun 14, 2019
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:058fe486:start=1560528976814817781,finish=1560528979090157331,duration=2275339550
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
[00:57:36] .................................................................................................... 1200/5679
[00:57:38] .................................................................................................... 1300/5679
[00:57:41] .................................................................................................... 1400/5679
[00:57:44] .................................................................................................... 1500/5679
[00:57:47] ................................................................................F................... 1600/5679
[00:57:53] ..i................................................................................................. 1800/5679
[00:57:57] .................................................................................................... 1900/5679
[00:58:01] .................................................................................................... 2000/5679
[00:58:04] .................................................................................................... 2100/5679
---
[01:00:30] ---- [ui] ui/feature-gates/feature-gate-const_transmute.rs stdout ----
[01:00:30] 
[01:00:30] error: ui test compiled successfully!
[01:00:30] status: exit code: 0
[01:00:30] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/feature-gates/feature-gate-const_transmute.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/feature-gates/feature-gate-const_transmute" "-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/feature-gates/feature-gate-const_transmute/auxiliary" "-A" "unused"
[01:00:30] ------------------------------------------
[01:00:30] 
[01:00:30] ------------------------------------------
[01:00:30] stderr:
---
[01:00:30] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:521:22
[01:00:30] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:00:30] 
[01:00:30] 
[01:00:30] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/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"
[01:00:30] 
[01:00:30] 
[01:00:30] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:00:30] Build completed unsuccessfully in 0:55:49
---
travis_time:end:05ee9758:start=1560532621606383209,finish=1560532621611734553,duration=5351344
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:2d5305e0
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:004f47d8
travis_time:start:004f47d8
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:151707f0
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors
Copy link
Contributor

bors commented Jun 14, 2019

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

@@ -68,14 +69,54 @@ impl<'tcx> TyCtxt<'tcx, 'tcx> {


pub fn provide<'tcx>(providers: &mut Providers<'tcx>) {
/// only checks whether the function has a `const` modifier
fn is_const_evaluatable(tcx: TyCtxt<'tcx, 'tcx>, def_id: DefId) -> bool {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not have this as a separate function, but rather use it before the usage of FnLikeNode, so intrinsics' definitions aren't checked for const fn (as they syntactically cannot be const fn).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(as they syntactically cannot be const fn).

Shouldn't we just allow them to be that syntactically?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't you say you tried that once and it did not work?

Also, that would allow nightly users to declare intrinsics as const. There might be ways to cause unsoundness there. Wouldn't that be a problem?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't you say you tried that once and it did not work?

It would be a lot of work

Also, that would allow nightly users to declare intrinsics as const. There might be ways to cause unsoundness there. Wouldn't that be a problem?

Well... if there's an implementation in the miri-engine, then they can do whatever unstable fun they want I guess?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. And that might subvert properties that const fn otherwise have.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only consider this a problem in libstd. If you are using nightly features you can already brick properties that we aren't sure about yet, so...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One of these days we should change intrinsics so they don't abuse extern "..." {...} anymore and then we can have const fn transmute or w/e. As for not allowing const fn on intrinsics that shouldn't be, I suppose that should go in rustc_typeck's list of intrinsic signatures.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could just move to making them lang items and having libcore implement them by recursing on themselves and then have the compiler overwrite them. Then they'd be regular functions (and we used this trick on one intrinsic already:

unsafe fn real_drop_in_place<T: ?Sized>(to_drop: &mut T) {
)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would make it harder to figure out that a function is an intrinsic. Also real_drop_in_place actually codegens to real functions, while intrinsics always inline their code at the caller site. Another difference between intrinsics and (lang item) functions is that intrinsics cant be turned into function pointers, while (lang item) functions can be.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@oli-obk sigh we don't have to re-use lang items, we can have a different mechanism (but also attribute-based) for them. I've been meaning to do this for ages but @nikomatsakis wanted an RFC which I never got around to writing, oops.

@oli-obk oli-obk added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 19, 2019
@JohnCSimon
Copy link
Member

Ping from triage @vertexclique are there any further updates on this?

@vertexclique
Copy link
Member Author

I am going to update this when I have time on the weekend.

@rust-highfive
Copy link
Collaborator

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-09-28T14:12:11.3564241Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-28T14:12:11.8875327Z ##[command]git config gc.auto 0
2019-09-28T14:12:11.8878002Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-28T14:12:11.8880278Z ##[command]git config --get-all http.proxy
2019-09-28T14:12:11.8882919Z ##[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/61835/merge:refs/remotes/pull/61835/merge
---
2019-09-28T15:18:26.5297900Z .................................................................................................... 1500/9049
2019-09-28T15:18:32.9857984Z .................................................................................................... 1600/9049
2019-09-28T15:18:45.9338029Z ...........................................................................i...............i........ 1700/9049
2019-09-28T15:18:53.1565040Z .................................................................................................... 1800/9049
2019-09-28T15:19:01.7660325Z ..................................................................iiiii............................. 1900/9049
2019-09-28T15:19:23.4682115Z .................................................................................................... 2100/9049
2019-09-28T15:19:26.1395350Z .................................................................................................... 2200/9049
2019-09-28T15:19:29.5558397Z .................................................................................................... 2300/9049
2019-09-28T15:19:38.6512795Z .................................................................................................... 2400/9049
---
2019-09-28T15:22:48.9938903Z ......................................................i...............i............................. 4700/9049
2019-09-28T15:22:58.7694815Z .................................................................................................... 4800/9049
2019-09-28T15:23:07.8255209Z .................................................................................................... 4900/9049
2019-09-28T15:23:15.8268188Z .................................................................................................... 5000/9049
2019-09-28T15:23:26.1187073Z ..........................................ii.ii..................................................... 5100/9049
2019-09-28T15:23:36.9566226Z .................................................................................................... 5300/9049
2019-09-28T15:23:48.1754749Z .................................................................................................... 5400/9049
2019-09-28T15:23:55.9244670Z .......i............................................................................................ 5500/9049
2019-09-28T15:24:01.7122079Z .................................................................................................... 5600/9049
2019-09-28T15:24:01.7122079Z .................................................................................................... 5600/9049
2019-09-28T15:24:14.2172789Z .................................................................................................... 5700/9049
2019-09-28T15:24:27.9704962Z ..ii...i..ii...........i............................................................................ 5800/9049
2019-09-28T15:24:50.7096256Z .................................................................................................... 6000/9049
2019-09-28T15:25:00.4710893Z .................................................................................................... 6100/9049
2019-09-28T15:25:00.4710893Z .................................................................................................... 6100/9049
2019-09-28T15:25:15.2059707Z .....i..ii.......................................................................................... 6200/9049
2019-09-28T15:25:35.5174743Z .................................................................i.................................. 6400/9049
2019-09-28T15:25:37.8853822Z .................................................................................................... 6500/9049
2019-09-28T15:25:40.5768643Z .....................................i.............................................................. 6600/9049
2019-09-28T15:25:44.9035339Z .................................................................................................... 6700/9049
---
2019-09-28T15:26:42.9440759Z .................................................................................................... 7200/9049
2019-09-28T15:26:48.7112606Z .................................................................................................... 7300/9049
2019-09-28T15:26:56.6323297Z .................................................................................................... 7400/9049
2019-09-28T15:27:07.3662055Z .................................................................................................... 7500/9049
2019-09-28T15:27:18.2068368Z .........................................................................................ii......i.. 7600/9049
2019-09-28T15:27:30.2531810Z .................................................................................................... 7800/9049
2019-09-28T15:27:48.4433323Z .................................................................................................... 7900/9049
2019-09-28T15:27:57.3557071Z .................................................................................................... 8000/9049
2019-09-28T15:28:07.9058084Z .................................................................................................... 8100/9049
---
2019-09-28T15:30:04.0141459Z ---- [ui] ui/feature-gates/feature-gate-const_transmute.rs stdout ----
2019-09-28T15:30:04.0141767Z 
2019-09-28T15:30:04.0141985Z error: ui test compiled successfully!
2019-09-28T15:30:04.0142175Z status: exit code: 0
2019-09-28T15:30:04.0143258Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/feature-gates/feature-gate-const_transmute.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/feature-gates/feature-gate-const_transmute" "-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/feature-gates/feature-gate-const_transmute/auxiliary" "-A" "unused"
2019-09-28T15:30:04.0144670Z ------------------------------------------
2019-09-28T15:30:04.0144956Z 
2019-09-28T15:30:04.0145469Z ------------------------------------------
2019-09-28T15:30:04.0145836Z stderr:
---
2019-09-28T15:30:04.0190854Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-09-28T15:30:04.0191190Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-09-28T15:30:04.0206343Z 
2019-09-28T15:30:04.0207232Z 
2019-09-28T15:30:04.0210469Z 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-09-28T15:30:04.0211715Z 
2019-09-28T15:30:04.0211956Z 
2019-09-28T15:30:04.0215846Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-09-28T15:30:04.0215992Z Build completed unsuccessfully in 1:10:22
2019-09-28T15:30:04.0215992Z Build completed unsuccessfully in 1:10:22
2019-09-28T15:30:04.0275478Z == clock drift check ==
2019-09-28T15:30:04.0293097Z   local time: Sat Sep 28 15:30:04 UTC 2019
2019-09-28T15:30:04.1931823Z   network time: Sat, 28 Sep 2019 15:30:04 GMT
2019-09-28T15:30:04.1937164Z == end clock drift check ==
2019-09-28T15:30:05.2343261Z ##[error]Bash exited with code '1'.
2019-09-28T15:30:05.2418040Z ##[section]Starting: Checkout
2019-09-28T15:30:05.2419927Z ==============================================================================
2019-09-28T15:30:05.2420005Z Task         : Get sources
2019-09-28T15:30:05.2420056Z 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
Copy link
Collaborator

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-09-28T16:08:23.8435314Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-28T16:08:23.8645424Z ##[command]git config gc.auto 0
2019-09-28T16:08:23.8723763Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-28T16:08:23.8789393Z ##[command]git config --get-all http.proxy
2019-09-28T16:08:23.8925930Z ##[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/61835/merge:refs/remotes/pull/61835/merge
---
2019-09-28T16:40:03.9684447Z    Compiling compiler_builtins v0.1.18
2019-09-28T16:40:05.9098102Z    Compiling unwind v0.0.0 (/checkout/src/libunwind)
2019-09-28T16:40:06.8011037Z    Compiling backtrace-sys v0.1.30
2019-09-28T16:40:07.6804452Z    Compiling rustc_tsan v0.0.0 (/checkout/src/librustc_tsan)
2019-09-28T16:40:07.9661412Z thread 'rustc' panicked at 'intrinsic maxnumf32 is not in const eval whitelist', src/librustc_mir/transform/qualify_consts.rs:1286:29
2019-09-28T16:40:07.9672561Z 
2019-09-28T16:40:07.9678128Z error: internal compiler error: unexpected panic
2019-09-28T16:40:07.9681596Z 
2019-09-28T16:40:07.9686370Z note: the compiler unexpectedly panicked. this is a bug.
2019-09-28T16:40:07.9686370Z note: the compiler unexpectedly panicked. this is a bug.
2019-09-28T16:40:07.9690234Z 
2019-09-28T16:40:07.9755642Z note: we would appreciate a bug report: ***/blob/master/CONTRIBUTING.md#bug-reports
2019-09-28T16:40:07.9756211Z note: rustc 1.40.0-dev running on x86_64-unknown-linux-gnu
2019-09-28T16:40:07.9756244Z 
2019-09-28T16:40:07.9756244Z 
2019-09-28T16:40:07.9757292Z note: compiler flags: -Z external-macro-backtrace -Z binary-dep-depinfo -Z force-unstable-if-unmarked -C opt-level=2 -C codegen-units=1 -C debuginfo=0 -C link-args=-Wl,-rpath,$ORIGIN/../lib -C prefer-dynamic -C debug-assertions=n --crate-type lib
2019-09-28T16:40:07.9757406Z note: some of the compiler flags provided by cargo are hidden
2019-09-28T16:40:07.9757459Z 
2019-09-28T16:40:08.1492974Z error: could not compile `core`.
2019-09-28T16:40:08.1514349Z warning: build failed, waiting for other jobs to finish...
---
2019-09-28T16:40:08.2168314Z == clock drift check ==
2019-09-28T16:40:08.2182957Z   local time: Sat Sep 28 16:40:08 UTC 2019
2019-09-28T16:40:08.3821394Z   network time: Sat, 28 Sep 2019 16:40:08 GMT
2019-09-28T16:40:08.3822115Z == end clock drift check ==
2019-09-28T16:40:09.5528492Z ##[error]Bash exited with code '1'.
2019-09-28T16:40:09.5572850Z ##[section]Starting: Checkout
2019-09-28T16:40:09.5574628Z ==============================================================================
2019-09-28T16:40:09.5574700Z Task         : Get sources
2019-09-28T16:40:09.5574766Z 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)

@@ -1322,23 +1283,10 @@ impl<'a, 'tcx> Visitor<'tcx> for Checker<'a, 'tcx> {
match self.tcx.fn_sig(def_id).abi() {
Abi::RustIntrinsic |
Abi::PlatformIntrinsic => {
assert!(!self.tcx.is_const_fn(def_id));
assert!(self.tcx.is_const_fn(def_id),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh... this is not for const fn, but for normal functions. So you can remove the assert since it's now useless and you can also remove the RustIntrinsic pattern above, as we only seem to care about SIMD_shuffle which is a PlatformIntrinsic

@rust-highfive
Copy link
Collaborator

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-09-28T20:07:28.4593097Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-28T20:07:28.4779587Z ##[command]git config gc.auto 0
2019-09-28T20:07:28.4854180Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-28T20:07:28.4905972Z ##[command]git config --get-all http.proxy
2019-09-28T20:07:28.5052974Z ##[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/61835/merge:refs/remotes/pull/61835/merge
---
2019-09-28T20:39:21.9570449Z    Compiling rustc_lsan v0.0.0 (/checkout/src/librustc_lsan)
2019-09-28T20:39:22.1623559Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.1624169Z     --> src/libcore/num/mod.rs:1115:17
2019-09-28T20:39:22.1624556Z      |
2019-09-28T20:39:22.1624885Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.1625279Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.1625682Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.1626034Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.1626663Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:22.1627001Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.1627272Z ...    |
2019-09-28T20:39:22.1627562Z 2224 | |     }
2019-09-28T20:39:22.1627562Z 2224 | |     }
2019-09-28T20:39:22.1627853Z 2225 | | }
2019-09-28T20:39:22.1628178Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.1628394Z ...
2019-09-28T20:39:22.1629075Z 2229 | /     int_impl! { i8, i8, u8, 8, -128, 127, "", "", 2, "-0x7e", "0xa", "0x12", "0x12", "0x48",
2019-09-28T20:39:22.1629429Z 2230 | |         "[0x12]", "[0x12]", "", "" }
2019-09-28T20:39:22.1634974Z 
2019-09-28T20:39:22.1950574Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.1950939Z     --> src/libcore/num/mod.rs:1115:17
2019-09-28T20:39:22.1951209Z      |
2019-09-28T20:39:22.1951209Z      |
2019-09-28T20:39:22.1951523Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.1952648Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.1953383Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.1953795Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.1954413Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:22.1954742Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.1955028Z ...    |
2019-09-28T20:39:22.1955318Z 2224 | |     }
2019-09-28T20:39:22.1955318Z 2224 | |     }
2019-09-28T20:39:22.1955616Z 2225 | | }
2019-09-28T20:39:22.1955944Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.1956157Z ...
2019-09-28T20:39:22.1956544Z 2235 | /     int_impl! { i16, i16, u16, 16, -32768, 32767, "", "", 4, "-0x5ffd", "0x3a", "0x1234", "0x3412",
2019-09-28T20:39:22.1956923Z 2236 | |         "0x2c48", "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
2019-09-28T20:39:22.1962486Z 
2019-09-28T20:39:22.2266115Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.2266491Z     --> src/libcore/num/mod.rs:1115:17
2019-09-28T20:39:22.2266735Z      |
2019-09-28T20:39:22.2266735Z      |
2019-09-28T20:39:22.2267043Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.2267442Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.2268089Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.2268464Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.2269392Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:22.2270517Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.2270781Z ...    |
2019-09-28T20:39:22.2271066Z 2224 | |     }
2019-09-28T20:39:22.2271066Z 2224 | |     }
2019-09-28T20:39:22.2271392Z 2225 | | }
2019-09-28T20:39:22.2271699Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.2271912Z ...
2019-09-28T20:39:22.2272441Z 2241 | /     int_impl! { i32, i32, u32, 32, -2147483648, 2147483647, "", "", 8, "0x10000b3", "0xb301",
2019-09-28T20:39:22.2272869Z 2242 | |         "0x12345678", "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.2273228Z 2243 | |         "[0x12, 0x34, 0x56, 0x78]", "", "" }
2019-09-28T20:39:22.2278622Z 
2019-09-28T20:39:22.2868130Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.2868522Z     --> src/libcore/num/mod.rs:1115:17
2019-09-28T20:39:22.2868737Z      |
2019-09-28T20:39:22.2868737Z      |
2019-09-28T20:39:22.2869037Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.2869379Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.2870227Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.2870597Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.2871209Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:22.2871542Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.2871793Z ...    |
2019-09-28T20:39:22.2872101Z 2224 | |     }
2019-09-28T20:39:22.2872101Z 2224 | |     }
2019-09-28T20:39:22.2872391Z 2225 | | }
2019-09-28T20:39:22.2873166Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.2873396Z ...
2019-09-28T20:39:22.2873768Z 2248 | /     int_impl! { i64, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "", 12,
2019-09-28T20:39:22.2874159Z 2249 | |          "0xaa00000000006e1", "0x6e10aa", "0x1234567890123456", "0x5634129078563412",
2019-09-28T20:39:22.2874533Z 2250 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.2874885Z 2251 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]", "", "" }
2019-09-28T20:39:22.2880500Z 
2019-09-28T20:39:22.3469845Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.3470321Z     --> src/libcore/num/mod.rs:1115:17
2019-09-28T20:39:22.3470553Z      |
2019-09-28T20:39:22.3470553Z      |
2019-09-28T20:39:22.3470883Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.3471263Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.3471659Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.3472021Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.3472611Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:22.3472959Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.3473351Z ...    |
2019-09-28T20:39:22.3473633Z 2224 | |     }
2019-09-28T20:39:22.3473633Z 2224 | |     }
2019-09-28T20:39:22.3473915Z 2225 | | }
2019-09-28T20:39:22.3474199Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.3474414Z ...
2019-09-28T20:39:22.3474763Z 2256 | /     int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728,
2019-09-28T20:39:22.3475096Z 2257 | |         170141183460469231731687303715884105727, "", "", 16,
2019-09-28T20:39:22.3475485Z 2258 | |         "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
2019-09-28T20:39:22.3475997Z 2259 | |         "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
2019-09-28T20:39:22.3476251Z ...    |
2019-09-28T20:39:22.3476581Z 2262 | |         "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, \
2019-09-28T20:39:22.3476917Z 2263 | |           0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]", "", "" }
2019-09-28T20:39:22.3482797Z 
2019-09-28T20:39:22.4030703Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.4031142Z     --> src/libcore/num/mod.rs:1115:17
2019-09-28T20:39:22.4031375Z      |
2019-09-28T20:39:22.4031375Z      |
2019-09-28T20:39:22.4031698Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.4032279Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.4032719Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.4033084Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.4033673Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:22.4034028Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.4034275Z ...    |
2019-09-28T20:39:22.4034577Z 2224 | |     }
2019-09-28T20:39:22.4034577Z 2224 | |     }
2019-09-28T20:39:22.4034869Z 2225 | | }
2019-09-28T20:39:22.4035174Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.4035401Z ...
2019-09-28T20:39:22.4035781Z 2286 | /     int_impl! { isize, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "",
2019-09-28T20:39:22.4036168Z 2287 | |         12, "0xaa00000000006e1", "0x6e10aa",  "0x1234567890123456", "0x5634129078563412",
2019-09-28T20:39:22.4036579Z 2288 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.4036935Z 2289 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-28T20:39:22.4037305Z 2290 | |          usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
2019-09-28T20:39:22.4042404Z 
2019-09-28T20:39:22.4615727Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.4616107Z     --> src/libcore/num/mod.rs:1138:17
2019-09-28T20:39:22.4616337Z      |
2019-09-28T20:39:22.4616337Z      |
2019-09-28T20:39:22.4616651Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.4617019Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.4617410Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.4617763Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.4618383Z ...    |
2019-09-28T20:39:22.4618791Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-28T20:39:22.4619387Z ...    |
2019-09-28T20:39:22.4619675Z 2224 | |     }
2019-09-28T20:39:22.4620305Z 2225 | | }
2019-09-28T20:39:22.4620305Z 2225 | | }
2019-09-28T20:39:22.4620640Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.4620855Z ...
2019-09-28T20:39:22.4621237Z 2229 | /     int_impl! { i8, i8, u8, 8, -128, 127, "", "", 2, "-0x7e", "0xa", "0x12", "0x12", "0x48",
2019-09-28T20:39:22.4621586Z 2230 | |         "[0x12]", "[0x12]", "", "" }
2019-09-28T20:39:22.4621961Z 
2019-09-28T20:39:22.5225004Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.5225407Z     --> src/libcore/num/mod.rs:1138:17
2019-09-28T20:39:22.5225808Z      |
2019-09-28T20:39:22.5225808Z      |
2019-09-28T20:39:22.5226170Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.5226563Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.5226965Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.5227456Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.5228140Z ...    |
2019-09-28T20:39:22.5228494Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-28T20:39:22.5229079Z ...    |
2019-09-28T20:39:22.5229389Z 2224 | |     }
2019-09-28T20:39:22.5230284Z 2225 | | }
2019-09-28T20:39:22.5230284Z 2225 | | }
2019-09-28T20:39:22.5230619Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.5230834Z ...
2019-09-28T20:39:22.5231235Z 2235 | /     int_impl! { i16, i16, u16, 16, -32768, 32767, "", "", 4, "-0x5ffd", "0x3a", "0x1234", "0x3412",
2019-09-28T20:39:22.5231610Z 2236 | |         "0x2c48", "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
2019-09-28T20:39:22.5288313Z 
2019-09-28T20:39:22.5439658Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.5440084Z     --> src/libcore/num/mod.rs:1138:17
2019-09-28T20:39:22.5440315Z      |
2019-09-28T20:39:22.5440315Z      |
2019-09-28T20:39:22.5440648Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.5441048Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.5441458Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.5441805Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.5442056Z ...    |
2019-09-28T20:39:22.5442404Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-28T20:39:22.5443137Z ...    |
2019-09-28T20:39:22.5443433Z 2224 | |     }
2019-09-28T20:39:22.5443719Z 2225 | | }
2019-09-28T20:39:22.5443719Z 2225 | | }
2019-09-28T20:39:22.5444033Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.5444238Z ...
2019-09-28T20:39:22.5444602Z 2241 | /     int_impl! { i32, i32, u32, 32, -2147483648, 2147483647, "", "", 8, "0x10000b3", "0xb301",
2019-09-28T20:39:22.5444982Z 2242 | |         "0x12345678", "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.5445873Z 2243 | |         "[0x12, 0x34, 0x56, 0x78]", "", "" }
2019-09-28T20:39:22.5450627Z 
2019-09-28T20:39:22.5916401Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.5917268Z     --> src/libcore/num/mod.rs:1138:17
2019-09-28T20:39:22.5917967Z      |
2019-09-28T20:39:22.5917967Z      |
2019-09-28T20:39:22.5918583Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.5919309Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.5920681Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.5921444Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.5922007Z ...    |
2019-09-28T20:39:22.5922648Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-28T20:39:22.5923996Z ...    |
2019-09-28T20:39:22.5924591Z 2224 | |     }
2019-09-28T20:39:22.5925135Z 2225 | | }
2019-09-28T20:39:22.5925135Z 2225 | | }
2019-09-28T20:39:22.5925729Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.5926412Z ...
2019-09-28T20:39:22.5927300Z 2248 | /     int_impl! { i64, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "", 12,
2019-09-28T20:39:22.5928055Z 2249 | |          "0xaa00000000006e1", "0x6e10aa", "0x1234567890123456", "0x5634129078563412",
2019-09-28T20:39:22.5928755Z 2250 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.5929651Z 2251 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]", "", "" }
2019-09-28T20:39:22.5969058Z 
2019-09-28T20:39:22.6308148Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.6309577Z     --> src/libcore/num/mod.rs:1138:17
2019-09-28T20:39:22.6310512Z      |
2019-09-28T20:39:22.6310512Z      |
2019-09-28T20:39:22.6311344Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.6311927Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.6312529Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.6313204Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.6313621Z ...    |
2019-09-28T20:39:22.6314119Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-28T20:39:22.6315014Z ...    |
2019-09-28T20:39:22.6315437Z 2224 | |     }
2019-09-28T20:39:22.6315998Z 2225 | | }
2019-09-28T20:39:22.6315998Z 2225 | | }
2019-09-28T20:39:22.6316511Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.6316894Z ...
2019-09-28T20:39:22.6317398Z 2256 | /     int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728,
2019-09-28T20:39:22.6318072Z 2257 | |         170141183460469231731687303715884105727, "", "", 16,
2019-09-28T20:39:22.6318664Z 2258 | |         "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
2019-09-28T20:39:22.6320471Z 2259 | |         "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
2019-09-28T20:39:22.6321033Z ...    |
2019-09-28T20:39:22.6321573Z 2262 | |         "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, \
2019-09-28T20:39:22.6322416Z 2263 | |           0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]", "", "" }
2019-09-28T20:39:22.6346656Z 
2019-09-28T20:39:22.6426682Z    Compiling rustc_msan v0.0.0 (/checkout/src/librustc_msan)
2019-09-28T20:39:22.6905529Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.6906327Z     --> src/libcore/num/mod.rs:1138:17
2019-09-28T20:39:22.6906327Z     --> src/libcore/num/mod.rs:1138:17
2019-09-28T20:39:22.6906730Z      |
2019-09-28T20:39:22.6907177Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.6907724Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.6908549Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.6909067Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.6909879Z ...    |
2019-09-28T20:39:22.6910629Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-28T20:39:22.6911628Z ...    |
2019-09-28T20:39:22.6912147Z 2224 | |     }
2019-09-28T20:39:22.6912644Z 2225 | | }
2019-09-28T20:39:22.6912644Z 2225 | | }
2019-09-28T20:39:22.6913467Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.6913972Z ...
2019-09-28T20:39:22.6914562Z 2286 | /     int_impl! { isize, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "",
2019-09-28T20:39:22.6915312Z 2287 | |         12, "0xaa00000000006e1", "0x6e10aa",  "0x1234567890123456", "0x5634129078563412",
2019-09-28T20:39:22.6915850Z 2288 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.6916403Z 2289 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-28T20:39:22.6917114Z 2290 | |          usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
2019-09-28T20:39:22.6923395Z 
2019-09-28T20:39:22.7303912Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.7304256Z     --> src/libcore/num/mod.rs:1160:17
2019-09-28T20:39:22.7304471Z      |
2019-09-28T20:39:22.7304471Z      |
2019-09-28T20:39:22.7304814Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.7305171Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.7305742Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.7306081Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.7306669Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-28T20:39:22.7307235Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.7307479Z ...    |
2019-09-28T20:39:22.7307972Z 2224 | |     }
2019-09-28T20:39:22.7307972Z 2224 | |     }
2019-09-28T20:39:22.7308260Z 2225 | | }
2019-09-28T20:39:22.7308589Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.7308807Z ...
2019-09-28T20:39:22.7309185Z 2229 | /     int_impl! { i8, i8, u8, 8, -128, 127, "", "", 2, "-0x7e", "0xa", "0x12", "0x12", "0x48",
2019-09-28T20:39:22.7309896Z 2230 | |         "[0x12]", "[0x12]", "", "" }
2019-09-28T20:39:22.7315293Z 
2019-09-28T20:39:22.7708362Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.7708929Z     --> src/libcore/num/mod.rs:1160:17
2019-09-28T20:39:22.7709154Z      |
2019-09-28T20:39:22.7709154Z      |
2019-09-28T20:39:22.7709888Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.7710333Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.7710759Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.7711116Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.7711728Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-28T20:39:22.7712057Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.7712311Z ...    |
2019-09-28T20:39:22.7712631Z 2224 | |     }
2019-09-28T20:39:22.7712631Z 2224 | |     }
2019-09-28T20:39:22.7712918Z 2225 | | }
2019-09-28T20:39:22.7713378Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.7713615Z ...
2019-09-28T20:39:22.7713992Z 2235 | /     int_impl! { i16, i16, u16, 16, -32768, 32767, "", "", 4, "-0x5ffd", "0x3a", "0x1234", "0x3412",
2019-09-28T20:39:22.7714350Z 2236 | |         "0x2c48", "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
2019-09-28T20:39:22.7721034Z 
2019-09-28T20:39:22.8146401Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.8146973Z     --> src/libcore/num/mod.rs:1160:17
2019-09-28T20:39:22.8147205Z      |
2019-09-28T20:39:22.8147205Z      |
2019-09-28T20:39:22.8147577Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.8148321Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.8148779Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.8149147Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.8151422Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-28T20:39:22.8152600Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.8153039Z ...    |
2019-09-28T20:39:22.8153365Z 2224 | |     }
2019-09-28T20:39:22.8153365Z 2224 | |     }
2019-09-28T20:39:22.8154803Z 2225 | | }
2019-09-28T20:39:22.8155212Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.8156462Z ...
2019-09-28T20:39:22.8157295Z 2241 | /     int_impl! { i32, i32, u32, 32, -2147483648, 2147483647, "", "", 8, "0x10000b3", "0xb301",
2019-09-28T20:39:22.8157792Z 2242 | |         "0x12345678", "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.8158141Z 2243 | |         "[0x12, 0x34, 0x56, 0x78]", "", "" }
2019-09-28T20:39:22.8163845Z 
2019-09-28T20:39:22.8746064Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.8746490Z     --> src/libcore/num/mod.rs:1160:17
2019-09-28T20:39:22.8746756Z      |
2019-09-28T20:39:22.8746756Z      |
2019-09-28T20:39:22.8747077Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.8747465Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.8747937Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.8748287Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.8749144Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-28T20:39:22.8749751Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.8750069Z ...    |
2019-09-28T20:39:22.8750359Z 2224 | |     }
2019-09-28T20:39:22.8750359Z 2224 | |     }
2019-09-28T20:39:22.8750645Z 2225 | | }
2019-09-28T20:39:22.8750973Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.8751199Z ...
2019-09-28T20:39:22.8751595Z 2248 | /     int_impl! { i64, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "", 12,
2019-09-28T20:39:22.8752113Z 2249 | |          "0xaa00000000006e1", "0x6e10aa", "0x1234567890123456", "0x5634129078563412",
2019-09-28T20:39:22.8752547Z 2250 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.8752944Z 2251 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]", "", "" }
2019-09-28T20:39:22.8758000Z 
2019-09-28T20:39:22.9432513Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.9432908Z     --> src/libcore/num/mod.rs:1160:17
2019-09-28T20:39:22.9433202Z      |
2019-09-28T20:39:22.9433202Z      |
2019-09-28T20:39:22.9433518Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.9433907Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.9434312Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.9434673Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.9435290Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-28T20:39:22.9435622Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.9435893Z ...    |
2019-09-28T20:39:22.9436185Z 2224 | |     }
2019-09-28T20:39:22.9436185Z 2224 | |     }
2019-09-28T20:39:22.9436472Z 2225 | | }
2019-09-28T20:39:22.9437123Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.9437344Z ...
2019-09-28T20:39:22.9437717Z 2256 | /     int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728,
2019-09-28T20:39:22.9438108Z 2257 | |         170141183460469231731687303715884105727, "", "", 16,
2019-09-28T20:39:22.9438514Z 2258 | |         "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
2019-09-28T20:39:22.9438921Z 2259 | |         "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
2019-09-28T20:39:22.9439188Z ...    |
2019-09-28T20:39:22.9439821Z 2262 | |         "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, \
2019-09-28T20:39:22.9440377Z 2263 | |           0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]", "", "" }
2019-09-28T20:39:22.9451736Z 
2019-09-28T20:39:22.9987761Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:22.9988169Z     --> src/libcore/num/mod.rs:1160:17
2019-09-28T20:39:22.9988473Z      |
2019-09-28T20:39:22.9988473Z      |
2019-09-28T20:39:22.9988829Z 238  | / macro_rules! int_impl {
2019-09-28T20:39:22.9989217Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-28T20:39:22.9989758Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:22.9990108Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:22.9990721Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-28T20:39:22.9991060Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:22.9991330Z ...    |
2019-09-28T20:39:22.9991630Z 2224 | |     }
2019-09-28T20:39:22.9991630Z 2224 | |     }
2019-09-28T20:39:22.9991917Z 2225 | | }
2019-09-28T20:39:22.9992246Z      | |_- in this expansion of `int_impl!`
2019-09-28T20:39:22.9992462Z ...
2019-09-28T20:39:22.9992989Z 2286 | /     int_impl! { isize, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "",
2019-09-28T20:39:22.9993691Z 2287 | |         12, "0xaa00000000006e1", "0x6e10aa",  "0x1234567890123456", "0x5634129078563412",
2019-09-28T20:39:22.9994070Z 2288 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:22.9994629Z 2289 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-28T20:39:22.9995159Z 2290 | |          usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
2019-09-28T20:39:23.0001140Z 
2019-09-28T20:39:23.1375754Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:23.1376467Z     --> src/libcore/num/mod.rs:3048:17
2019-09-28T20:39:23.1376889Z      |
2019-09-28T20:39:23.1376889Z      |
2019-09-28T20:39:23.1377555Z 2294 | / macro_rules! uint_impl {
2019-09-28T20:39:23.1378560Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-28T20:39:23.1378925Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:23.1379472Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:23.1380081Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:23.1380438Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:23.1380926Z ...    |
2019-09-28T20:39:23.1381260Z 4028 | |     }
2019-09-28T20:39:23.1381260Z 4028 | |     }
2019-09-28T20:39:23.1381574Z 4029 | | }
2019-09-28T20:39:23.1381889Z      | |_- in this expansion of `uint_impl!`
2019-09-28T20:39:23.1382117Z ...
2019-09-28T20:39:23.1382521Z 4033 | /     uint_impl! { u8, u8, 8, 255, "", "", 2, "0x82", "0xa", "0x12", "0x12", "0x48", "[0x12]",
2019-09-28T20:39:23.1382847Z 4034 | |         "[0x12]", "", "" }
2019-09-28T20:39:23.1411622Z 
2019-09-28T20:39:23.1984959Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:23.1985373Z     --> src/libcore/num/mod.rs:3048:17
2019-09-28T20:39:23.1985605Z      |
2019-09-28T20:39:23.1985605Z      |
2019-09-28T20:39:23.1986190Z 2294 | / macro_rules! uint_impl {
2019-09-28T20:39:23.1986578Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-28T20:39:23.1986953Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:23.1987290Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:23.1987886Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:23.1988232Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:23.1988477Z ...    |
2019-09-28T20:39:23.1988758Z 4028 | |     }
2019-09-28T20:39:23.1988758Z 4028 | |     }
2019-09-28T20:39:23.1989164Z 4029 | | }
2019-09-28T20:39:23.1989513Z      | |_- in this expansion of `uint_impl!`
2019-09-28T20:39:23.1989726Z ...
2019-09-28T20:39:23.1990671Z 4552 | /     uint_impl! { u16, u16, 16, 65535, "", "", 4, "0xa003", "0x3a", "0x1234", "0x3412", "0x2c48",
2019-09-28T20:39:23.1991029Z 4553 | |         "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
2019-09-28T20:39:23.1996052Z 
2019-09-28T20:39:23.2219662Z    Compiling rustc_asan v0.0.0 (/checkout/src/librustc_asan)
2019-09-28T20:39:23.2464726Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:23.2465091Z     --> src/libcore/num/mod.rs:3048:17
2019-09-28T20:39:23.2465091Z     --> src/libcore/num/mod.rs:3048:17
2019-09-28T20:39:23.2465319Z      |
2019-09-28T20:39:23.2465635Z 2294 | / macro_rules! uint_impl {
2019-09-28T20:39:23.2465989Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-28T20:39:23.2466369Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:23.2466734Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:23.2467307Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:23.2467620Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:23.2467855Z ...    |
2019-09-28T20:39:23.2468501Z 4028 | |     }
2019-09-28T20:39:23.2468501Z 4028 | |     }
2019-09-28T20:39:23.2468775Z 4029 | | }
2019-09-28T20:39:23.2469080Z      | |_- in this expansion of `uint_impl!`
2019-09-28T20:39:23.2469306Z ...
2019-09-28T20:39:23.2469663Z 4558 | /     uint_impl! { u32, u32, 32, 4294967295, "", "", 8, "0x10000b3", "0xb301", "0x12345678",
2019-09-28T20:39:23.2470484Z 4559 | |         "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]", "[0x12, 0x34, 0x56, 0x78]", "", "" }
2019-09-28T20:39:23.2475634Z 
2019-09-28T20:39:23.2985924Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:23.2986494Z     --> src/libcore/num/mod.rs:3048:17
2019-09-28T20:39:23.2986761Z      |
2019-09-28T20:39:23.2986761Z      |
2019-09-28T20:39:23.2987058Z 2294 | / macro_rules! uint_impl {
2019-09-28T20:39:23.2987384Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-28T20:39:23.2987724Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:23.2988045Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:23.2988581Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:23.2988870Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:23.2989088Z ...    |
2019-09-28T20:39:23.2989358Z 4028 | |     }
2019-09-28T20:39:23.2989358Z 4028 | |     }
2019-09-28T20:39:23.2989605Z 4029 | | }
2019-09-28T20:39:23.2990480Z      | |_- in this expansion of `uint_impl!`
2019-09-28T20:39:23.2990735Z ...
2019-09-28T20:39:23.2991135Z 4564 | /     uint_impl! { u64, u64, 64, 18446744073709551615, "", "", 12, "0xaa00000000006e1", "0x6e10aa",
2019-09-28T20:39:23.2991536Z 4565 | |         "0x1234567890123456", "0x5634129078563412", "0x6a2c48091e6a2c48",
2019-09-28T20:39:23.2991896Z 4566 | |         "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:23.2992252Z 4567 | |         "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-28T20:39:23.2992772Z 4568 | |         "", ""}
2019-09-28T20:39:23.2997817Z 
2019-09-28T20:39:23.3510673Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:23.3511070Z     --> src/libcore/num/mod.rs:3048:17
2019-09-28T20:39:23.3511336Z      |
2019-09-28T20:39:23.3511336Z      |
2019-09-28T20:39:23.3511652Z 2294 | / macro_rules! uint_impl {
2019-09-28T20:39:23.3512026Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-28T20:39:23.3512438Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:23.3513006Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:23.3513982Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:23.3514291Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:23.3514544Z ...    |
2019-09-28T20:39:23.3514829Z 4028 | |     }
2019-09-28T20:39:23.3514829Z 4028 | |     }
2019-09-28T20:39:23.3515098Z 4029 | | }
2019-09-28T20:39:23.3515411Z      | |_- in this expansion of `uint_impl!`
2019-09-28T20:39:23.3515623Z ...
2019-09-28T20:39:23.3516162Z 4573 | /     uint_impl! { u128, u128, 128, 340282366920938463463374607431768211455, "", "", 16,
2019-09-28T20:39:23.3516570Z 4574 | |         "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
2019-09-28T20:39:23.3517128Z 4575 | |         "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
2019-09-28T20:39:23.3517657Z 4576 | |         "[0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, \
2019-09-28T20:39:23.3517923Z ...    |
2019-09-28T20:39:23.3518635Z 4579 | |           0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]",
2019-09-28T20:39:23.3519283Z 4580 | |          "", ""}
2019-09-28T20:39:23.3524461Z 
2019-09-28T20:39:23.3807629Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-28T20:39:23.3808218Z     --> src/libcore/num/mod.rs:3048:17
2019-09-28T20:39:23.3808595Z      |
2019-09-28T20:39:23.3808595Z      |
2019-09-28T20:39:23.3809021Z 2294 | / macro_rules! uint_impl {
2019-09-28T20:39:23.3809369Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-28T20:39:23.3809687Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-28T20:39:23.3810490Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-28T20:39:23.3811104Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-28T20:39:23.3811457Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-28T20:39:23.3811845Z ...    |
2019-09-28T20:39:23.3812203Z 4028 | |     }
2019-09-28T20:39:23.3812203Z 4028 | |     }
2019-09-28T20:39:23.3812494Z 4029 | | }
2019-09-28T20:39:23.3812807Z      | |_- in this expansion of `uint_impl!`
2019-09-28T20:39:23.3813042Z ...
2019-09-28T20:39:23.3813595Z 4601 | /     uint_impl! { usize, u64, 64, 18446744073709551615, "", "", 12, "0xaa00000000006e1", "0x6e10aa",
2019-09-28T20:39:23.3813928Z 4602 | |         "0x1234567890123456", "0x5634129078563412", "0x6a2c48091e6a2c48",
2019-09-28T20:39:23.3814469Z 4603 | |         "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-28T20:39:23.3815162Z 4604 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
---
2019-09-28T20:39:28.9878691Z == clock drift check ==
2019-09-28T20:39:28.9893497Z   local time: Sat Sep 28 20:39:28 UTC 2019
2019-09-28T20:39:29.1385293Z   network time: Sat, 28 Sep 2019 20:39:29 GMT
2019-09-28T20:39:29.1393669Z == end clock drift check ==
2019-09-28T20:39:30.8250207Z ##[error]Bash exited with code '1'.
2019-09-28T20:39:30.8411942Z ##[section]Starting: Checkout
2019-09-28T20:39:30.8414721Z ==============================================================================
2019-09-28T20:39:30.8414807Z Task         : Get sources
2019-09-28T20:39:30.8414854Z 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)

Moves fn checking in const context into the Checker. This is better for 
reusing via Checker api.
@rust-highfive
Copy link
Collaborator

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-09-28T23:33:43.2086079Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-28T23:33:43.2301099Z ##[command]git config gc.auto 0
2019-09-28T23:33:43.2374695Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-28T23:33:43.2431242Z ##[command]git config --get-all http.proxy
2019-09-28T23:33:43.2568569Z ##[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/61835/merge:refs/remotes/pull/61835/merge
---
2019-09-29T00:03:50.8376695Z    Compiling rustc_msan v0.0.0 (/checkout/src/librustc_msan)
2019-09-29T00:03:51.0670459Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.0670842Z     --> src/libcore/num/mod.rs:1115:17
2019-09-29T00:03:51.0671094Z      |
2019-09-29T00:03:51.0671854Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.0672267Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.0673150Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.0673548Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.0674181Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:51.0674532Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.0674790Z ...    |
2019-09-29T00:03:51.0675233Z 2224 | |     }
2019-09-29T00:03:51.0675233Z 2224 | |     }
2019-09-29T00:03:51.0675523Z 2225 | | }
2019-09-29T00:03:51.0675813Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.0676011Z ...
2019-09-29T00:03:51.0676372Z 2229 | /     int_impl! { i8, i8, u8, 8, -128, 127, "", "", 2, "-0x7e", "0xa", "0x12", "0x12", "0x48",
2019-09-29T00:03:51.0676677Z 2230 | |         "[0x12]", "[0x12]", "", "" }
2019-09-29T00:03:51.0682329Z 
2019-09-29T00:03:51.1146881Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.1147281Z     --> src/libcore/num/mod.rs:1115:17
2019-09-29T00:03:51.1147506Z      |
2019-09-29T00:03:51.1147506Z      |
2019-09-29T00:03:51.1147801Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.1148193Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.1148561Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.1148892Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.1149490Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:51.1149815Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.1150057Z ...    |
2019-09-29T00:03:51.1150334Z 2224 | |     }
2019-09-29T00:03:51.1150334Z 2224 | |     }
2019-09-29T00:03:51.1150624Z 2225 | | }
2019-09-29T00:03:51.1150921Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.1151843Z ...
2019-09-29T00:03:51.1152420Z 2235 | /     int_impl! { i16, i16, u16, 16, -32768, 32767, "", "", 4, "-0x5ffd", "0x3a", "0x1234", "0x3412",
2019-09-29T00:03:51.1152835Z 2236 | |         "0x2c48", "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
2019-09-29T00:03:51.1153341Z 
2019-09-29T00:03:51.1749312Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.1749713Z     --> src/libcore/num/mod.rs:1115:17
2019-09-29T00:03:51.1749980Z      |
2019-09-29T00:03:51.1749980Z      |
2019-09-29T00:03:51.1750308Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.1750685Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.1751046Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.1751405Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.1752476Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:51.1752836Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.1753095Z ...    |
2019-09-29T00:03:51.1753411Z 2224 | |     }
2019-09-29T00:03:51.1753411Z 2224 | |     }
2019-09-29T00:03:51.1753704Z 2225 | | }
2019-09-29T00:03:51.1754019Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.1754260Z ...
2019-09-29T00:03:51.1754650Z 2241 | /     int_impl! { i32, i32, u32, 32, -2147483648, 2147483647, "", "", 8, "0x10000b3", "0xb301",
2019-09-29T00:03:51.1755223Z 2242 | |         "0x12345678", "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.1755569Z 2243 | |         "[0x12, 0x34, 0x56, 0x78]", "", "" }
2019-09-29T00:03:51.1760697Z 
2019-09-29T00:03:51.2270144Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.2270502Z     --> src/libcore/num/mod.rs:1115:17
2019-09-29T00:03:51.2270755Z      |
2019-09-29T00:03:51.2270755Z      |
2019-09-29T00:03:51.2271726Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.2272307Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.2272746Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.2273119Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.2273720Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:51.2274091Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.2274354Z ...    |
2019-09-29T00:03:51.2274648Z 2224 | |     }
2019-09-29T00:03:51.2274648Z 2224 | |     }
2019-09-29T00:03:51.2275252Z 2225 | | }
2019-09-29T00:03:51.2275525Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.2275716Z ...
2019-09-29T00:03:51.2276068Z 2248 | /     int_impl! { i64, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "", 12,
2019-09-29T00:03:51.2276412Z 2249 | |          "0xaa00000000006e1", "0x6e10aa", "0x1234567890123456", "0x5634129078563412",
2019-09-29T00:03:51.2276786Z 2250 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.2277114Z 2251 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]", "", "" }
2019-09-29T00:03:51.2277501Z 
2019-09-29T00:03:51.2792095Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.2792493Z     --> src/libcore/num/mod.rs:1115:17
2019-09-29T00:03:51.2792806Z      |
2019-09-29T00:03:51.2792806Z      |
2019-09-29T00:03:51.2793136Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.2793546Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.2793936Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.2794283Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.2795047Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:51.2795679Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.2795965Z ...    |
2019-09-29T00:03:51.2796229Z 2224 | |     }
2019-09-29T00:03:51.2796229Z 2224 | |     }
2019-09-29T00:03:51.2796505Z 2225 | | }
2019-09-29T00:03:51.2796790Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.2796986Z ...
2019-09-29T00:03:51.2797337Z 2256 | /     int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728,
2019-09-29T00:03:51.2797686Z 2257 | |         170141183460469231731687303715884105727, "", "", 16,
2019-09-29T00:03:51.2798054Z 2258 | |         "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
2019-09-29T00:03:51.2798448Z 2259 | |         "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
2019-09-29T00:03:51.2798681Z ...    |
2019-09-29T00:03:51.2799027Z 2262 | |         "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, \
2019-09-29T00:03:51.2799359Z 2263 | |           0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]", "", "" }
2019-09-29T00:03:51.2799777Z 
2019-09-29T00:03:51.3348645Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.3349012Z     --> src/libcore/num/mod.rs:1115:17
2019-09-29T00:03:51.3349257Z      |
2019-09-29T00:03:51.3349257Z      |
2019-09-29T00:03:51.3349536Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.3349880Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.3350302Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.3350620Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.3351171Z 1115 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:51.3351929Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.3352221Z ...    |
2019-09-29T00:03:51.3352770Z 2224 | |     }
2019-09-29T00:03:51.3352770Z 2224 | |     }
2019-09-29T00:03:51.3353167Z 2225 | | }
2019-09-29T00:03:51.3353540Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.3353757Z ...
2019-09-29T00:03:51.3354149Z 2286 | /     int_impl! { isize, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "",
2019-09-29T00:03:51.3354545Z 2287 | |         12, "0xaa00000000006e1", "0x6e10aa",  "0x1234567890123456", "0x5634129078563412",
2019-09-29T00:03:51.3355090Z 2288 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.3355480Z 2289 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-29T00:03:51.3355830Z 2290 | |          usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
2019-09-29T00:03:51.3356600Z 
2019-09-29T00:03:51.3528103Z    Compiling rustc_asan v0.0.0 (/checkout/src/librustc_asan)
2019-09-29T00:03:51.3949096Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.3949453Z     --> src/libcore/num/mod.rs:1138:17
2019-09-29T00:03:51.3949453Z     --> src/libcore/num/mod.rs:1138:17
2019-09-29T00:03:51.3949670Z      |
2019-09-29T00:03:51.3949986Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.3950335Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.3950699Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.3951017Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.3951244Z ...    |
2019-09-29T00:03:51.3951975Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-29T00:03:51.3952630Z ...    |
2019-09-29T00:03:51.3952941Z 2224 | |     }
2019-09-29T00:03:51.3953227Z 2225 | | }
2019-09-29T00:03:51.3953227Z 2225 | | }
2019-09-29T00:03:51.3953552Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.3953768Z ...
2019-09-29T00:03:51.3954143Z 2229 | /     int_impl! { i8, i8, u8, 8, -128, 127, "", "", 2, "-0x7e", "0xa", "0x12", "0x12", "0x48",
2019-09-29T00:03:51.3954871Z 2230 | |         "[0x12]", "[0x12]", "", "" }
2019-09-29T00:03:51.3973048Z 
2019-09-29T00:03:51.4589723Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.4590075Z     --> src/libcore/num/mod.rs:1138:17
2019-09-29T00:03:51.4590297Z      |
2019-09-29T00:03:51.4590297Z      |
2019-09-29T00:03:51.4590611Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.4591008Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.4591393Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.4592169Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.4592435Z ...    |
2019-09-29T00:03:51.4592788Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-29T00:03:51.4593388Z ...    |
2019-09-29T00:03:51.4593704Z 2224 | |     }
2019-09-29T00:03:51.4593995Z 2225 | | }
2019-09-29T00:03:51.4593995Z 2225 | | }
2019-09-29T00:03:51.4594306Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.4594540Z ...
2019-09-29T00:03:51.4594938Z 2235 | /     int_impl! { i16, i16, u16, 16, -32768, 32767, "", "", 4, "-0x5ffd", "0x3a", "0x1234", "0x3412",
2019-09-29T00:03:51.4595456Z 2236 | |         "0x2c48", "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
2019-09-29T00:03:51.4595850Z 
2019-09-29T00:03:51.5149650Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.5149994Z     --> src/libcore/num/mod.rs:1138:17
2019-09-29T00:03:51.5150216Z      |
2019-09-29T00:03:51.5150216Z      |
2019-09-29T00:03:51.5150521Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.5150870Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.5151238Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.5152548Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.5152860Z ...    |
2019-09-29T00:03:51.5153221Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-29T00:03:51.5153822Z ...    |
2019-09-29T00:03:51.5154113Z 2224 | |     }
2019-09-29T00:03:51.5154400Z 2225 | | }
2019-09-29T00:03:51.5154400Z 2225 | | }
2019-09-29T00:03:51.5154750Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.5154972Z ...
2019-09-29T00:03:51.5155489Z 2241 | /     int_impl! { i32, i32, u32, 32, -2147483648, 2147483647, "", "", 8, "0x10000b3", "0xb301",
2019-09-29T00:03:51.5155851Z 2242 | |         "0x12345678", "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.5156155Z 2243 | |         "[0x12, 0x34, 0x56, 0x78]", "", "" }
2019-09-29T00:03:51.5156534Z 
2019-09-29T00:03:51.5799850Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.5800235Z     --> src/libcore/num/mod.rs:1138:17
2019-09-29T00:03:51.5800455Z      |
2019-09-29T00:03:51.5800455Z      |
2019-09-29T00:03:51.5800736Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.5801102Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.5801453Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.5802423Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.5802728Z ...    |
2019-09-29T00:03:51.5803064Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-29T00:03:51.5803671Z ...    |
2019-09-29T00:03:51.5803961Z 2224 | |     }
2019-09-29T00:03:51.5804265Z 2225 | | }
2019-09-29T00:03:51.5804265Z 2225 | | }
2019-09-29T00:03:51.5804578Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.5805061Z ...
2019-09-29T00:03:51.5805561Z 2248 | /     int_impl! { i64, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "", 12,
2019-09-29T00:03:51.5805987Z 2249 | |          "0xaa00000000006e1", "0x6e10aa", "0x1234567890123456", "0x5634129078563412",
2019-09-29T00:03:51.5806375Z 2250 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.5806768Z 2251 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]", "", "" }
2019-09-29T00:03:51.5807225Z 
2019-09-29T00:03:51.6349946Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.6350299Z     --> src/libcore/num/mod.rs:1138:17
2019-09-29T00:03:51.6350542Z      |
2019-09-29T00:03:51.6350542Z      |
2019-09-29T00:03:51.6350822Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.6351167Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.6351955Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.6352438Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.6352729Z ...    |
2019-09-29T00:03:51.6353066Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-29T00:03:51.6353667Z ...    |
2019-09-29T00:03:51.6353955Z 2224 | |     }
2019-09-29T00:03:51.6354256Z 2225 | | }
2019-09-29T00:03:51.6354256Z 2225 | | }
2019-09-29T00:03:51.6354597Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.6354819Z ...
2019-09-29T00:03:51.6355358Z 2256 | /     int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728,
2019-09-29T00:03:51.6355703Z 2257 | |         170141183460469231731687303715884105727, "", "", 16,
2019-09-29T00:03:51.6356068Z 2258 | |         "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
2019-09-29T00:03:51.6356447Z 2259 | |         "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
2019-09-29T00:03:51.6356918Z ...    |
2019-09-29T00:03:51.6357360Z 2262 | |         "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, \
2019-09-29T00:03:51.6357722Z 2263 | |           0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]", "", "" }
2019-09-29T00:03:51.6358119Z 
2019-09-29T00:03:51.6758696Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.6759083Z     --> src/libcore/num/mod.rs:1138:17
2019-09-29T00:03:51.6759301Z      |
2019-09-29T00:03:51.6759301Z      |
2019-09-29T00:03:51.6759582Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.6759942Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.6760282Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.6760608Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.6760834Z ...    |
2019-09-29T00:03:51.6761135Z 1138 | |                 intrinsics::wrapping_sub(self, rhs)
2019-09-29T00:03:51.6762214Z ...    |
2019-09-29T00:03:51.6762506Z 2224 | |     }
2019-09-29T00:03:51.6762820Z 2225 | | }
2019-09-29T00:03:51.6762820Z 2225 | | }
2019-09-29T00:03:51.6763132Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.6763349Z ...
2019-09-29T00:03:51.6763743Z 2286 | /     int_impl! { isize, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "",
2019-09-29T00:03:51.6764159Z 2287 | |         12, "0xaa00000000006e1", "0x6e10aa",  "0x1234567890123456", "0x5634129078563412",
2019-09-29T00:03:51.6764573Z 2288 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.6764936Z 2289 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-29T00:03:51.6765414Z 2290 | |          usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
2019-09-29T00:03:51.6765991Z 
2019-09-29T00:03:51.7106897Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.7107258Z     --> src/libcore/num/mod.rs:1160:17
2019-09-29T00:03:51.7107467Z      |
2019-09-29T00:03:51.7107467Z      |
2019-09-29T00:03:51.7107761Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.7108099Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.7108434Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.7108782Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.7109296Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-29T00:03:51.7109605Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.7109836Z ...    |
2019-09-29T00:03:51.7110108Z 2224 | |     }
2019-09-29T00:03:51.7110108Z 2224 | |     }
2019-09-29T00:03:51.7110365Z 2225 | | }
2019-09-29T00:03:51.7110648Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.7110870Z ...
2019-09-29T00:03:51.7111659Z 2229 | /     int_impl! { i8, i8, u8, 8, -128, 127, "", "", 2, "-0x7e", "0xa", "0x12", "0x12", "0x48",
2019-09-29T00:03:51.7112040Z 2230 | |         "[0x12]", "[0x12]", "", "" }
2019-09-29T00:03:51.7112450Z 
2019-09-29T00:03:51.7477704Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.7478083Z     --> src/libcore/num/mod.rs:1160:17
2019-09-29T00:03:51.7478288Z      |
2019-09-29T00:03:51.7478288Z      |
2019-09-29T00:03:51.7478588Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.7479104Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.7479448Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.7479779Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.7480913Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-29T00:03:51.7481363Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.7481641Z ...    |
2019-09-29T00:03:51.7481938Z 2224 | |     }
2019-09-29T00:03:51.7481938Z 2224 | |     }
2019-09-29T00:03:51.7482214Z 2225 | | }
2019-09-29T00:03:51.7482512Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.7482740Z ...
2019-09-29T00:03:51.7483126Z 2235 | /     int_impl! { i16, i16, u16, 16, -32768, 32767, "", "", 4, "-0x5ffd", "0x3a", "0x1234", "0x3412",
2019-09-29T00:03:51.7483488Z 2236 | |         "0x2c48", "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
2019-09-29T00:03:51.7483910Z 
2019-09-29T00:03:51.7870021Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.7870381Z     --> src/libcore/num/mod.rs:1160:17
2019-09-29T00:03:51.7870593Z      |
2019-09-29T00:03:51.7870593Z      |
2019-09-29T00:03:51.7870871Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.7871281Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.7872079Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.7872501Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.7873084Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-29T00:03:51.7873438Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.7873705Z ...    |
2019-09-29T00:03:51.7874001Z 2224 | |     }
2019-09-29T00:03:51.7874001Z 2224 | |     }
2019-09-29T00:03:51.7874311Z 2225 | | }
2019-09-29T00:03:51.7874619Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.7874855Z ...
2019-09-29T00:03:51.7875395Z 2241 | /     int_impl! { i32, i32, u32, 32, -2147483648, 2147483647, "", "", 8, "0x10000b3", "0xb301",
2019-09-29T00:03:51.7875752Z 2242 | |         "0x12345678", "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.7876323Z 2243 | |         "[0x12, 0x34, 0x56, 0x78]", "", "" }
2019-09-29T00:03:51.7876796Z 
2019-09-29T00:03:51.8215986Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.8216312Z     --> src/libcore/num/mod.rs:1160:17
2019-09-29T00:03:51.8216524Z      |
2019-09-29T00:03:51.8216524Z      |
2019-09-29T00:03:51.8216831Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.8217179Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.8217586Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.8217904Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.8218460Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-29T00:03:51.8218760Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.8218989Z ...    |
2019-09-29T00:03:51.8219283Z 2224 | |     }
2019-09-29T00:03:51.8219283Z 2224 | |     }
2019-09-29T00:03:51.8219548Z 2225 | | }
2019-09-29T00:03:51.8219851Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.8220051Z ...
2019-09-29T00:03:51.8220395Z 2248 | /     int_impl! { i64, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "", 12,
2019-09-29T00:03:51.8220767Z 2249 | |          "0xaa00000000006e1", "0x6e10aa", "0x1234567890123456", "0x5634129078563412",
2019-09-29T00:03:51.8221120Z 2250 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.8221862Z 2251 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]", "", "" }
2019-09-29T00:03:51.8222376Z 
2019-09-29T00:03:51.8669605Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.8669970Z     --> src/libcore/num/mod.rs:1160:17
2019-09-29T00:03:51.8670184Z      |
2019-09-29T00:03:51.8670184Z      |
2019-09-29T00:03:51.8670484Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.8671208Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.8671977Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.8672421Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.8673034Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-29T00:03:51.8673371Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.8673640Z ...    |
2019-09-29T00:03:51.8673959Z 2224 | |     }
2019-09-29T00:03:51.8673959Z 2224 | |     }
2019-09-29T00:03:51.8674253Z 2225 | | }
2019-09-29T00:03:51.8674562Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.8674802Z ...
2019-09-29T00:03:51.8675329Z 2256 | /     int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728,
2019-09-29T00:03:51.8675656Z 2257 | |         170141183460469231731687303715884105727, "", "", 16,
2019-09-29T00:03:51.8676063Z 2258 | |         "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
2019-09-29T00:03:51.8676416Z 2259 | |         "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
2019-09-29T00:03:51.8676665Z ...    |
2019-09-29T00:03:51.8676985Z 2262 | |         "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, \
2019-09-29T00:03:51.8677315Z 2263 | |           0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]", "", "" }
2019-09-29T00:03:51.8677726Z 
2019-09-29T00:03:51.9272595Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:51.9273017Z     --> src/libcore/num/mod.rs:1160:17
2019-09-29T00:03:51.9273253Z      |
2019-09-29T00:03:51.9273253Z      |
2019-09-29T00:03:51.9273580Z 238  | / macro_rules! int_impl {
2019-09-29T00:03:51.9273964Z 239  | |     ($SelfT:ty, $ActualT:ident, $UnsignedT:ty, $BITS:expr, $Min:expr, $Max:expr, $Feature:expr,
2019-09-29T00:03:51.9274346Z 240  | |      $EndFeature:expr, $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:51.9275084Z 241  | |      $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:51.9275986Z 1160 | |                 intrinsics::wrapping_mul(self, rhs)
2019-09-29T00:03:51.9276306Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:51.9276707Z ...    |
2019-09-29T00:03:51.9276996Z 2224 | |     }
2019-09-29T00:03:51.9276996Z 2224 | |     }
2019-09-29T00:03:51.9277266Z 2225 | | }
2019-09-29T00:03:51.9277567Z      | |_- in this expansion of `int_impl!`
2019-09-29T00:03:51.9277796Z ...
2019-09-29T00:03:51.9278151Z 2286 | /     int_impl! { isize, i64, u64, 64, -9223372036854775808, 9223372036854775807, "", "",
2019-09-29T00:03:51.9278517Z 2287 | |         12, "0xaa00000000006e1", "0x6e10aa",  "0x1234567890123456", "0x5634129078563412",
2019-09-29T00:03:51.9278900Z 2288 | |          "0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:51.9279235Z 2289 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-29T00:03:51.9279607Z 2290 | |          usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
2019-09-29T00:03:51.9280625Z 
2019-09-29T00:03:52.0453168Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:52.0453520Z     --> src/libcore/num/mod.rs:3048:17
2019-09-29T00:03:52.0453748Z      |
2019-09-29T00:03:52.0453748Z      |
2019-09-29T00:03:52.0454052Z 2294 | / macro_rules! uint_impl {
2019-09-29T00:03:52.0454429Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-29T00:03:52.0454793Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:52.0455116Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:52.0455685Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:52.0455982Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:52.0456494Z ...    |
2019-09-29T00:03:52.0456870Z 4028 | |     }
2019-09-29T00:03:52.0456870Z 4028 | |     }
2019-09-29T00:03:52.0457170Z 4029 | | }
2019-09-29T00:03:52.0457477Z      | |_- in this expansion of `uint_impl!`
2019-09-29T00:03:52.0457678Z ...
2019-09-29T00:03:52.0458019Z 4033 | /     uint_impl! { u8, u8, 8, 255, "", "", 2, "0x82", "0xa", "0x12", "0x12", "0x48", "[0x12]",
2019-09-29T00:03:52.0458323Z 4034 | |         "[0x12]", "", "" }
2019-09-29T00:03:52.0462741Z 
2019-09-29T00:03:52.0834360Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:52.0834731Z     --> src/libcore/num/mod.rs:3048:17
2019-09-29T00:03:52.0834970Z      |
2019-09-29T00:03:52.0834970Z      |
2019-09-29T00:03:52.0835468Z 2294 | / macro_rules! uint_impl {
2019-09-29T00:03:52.0835805Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-29T00:03:52.0836148Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:52.0836471Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:52.0837016Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:52.0837306Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:52.0837532Z ...    |
2019-09-29T00:03:52.0837806Z 4028 | |     }
2019-09-29T00:03:52.0837806Z 4028 | |     }
2019-09-29T00:03:52.0838055Z 4029 | | }
2019-09-29T00:03:52.0838363Z      | |_- in this expansion of `uint_impl!`
2019-09-29T00:03:52.0838558Z ...
2019-09-29T00:03:52.0838905Z 4552 | /     uint_impl! { u16, u16, 16, 65535, "", "", 4, "0xa003", "0x3a", "0x1234", "0x3412", "0x2c48",
2019-09-29T00:03:52.0839228Z 4553 | |         "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
2019-09-29T00:03:52.0844313Z 
2019-09-29T00:03:52.1197122Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:52.1197541Z     --> src/libcore/num/mod.rs:3048:17
2019-09-29T00:03:52.1198046Z      |
2019-09-29T00:03:52.1198046Z      |
2019-09-29T00:03:52.1198480Z 2294 | / macro_rules! uint_impl {
2019-09-29T00:03:52.1199162Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-29T00:03:52.1199737Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:52.1200147Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:52.1200702Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:52.1201030Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:52.1201260Z ...    |
2019-09-29T00:03:52.1202147Z 4028 | |     }
2019-09-29T00:03:52.1202147Z 4028 | |     }
2019-09-29T00:03:52.1202444Z 4029 | | }
2019-09-29T00:03:52.1202763Z      | |_- in this expansion of `uint_impl!`
2019-09-29T00:03:52.1203005Z ...
2019-09-29T00:03:52.1203390Z 4558 | /     uint_impl! { u32, u32, 32, 4294967295, "", "", 8, "0x10000b3", "0xb301", "0x12345678",
2019-09-29T00:03:52.1203846Z 4559 | |         "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]", "[0x12, 0x34, 0x56, 0x78]", "", "" }
2019-09-29T00:03:52.1204351Z 
2019-09-29T00:03:52.1538460Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:52.1538875Z     --> src/libcore/num/mod.rs:3048:17
2019-09-29T00:03:52.1539097Z      |
2019-09-29T00:03:52.1539097Z      |
2019-09-29T00:03:52.1539417Z 2294 | / macro_rules! uint_impl {
2019-09-29T00:03:52.1539872Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-29T00:03:52.1540487Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:52.1540880Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:52.1542212Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:52.1542548Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:52.1543077Z ...    |
2019-09-29T00:03:52.1543507Z 4028 | |     }
2019-09-29T00:03:52.1543507Z 4028 | |     }
2019-09-29T00:03:52.1543836Z 4029 | | }
2019-09-29T00:03:52.1544170Z      | |_- in this expansion of `uint_impl!`
2019-09-29T00:03:52.1544390Z ...
2019-09-29T00:03:52.1544780Z 4564 | /     uint_impl! { u64, u64, 64, 18446744073709551615, "", "", 12, "0xaa00000000006e1", "0x6e10aa",
2019-09-29T00:03:52.1545434Z 4565 | |         "0x1234567890123456", "0x5634129078563412", "0x6a2c48091e6a2c48",
2019-09-29T00:03:52.1545791Z 4566 | |         "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:52.1546126Z 4567 | |         "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-29T00:03:52.1546430Z 4568 | |         "", ""}
2019-09-29T00:03:52.1546800Z 
2019-09-29T00:03:52.1931837Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:52.1932312Z     --> src/libcore/num/mod.rs:3048:17
2019-09-29T00:03:52.1933381Z      |
2019-09-29T00:03:52.1933381Z      |
2019-09-29T00:03:52.1933773Z 2294 | / macro_rules! uint_impl {
2019-09-29T00:03:52.1934195Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-29T00:03:52.1934624Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:52.1935001Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:52.1935681Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:52.1936070Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:52.1936379Z ...    |
2019-09-29T00:03:52.1936704Z 4028 | |     }
2019-09-29T00:03:52.1936704Z 4028 | |     }
2019-09-29T00:03:52.1937027Z 4029 | | }
2019-09-29T00:03:52.1937402Z      | |_- in this expansion of `uint_impl!`
2019-09-29T00:03:52.1937662Z ...
2019-09-29T00:03:52.1938067Z 4573 | /     uint_impl! { u128, u128, 128, 340282366920938463463374607431768211455, "", "", 16,
2019-09-29T00:03:52.1939005Z 4574 | |         "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
2019-09-29T00:03:52.1939487Z 4575 | |         "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
2019-09-29T00:03:52.1939912Z 4576 | |         "[0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, \
2019-09-29T00:03:52.1940203Z ...    |
2019-09-29T00:03:52.1940586Z 4579 | |           0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]",
2019-09-29T00:03:52.1940952Z 4580 | |          "", ""}
2019-09-29T00:03:52.1941710Z 
2019-09-29T00:03:52.2317764Z error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
2019-09-29T00:03:52.2318227Z     --> src/libcore/num/mod.rs:3048:17
2019-09-29T00:03:52.2318915Z      |
2019-09-29T00:03:52.2318915Z      |
2019-09-29T00:03:52.2319477Z 2294 | / macro_rules! uint_impl {
2019-09-29T00:03:52.2319911Z 2295 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,
2019-09-29T00:03:52.2320298Z 2296 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2019-09-29T00:03:52.2320712Z 2297 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
2019-09-29T00:03:52.2321330Z 3048 | |                 intrinsics::wrapping_add(self, rhs)
2019-09-29T00:03:52.2321659Z      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-09-29T00:03:52.2321918Z ...    |
2019-09-29T00:03:52.2322951Z 4028 | |     }
2019-09-29T00:03:52.2322951Z 4028 | |     }
2019-09-29T00:03:52.2323294Z 4029 | | }
2019-09-29T00:03:52.2323670Z      | |_- in this expansion of `uint_impl!`
2019-09-29T00:03:52.2323952Z ...
2019-09-29T00:03:52.2324381Z 4601 | /     uint_impl! { usize, u64, 64, 18446744073709551615, "", "", 12, "0xaa00000000006e1", "0x6e10aa",
2019-09-29T00:03:52.2324792Z 4602 | |         "0x1234567890123456", "0x5634129078563412", "0x6a2c48091e6a2c48",
2019-09-29T00:03:52.2325208Z 4603 | |         "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
2019-09-29T00:03:52.2325761Z 4604 | |          "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]",
2019-09-29T00:03:52.2326683Z 4605 | |         usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
---
2019-09-29T00:03:57.7134523Z == clock drift check ==
2019-09-29T00:03:57.7161356Z   local time: Sun Sep 29 00:03:57 UTC 2019
2019-09-29T00:03:57.8117041Z   network time: Sun, 29 Sep 2019 00:03:57 GMT
2019-09-29T00:03:57.8127858Z == end clock drift check ==
2019-09-29T00:03:59.1900818Z ##[error]Bash exited with code '1'.
2019-09-29T00:03:59.1937712Z ##[section]Starting: Checkout
2019-09-29T00:03:59.1957871Z ==============================================================================
2019-09-29T00:03:59.1957931Z Task         : Get sources
2019-09-29T00:03:59.1957972Z 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)

@bors
Copy link
Contributor

bors commented Sep 29, 2019

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

| "unchecked_shr"
| "rotate_left"
| "rotate_right"
| "add_with_overflow"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wrapping intrinsics seem to be missing from this list. The errors mean the check is working! Awesome! Please add anything to this list that is needed to get the tests passing

@ecstatic-morse
Copy link
Contributor

Hi @vertexclique! After #64470, which is necessary to enable if and match in consts (#49146), there are now two const validation passes that are checked against one another for compatibility. The new one lives in check_consts/validation.rs. Once you resolve merge conflicts in qualify_consts.rs, I would be happy to port your changes over to the new validator.

@JohnCSimon
Copy link
Member

Ping from triage.
@vertexclique This PR has sat idle for the past few days. Can you please address the merge conflict?

Thank you!

@JohnCSimon
Copy link
Member

Pinging again from triage.
@vertexclique This PR has sat idle for the past few days. Can you please address the merge conflict?
cc: @oli-obk @RalfJung

Thank you!

@vertexclique
Copy link
Member Author

I need to debug this even after I resolve the conflicts there are interesting blacklisting occurring for some intrinsics. @oli-obk knows about this situation. Weekend awaits!

@joelpalmer
Copy link

Ping from Triage: Hi @vertexclique - any updates?

@rust-highfive
Copy link
Collaborator

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-10-25T09:36:27.0778933Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-25T09:36:27.1015597Z ##[command]git config gc.auto 0
2019-10-25T09:36:27.1112453Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-25T09:36:27.1182280Z ##[command]git config --get-all http.proxy
2019-10-25T09:36:27.1328760Z ##[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/61835/merge:refs/remotes/pull/61835/merge
---
2019-10-25T09:48:28.9335116Z    Compiling syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
2019-10-25T09:51:32.4844373Z    Compiling rustc_typeck v0.0.0 (/checkout/src/librustc_typeck)
2019-10-25T09:55:21.5044122Z    Compiling rustc_lint v0.0.0 (/checkout/src/librustc_lint)
2019-10-25T09:56:01.3233847Z    Compiling rustc_mir v0.0.0 (/checkout/src/librustc_mir)
2019-10-25T09:56:08.5288916Z error[E0609]: no field `const_transmute` on type `&syntax::feature_gate::Features`
2019-10-25T09:56:08.5292790Z    --> src/librustc_mir/transform/check_consts/ops.rs:308:29
2019-10-25T09:56:08.5293176Z     |
2019-10-25T09:56:08.5293501Z 308 |         Some(tcx.features().const_transmute)
2019-10-25T09:56:08.5293841Z 
2019-10-25T09:56:12.5482232Z error: aborting due to previous error
2019-10-25T09:56:12.5482507Z 
2019-10-25T09:56:12.5490445Z For more information about this error, try `rustc --explain E0609`.
---
2019-10-25T09:57:58.5610387Z   local time: Fri Oct 25 09:57:58 UTC 2019
2019-10-25T09:57:58.6628235Z   network time: Fri, 25 Oct 2019 09:57:58 GMT
2019-10-25T09:57:58.6634820Z == end clock drift check ==
2019-10-25T09:58:01.6606768Z 
2019-10-25T09:58:01.6723110Z ##[error]Bash exited with code '1'.
2019-10-25T09:58:01.6763668Z ##[section]Starting: Checkout
2019-10-25T09:58:01.6765838Z ==============================================================================
2019-10-25T09:58:01.6765922Z Task         : Get sources
2019-10-25T09:58:01.6765976Z 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)

@bors
Copy link
Contributor

bors commented Oct 28, 2019

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

Comment on lines +532 to +535
let is_const_fn =
cx.tcx.is_const_fn(def_id) ||
cx.tcx.is_unstable_const_fn(def_id).is_some() ||
cx.is_const_panic_fn(def_id);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this IsNotPromotable? Shouldn't that check the rustc_promotable attribute instead of allowing all const fn?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah dang I might have mixed this up again with IsNotImplicitlyPromotable...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this can't go wrong anymore, without triggering a mismatch with promote_consts' copy of the logic (although we should make sure this PR updates both properly), which would ICE.

@ecstatic-morse and I will be removing the copy from qualify_consts in a week or two (maybe we just need to wait for beta to branch?), so IsNot(Implicitly) Promotable is going away soon!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just hope we get the intrinsic thing landed as part of this refactor, it's been 4 months or so.^^

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah this PR can land at any time, and I think promote_consts even has the right code already, without another copy of the list of intrinsics.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, but what about the new const checking pass? Does that still allow calling intrinsics?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good question for @ecstatic-morse.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reserved a spot for these checks here. I think we just need to call the is_const_intrinsic from that spot? I dunno if this PR makes additional changes to the validation logic though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I missed that this was baked into in_const_fn now (see below), I think this PR just needs to remove that return along with the FIXME above it.

@RalfJung
Copy link
Member

RalfJung commented Nov 3, 2019

@vertexclique so what is the status? This has been dragging on for quite a while at this point.

Mind if I take over? I'd like to finally settle this.

match tcx.fn_sig(def_id).abi() {
Abi::RustIntrinsic |
Abi::PlatformIntrinsic => {
match &tcx.item_name(def_id).as_str()[..] {
Copy link
Contributor

@ecstatic-morse ecstatic-morse Nov 3, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we change this to match on a Symbol instead? This version is needlessly slow.

Copy link
Contributor

@ecstatic-morse ecstatic-morse Nov 3, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, @_nnethercote has been trying to remove queries that are easy to compute to improve performance. I think this could just be a function.

Oh, this isn't actually exported in providers. My bad.

@JohnCSimon
Copy link
Member

JohnCSimon commented Nov 9, 2019

Ping from triage
@vertexclique are there any further updates on this? There's merge conflicts on this PR.

cc: @oli-obk @ecstatic-morse @RalfJung you may as well take over...

@oli-obk
Copy link
Contributor

oli-obk commented Nov 10, 2019

Closing in favour of #66275

@oli-obk oli-obk closed this Nov 10, 2019
bors added a commit that referenced this pull request Dec 4, 2019
…r=RalfJung

Organize intrinsics promotion checks

cc @vertexclique

supersedes #61835

r? @RalfJung
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author.
Projects
None yet
Development

Successfully merging this pull request may close these issues.