about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2021-03-03Bless test where order of error message changedRyan Levick-2/+2
2021-03-03Fix testsRyan Levick-4/+9
2021-03-03Add tests and support two more noop methodsRyan Levick-0/+73
2021-03-02Rollup merge of #82691 - ehuss:update-books, r=ehussYuki Okushi-0/+0
Update books ## reference 2 commits in 361367c126290ac17cb4089f8d38fd8b2ac43f98..3b6fe80c205d2a2b5dc8a276192bbce9eeb9e9cf 2021-02-15 09:58:13 -0800 to 2021-02-22 22:09:17 -0800 - Add an extra fn() entry to the variance table in the subtyping chapter (rust-lang-nursery/reference#874) - Turbofish: Explain what the example is of. (rust-lang-nursery/reference#966) ## book 28 commits in db5e8a5105aa22979490dce30e33b68d8645761d..0f87daf683ae3de3cb725faecb11b7e7e89f0e5a 2021-02-12 16:58:20 -0500 to 2021-03-01 08:54:04 -0500 - Ohhh the should_panic was for mdbook test. Oops - Fix bad regex in the update rustc script and regenerate broken output - Clarify that we only mentioned unwrap_or_else, but haven't explained it - Add ferris to some listings that don't compile. Fixes rust-lang/book#2598 - Remove fancy quote from a code comment - Panic now points at our code, not stdlib slice code - Disable playground on thread::sleep examples - Disable playground button on listings in ch 12 that use CLI args - Reword ambiguous sentence. Fixes rust-lang/book#2317. - Rename shoes_in_my_size to shoes_in_size to be a better example - Fix visible "ANCHOR: here" in listing 13-21 (rust-lang/book#2628) - minor clarification about deriving Copy and Clone (rust-lang/book#2627) - Clarify relationship of trait to mock object - Fix "message" that should be "method" - Fix rust-lang/book#2625 (rust-lang/book#2626) - fix misleading hash claim (rust-lang/book#2621) - Make link syntax consistent and word wrap - Added hyperlinks to Appendices - Use console syntax highlighting in some more places - Merge remote-tracking branch 'origin/pr/2615' - Fix broken blockquote - Update one more bit of output caught by the update rust script - Update and clarify some text affected by the rand update - Update lock files and output - Update error output for changes to chapter 10 listings - Merge remote-tracking branch 'origin/pr/2542' - Tweak wording in for loop explanation - Merge remote-tracking branch 'origin/pr/2460' ## rust-by-example 1 commits in 551cc4bc8394feccea6acd21f86d9a4e1d2271a0..3e0d98790c9126517fa1c604dc3678f396e92a27 2021-02-03 17:12:37 -0300 to 2021-02-25 08:23:10 -0300 - Make flow_control/for/.into_iter() example run (rust-lang/rust-by-example#1415) ## rustc-dev-guide 530 commits in 7adfab42bab045a848126895c2f1e09927c1331a..c431f8c29a41413dddcb3bfa0d71c9cabe366317 2020-04-08 08:52:05 +0200 to 2021-02-28 16:35:20 -0500 ... Many updates. ## embedded-book 1 commits in 4cf7981696a85c3e633076c6401611bd3f6346c4..a96d096cffe5fa2c84af1b4b61e1492f839bb2e1 2021-02-11 10:55:22 +0000 to 2021-02-17 08:08:52 +0000 - Add note about using more recent openocd interface file. Closes rust-embedded/book#277 and rust-embedded/book#263 (rust-embedded/book#284)
2021-03-02Rollup merge of #82661 - lnicola:rust-analyzer-2021-03-01, r=jonas-schievinkYuki Okushi-17/+15
:arrow_up: rust-analyzer
2021-03-02Rollup merge of #82627 - JohnTitor:issue-82612, r=estebankYuki Okushi-0/+52
Erase late bound regions to avoid ICE Fixes #82612, which is caused by #81769. r? `@estebank`
2021-03-02Rollup merge of #82597 - noslaver:fix-82137, r=nagisaYuki Okushi-15/+12
Get TyCtxt from self instead of passing as argument in AutoTraitFinder First contribution :crab:, let me know if anything is amiss. Fix #82137.
2021-03-02Rollup merge of #82593 - sunfishcode:wasi-docs, r=alexcrichtonYuki Okushi-0/+37
Teach rustdoc how to display WASI. As a followup to [this comment] in #82420, this patch teaches rustdoc how to display WASI. [this comment]: https://github.com/rust-lang/rust/pull/82420#issuecomment-784523826 r? `@alexcrichton`
2021-03-02Rollup merge of #82579 - osa1:issue82566, r=estebankYuki Okushi-0/+122
Fix turbofish recovery with multiple generic args This consists of two commits, each can be individually reviewed. - First commit fixes the issue in [this comment](https://github.com/rust-lang/rust/issues/82566#issuecomment-786924466). - Second commit fixes #82566 --- r? ````@estebank````
2021-03-02Rollup merge of #82516 - PoignardAzur:inherent-impl-ty, r=oli-obkYuki Okushi-18/+71
Add incomplete feature gate for inherent associate types. Mentored by ``````@oli-obk`````` So far the only change is that instead of giving an automatic error, the following code compiles: ```rust struct Foo; impl Foo { type Bar = isize; } ``` The backend work to make it actually usable isn't there yet. In particular, this: ```rust let x : Foo::Bar; ``` will give you: ```sh error[E0223]: ambiguous associated type --> /$RUSTC_DIR/src/test/ui/assoc-inherent.rs:15:13 | LL | let x : Foo::Bar; | ^^^^^^^^ help: use fully-qualified syntax: `<Foo as Trait>::Bar` ```
2021-03-02Rollup merge of #80874 - jyn514:intra-doc-docs, r=ManishearthYuki Okushi-13/+62
Update intra-doc link documentation to match the implementation r? `@Manishearth` cc `@camelid` `@m-ou-se` Relevant PRs: - https://github.com/rust-lang/rust/pull/74489 - https://github.com/rust-lang/rust/pull/80181 - https://github.com/rust-lang/rust/pull/76078 - https://github.com/rust-lang/rust/pull/77519 - https://github.com/rust-lang/rust/pull/73101 Relevant issues: - https://github.com/rust-lang/rust/issues/78800 - https://github.com/rust-lang/rust/issues/77200 - https://github.com/rust-lang/rust/issues/77199 / https://github.com/rust-lang/rust/issues/54191/ I haven't documented things that I consider 'just bugs', like https://github.com/rust-lang/rust/issues/77732, but I have documented features that aren't implemented, like https://github.com/rust-lang/rust/issues/78800.
2021-03-01Update booksEric Huss-0/+0
2021-03-02Rollup merge of #82676 - dtolnay:powers, r=Mark-SimulacrumGuillaume Gomez-1/+1
Change twice used large const table to static This table is used twice in core::num::dec2flt::algorithm::power_of_ten. According to the semantics of const, a separate huge definition of the table is inlined at both places. https://github.com/rust-lang/rust/blob/5233edcf1c7ee70ac25e4ec1115c3546f53d8a2d/library/core/src/num/dec2flt/algorithm.rs#L16-L22 Theoretically this gets cleaned up by optimization passes, but in practice I am experiencing a miscompile from LTO on this code. Making the table a static, which would only be defined a single time and not require attention from LTO, eliminates the miscompile and seems semantically more appropriate anyway. A separate bug report on the LTO bug is forthcoming. Original addition of `const` is from #27307.
2021-03-02Rollup merge of #82662 - GuillaumeGomez:doc-attr-check, r=jyn514Guillaume Gomez-0/+38
Warn about unknown doc attributes Fixes #82652. For the text error, I decided to go for "invalid" instead of "unknown". What do you think? r? `@jyn514`
2021-03-02Rollup merge of #82655 - SkiFire13:fix-issue-81314, r=estebankGuillaume Gomez-16/+61
Highlight identifier span instead of whole pattern span in `unused` lint Fixes #81314 This pretty much just changes the span highlighted in the lint from `pat_sp` to `ident.span`. There's however an exception, which is in patterns with shorthands like `Point { y, ref mut x }`, where a suggestion to change just `x` would be invalid; in those cases I had to keep the pattern span. Another option would be suggesting something like `Point { y, x: ref mut _x }`. I also added a new test since there weren't any test that checked the `unused` lint with optional patterns.
2021-03-02Rollup merge of #82598 - GuillaumeGomez:rustdoc-rustc-pass, r=jyn514Guillaume Gomez-0/+17
Check stability and feature attributes in rustdoc Fixes #82588. cc `@Nemo157` `@camelid` r? `@jyn514`
2021-03-02Rollup merge of #82018 - jyn514:no-dummy-cache, r=camelid,GuillaumeGomezGuillaume Gomez-133/+82
Remove the dummy cache in `DocContext`; delete RenderInfo The same information is available everywhere; the only reason the dummy cache was needed is because it was previously stored in three different places. This consolidates the info a bit so the cache in `DocContext` is used throughout. As a bonus, it also completely removes `RenderInfo`. - Return a `Cache` from `run_global_ctxt`, not `RenderInfo` - Remove the unused `render_info` from `run_renderer` - Remove RenderInfo altogether Helps with https://github.com/rust-lang/rust/pull/82014. The next step is to move the `populate()` call before the `collect_intra_doc_links` pass, which currently breaks because a) lots of the cache is populated in early passes, and b) intra_doc_links itself sets some info with `register_res`. I'm working on separate PR for that to avoid making too many big changes at once. r? `@GuillaumeGomez`
2021-03-02Rollup merge of #81932 - jyn514:rustdoc-logging, r=Mark-SimulacrumGuillaume Gomez-1/+82
Always compile rustdoc with debug logging enabled when `download-rustc` is set Previously, logging at DEBUG or below would always be silenced, because rustc compiles tracing with the `static_max_level_info` feature. That makes sense for release artifacts, but not for developing rustdoc. Instead, this compiles two different versions of tracing: one in the release artifacts, distributed in the sysroot, and a new version compiled by rustdoc. Since `rustc_driver` is always linked to the version of sysroot, this copy/pastes `init_env_logging` into rustdoc. To avoid compiling an unnecessary version of tracing when `download-rustc` isn't set, this adds a new `using-ci-artifacts` feature for rustdoc and passes that feature in bootstrap. Addresses https://github.com/rust-lang/rust/issues/81930. This builds on https://github.com/rust-lang/rust/pull/79540. r? `@Mark-Simulacrum`
2021-03-02Rollup merge of #80734 - abonander:ab/issue-66693, r=oli-obkGuillaume Gomez-4/+92
check that first arg to `panic!()` in const is `&str` closes #66693 ~~TODO: regression test~~ cc `@RalfJung` for error message wording
2021-03-01Get TyCtxt from self instead of passing as argument in AutoTraitFinderNoam Koren-15/+12
methods
2021-03-01Auto merge of #82663 - jyn514:rollup-xh3cb0c, r=jyn514bors-66/+101
Rollup of 8 pull requests Successful merges: - #81210 (BTreeMap: correct node size test case for choices of B) - #82360 (config.toml parsing error improvements) - #82428 (Update mdbook) - #82480 (Remove `ENABLE_DOWNLOAD_RUSTC` constant) - #82578 (Add some diagnostic items for Clippy) - #82620 (Apply lint restrictions from renamed lints) - #82635 (Fix typos in rustc_infer::infer::nll_relate) - #82645 (Clarify that SyncOnceCell::set blocks.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-03-01Add tests for doc attribute checkGuillaume Gomez-0/+38
2021-03-01Change twice used large const table to staticDavid Tolnay-1/+1
This table is used twice in core::num::dec2flt::algorithm::power_of_ten. According to the semantics of const, a separate huge definition of the table is inlined at both places. fn power_of_ten(e: i16) -> Fp { assert!(e >= table::MIN_E); let i = e - table::MIN_E; let sig = table::POWERS.0[i as usize]; let exp = table::POWERS.1[i as usize]; Fp { f: sig, e: exp } } Theoretically this gets cleaned up by optimization passes, but in practice I am experiencing a miscompile from LTO on this code. Making the table a static, which would only be defined a single time and not require attention from LTO, eliminates the miscompile and seems semantically more appropriate anyway. A separate bug report on the LTO bug is forthcoming.
2021-03-01Auto merge of #82587 - taiki-e:unaligned_references, r=oli-obkbors-0/+68
Enable report_in_external_macro in unaligned_references Fixes an issue where `unaligned_references` is not triggered in external macros, unlike `safe_packed_borrows`. Also, given that this lint is planned to eventually change to hard error (#82525), it would make sense for this lint to be triggered for external macros as well. See https://github.com/taiki-e/pin-project-lite/pull/55#issuecomment-787038676 and https://github.com/taiki-e/pin-project-lite/pull/55#issuecomment-787052874 for more. r? `@RalfJung`
2021-03-01check that first arg to `panic!()` in const is `&str`Austin Bonander-4/+92
2021-03-01Rollup merge of #82620 - jyn514:apply-renamed-lints, r=ManishearthJoshua Nelson-0/+37
Apply lint restrictions from renamed lints Previously, if you denied the old name of a renamed lint, it would warn about using the new name, but otherwise do nothing. Now, it will behave the same as if you'd used the new name. Fixes https://github.com/rust-lang/rust/issues/82615. r? `@ehuss`
2021-03-01Rollup merge of #82578 - camsteffen:diag-items, r=oli-obkJoshua Nelson-41/+42
Add some diagnostic items for Clippy
2021-03-01Rollup merge of #82480 - jyn514:no-enable-constant, r=Mark-SimulacrumJoshua Nelson-23/+13
Remove `ENABLE_DOWNLOAD_RUSTC` constant `ENABLE_DOWNLOAD_RUSTC` was introduced as part of the MVP for `download-rustc` as a way not to rebuild artifacts that have already been downloaded. Unfortunately, it doesn't work very well: - Steps are ignored by default, which makes it easy to leave out a step that should be built. For example, the MVP forgot to enable any tests, so it was only possible to *build* locally. - It didn't work correctly even when it was enabled: calling `builder.ensure()` would completely ignore the constant and rebuild the step anyway. This has no obvious fix since `ensure()` has to return a `Step::Output`. Instead, this handles `download-rustc` in `impl Step for Rustc` and `impl Step for Std`, which to my knowledge are the only build steps that don't first go through `impl Step for Sysroot` (`Rustc` is used for the `rustc-dev` component). See https://github.com/rust-lang/rust/pull/79540#discussion_r563350075 and https://github.com/rust-lang/rust/issues/81930 for further context. Here are some example runs with these changes and `download-rustc` enabled: ``` $ x.py build src/tools/clippy Building stage1 tool clippy-driver (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 1m 09s Building stage1 tool cargo-clippy (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 0.11s $ x.py test src/tools/clippy Finished dev [unoptimized + debuginfo] target(s) in 0.09s Building stage1 tool clippy-driver (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 0.09s Building rustdoc for stage1 (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 0.28s Finished release [optimized] target(s) in 15.26s Running build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/clippy_driver-8b407b140e0aa91c test result: ok. 592 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out $ x.py build src/tools/rustdoc Building rustdoc for stage1 (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 41.28s Build completed successfully in 0:00:41 $ x.py test src/test/rustdoc-ui Building stage0 tool compiletest (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 0.12s Building rustdoc for stage1 (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 0.10s test result: ok. 105 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.15s $ x.py build compiler/rustc Finished dev [unoptimized + debuginfo] target(s) in 0.09s Build completed successfully in 0:00:00 ``` Note a few things: - Clippy depends on stage1 rustc-dev artifacts, but rustc didn't have to be recompiled. Instead, the artifacts were copied automatically. - All steps are always enabled. There is no danger of forgetting a step, since only the entrypoints have to handle `download-rustc`. - Building the compiler (`compiler/rustc`) automatically does no work. Helps with https://github.com/rust-lang/rust/issues/81930. r? `@Mark-Simulacrum`
2021-03-01Rollup merge of #82360 - osa1:issue82317, r=Mark-SimulacrumJoshua Nelson-2/+9
config.toml parsing error improvements Improve error messages for musl-libdir and wasi-root keys. Previously the parser would panic with `unwrap()`. Now it prints Target "wasm32-wasi" does not have a "wasi-root" key (and similar for the `musl-libdir` field, which is used in target that use musl) Also update comments around wasi-root field to make it clear that the field is only valid in wasm32-wasi target and needs to be moved to a `[target.wasm32-wasi]` section to be valid. Fixes #82317 --- r? `@Mark-Simulacrum`
2021-03-01:arrow_up: rust-analyzerLaurențiu Nicola-17/+15
2021-03-01Use diagnostic items in into_iter_collectionsCameron Steffen-24/+22
2021-03-01Auto merge of #82216 - kulikjak:fix-solaris-target, r=nagisa,Mark-Simulacrumbors-16/+32
make x86_64-pc-solaris the default target for x86-64 Solaris This change makes `x86_64-pc-solaris` the default compilation target for x86-64 Solaris/Illumos (based on [this exchange](https://github.com/rust-lang/rust/issues/68214#issuecomment-748042054) with `@varkor).` I tried several ways of doing this (leveraging the alias support added with #61761 and improved/fixed with #80073) and found out that cross-compilation to the new one is by far the simplest way of doing this. It can be achieved by adding the following arguments: `--build x86_64-sun-solaris --host x86_64-pc-solaris --target x86_64-pc-solaris` and enabling the cross compilation with `PKG_CONFIG_ALLOW_CROSS=1` environment variable. I also removed alias support altogether - `x86_64-pc-solaris` and `x86_64-sun-solaris` are now two separate targets. The problem with aliases is that even if rust internally knows that two are the same, other tools building with rust don't know that, resulting in build issues like the one with firefox mentioned [here](https://github.com/rust-lang/rust/issues/68214#issuecomment-746144229). I think that once the dust settles and `x86_64-pc-solaris` becomes the default, `x86_64-sun-solaris` can be removed. If you agree with the above, I have two subsequent questions: 1. Is there a preferred way to display deprecation warnings when `x86_64-sun-solaris` is passed into the compiler as an argument? I am not sure whether target deprecation was done before. 2. Where would be the best way to document this change for those using rust on Solaris? Without the cross-compilation arguments (used once to build a new version), the build won't work. Should I add it into [RELEASES.md](https://github.com/rust-lang/rust/blob/master/RELEASES.md)? Thanks!
2021-03-01Update Docker to use the correct targetJakub Kulik-13/+26
2021-03-01Update supported platforms docJakub Kulik-2/+2
2021-03-01Change default Solaris x86 target to x86_64-pc-solarisJakub Kulik-1/+4
2021-03-01Auto merge of #78360 - tmiasko:storage-markers, r=wesleywiser,oli-obkbors-3/+128
Remove storage markers if they won't be used during code generation The storage markers constitute a substantial portion of all MIR statements. At the same time, for builds without any optimizations, the storage markers have no further use during and after MIR optimization phase. If storage markers are not necessary for code generation, remove them.
2021-03-01Add regression testGiacomo Stevanato-0/+45
2021-03-01config.toml error reporting:Ömer Sinan Ağacan-2/+9
Improve error messages for musl-libdir and wasi-root keys. Previously the parser would panic with `unwrap()`. Now it prints Target "wasm32-wasi" does not have a "wasi-root" key (and similar for the `musl-libdir` field, which is used in target that use musl) Also update comments around wasi-root field to make it clear that the field is only valid in wasm32-wasi target and needs to be moved to a `[target.wasm32-wasi]` section to be valid. Fixes #82317
2021-03-01Rollup merge of #82643 - Aaron1011:test-macro-attrs, r=petrochenkovYuki Okushi-371/+2249
Add more proc-macro attribute tests r? `@petrochenkov`
2021-03-01Rollup merge of #82622 - jyn514:cargo-test-args, r=Mark-SimulacrumYuki Okushi-0/+1
Propagate `--test-args` for `x.py test src/tools/cargo` Fixes https://github.com/rust-lang/rust/issues/82621.
2021-03-01Rollup merge of #82543 - klensy:skip-jobs, r=Mark-SimulacrumYuki Okushi-1/+1
fix env var name in CI There no `SKIP_JOBS` env var name, only `SKIP_JOB`.
2021-03-01Rollup merge of #82532 - pnkfelix:rustbuild-print-step-rusage, r=Mark-SimulacrumYuki Okushi-3/+86
Add `build.print_step_rusage` to config.toml Adds `build.print_step_rusage` to config.toml, which is meant to be an easy way to let compiler developers get feedback on the terminal during bootstrap about resource usage during each step. The output is piggy-backed on `[PRINT-STEP-TIMINGS]`, mostly because the functionality seemed to naturally fit there in the overall control-flow and output structure (even if very little is shared between the implementations themselves). Some sample output (from my Linux box, where I believe the `max rss` output to be somewhat trust-worthy...): ``` [...] Compiling regex v1.4.3 [RUSTC-TIMING] tempfile test:false 0.323 user: 1.418662 sys: 0.81767 max rss (kb): 182084 page reclaims: 26615 page faults: 0 fs block inputs: 0 fs block outputs: 2160 voluntary ctxt switches: 798 involuntary ctxt switches: 131 Completed tempfile v3.1.0 in 0.3s [RUSTC-TIMING] chalk_ir test:false 1.890 user: 1.893603 sys: 0.99663 max rss (kb): 239432 page reclaims: 32107 page faults: 0 fs block inputs: 0 fs block outputs: 25008 voluntary ctxt switches: 108 involuntary ctxt switches: 183 Completed chalk-ir v0.55.0 in 1.9s Compiling rustc_data_structures v0.0.0 (/home/pnkfelix/Dev/Rust/rust.git/compiler/rustc_data_structures) [RUSTC-TIMING] chrono test:false 1.244 user: 3.333198 sys: 0.134963 max rss (kb): 246612 page reclaims: 44857 page faults: 0 fs block inputs: 0 fs block outputs: 11704 voluntary ctxt switches: 1043 involuntary ctxt switches: 326 Completed chrono v0.4.15 in 1.3s [RUSTC-TIMING] rustc_rayon test:false 1.332 user: 1.763912 sys: 0.75996 max rss (kb): 239076 page reclaims: 35285 page faults: 0 fs block inputs: 0 fs block outputs: 19576 voluntary ctxt switches: 359 involuntary ctxt switches: 168 Completed rustc-rayon v0.3.0 in 1.3s Compiling matchers v0.0.1 [RUSTC-TIMING] matchers test:false 0.100 user: 0.94495 sys: 0.15119 max rss (kb): 140076 page reclaims: 8200 page faults: 0 fs block inputs: 0 fs block outputs: 392 voluntary ctxt switches: 43 involuntary ctxt switches: 12 Completed matchers v0.0.1 in 0.1s [...] ```
2021-03-01Rollup merge of #82531 - GuillaumeGomez:gui-tests-start, r=jyn514Yuki Okushi-0/+37
Add GUI tests The start of a lot more of GUI tests! \o/ One test is to ensure that the search input can always be selected in all rustdoc "modes" (mobile, tablet mostly) whereas the second checks the shortcuts. r? `@jyn514`
2021-03-01Rollup merge of #82507 - jyn514:tidy-windows, r=Mark-SimulacrumYuki Okushi-1/+12
Rename the `tidy` binary to `rust-tidy` This avoids naming collisions, particularly on Windows where the dynamic library variable is PATH and setting it causes the in-tree `tidy` to take precedence over the HTML tidy used by compiletest. This doesn't change the x.py interface in any way, it still accepts `x.py test tidy` and prints error messages about `tidy`. It only changes the name of the file on disk. Fixes https://github.com/rust-lang/rust/issues/82501.
2021-03-01Rollup merge of #82403 - ↵Yuki Okushi-0/+6
pnkfelix:rustbuild-emit-env-vars-on-verbose-verbose, r=Mark-Simulacrum rustbuild: print out env vars on verbose rustc invocations Print out environment variables related to Rust on sufficiently verbose rustc invocations. Output is filtered via heuristic of only printing environment variables whose keys start with "RUST" or "CARGO." This filtering is mostly motivated by my not caring to see e.g. "PATH" in my own output, though it is also motivated as a way to try to avoid printing out personal secrets like github keys that people might have stored in their environments for better or for worse, especially since build output is often pasted into bug reports or gists. Fix #38686. <details> <summary>Click here to see sample output</summary> Sample output looks like: ``` ... Fresh core v0.0.0 (/home/pnkfelix/Dev/Rust/rust.git/library/core) rustc env[0]: "CARGO"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" rustc env[1]: "CARGO_CRATE_NAME"="core" rustc env[2]: "CARGO_INCREMENTAL"="0" rustc env[3]: "CARGO_MAKEFLAGS"="--jobserver-fds=5,6 -j --jobserver-auth=5,6 -j" rustc env[4]: "CARGO_MANIFEST_DIR"="/home/pnkfelix/Dev/Rust/rust.git/library/core" rustc env[5]: "CARGO_PKG_AUTHORS"="The Rust Project Developers" rustc env[6]: "CARGO_PKG_DESCRIPTION"="" rustc env[7]: "CARGO_PKG_HOMEPAGE"="" rustc env[8]: "CARGO_PKG_LICENSE"="" rustc env[9]: "CARGO_PKG_LICENSE_FILE"="" rustc env[10]: "CARGO_PKG_NAME"="core" rustc env[11]: "CARGO_PKG_REPOSITORY"="" rustc env[12]: "CARGO_PKG_VERSION"="0.0.0" rustc env[13]: "CARGO_PKG_VERSION_MAJOR"="0" rustc env[14]: "CARGO_PKG_VERSION_MINOR"="0" rustc env[15]: "CARGO_PKG_VERSION_PATCH"="0" rustc env[16]: "CARGO_PKG_VERSION_PRE"="" rustc env[17]: "CARGO_PROFILE_RELEASE_CODEGEN_UNITS"="256" rustc env[18]: "CARGO_PROFILE_RELEASE_DEBUG"="0" rustc env[19]: "CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS"="false" rustc env[20]: "CARGO_TARGET_DIR"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0-std" rustc env[21]: "RUSTBUILD_NATIVE_DIR"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/native" rustc env[22]: "RUSTC"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/bootstrap/debug/rustc" rustc env[23]: "RUSTC_BOOTSTRAP"="1" rustc env[24]: "RUSTC_BREAK_ON_ICE"="1" rustc env[25]: "RUSTC_ERROR_METADATA_DST"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/tmp/extended-error-metadata" rustc env[26]: "RUSTC_FORCE_UNSTABLE"="1" rustc env[27]: "RUSTC_INSTALL_BINDIR"="bin" rustc env[28]: "RUSTC_LIBDIR"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0/lib" rustc env[29]: "RUSTC_LINT_FLAGS"="-Wrust_2018_idioms -Wunused_lifetimes -Dwarnings" rustc env[30]: "RUSTC_PRINT_STEP_TIMINGS"="1" rustc env[31]: "RUSTC_REAL"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" rustc env[32]: "RUSTC_SNAPSHOT"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" rustc env[33]: "RUSTC_SNAPSHOT_LIBDIR"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0/lib" rustc env[34]: "RUSTC_STAGE"="0" rustc env[35]: "RUSTC_SYSROOT"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0-sysroot" rustc env[36]: "RUSTC_VERBOSE"="2" rustc env[37]: "RUSTDOC"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/bootstrap/debug/rustdoc" rustc env[38]: "RUSTDOCFLAGS"="--cfg=bootstrap -Dwarnings -Winvalid_codeblock_attributes --crate-version 1.52.0-dev" rustc env[39]: "RUSTDOC_REAL"="/path/to/nowhere/rustdoc/not/required" rustc env[40]: "RUSTFLAGS"="--cfg=bootstrap -Zmacro-backtrace -Clink-args=-Wl,-rpath,$ORIGIN/../lib -Cprefer-dynamic" rustc env[41]: "RUST_COMPILER_RT_ROOT"="/home/pnkfelix/Dev/Rust/rust.git/src/llvm-project/compiler-rt" rustc env[42]: "RUST_TEST_THREADS"="128" rustc working directory: /home/pnkfelix/Dev/Rust/rust.git rustc command: "LD_LIBRARY_PATH"="/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0/lib:/home/pnkfelix/Dev/Rust/rust.git/objdi\ r-default/build/x86_64-unknown-linux-gnu/stage0-std/release/deps:/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0/lib" "/home\ /pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" "--crate-name" "core" "--edition=2018" "library/core/src/lib.rs" "--er\ ror-format=json" "--json=diagnostic-rendered-ansi,artifacts" "--crate-type" "lib" "--emit=dep-info,metadata,link" "-C" "opt-level=3" "-C" "embed-bitcode=no" "-C" \ "codegen-units=256" "-C" "debuginfo=0" "-C" "metadata=6748933694d8be19" "-C" "extra-filename=-6748933694d8be19" "--out-dir" "/home/pnkfelix/Dev/Rust/rust.git/objd\ ir-default/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps" "--target" "x86_64-unknown-linux-gnu" "-L" "dependency=/home/pnkfelix/\ Dev/Rust/rust.git/objdir-default/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps" "-L" "dependency=/home/pnkfelix/Dev/Rust/rust.gi\ t/objdir-default/build/x86_64-unknown-linux-gnu/stage0-std/release/deps" "--cfg=bootstrap" "-Zmacro-backtrace" "-Clink-args=-Wl,-rpath,$ORIGIN/../lib" "-Cprefer-d\ ynamic" "-Z" "binary-dep-depinfo" "-Wrust_2018_idioms" "-Wunused_lifetimes" "-Dwarnings" "--sysroot" "/home/pnkfelix/Dev/Rust/rust.git/objdir-default/build/x86_64\ -unknown-linux-gnu/stage0-sysroot" "-Z" "force-unstable-if-unmarked" ... ```
2021-03-01Rollup merge of #82309 - jyn514:rustdocflags, r=Mark-SimulacrumYuki Okushi-9/+21
Propagate RUSTDOCFLAGS in the environment when documenting Previously, RUSTDOCFLAGS would get overriden when bootstrap set `RUSTDOCFLAGS` itself. Propagate the flag manually, using the same logic as `RUSTFLAGS`. Fixes https://github.com/rust-lang/rust/issues/75256.
2021-03-01Remove `krate.version`; fix `crate_version` in JSONJoshua Nelson-6/+5
Previously, `JsonRenderer::after_krate` called `krate.version.clone()`. The problem was it did that after the version was already moved into the cache, so it would always be None. The fix was to get the version from the cache instead.
2021-03-01Remove unused `RenderInfo` structJoshua Nelson-53/+6
2021-03-01Remove the dummy cache in `DocContext`Joshua Nelson-82/+79
The same information is available everywhere; the only reason the dummy cache was needed is because it waas previously stored in three different places. This consolidates the info a bit so the cache in `DocContext` is used throughout. As a bonus, it means `renderinfo` is used much much less. - Return a `Cache` from `run_global_ctxt`, not `RenderInfo` - Remove the unused `render_info` from `run_renderer` - Remove RefCell around `inlined` - Add intra-doc links
2021-02-28Add more proc-macro attribute testsAaron Hill-371/+2249