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

Use unicode-xid crate instead of libcore #62848

Merged
merged 2 commits into from
Sep 5, 2019
Merged

Conversation

matklad
Copy link
Member

@matklad matklad commented Jul 21, 2019

This PR proposes to remove char::is_xid_start and char::is_xid_continue functions from libcore and use unicode_xid crate from crates.io (note that this crate is already present in rust-lang/rust's Cargo.lock).

Reasons to do this:

  • removing rustc-binary-specific stuff from libcore
  • making sure that, across the ecosystem, there's a single definition of what rust identifier is (unicode-xid has almost 10 million downs, as a proc_macro2 dependency)
  • making it easier to share rustc_lexer crate with rust-analyzer: no need to #[cfg] if we are building as a part of the compiler

Reasons not to do this:

  • increased maintenance burden: we'll need to upgrade unicode version both in libcore and in unicode-xid. However, this shouldn't be a too heavy burden: just running ./unicode.py after new unicode version. I (@matklad) am ready to be a t-compiler side maintainer of unicode-xid. Moreover, given that xid-unicode is an important dependency of syn, someone needs to maintain it anyway.
  • xid-unicode implementation is significantly slower. It uses a more compact table with binary search, instead of a trie. However, this shouldn't matter in practice, because we have fast-path for ascii anyway, and code size savings is a plus. Moreover, in The essence of lexer #59706 not using libcore turned out to be faster, presumably beacause checking for whitespace with match is even faster.
old description

Followup to #59706

r? @eddyb

Note that this doesn't actually remove tables from libcore, to avoid conflict with #62641.

cc unicode-rs/unicode-xid#11

/// be an alphabetic character followed by any number of alphanumeric
/// characters.
/// Parses a word starting at the current position. A word is the same as
/// Rust identifier, except that it can't start with `_` character.
fn word(&mut self) -> &'a str {
Copy link
Member Author

Choose a reason for hiding this comment

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

@petrochenkov
Copy link
Contributor

petrochenkov commented Jul 21, 2019

Note that this doesn't actually remove tables from libcore, to avoid conflict with #62641.

Well, one rebase seems better than a separate PR (especially for code that can be just re-generated).

@matklad
Copy link
Member Author

matklad commented Jul 21, 2019

Makes sense, added a commit that regenerates table using existing unicode version.

However, removing char::is_xid_start from libcore broke the build spectacularly: it was the only place that declared #[feature = "rustc_private"], and compiler now complains that it doesn't know of such a feature, although it is used everywhere.

@rust-highfive
Copy link
Collaborator

The job mingw-check of your PR failed (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-07-21T14:20:23.5596994Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-07-21T14:20:23.5767454Z ##[command]git config gc.auto 0
2019-07-21T14:20:23.5830742Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-07-21T14:20:23.5883742Z ##[command]git config --get-all http.proxy
2019-07-21T14:20:23.6018705Z ##[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/62848/merge:refs/remotes/pull/62848/merge
---
2019-07-21T14:20:56.8300515Z do so (now or later) by using -b with the checkout command again. Example:
2019-07-21T14:20:56.8301706Z 
2019-07-21T14:20:56.8302789Z   git checkout -b <new-branch-name>
2019-07-21T14:20:56.8304296Z 
2019-07-21T14:20:56.8304915Z HEAD is now at e025b9e49 Merge c273da301a627202f5a9f294ddb0c6dee32cc9c5 into 83dfe7b27cf2debecebedd3b038f9a1c2e05e051
2019-07-21T14:20:56.8446049Z ##[section]Starting: Collect CPU-usage statistics in the background
2019-07-21T14:20:56.8450201Z ==============================================================================
2019-07-21T14:20:56.8450283Z Task         : Bash
2019-07-21T14:20:56.8450330Z Description  : Run a Bash script on macOS, Linux, or Windows
---
2019-07-21T14:26:17.5438295Z     Checking hashbrown v0.4.0
2019-07-21T14:26:22.9165185Z error[E0635]: unknown feature `rustc_private`
2019-07-21T14:26:22.9165639Z    --> src/libstd/lib.rs:291:12
2019-07-21T14:26:22.9165814Z     |
2019-07-21T14:26:22.9166041Z 291 | #![feature(rustc_private)]
2019-07-21T14:26:22.9166460Z 
2019-07-21T14:26:23.0230887Z error: aborting due to previous error
2019-07-21T14:26:23.0231016Z 
2019-07-21T14:26:23.0231323Z For more information about this error, try `rustc --explain E0635`.
2019-07-21T14:26:23.0231323Z For more information about this error, try `rustc --explain E0635`.
2019-07-21T14:26:23.0744958Z error: Could not compile `std`.
2019-07-21T14:26:23.0745035Z 
2019-07-21T14:26:23.0745306Z To learn more, run the command again with --verbose.
2019-07-21T14:26:23.0784168Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "check" "--target" "x86_64-unknown-linux-gnu" "-j" "2" "--release" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libstd/Cargo.toml" "--message-format" "json"
2019-07-21T14:26:23.0787599Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap check
2019-07-21T14:26:23.0787655Z Build completed unsuccessfully in 0:02:37
2019-07-21T14:26:23.0787655Z Build completed unsuccessfully in 0:02:37
2019-07-21T14:26:24.8523697Z ##[error]Bash exited with code '1'.
2019-07-21T14:26:24.8558308Z ##[section]Starting: Checkout
2019-07-21T14:26:24.8560448Z ==============================================================================
2019-07-21T14:26:24.8560506Z Task         : Get sources
2019-07-21T14:26:24.8560596Z 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)

@matklad
Copy link
Member Author

matklad commented Jul 22, 2019

cc #62869

@bors
Copy link
Contributor

bors commented Jul 23, 2019

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

@bors bors added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jul 23, 2019
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed (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-07-24T07:54:09.5723893Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-07-24T07:54:09.5932060Z ##[command]git config gc.auto 0
2019-07-24T07:54:09.6014814Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-07-24T07:54:09.6076214Z ##[command]git config --get-all http.proxy
2019-07-24T07:54:10.5949829Z ##[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/62848/merge:refs/remotes/pull/62848/merge
---
2019-07-24T07:54:45.0782742Z do so (now or later) by using -b with the checkout command again. Example:
2019-07-24T07:54:45.0782797Z 
2019-07-24T07:54:45.0783059Z   git checkout -b <new-branch-name>
2019-07-24T07:54:45.0783095Z 
2019-07-24T07:54:45.0783155Z HEAD is now at 909fb43a4 Merge 7e73473603f1f16bc9ff9c5cc304aff478ba80b4 into a7f28678bbf4e16893bb6a718e427504167a9494
2019-07-24T07:54:45.0933937Z ##[section]Starting: Collect CPU-usage statistics in the background
2019-07-24T07:54:45.0936933Z ==============================================================================
2019-07-24T07:54:45.0937000Z Task         : Bash
2019-07-24T07:54:45.0937057Z Description  : Run a Bash script on macOS, Linux, or Windows
---
2019-07-24T08:26:09.4274870Z    Compiling unwind v0.0.0 (/checkout/src/libunwind)
2019-07-24T08:26:09.9558467Z    Compiling compiler_builtins v0.1.17
2019-07-24T08:26:12.5153722Z    Compiling backtrace-sys v0.1.27
2019-07-24T08:26:13.8197780Z    Compiling cmake v0.1.38
2019-07-24T08:26:15.3717164Z error: item has missing stability attribute
2019-07-24T08:26:15.3725078Z     |
2019-07-24T08:26:15.3725078Z     |
2019-07-24T08:26:15.3728790Z 554 |     pub fn __dummy_method_to_pin_the_rustc_private_feature(self) {}
2019-07-24T08:26:15.3733206Z 
2019-07-24T08:26:15.9780698Z error: aborting due to previous error
2019-07-24T08:26:15.9780865Z 
2019-07-24T08:26:16.2445335Z error: Could not compile `core`.
2019-07-24T08:26:16.2445335Z error: Could not compile `core`.
2019-07-24T08:26:16.2446882Z warning: build failed, waiting for other jobs to finish...
2019-07-24T08:26:16.7686730Z error: build failed
2019-07-24T08:26:16.7704873Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libstd/Cargo.toml" "--message-format" "json"
2019-07-24T08:26:16.7705014Z expected success, got: exit code: 101
2019-07-24T08:26:16.7712220Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-07-24T08:26:16.7712501Z Build completed unsuccessfully in 0:24:48
2019-07-24T08:26:17.7638250Z ##[error]Bash exited with code '1'.
2019-07-24T08:26:17.7684081Z ##[section]Starting: Checkout
2019-07-24T08:26:17.7686200Z ==============================================================================
2019-07-24T08:26:17.7686258Z Task         : Get sources
2019-07-24T08:26:17.7686325Z 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 (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-07-24T08:30:50.8231233Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-07-24T08:30:50.8400523Z ##[command]git config gc.auto 0
2019-07-24T08:30:50.8472600Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-07-24T08:30:50.8529579Z ##[command]git config --get-all http.proxy
2019-07-24T08:30:50.8660150Z ##[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/62848/merge:refs/remotes/pull/62848/merge
---
2019-07-24T08:31:25.3553498Z do so (now or later) by using -b with the checkout command again. Example:
2019-07-24T08:31:25.3553749Z 
2019-07-24T08:31:25.3554003Z   git checkout -b <new-branch-name>
2019-07-24T08:31:25.3554052Z 
2019-07-24T08:31:25.3554102Z HEAD is now at 42dc7de18 Merge a71365c56777ef70d99fd6b05dbb2d35f5b4f253 into a7f28678bbf4e16893bb6a718e427504167a9494
2019-07-24T08:31:25.3697674Z ##[section]Starting: Collect CPU-usage statistics in the background
2019-07-24T08:31:25.3701255Z ==============================================================================
2019-07-24T08:31:25.3701317Z Task         : Bash
2019-07-24T08:31:25.3701384Z Description  : Run a Bash script on macOS, Linux, or Windows
---
2019-07-24T09:26:12.5805210Z .................................................................................................... 200/5848
2019-07-24T09:26:16.4404830Z .................................................................................................... 300/5848
2019-07-24T09:26:19.8536631Z .................................................................................................... 400/5848
2019-07-24T09:26:23.2804243Z .................................................................................................... 500/5848
2019-07-24T09:26:26.7974112Z ........................................................................i........................... 600/5848
2019-07-24T09:26:35.1918261Z .................................................................................................... 800/5848
2019-07-24T09:26:40.3695715Z .................................................................................................... 900/5848
2019-07-24T09:26:45.0028294Z ...................................................................................................i 1000/5848
2019-07-24T09:26:45.0028294Z ...................................................................................................i 1000/5848
2019-07-24T09:26:50.1085181Z ...........i........................................................................................ 1100/5848
2019-07-24T09:26:53.7963603Z .............................iiiii.................................................................. 1200/5848
2019-07-24T09:26:59.3960634Z .................................................................................................... 1400/5848
2019-07-24T09:27:01.9217966Z .................................................................................................... 1500/5848
2019-07-24T09:27:05.4366717Z .................................................................................................... 1600/5848
2019-07-24T09:27:07.8905252Z .................................................................................................... 1700/5848
2019-07-24T09:27:07.8905252Z .................................................................................................... 1700/5848
2019-07-24T09:27:11.0394664Z .....................................................................i.............................. 1800/5848
2019-07-24T09:27:19.0862051Z .................................................................................................... 2000/5848
2019-07-24T09:27:23.0580593Z .................................................................................................... 2100/5848
2019-07-24T09:27:26.5506085Z .................................................................................................... 2200/5848
2019-07-24T09:27:26.5506085Z .................................................................................................... 2200/5848
2019-07-24T09:27:30.1741031Z .....................................................i.............................................. 2300/5848
2019-07-24T09:27:39.1585246Z .................................................................................................... 2500/5848
2019-07-24T09:27:43.0002839Z .................................................................................................... 2600/5848
2019-07-24T09:27:47.7512183Z .................................................................................................... 2700/5848
2019-07-24T09:27:51.2648065Z .................................................................................................... 2800/5848
2019-07-24T09:27:51.2648065Z .................................................................................................... 2800/5848
2019-07-24T09:27:55.3579356Z .................................................................................................... 2900/5848
2019-07-24T09:28:00.1807285Z .................................................................................................... 3000/5848
2019-07-24T09:28:04.3430397Z .................................................................................................... 3100/5848
2019-07-24T09:28:09.2801061Z .................................................................................................... 3200/5848
2019-07-24T09:28:12.5450284Z .................................................................................................... 3300/5848
2019-07-24T09:28:16.0161915Z .................................................................................................... 3400/5848
2019-07-24T09:28:20.7925064Z .................................................................................................... 3500/5848
2019-07-24T09:28:24.2730455Z ....................i............................................................................... 3600/5848
2019-07-24T09:28:28.0728600Z ..............................................................................................ii...i 3700/5848
2019-07-24T09:28:31.5895134Z ..ii................................................................................................ 3800/5848
2019-07-24T09:28:39.7076637Z .................................................................................................... 4000/5848
2019-07-24T09:28:39.7076637Z .................................................................................................... 4000/5848
2019-07-24T09:28:43.2227729Z ........ii.......................................................................................... 4100/5848
2019-07-24T09:28:45.1014339Z .............................i...................................................................... 4200/5848
2019-07-24T09:28:46.9609255Z ...............................................................................................i.... 4300/5848
2019-07-24T09:28:53.1052499Z .................................................................................................... 4500/5848
2019-07-24T09:29:09.7370848Z .................................................................................................... 4600/5848
2019-07-24T09:29:13.0813604Z .................................................................................................... 4700/5848
2019-07-24T09:29:16.5076373Z .................................................................................................... 4800/5848
---
2019-07-24T09:29:47.9245506Z .................................................................................................... 5400/5848
2019-07-24T09:29:51.5960420Z .................................................................................................... 5500/5848
2019-07-24T09:29:55.3861036Z .................................................................................................... 5600/5848
2019-07-24T09:29:58.3101488Z .................................................................................................... 5700/5848
2019-07-24T09:30:01.1092973Z ........................................................................................i........... 5800/5848
2019-07-24T09:30:02.7915750Z test result: ok. 5827 passed; 0 failed; 21 ignored; 0 measured; 0 filtered out
2019-07-24T09:30:02.7915972Z 
2019-07-24T09:30:02.7974594Z  finished in 244.948
2019-07-24T09:30:02.8138377Z Check compiletest suite=run-pass mode=run-pass (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:30:02.8138377Z Check compiletest suite=run-pass mode=run-pass (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:30:03.0256490Z 
2019-07-24T09:30:03.0256754Z running 2905 tests
2019-07-24T09:30:17.0281629Z .................................................................................................... 100/2905
2019-07-24T09:30:31.8244691Z ............................................................................i....................... 200/2905
2019-07-24T09:30:55.0857532Z .................................................................................................... 400/2905
2019-07-24T09:31:06.2430264Z .................................................................................................... 500/2905
2019-07-24T09:31:19.8624414Z .................................................................................................... 600/2905
2019-07-24T09:31:40.0881608Z .................................................................................................... 700/2905
2019-07-24T09:31:40.0881608Z .................................................................................................... 700/2905
2019-07-24T09:31:53.3061102Z .................................................................................................... 800/2905
2019-07-24T09:32:04.7393089Z .................................................................................................... 900/2905
2019-07-24T09:32:20.7925118Z .................................................................................................... 1000/2905
2019-07-24T09:32:33.9631485Z .................................................................................................... 1100/2905
2019-07-24T09:32:44.3303777Z .................................................................................................... 1200/2905
2019-07-24T09:32:56.0144679Z .................................................................................................... 1300/2905
2019-07-24T09:33:11.3602671Z .......ii........................................................................................... 1400/2905
2019-07-24T09:33:23.0389193Z .................................................................................................... 1500/2905
2019-07-24T09:33:34.8343058Z ...........................................................i.......i................................ 1600/2905
2019-07-24T09:34:05.0327537Z .................................................................................................... 1800/2905
2019-07-24T09:34:05.0327537Z .................................................................................................... 1800/2905
2019-07-24T09:34:19.2266810Z ...........................................................................................i........ 1900/2905
2019-07-24T09:34:53.9572220Z ...............................................................i.................................... 2000/2905
2019-07-24T09:35:32.8765605Z .................................................................................................... 2200/2905
2019-07-24T09:35:46.2750515Z ..................................................................................................ii 2300/2905
2019-07-24T09:36:04.2265070Z .................................................................................................... 2400/2905
2019-07-24T09:36:17.2146700Z .................................................................................................... 2500/2905
---
2019-07-24T09:38:26.8109796Z  finished in 32.106
2019-07-24T09:38:26.8279122Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:38:26.9732509Z 
2019-07-24T09:38:26.9732644Z running 146 tests
2019-07-24T09:38:29.9122985Z i....iii......iii..iiii....i............................i..i................i....i.........ii.i.i..i 100/146
2019-07-24T09:38:31.6051580Z iii..............i.........iii.i......ii......
2019-07-24T09:38:31.6052024Z 
2019-07-24T09:38:31.6058525Z  finished in 4.777
2019-07-24T09:38:31.6223118Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:38:32.2991573Z 
2019-07-24T09:38:32.2991573Z 
2019-07-24T09:38:32.2996753Z running 39 tests
2019-07-24T09:38:33.6683758Z i.........i......................i.....
2019-07-24T09:38:33.6684677Z 
2019-07-24T09:38:33.6686425Z  finished in 2.046
2019-07-24T09:38:33.6848755Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:38:33.8226289Z 
2019-07-24T09:38:33.8226289Z 
2019-07-24T09:38:33.8228059Z running 9 tests
2019-07-24T09:38:33.8229004Z iiiiiiiii
2019-07-24T09:38:33.8230263Z 
2019-07-24T09:38:33.8234284Z  finished in 0.138
2019-07-24T09:38:33.8406307Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:38:33.9842777Z 
---
2019-07-24T09:38:50.5976759Z  finished in 16.759
2019-07-24T09:38:50.6136650Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:38:50.7549593Z 
2019-07-24T09:38:50.7549732Z running 122 tests
2019-07-24T09:39:13.3031165Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....i..........iiii..........i...ii...i.......ii.i 100/122
2019-07-24T09:39:16.7307575Z .i.i......iii.i.....ii
2019-07-24T09:39:16.7309220Z 
2019-07-24T09:39:16.7312291Z  finished in 26.117
2019-07-24T09:39:16.7319974Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:39:16.7320541Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-07-24T09:42:39.9227640Z     Finished release [optimized] target(s) in 2m 28s
2019-07-24T09:42:39.9467095Z Check compiletest suite=rustdoc mode=rustdoc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-07-24T09:42:40.0964716Z 
2019-07-24T09:42:40.0964912Z running 315 tests
2019-07-24T09:43:49.9835418Z ....................................i............................................................... 100/315
2019-07-24T09:44:52.6505534Z ....................................................i............................................... 200/315
2019-07-24T09:46:02.1220192Z ...............
2019-07-24T09:46:02.1220685Z test result: ok. 313 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out
2019-07-24T09:46:02.1220729Z 
2019-07-24T09:46:02.1228222Z  finished in 202.176
---
2019-07-24T09:49:38.6582669Z .................................................................................................... 500/590
2019-07-24T09:49:41.9083693Z ..........................................................................................
2019-07-24T09:49:41.9083901Z failures:
2019-07-24T09:49:41.9084250Z 
2019-07-24T09:49:41.9085275Z ---- str::test_escape_debug stdout ----
2019-07-24T09:49:41.9086230Z thread 'str::test_escape_debug' panicked at 'assertion failed: `(left == right)`
2019-07-24T09:49:41.9086864Z   left: `"́ábé\\u{e000}"`,
2019-07-24T09:49:41.9087152Z  right: `"\\u{301}ábé\\u{e000}"`', src/liballoc/../liballoc/tests/str.rs:1013:5
2019-07-24T09:49:41.9087259Z 
2019-07-24T09:49:41.9087294Z failures:
2019-07-24T09:49:41.9087330Z     str::test_escape_debug
2019-07-24T09:49:41.9087352Z 
2019-07-24T09:49:41.9087352Z 
2019-07-24T09:49:41.9087408Z test result: FAILED. 589 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
2019-07-24T09:49:41.9087434Z 
2019-07-24T09:49:41.9109822Z error: test failed, to rerun pass '-p alloc --test collectionstests'
2019-07-24T09:49:41.9128735Z 
2019-07-24T09:49:41.9128735Z 
2019-07-24T09:49:41.9130078Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libstd/Cargo.toml" "-p" "alloc" "--" "--quiet"
2019-07-24T09:49:41.9130234Z 
2019-07-24T09:49:41.9130257Z 
2019-07-24T09:49:41.9141045Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-07-24T09:49:41.9141217Z Build completed unsuccessfully in 1:12:07
2019-07-24T09:49:41.9141217Z Build completed unsuccessfully in 1:12:07
2019-07-24T09:49:42.4424273Z ##[error]Bash exited with code '1'.
2019-07-24T09:49:42.4472195Z ##[section]Starting: Checkout
2019-07-24T09:49:42.4474012Z ==============================================================================
2019-07-24T09:49:42.4474068Z Task         : Get sources
2019-07-24T09:49:42.4474119Z 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)

@matklad
Copy link
Member Author

matklad commented Jul 24, 2019

So the test now fail because running ./unicode.py --version 11.0.0 somehow changed Grapheme_Extend_table ... Not sure what's up with this, the simplest thing to do would be to wait until #62641

@rustbot modify labels to +S-blocked -S-waiting-on-author

@rustbot rustbot added S-blocked Status: Marked as blocked ❌ on something else such as an RFC or other implementation work. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 24, 2019
@bors
Copy link
Contributor

bors commented Jul 24, 2019

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

@rust-highfive
Copy link
Collaborator

The job mingw-check of your PR failed (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-07-25T09:11:28.3854234Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-07-25T09:11:28.4061458Z ##[command]git config gc.auto 0
2019-07-25T09:11:28.4130369Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-07-25T09:11:28.4179488Z ##[command]git config --get-all http.proxy
2019-07-25T09:11:28.4323198Z ##[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/62848/merge:refs/remotes/pull/62848/merge
---
2019-07-25T09:12:02.6993086Z do so (now or later) by using -b with the checkout command again. Example:
2019-07-25T09:12:02.6993117Z 
2019-07-25T09:12:02.6993324Z   git checkout -b <new-branch-name>
2019-07-25T09:12:02.6993557Z 
2019-07-25T09:12:02.6993607Z HEAD is now at 403eef78c Merge da49502a7b57739778055558264cd9d8e58661fd into 185b9acb66438894596f3c40d2ae4c6f7deeb8ab
2019-07-25T09:12:02.7127753Z ##[section]Starting: Collect CPU-usage statistics in the background
2019-07-25T09:12:02.7130635Z ==============================================================================
2019-07-25T09:12:02.7130712Z Task         : Bash
2019-07-25T09:12:02.7130756Z Description  : Run a Bash script on macOS, Linux, or Windows
---
2019-07-25T09:19:45.2277704Z     Checking syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
2019-07-25T09:20:36.9711624Z     Checking rustc_allocator v0.0.0 (/checkout/src/librustc_allocator)
2019-07-25T09:20:38.4902210Z     Checking rustc_typeck v0.0.0 (/checkout/src/librustc_typeck)
2019-07-25T09:20:39.7833599Z     Checking rustc_mir v0.0.0 (/checkout/src/librustc_mir)
2019-07-25T09:20:40.5412550Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.5441196Z   --> <::rustc_data_structures::indexed_vec::newtype_index macros>:14:64
2019-07-25T09:20:40.5441512Z    |
2019-07-25T09:20:40.5441811Z 14 | derive ( Copy , PartialEq , Eq , Hash , PartialOrd , Ord , $ ( $ derives ) , *
2019-07-25T09:20:40.5442621Z    |                                                                ^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.5442674Z 
2019-07-25T09:20:40.5450111Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.5460917Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:124:9
2019-07-25T09:20:40.5466743Z     |
2019-07-25T09:20:40.5472549Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.5527401Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.5528061Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.5528372Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.5528619Z ...     |
2019-07-25T09:20:40.5529318Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.5529669Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.5530020Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.5530580Z ...     |
2019-07-25T09:20:40.5530580Z ...     |
2019-07-25T09:20:40.5530893Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.5531268Z     |   |                  --------------------------------------------------- in this macro invocation (#3)
2019-07-25T09:20:40.5531582Z 123 |   | @ decodable $ type : ident ) => (
2019-07-25T09:20:40.5531883Z 124 |   | impl :: rustc_serialize :: Decodable for $ type {
2019-07-25T09:20:40.5532240Z     |   |         ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.5532473Z ...     |
2019-07-25T09:20:40.5532801Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.5533089Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.5559254Z     |   |                    |
2019-07-25T09:20:40.5559254Z     |   |                    |
2019-07-25T09:20:40.5559562Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.5559887Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.5560194Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.5560862Z    ::: src/librustc_mir/borrow_check/location.rs:20:1
2019-07-25T09:20:40.5561059Z     |
2019-07-25T09:20:40.5561341Z 20  | /   newtype_index! {
2019-07-25T09:20:40.5561621Z 21  | |       pub struct LocationIndex {
2019-07-25T09:20:40.5561621Z 21  | |       pub struct LocationIndex {
2019-07-25T09:20:40.5561912Z 22  | |           DEBUG_FORMAT = "LocationIndex({})"
2019-07-25T09:20:40.5562869Z 24  | |   }
2019-07-25T09:20:40.5563153Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.5563201Z 
2019-07-25T09:20:40.5563201Z 
2019-07-25T09:20:40.5563460Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.5564127Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:125:20
2019-07-25T09:20:40.5564399Z     |
2019-07-25T09:20:40.5564758Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.5565093Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.5565480Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.5565815Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.5566075Z ...     |
2019-07-25T09:20:40.5566409Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.5566794Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.5567201Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.5567975Z ...     |
2019-07-25T09:20:40.5567975Z ...     |
2019-07-25T09:20:40.5568293Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.5568910Z ...     |
2019-07-25T09:20:40.5568910Z ...     |
2019-07-25T09:20:40.5569229Z 125 |   | fn decode < D : :: rustc_serialize :: Decoder > ( d : & mut D ) -> Result <
2019-07-25T09:20:40.5569738Z     |   |                    ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.5570008Z ...     |
2019-07-25T09:20:40.5570341Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.5570623Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.5571281Z     |   |                    |
2019-07-25T09:20:40.5571281Z     |   |                    |
2019-07-25T09:20:40.5571595Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.5572085Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.5572365Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.5572798Z    ::: src/librustc_mir/borrow_check/location.rs:20:1
2019-07-25T09:20:40.5572994Z     |
2019-07-25T09:20:40.5573260Z 20  | /   newtype_index! {
2019-07-25T09:20:40.5573538Z 21  | |       pub struct LocationIndex {
2019-07-25T09:20:40.5573538Z 21  | |       pub struct LocationIndex {
2019-07-25T09:20:40.5573818Z 22  | |           DEBUG_FORMAT = "LocationIndex({})"
2019-07-25T09:20:40.5574779Z 24  | |   }
2019-07-25T09:20:40.5575082Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.5575132Z 
2019-07-25T09:20:40.5575132Z 
2019-07-25T09:20:40.5898483Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.5903453Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:124:9
2019-07-25T09:20:40.5908987Z     |
2019-07-25T09:20:40.5914301Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.5919428Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.5952923Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.5953307Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.5953578Z ...     |
2019-07-25T09:20:40.5956358Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.5956848Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.5957239Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.5958422Z ...     |
2019-07-25T09:20:40.5958422Z ...     |
2019-07-25T09:20:40.5961891Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6011395Z     |   |                  --------------------------------------------------- in this macro invocation (#3)
2019-07-25T09:20:40.6011756Z 123 |   | @ decodable $ type : ident ) => (
2019-07-25T09:20:40.6012088Z 124 |   | impl :: rustc_serialize :: Decodable for $ type {
2019-07-25T09:20:40.6012438Z     |   |         ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6012701Z ...     |
2019-07-25T09:20:40.6013035Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6013326Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6014800Z     |   |                    |
2019-07-25T09:20:40.6014800Z     |   |                    |
2019-07-25T09:20:40.6015217Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6015577Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6015908Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6016448Z    ::: src/librustc_mir/borrow_check/nll/region_infer/values.rs:119:1
2019-07-25T09:20:40.6016666Z     |
2019-07-25T09:20:40.6016978Z 119 | /   newtype_index! {
2019-07-25T09:20:40.6016978Z 119 | /   newtype_index! {
2019-07-25T09:20:40.6017330Z 120 | |       /// A single integer representing a `Location` in the MIR control-flow
2019-07-25T09:20:40.6017846Z 121 | |       /// graph. Constructed efficiently from `RegionValueElements`.
2019-07-25T09:20:40.6018343Z 122 | |       pub struct PointIndex { DEBUG_FORMAT = "PointIndex({})" }
2019-07-25T09:20:40.6018955Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6018991Z 
2019-07-25T09:20:40.6018991Z 
2019-07-25T09:20:40.6019244Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6019521Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:125:20
2019-07-25T09:20:40.6019718Z     |
2019-07-25T09:20:40.6020148Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6020471Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6020799Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6021103Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6021346Z ...     |
2019-07-25T09:20:40.6021645Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6022015Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6022365Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6022940Z ...     |
2019-07-25T09:20:40.6022940Z ...     |
2019-07-25T09:20:40.6023257Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6024400Z ...     |
2019-07-25T09:20:40.6024400Z ...     |
2019-07-25T09:20:40.6025558Z 125 |   | fn decode < D : :: rustc_serialize :: Decoder > ( d : & mut D ) -> Result <
2019-07-25T09:20:40.6025968Z     |   |                    ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6026243Z ...     |
2019-07-25T09:20:40.6026601Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6026953Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6027895Z     |   |                    |
2019-07-25T09:20:40.6027895Z     |   |                    |
2019-07-25T09:20:40.6028221Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6028529Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6028834Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6029389Z    ::: src/librustc_mir/borrow_check/nll/region_infer/values.rs:119:1
2019-07-25T09:20:40.6029608Z     |
2019-07-25T09:20:40.6029874Z 119 | /   newtype_index! {
2019-07-25T09:20:40.6029874Z 119 | /   newtype_index! {
2019-07-25T09:20:40.6030340Z 120 | |       /// A single integer representing a `Location` in the MIR control-flow
2019-07-25T09:20:40.6030659Z 121 | |       /// graph. Constructed efficiently from `RegionValueElements`.
2019-07-25T09:20:40.6030961Z 122 | |       pub struct PointIndex { DEBUG_FORMAT = "PointIndex({})" }
2019-07-25T09:20:40.6031503Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6031538Z 
2019-07-25T09:20:40.6031538Z 
2019-07-25T09:20:40.6031786Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6032056Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:124:9
2019-07-25T09:20:40.6032245Z     |
2019-07-25T09:20:40.6032551Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6032848Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6033169Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6033488Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6033707Z ...     |
2019-07-25T09:20:40.6034398Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6034812Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6035189Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6035975Z ...     |
2019-07-25T09:20:40.6035975Z ...     |
2019-07-25T09:20:40.6036330Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6036761Z     |   |                  --------------------------------------------------- in this macro invocation (#3)
2019-07-25T09:20:40.6037094Z 123 |   | @ decodable $ type : ident ) => (
2019-07-25T09:20:40.6037696Z 124 |   | impl :: rustc_serialize :: Decodable for $ type {
2019-07-25T09:20:40.6038039Z     |   |         ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6038290Z ...     |
2019-07-25T09:20:40.6038603Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6038899Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6039431Z     |   |                    |
2019-07-25T09:20:40.6039431Z     |   |                    |
2019-07-25T09:20:40.6039750Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6040048Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6040340Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6041129Z    ::: src/librustc_mir/borrow_check/nll/region_infer/values.rs:125:1
2019-07-25T09:20:40.6041336Z     |
2019-07-25T09:20:40.6041598Z 125 | /   newtype_index! {
2019-07-25T09:20:40.6041598Z 125 | /   newtype_index! {
2019-07-25T09:20:40.6041899Z 126 | |       /// A single integer representing a `ty::Placeholder`.
2019-07-25T09:20:40.6122811Z 127 | |       pub struct PlaceholderIndex { DEBUG_FORMAT = "PlaceholderIndex({})" }
2019-07-25T09:20:40.6123394Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6123434Z 
2019-07-25T09:20:40.6123434Z 
2019-07-25T09:20:40.6123687Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6124521Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:125:20
2019-07-25T09:20:40.6124780Z     |
2019-07-25T09:20:40.6125309Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6125703Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6126069Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6126406Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6126681Z ...     |
2019-07-25T09:20:40.6127129Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6127526Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6128082Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6128644Z ...     |
2019-07-25T09:20:40.6128644Z ...     |
2019-07-25T09:20:40.6129119Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6129718Z ...     |
2019-07-25T09:20:40.6129718Z ...     |
2019-07-25T09:20:40.6130035Z 125 |   | fn decode < D : :: rustc_serialize :: Decoder > ( d : & mut D ) -> Result <
2019-07-25T09:20:40.6130376Z     |   |                    ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6130607Z ...     |
2019-07-25T09:20:40.6131337Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6131614Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6132333Z     |   |                    |
2019-07-25T09:20:40.6132333Z     |   |                    |
2019-07-25T09:20:40.6132646Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6133113Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6133394Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6134753Z    ::: src/librustc_mir/borrow_check/nll/region_infer/values.rs:125:1
2019-07-25T09:20:40.6134971Z     |
2019-07-25T09:20:40.6135286Z 125 | /   newtype_index! {
2019-07-25T09:20:40.6135286Z 125 | /   newtype_index! {
2019-07-25T09:20:40.6135620Z 126 | |       /// A single integer representing a `ty::Placeholder`.
2019-07-25T09:20:40.6135973Z 127 | |       pub struct PlaceholderIndex { DEBUG_FORMAT = "PlaceholderIndex({})" }
2019-07-25T09:20:40.6136697Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6136739Z 
2019-07-25T09:20:40.6136739Z 
2019-07-25T09:20:40.6161655Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6169129Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:124:9
2019-07-25T09:20:40.6172432Z     |
2019-07-25T09:20:40.6180197Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6180681Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6180963Z     |  _|_-
2019-07-25T09:20:40.6181313Z 3   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6181665Z 4   | | | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6182225Z ...     |
2019-07-25T09:20:40.6182225Z ...     |
2019-07-25T09:20:40.6182547Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6182933Z     |   |                  --------------------------------------------------- in this macro invocation (#3)
2019-07-25T09:20:40.6183256Z 123 |   | @ decodable $ type : ident ) => (
2019-07-25T09:20:40.6183563Z 124 |   | impl :: rustc_serialize :: Decodable for $ type {
2019-07-25T09:20:40.6184431Z     |   |         ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6184720Z ...     |
2019-07-25T09:20:40.6185095Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6185631Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6186314Z     |   |                    |
2019-07-25T09:20:40.6186314Z     |   |                    |
2019-07-25T09:20:40.6186651Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6186992Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6187471Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6188173Z    ::: src/librustc_mir/borrow_check/nll/type_check/liveness/local_use_map.rs:47:1
2019-07-25T09:20:40.6188372Z     |
2019-07-25T09:20:40.6188638Z 47  | /   newtype_index! {
2019-07-25T09:20:40.6188939Z 48  | |       pub struct AppearanceIndex { .. }
2019-07-25T09:20:40.6188939Z 48  | |       pub struct AppearanceIndex { .. }
2019-07-25T09:20:40.6189197Z 49  | |   }
2019-07-25T09:20:40.6189465Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6189529Z 
2019-07-25T09:20:40.6207481Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6208971Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:125:20
2019-07-25T09:20:40.6243040Z     |
2019-07-25T09:20:40.6244784Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6245232Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6245531Z     |  _|_-
2019-07-25T09:20:40.6245972Z 3   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6246375Z 4   | | | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6246987Z ...     |
2019-07-25T09:20:40.6246987Z ...     |
2019-07-25T09:20:40.6247369Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6248202Z ...     |
2019-07-25T09:20:40.6248202Z ...     |
2019-07-25T09:20:40.6248704Z 125 |   | fn decode < D : :: rustc_serialize :: Decoder > ( d : & mut D ) -> Result <
2019-07-25T09:20:40.6249122Z     |   |                    ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6249380Z ...     |
2019-07-25T09:20:40.6249710Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6250019Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6250696Z     |   |                    |
2019-07-25T09:20:40.6250696Z     |   |                    |
2019-07-25T09:20:40.6251040Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6251364Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6251667Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6252171Z    ::: src/librustc_mir/borrow_check/nll/type_check/liveness/local_use_map.rs:47:1
2019-07-25T09:20:40.6252385Z     |
2019-07-25T09:20:40.6252677Z 47  | /   newtype_index! {
2019-07-25T09:20:40.6252980Z 48  | |       pub struct AppearanceIndex { .. }
2019-07-25T09:20:40.6252980Z 48  | |       pub struct AppearanceIndex { .. }
2019-07-25T09:20:40.6253264Z 49  | |   }
2019-07-25T09:20:40.6253550Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6253589Z 
2019-07-25T09:20:40.6432510Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6436703Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:124:9
2019-07-25T09:20:40.6440798Z     |
2019-07-25T09:20:40.6444869Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6448437Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6458665Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6459013Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6459246Z ...     |
2019-07-25T09:20:40.6459569Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6460085Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6460491Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6461223Z ...     |
2019-07-25T09:20:40.6461223Z ...     |
2019-07-25T09:20:40.6461574Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6462071Z     |   |                  --------------------------------------------------- in this macro invocation (#3)
2019-07-25T09:20:40.6462411Z 123 |   | @ decodable $ type : ident ) => (
2019-07-25T09:20:40.6462731Z 124 |   | impl :: rustc_serialize :: Decodable for $ type {
2019-07-25T09:20:40.6463084Z     |   |         ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6463339Z ...     |
2019-07-25T09:20:40.6463672Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6464429Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6465063Z     |   |                    |
2019-07-25T09:20:40.6465063Z     |   |                    |
2019-07-25T09:20:40.6465421Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6465764Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6466091Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6466628Z    ::: src/librustc_mir/borrow_check/nll/constraints/mod.rs:103:1
2019-07-25T09:20:40.6466846Z     |
2019-07-25T09:20:40.6467166Z 103 | /   newtype_index! {
2019-07-25T09:20:40.6467166Z 103 | /   newtype_index! {
2019-07-25T09:20:40.6467706Z 104 | |       pub struct OutlivesConstraintIndex {
2019-07-25T09:20:40.6468034Z 105 | |           DEBUG_FORMAT = "OutlivesConstraintIndex({})"
2019-07-25T09:20:40.6468578Z 107 | |   }
2019-07-25T09:20:40.6468876Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6469019Z 
2019-07-25T09:20:40.6469019Z 
2019-07-25T09:20:40.6526687Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6527029Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:125:20
2019-07-25T09:20:40.6527484Z     |
2019-07-25T09:20:40.6527801Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6528270Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6530454Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6530807Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6531050Z ...     |
2019-07-25T09:20:40.6531344Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6531679Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6532021Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6532587Z ...     |
2019-07-25T09:20:40.6532587Z ...     |
2019-07-25T09:20:40.6535564Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6536306Z ...     |
2019-07-25T09:20:40.6536306Z ...     |
2019-07-25T09:20:40.6536678Z 125 |   | fn decode < D : :: rustc_serialize :: Decoder > ( d : & mut D ) -> Result <
2019-07-25T09:20:40.6537074Z     |   |                    ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6537502Z ...     |
2019-07-25T09:20:40.6537812Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6538101Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6538639Z     |   |                    |
2019-07-25T09:20:40.6538639Z     |   |                    |
2019-07-25T09:20:40.6539081Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6539427Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6539726Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6540166Z    ::: src/librustc_mir/borrow_check/nll/constraints/mod.rs:103:1
2019-07-25T09:20:40.6540370Z     |
2019-07-25T09:20:40.6540627Z 103 | /   newtype_index! {
2019-07-25T09:20:40.6540627Z 103 | /   newtype_index! {
2019-07-25T09:20:40.6541002Z 104 | |       pub struct OutlivesConstraintIndex {
2019-07-25T09:20:40.6541492Z 105 | |           DEBUG_FORMAT = "OutlivesConstraintIndex({})"
2019-07-25T09:20:40.6542013Z 107 | |   }
2019-07-25T09:20:40.6542302Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6542339Z 
2019-07-25T09:20:40.6542339Z 
2019-07-25T09:20:40.6542595Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6542882Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:124:9
2019-07-25T09:20:40.6543077Z     |
2019-07-25T09:20:40.6543406Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6543715Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6544447Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6544809Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6545070Z ...     |
2019-07-25T09:20:40.6545404Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6545814Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6546232Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6546866Z ...     |
2019-07-25T09:20:40.6546866Z ...     |
2019-07-25T09:20:40.6547233Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6548108Z     |   |                  --------------------------------------------------- in this macro invocation (#3)
2019-07-25T09:20:40.6548443Z 123 |   | @ decodable $ type : ident ) => (
2019-07-25T09:20:40.6548745Z 124 |   | impl :: rustc_serialize :: Decodable for $ type {
2019-07-25T09:20:40.6549105Z     |   |         ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6549419Z ...     |
2019-07-25T09:20:40.6549768Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6550057Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6550618Z     |   |                    |
2019-07-25T09:20:40.6550618Z     |   |                    |
2019-07-25T09:20:40.6551079Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6551396Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6551692Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6552147Z    ::: src/librustc_mir/borrow_check/nll/constraints/mod.rs:109:1
2019-07-25T09:20:40.6552337Z     |
2019-07-25T09:20:40.6552591Z 109 | /   newtype_index! {
2019-07-25T09:20:40.6552882Z 110 | |       pub struct ConstraintSccIndex {
2019-07-25T09:20:40.6552882Z 110 | |       pub struct ConstraintSccIndex {
2019-07-25T09:20:40.6553170Z 111 | |           DEBUG_FORMAT = "ConstraintSccIndex({})"
2019-07-25T09:20:40.6553704Z 113 | |   }
2019-07-25T09:20:40.6554335Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6554380Z 
2019-07-25T09:20:40.6554380Z 
2019-07-25T09:20:40.6554697Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6554992Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:125:20
2019-07-25T09:20:40.6555210Z     |
2019-07-25T09:20:40.6555582Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6555918Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6556372Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6556766Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6557015Z ...     |
2019-07-25T09:20:40.6557368Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6557905Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6558329Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6558889Z ...     |
2019-07-25T09:20:40.6558889Z ...     |
2019-07-25T09:20:40.6559215Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6559860Z ...     |
2019-07-25T09:20:40.6559860Z ...     |
2019-07-25T09:20:40.6560194Z 125 |   | fn decode < D : :: rustc_serialize :: Decoder > ( d : & mut D ) -> Result <
2019-07-25T09:20:40.6560535Z     |   |                    ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6560770Z ...     |
2019-07-25T09:20:40.6561080Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6561355Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6562478Z     |   |                    |
2019-07-25T09:20:40.6562478Z     |   |                    |
2019-07-25T09:20:40.6562793Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6563111Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6563391Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6563847Z    ::: src/librustc_mir/borrow_check/nll/constraints/mod.rs:109:1
2019-07-25T09:20:40.6564434Z     |
2019-07-25T09:20:40.6564756Z 109 | /   newtype_index! {
2019-07-25T09:20:40.6565194Z 110 | |       pub struct ConstraintSccIndex {
2019-07-25T09:20:40.6565194Z 110 | |       pub struct ConstraintSccIndex {
2019-07-25T09:20:40.6565565Z 111 | |           DEBUG_FORMAT = "ConstraintSccIndex({})"
2019-07-25T09:20:40.6566162Z 113 | |   }
2019-07-25T09:20:40.6566464Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6566607Z 
2019-07-25T09:20:40.6566607Z 
2019-07-25T09:20:40.6566913Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6567213Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:124:9
2019-07-25T09:20:40.6567452Z     |
2019-07-25T09:20:40.6567941Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6568221Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6568557Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6568848Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6569088Z ...     |
2019-07-25T09:20:40.6569389Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6569728Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6570074Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6570637Z ...     |
2019-07-25T09:20:40.6570637Z ...     |
2019-07-25T09:20:40.6570952Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6571313Z     |   |                  --------------------------------------------------- in this macro invocation (#3)
2019-07-25T09:20:40.6571621Z 123 |   | @ decodable $ type : ident ) => (
2019-07-25T09:20:40.6571916Z 124 |   | impl :: rustc_serialize :: Decodable for $ type {
2019-07-25T09:20:40.6572256Z     |   |         ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6572485Z ...     |
2019-07-25T09:20:40.6572864Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6573186Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6573712Z     |   |                    |
2019-07-25T09:20:40.6573712Z     |   |                    |
2019-07-25T09:20:40.6574413Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6574917Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6575264Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6575768Z    ::: src/librustc_mir/borrow_check/nll/member_constraints.rs:54:1
2019-07-25T09:20:40.6576003Z     |
2019-07-25T09:20:40.6576293Z 54  | /   newtype_index! {
2019-07-25T09:20:40.6576293Z 54  | /   newtype_index! {
2019-07-25T09:20:40.6576616Z 55  | |       crate struct NllMemberConstraintIndex {
2019-07-25T09:20:40.6576978Z 56  | |           DEBUG_FORMAT = "MemberConstraintIndex({})"
2019-07-25T09:20:40.6577707Z 58  | |   }
2019-07-25T09:20:40.6577989Z     | |___- in this macro invocation (#1)
2019-07-25T09:20:40.6578074Z 
2019-07-25T09:20:40.6578074Z 
2019-07-25T09:20:40.6578349Z error[E0433]: failed to resolve: could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6578607Z    --> <::rustc_data_structures::indexed_vec::newtype_index macros>:125:20
2019-07-25T09:20:40.6578796Z     |
2019-07-25T09:20:40.6579131Z 1   |   / ( $ ( # [ $ attrs : meta ] ) * $ v : vis struct $ name : ident { .. } ) => (
2019-07-25T09:20:40.6579417Z 2   |   | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6579737Z 3   |   | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6580045Z 4   |   | vis [ $ v ] @ debug_format [ "{}" ] ) ; ) ; (
2019-07-25T09:20:40.6580258Z ...     |
2019-07-25T09:20:40.6580562Z 7   | / | $ crate :: newtype_index ! (
2019-07-25T09:20:40.6580908Z 8   | | | @ attrs [ $ ( # [ $ attrs ] ) * ] @ type [ $ name ] @ max [ 0xFFFF_FF00 ] @
2019-07-25T09:20:40.6581311Z 9   | | | vis [ $ v ] @ debug_format [ "{}" ] $ ( $ tokens ) + ) ; ) ; (
2019-07-25T09:20:40.6581900Z ...     |
2019-07-25T09:20:40.6581900Z ...     |
2019-07-25T09:20:40.6582225Z 122 |   | $ tokens ) * ) ; $ crate :: newtype_index ! ( @ decodable $ type ) ; ) ; (
2019-07-25T09:20:40.6582903Z ...     |
2019-07-25T09:20:40.6582903Z ...     |
2019-07-25T09:20:40.6583235Z 125 |   | fn decode < D : :: rustc_serialize :: Decoder > ( d : & mut D ) -> Result <
2019-07-25T09:20:40.6583572Z     |   |                    ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `{{root}}`
2019-07-25T09:20:40.6583806Z ...     |
2019-07-25T09:20:40.6584584Z 167 |   | $ type ] @ max [ $ max ] @ vis [ $ v ] @ debug_format [ $ debug_format ] $ (
2019-07-25T09:20:40.6584917Z 168 |   | $ tokens ) * ) ; ) ;
2019-07-25T09:20:40.6585556Z     |   |                    |
2019-07-25T09:20:40.6585556Z     |   |                    |
2019-07-25T09:20:40.6585897Z     |   |                    in this expansion of `newtype_index!` (#1)
2019-07-25T09:20:40.6586258Z     |   |____________________in this expansion of `$crate::newtype_index!` (#2)
2019-07-25T09:20:40.6586579Z     |                        in this expansion of `$crate::newtype_index!` (#3)
2019-07-25T09:20:40.6587581Z    ::: src/librustc_mir/borrow_check/nll/member_constraints.rs:54:1
2019-07-25T09:20:40.6587798Z     |
2019-07-25T09:20:40.6588115Z 54  | /   newtype_index! {
2019-07-25T09:20:40.6588115Z 54  | /   newtype_index! {
2019-07-25T09:20:40.6588443Z 55  | |       crate struct NllMemberConstraintIndex {
2019-07-25T09:20:40.6588776Z 56  | |           DEBUG_FORMAT = "MemberConstraintIndex({})"
2019-07-25T09:20:40.6589372Z 58  | |   }
2019-07-25T09:20:40.6589686Z     | |___- in this macro invocation (#1)

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)

@matklad matklad force-pushed the xid-unicode branch 3 times, most recently from e0e26cd to 57f11b8 Compare July 25, 2019 09:55
@matklad
Copy link
Member Author

matklad commented Jul 25, 2019

This is now blocked on unicode-rs/unicode-xid#11.

cc @Manishearth :-)

@matklad
Copy link
Member Author

matklad commented Jul 25, 2019

@rustbot modify labels to +T-compiler

@rustbot rustbot added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Jul 25, 2019
@matklad
Copy link
Member Author

matklad commented Jul 25, 2019

@rfcbot fcp merge

@bors
Copy link
Contributor

bors commented Jul 26, 2019

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

@Mark-Simulacrum
Copy link
Member

@rfcbot ask @rust-lang/compiler Should we move to using unicode-xid?

On the call site, `rustc_lexer::is_whitespace` reads much better than
`character_properties::is_whitespace`.
@petrochenkov
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Sep 4, 2019

📌 Commit 206fe8e has been approved by petrochenkov

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 4, 2019
@bors
Copy link
Contributor

bors commented Sep 4, 2019

⌛ Testing commit 206fe8e with merge b4d47710a7240f0050536d56c19d246a5ae30d5b...

@bors
Copy link
Contributor

bors commented Sep 5, 2019

⌛ Testing commit 206fe8e with merge 1a2a386dae552c1e1ef02586fd24fe7d15c39c61...

@Centril
Copy link
Contributor

Centril commented Sep 5, 2019

@bors retry prioritizing r0llup since queue is really long.

@bors
Copy link
Contributor

bors commented Sep 5, 2019

⌛ Testing commit 206fe8e with merge 722de75f4e4fd9f8c7844664289725117ea40d1b...

Centril added a commit to Centril/rust that referenced this pull request Sep 5, 2019
Use unicode-xid crate instead of libcore

This PR proposes to remove `char::is_xid_start` and `char::is_xid_continue` functions from `libcore` and use `unicode_xid` crate from crates.io (note that this crate is already present in rust-lang/rust's Cargo.lock).

Reasons to do this:

* removing rustc-binary-specific stuff from libcore
* making sure that, across the ecosystem, there's a single definition of what rust identifier is (`unicode-xid` has almost 10 million downs, as a `proc_macro2` dependency)
* making it easier to share `rustc_lexer` crate with rust-analyzer: no need to `#[cfg]` if we are building as a part of the compiler

Reasons not to do this:

* increased maintenance burden: we'll need to upgrade unicode version both in libcore and in unicode-xid. However, this shouldn't be a too heavy burden: just running `./unicode.py` after new unicode version. I (@matklad) am ready to be a t-compiler side maintainer of unicode-xid. Moreover, given that xid-unicode is an important dependency of syn, *someone* needs to maintain it anyway.
* xid-unicode implementation is significantly slower. It uses a more compact table with binary search, instead of a trie. However, this shouldn't matter in practice, because we have fast-path for ascii anyway, and code size savings is a plus. Moreover, in rust-lang#59706 not using libcore turned out to be *faster*, presumably beacause checking for whitespace with match is even faster.

<details>

<summary>old description</summary>

Followup to rust-lang#59706

r? @eddyb

Note that this doesn't actually remove tables from libcore, to avoid conflict with rust-lang#62641.

cc unicode-rs/unicode-xid#11

</details>
@Centril
Copy link
Contributor

Centril commented Sep 5, 2019

@bors retry rolled up.

@bors
Copy link
Contributor

bors commented Sep 5, 2019

⌛ Testing commit 206fe8e with merge aa4e70a7a1f891b5f40f78cf83f936a659ab0572...

Centril added a commit to Centril/rust that referenced this pull request Sep 5, 2019
Use unicode-xid crate instead of libcore

This PR proposes to remove `char::is_xid_start` and `char::is_xid_continue` functions from `libcore` and use `unicode_xid` crate from crates.io (note that this crate is already present in rust-lang/rust's Cargo.lock).

Reasons to do this:

* removing rustc-binary-specific stuff from libcore
* making sure that, across the ecosystem, there's a single definition of what rust identifier is (`unicode-xid` has almost 10 million downs, as a `proc_macro2` dependency)
* making it easier to share `rustc_lexer` crate with rust-analyzer: no need to `#[cfg]` if we are building as a part of the compiler

Reasons not to do this:

* increased maintenance burden: we'll need to upgrade unicode version both in libcore and in unicode-xid. However, this shouldn't be a too heavy burden: just running `./unicode.py` after new unicode version. I (@matklad) am ready to be a t-compiler side maintainer of unicode-xid. Moreover, given that xid-unicode is an important dependency of syn, *someone* needs to maintain it anyway.
* xid-unicode implementation is significantly slower. It uses a more compact table with binary search, instead of a trie. However, this shouldn't matter in practice, because we have fast-path for ascii anyway, and code size savings is a plus. Moreover, in rust-lang#59706 not using libcore turned out to be *faster*, presumably beacause checking for whitespace with match is even faster.

<details>

<summary>old description</summary>

Followup to rust-lang#59706

r? @eddyb

Note that this doesn't actually remove tables from libcore, to avoid conflict with rust-lang#62641.

cc unicode-rs/unicode-xid#11

</details>
@Centril
Copy link
Contributor

Centril commented Sep 5, 2019

@bors retry rolled up.

Centril added a commit to Centril/rust that referenced this pull request Sep 5, 2019
Use unicode-xid crate instead of libcore

This PR proposes to remove `char::is_xid_start` and `char::is_xid_continue` functions from `libcore` and use `unicode_xid` crate from crates.io (note that this crate is already present in rust-lang/rust's Cargo.lock).

Reasons to do this:

* removing rustc-binary-specific stuff from libcore
* making sure that, across the ecosystem, there's a single definition of what rust identifier is (`unicode-xid` has almost 10 million downs, as a `proc_macro2` dependency)
* making it easier to share `rustc_lexer` crate with rust-analyzer: no need to `#[cfg]` if we are building as a part of the compiler

Reasons not to do this:

* increased maintenance burden: we'll need to upgrade unicode version both in libcore and in unicode-xid. However, this shouldn't be a too heavy burden: just running `./unicode.py` after new unicode version. I (@matklad) am ready to be a t-compiler side maintainer of unicode-xid. Moreover, given that xid-unicode is an important dependency of syn, *someone* needs to maintain it anyway.
* xid-unicode implementation is significantly slower. It uses a more compact table with binary search, instead of a trie. However, this shouldn't matter in practice, because we have fast-path for ascii anyway, and code size savings is a plus. Moreover, in rust-lang#59706 not using libcore turned out to be *faster*, presumably beacause checking for whitespace with match is even faster.

<details>

<summary>old description</summary>

Followup to rust-lang#59706

r? @eddyb

Note that this doesn't actually remove tables from libcore, to avoid conflict with rust-lang#62641.

cc unicode-rs/unicode-xid#11

</details>
bors added a commit that referenced this pull request Sep 5, 2019
Rollup of 11 pull requests

Successful merges:

 - #62848 (Use unicode-xid crate instead of libcore)
 - #63774 (Fix `window.hashchange is not a function`)
 - #63930 (Account for doc comments coming from proc macros without spans)
 - #64003 (place: Passing `align` = `layout.align.abi`, when also passing `layout`)
 - #64030 (Fix unlock ordering in SGX synchronization primitives)
 - #64041 (use TokenStream rather than &[TokenTree] for built-in macros)
 - #64051 (Add x86_64-linux-kernel target)
 - #64063 (Fix const_err with `-(-0.0)`)
 - #64083 (Point at appropriate arm on type error on if/else/match with one non-! arm)
 - #64100 (Fix const eval bug breaking run-pass tests in Miri)
 - #64157 (Opaque type locations in error message for clarity.)

Failed merges:

r? @ghost
@bors bors merged commit 206fe8e into rust-lang:master Sep 5, 2019
@matklad matklad deleted the xid-unicode branch September 5, 2019 16:30
@matklad matklad mentioned this pull request Sep 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.