about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2021-06-25Auto merge of #86574 - m-ou-se:or-pattern-lint-fix, r=petrochenkovbors-37/+57
Don't lint :pat when re-parsing a macro from another crate. `compile_macro` is used both when compiling the original definition in the crate that defines it, and to compile the macro when loading it when compiling a crate that uses it. We should only emit lints in the first case. This adds a `is_definition: bool` to pass this information in, so we don't warn about things that only concern the definition site. Fixes #86567
2021-06-24Auto merge of #86272 - nagisa:nagisa/tidy-llvm-components, r=Mark-Simulacrumbors-407/+517
tidy: verify that test revisions with --target have associated needs-llvm-components directives This ensures that people who tend to write `--target` `#[no_core]` tests don't miss specifying the `needs-llvm-components` directive. This is necessary for the test suite to pass when LLVM is compiled with a subset of components enabled. While here I also took the opportunity to implement a more fine-grained handling of the ignore directives, so that they are evaluated for each revision, rather than for the entire test. With this even if people have `arm` component disabled, only the revision that depends on the arm component will not run. Fixes https://github.com/rust-lang/rust/issues/82405
2021-06-24Don't lint :pat when re-parsing a macro from another crate.Mara Bos-37/+57
2021-06-24compiletest: ignore tests on a per-revision basisSimonas Kazlauskas-383/+357
Otherwise something that ought to seemingly work like `//[x86] needs-llvm-components: x86` or `//[nll_beyond]should-fail` do not get evaluated properly.
2021-06-24Re-Annotate the tests with needs-llvm-componentsSimonas Kazlauskas-24/+61
Doesn't work though, because compiletest doesn't process ignores on a per-revision manner.
2021-06-24tidy: tests with --target need llvm componentsSimonas Kazlauskas-0/+99
Herein we verify that all of the tests that specify a `--target` compile-flag, are also annotated with the minimal set of required llvm components necessary to run that test.
2021-06-24Auto merge of #85651 - dns2utf8:rustdoc_flexbox, r=GuillaumeGomezbors-76/+129
rustdoc: staggered layout for module contents on mobile This PR adds the container `<item-table>` with its two children `<item-left>` and `<item-right>`. It uses grid-layout on desktop and flexbox on mobile to make better use of the available space. Additionally it allows to share parts of the CSS with the search function. * Demo: https://data.estada.ch/rustdoc-nightly_126561cb3_2021-05-25/generic_array/index.html * Related: #85540 ## Desktop ![grafik](https://user-images.githubusercontent.com/739070/119416896-2be62300-bce4-11eb-9555-792b859ab611.png) ## Mobile ![grafik](https://user-images.githubusercontent.com/739070/119416934-44563d80-bce4-11eb-9e77-70a72edcc487.png) r? `@GuillaumeGomez` `@jsha`
2021-06-24Auto merge of #86467 - ChrisDenton:win-env-clear, r=JohnTitorbors-0/+15
Windows: Fix `Command::env_clear` so it works if no variables are set Previously, it would error unless at least one new environment variable was added. The missing null presumably meant that Windows was reading random memory in that case. See: [CreateProcessW](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw) (scroll down to `lpEnvironment`). Essentially the environment block is a null terminated list of null terminated strings and an empty list is `\0\0` and not `\0`. EDIT: Oh, [CreateEnvironmentBlock](https://docs.microsoft.com/en-gb/windows/win32/api/userenv/nf-userenv-createenvironmentblock) states this much more explicitly. Fixes #31259
2021-06-24Auto merge of #85427 - ehuss:fix-use-placement, r=jackh726bors-20/+167
Fix use placement for suggestions near main. This fixes an edge case for the suggestion to add a `use`. When running with `--test`, the `main` function will be annotated with an `#[allow(dead_code)]` attribute. The `UsePlacementFinder` would end up using the dummy span of that synthetic attribute. If there are top-level inner attributes, this would place the `use` in the wrong position. The solution here is to ignore attributes with dummy spans. In the process of working on this, I discovered that the `use_suggestion_placement` test was broken. `UsePlacementFinder` is unaware of active attributes. Attributes like `#[derive]` don't exist in the AST since they are removed. Fixing that is difficult, since the AST does not retain enough information. I considered trying to place the `use` towards the top of the module after any `extern crate` items, but I couldn't find a way to get a span for the start of a module block (the `mod` span starts at the `mod` keyword, and it seems tricky to find the spot just after the opening bracket and past inner attributes). For now, I just put some comments about the issue. This appears to have been a known issue in #44215 where the test for it was introduced, and the fix seemed to be deferred to later.
2021-06-24Migrate from custom elements to divs with classes to be compatible with safariStefan Schindler-75/+82
2021-06-24Hide Crate Version on narrow ScreensStefan Schindler-6/+21
2021-06-24Fixing the test rustdoc by ignoring ↵Stefan Schindler-8/+9
`*[@id="module-item"]//following-sibling::item-right` relationship and rustdoc-gui
2021-06-24Implement Desktop and Mobile version with gridlayoutStefan Schindler-31/+61
* implement sans-serif #85621
2021-06-24Test that `env_clear` works on WindowsChris Denton-0/+9
2021-06-24Auto merge of #86279 - JohnTitor:transparent-zero-size-fields, r=nikomatsakisbors-81/+51
Permit zero non-zero-field on transparent types Fixes #77841 This makes the transparent fields meet the below: > * A `repr(transparent)` type `T` must meet the following rules: > * It may have any number of 1-ZST fields > * In addition, it may have at most one other field of type U r? `@nikomatsakis`
2021-06-24Auto merge of #86588 - JohnTitor:rollup-ibgjbkf, r=JohnTitorbors-157/+318
Rollup of 8 pull requests Successful merges: - #86137 (Error code cleanup and enforce checks) - #86296 (Add documentation for various THIR structs) - #86415 (Document associativity of iterator folds.) - #86533 (Support lowercase error codes in `--explain`) - #86536 (Edition 2021 enables disjoint capture) - #86560 (Update cargo) - #86561 (chore(rustdoc): Remove unused impl block) - #86566 (Use `use_verbose` for `mir::Constant`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-06-24Rollup merge of #86566 - fee1-dead:mir-pretty-print, r=oli-obkYuki Okushi-60/+19
Use `use_verbose` for `mir::Constant` Fixes #79799.
2021-06-24Rollup merge of #86561 - notriddle:notriddle/cleanup-rustdoc, r=jyn514Yuki Okushi-22/+0
chore(rustdoc): Remove unused impl block
2021-06-24Rollup merge of #86560 - ehuss:update-cargo, r=ehussYuki Okushi-8/+23
Update cargo This also updates `opener` used in bootstrap (to try to keep dependencies unified). 18 commits in 44456677b5d1d82fe981c955dc5c67734b31f340..9233aa06c801801cff75df65df718d70905a235e 2021-06-12 18:00:01 +0000 to 2021-06-22 21:32:55 +0000 - Detect incorrectly named cargo.toml (rust-lang/cargo#9607) - Unify weak and namespaced features. (rust-lang/cargo#9574) - Change `rustc-cdylib-link-arg` error to a warning. (rust-lang/cargo#9563) - Updates to future-incompatible reporting. (rust-lang/cargo#9606) - Add a compatibility notice for diesel and the new resolver. (rust-lang/cargo#9602) - Don't allow config env to modify vars set by cargo (rust-lang/cargo#9579) - Disambiguate is_symlink. (rust-lang/cargo#9604) - Update opener requirement from 0.4 to 0.5 (rust-lang/cargo#9583) - Avoid quadratic complexity when splitting output into lines (rust-lang/cargo#9586) - Bump to 0.56.0, update changelog (rust-lang/cargo#9597) - Fix dep-info files including non-local build script paths. (rust-lang/cargo#9596) - Relax doc collision error. (rust-lang/cargo#9595) - Handle "jobs = 0" case in cargo config files (rust-lang/cargo#9584) - Enhancements to testsuite error output. (rust-lang/cargo#9589) - Fix typo (rust-lang/cargo#9590) - Enable support for fix --edition for 2021. (rust-lang/cargo#9588) - Add more details for installing git repository errors (rust-lang/cargo#9582) - More information for links conflicting (rust-lang/cargo#9568)
2021-06-24Rollup merge of #86536 - sexxi-goose:edition, r=nikomatsakisYuki Okushi-2/+35
Edition 2021 enables disjoint capture First part for https://github.com/rust-lang/project-rfc-2229/issues/43
2021-06-24Rollup merge of #86533 - inquisitivecrystal:lower-case-error-explain, ↵Yuki Okushi-2/+6
r=petrochenkov Support lowercase error codes in `--explain` This enables `rustc --explain` to accept a lowercase error code. Thus, for instance, `rustc --explain e0573` would be valid after this change, where before a user would have needed to do `rustc --explain E0573`. Although the upper case form of an error code is canonical, the user may prefer the easier-to-type lowercase form, and there's nothing to be gained by forcing them to type the upper case version. Resolves #86518.
2021-06-24Rollup merge of #86415 - Kmeakin:iterator-associativity-docs, r=dtolnayYuki Okushi-2/+29
Document associativity of iterator folds. Document the associativity of `Iterator::fold` and `DoubleEndedIterator::rfold` and add examples demonstrating this. Add links to direct users to the fold of the opposite associativity.
2021-06-24Rollup merge of #86296 - LeSeulArtichaut:thir-doc, r=nikomatsakisYuki Okushi-35/+109
Add documentation for various THIR structs Helps with rust-lang/project-thir-unsafeck#6. r? `@nikomatsakis`
2021-06-24Rollup merge of #86137 - GuillaumeGomez:error-code-cleanup, r=Mark-SimulacrumYuki Okushi-26/+97
Error code cleanup and enforce checks Fixes #86097. It now checks if an error code is unused, and if so, will report an error if the error code wasn't commented out in the `error_codes.rs` file. It also checks that the constant used in the tidy check is up-to-date. r? `@Mark-Simulacrum`
2021-06-23Handle windows paths as wellGuillaume Gomez-1/+7
2021-06-23Auto merge of #86138 - FabianWolff:issue-85871, r=nikomatsakisbors-3/+28
Check whether the closure's owner is an ADT in thir-unsafeck This pull request fixes #85871. The code in `rustc_mir_build/src/check_unsafety.rs` incorrectly assumes that a closure's owner always has a body, but only functions, closures, and constants have bodies, whereas a closure can also appear inside a struct or enum: ```rust struct S { arr: [(); match || 1 { _ => 42 }] } enum E { A([(); { || 1; 42 }]) } ``` This pull request fixes the resulting ICE by checking whether the closure's owner is an ADT and only deferring to `thir_check_unsafety(owner)` if it isn't.
2021-06-23Greatly improve codeGuillaume Gomez-40/+4
2021-06-23Remove unused error codes from error_codes.rs and from EXEMPTED_FROM_TEST ↵Guillaume Gomez-9/+6
constant
2021-06-23Add check on constant to ensure it's up to dateGuillaume Gomez-4/+25
2021-06-23Check if error code is usedGuillaume Gomez-16/+99
2021-06-23Auto merge of #86573 - Mark-Simulacrum:expat-bump, r=pietroalbinibors-1/+1
Bump expat to 2.4.1 Temporary fix as expat 2.3.0 is now renamed, presumably due to https://github.com/libexpat/libexpat/blob/R_2_4_1/expat/Changes#L19. r? `@pietroalbini`
2021-06-23Add bstr to rustc-workspace-hack for rustfmt/cargo.Eric Huss-0/+2
2021-06-23Bump expat to 2.4.1Mark Rousskov-1/+1
2021-06-23Auto merge of #86548 - GuillaumeGomez:fix-crate-filter-search-reset, r=jshabors-0/+21
Fix crate filter search reset I found a fun bug when using rustdoc recently: I made a search, cut the search input content, changed the crate filter, pasted back the input content. To my surprise, the crate filter wasn't applied. It's because that our search input was empty when receiving the `<select>` "onchange" event. To fix this issue, I reset the `currentResults` variable to `null`. It's using the first commit from #86542 so it needs to wait for it before getting merged. r? `@jsha`
2021-06-23Fix search filter updateGuillaume Gomez-0/+21
2021-06-23Auto merge of #86564 - jsha:revert-83826, r=jyn514bors-8/+8
Revert "List trait impls before methods from deref in the sidebar ..." This reverts commit 8a058926ecd6d0988714f8f7a5a31293c533f8c6. Fixes #85618 r? `@jyn514`
2021-06-22Teach rustc to accept lowercase error codesAris Merchant-2/+6
2021-06-23Auto merge of #86386 - ↵bors-44/+33
inquisitivecrystal:better-errors-for-display-traits-v3, r=estebank Better errors for Debug and Display traits Currently, if someone tries to pass value that does not implement `Debug` or `Display` to a formatting macro, they get a very verbose and confusing error message. This PR changes the error messages for missing `Debug` and `Display` impls to be less overwhelming in this case, as suggested by #85844. I was a little less aggressive in changing the error message than that issue proposed. Still, this implementation would be enough to reduce the number of messages to be much more manageable. After this PR, information on the cause of an error involving a `Debug` or `Display` implementation would suppressed if the requirement originated within a standard library macro. My reasoning was that errors originating from within a macro are confusing when they mention details that the programmer can't see, and this is particularly problematic for `Debug` and `Display`, which are most often used via macros. It is possible that either a broader or a narrower criterion would be better. I'm quite open to any feedback. Fixes #85844.
2021-06-23Updated mir pretty print outputDeadbeef-33/+0
2021-06-23Use `use_verbose` for mir::ConstantDeadbeef-27/+19
2021-06-22Revert "List trait impls before methods from deref in the sidebar of ↵Jacob Hoffman-Andrews-8/+8
Rustdoc's output" This reverts commit 8a058926ecd6d0988714f8f7a5a31293c533f8c6.
2021-06-22Auto merge of #86559 - Dylan-DPC:rollup-aixg3q5, r=Dylan-DPCbors-455/+564
Rollup of 6 pull requests Successful merges: - #86223 (Specify the kind of the item for E0121) - #86521 (Add comments around code where ordering is important due for panic-safety) - #86523 (Improvements to intra-doc link macro disambiguators) - #86542 (Line numbers aligned with content) - #86549 (Add destructuring example of E0508) - #86557 (Update books) Failed merges: - #86548 (Fix crate filter search reset) r? `@ghost` `@rustbot` modify labels: rollup
2021-06-22chore(rustdoc): Remove unused impl blockMichael Howell-22/+0
2021-06-22Update cargoEric Huss-8/+21
2021-06-23Rollup merge of #86557 - ehuss:update-books, r=ehussDylan DPC-0/+0
Update books ## nomicon 10 commits in 55de6fa3c1f331774da19472c9ee57d2ae9eb039..b9ca313e687c991223e23e5520529815dc281205 2021-05-12 00:31:01 +0900 to 2021-06-22 12:02:20 -0400 - The #[repr(C)] attribute on the callback example is not necessary, since the type is not used in C. - Reorganize some chapters (rust-lang-nursery/nomicon#282) - Mention "extern types" on the opaque structs section (rust-lang-nursery/nomicon#273) - Clarify the conditions on the aliasing section (rust-lang-nursery/nomicon#272) - Upgrade to edition 2018 (rust-lang-nursery/nomicon#280) - Update some wording making reference to issues/RFCs (rust-lang-nursery/nomicon#271) - Some improvements on the "subtyping" chapter (rust-lang-nursery/nomicon#278) - Clarify casting between the same size fixed ints (rust-lang-nursery/nomicon#277) - Add a link to show why unused lifetimes on structs are forbidden (rust-lang-nursery/nomicon#276) - Fix small typo in the Drop Check chapter (rust-lang-nursery/nomicon#275) ## reference 8 commits in 8f598e2af6c25b4a7ee88ef6a8196d9b8ea50ca8..d9699fa8f3186440fdaadd703d63d8d42322c176 2021-06-01 19:00:46 +0100 to 2021-06-21 12:23:10 -0700 - Make explicit reference to scrutinee expression in grammar snippet (rust-lang-nursery/reference#1044) - Document sub-namespaces. (rust-lang-nursery/reference#1043) - Default all examples to 2018 edition. (rust-lang-nursery/reference#1041) - Minor update to macros. (rust-lang-nursery/reference#1048) - (rust-lang-nursery/reference#1049) - Add a note why the same size int casting is a no-op (rust-lang-nursery/reference#1046) - Add notes on `#[target_feature]` for wasm (rust-lang-nursery/reference#1047) - Make statement about variable visibility more precise (rust-lang-nursery/reference#1045) ## rustc-dev-guide 8 commits in c8da5bfd1c7c71d90ef1646f5e0a9f6609d5c78a..fe34beddb41dea5cb891032512a8d5b842b99696 2021-06-04 09:08:56 +0200 to 2021-06-21 21:50:12 +0200 - Update "Inference variables" section (rust-lang/rustc-dev-guide#1145) - Document how to run unit tests (rust-lang/rustc-dev-guide#1141) - We stopped using allow_internal_unstable a while ago (rust-lang/rustc-dev-guide#1142) - Change the feature used as an example of stabilizing lib features (rust-lang/rustc-dev-guide#1143) - We use HIR to do type inference, trait solving and type checking (rust-lang/rustc-dev-guide#1139) - Add suggested settings note for coc (rust-lang/rustc-dev-guide#1144) - move 7/8 to prose - Add a section on keeping things up to date in the git section ## edition-guide 2 commits in 302a115e8f71876dfc884aebb0ca5ccb02b8a962..c74b2a0d6bf55774cf15d69f05dfe05408b8f81a 2021-05-21 10:46:11 -0400 to 2021-06-14 10:48:27 -0700 - Fix lies. (rust-lang/edition-guide#244) - Add short summaries to all 2021 edition changes. (rust-lang/edition-guide#243) ## embedded-book 1 commits in 7349d173fa28a0bb834cf0264a05286620ef0923..cbec77fbd8eea0c13e390dd9eded1ae200e811d1 2021-05-25 13:59:05 +0000 to 2021-06-10 06:26:32 +0000 - Fix punctuation in c-with-rust.md (rust-embedded/book#294)
2021-06-23Rollup merge of #86549 - mbartlett21:patch-1, r=GuillaumeGomezDylan DPC-0/+13
Add destructuring example of E0508 This adds an example that destructures the array to move the value, instead of taking a reference or cloning.
2021-06-23Rollup merge of #86542 - GuillaumeGomez:line-numbers-aligned-with-content, ↵Dylan DPC-40/+42
r=jyn514 Line numbers aligned with content We had the issue a few times in the past where the source code pages' content wasn't aligned with the line numbers but completely below. This test will prevent this change to go unnoticed. The first commit comes from https://github.com/rust-lang/rust/pull/86541 so it needs it to be merged first. r? `@jsha`
2021-06-23Rollup merge of #86523 - LeSeulArtichaut:macros-disambiguators, r=jyn514Dylan DPC-27/+37
Improvements to intra-doc link macro disambiguators A few small improvements around macro disambiguators: - display the link text as it was entered: previously `[macro!()]` would be displayed without the parantheses (fixes #86309) - support `!{}` and `![]` as macro disambiguators (fixes #86310) r? `@jyn514` cc `@Manishearth` `@camelid`
2021-06-23Rollup merge of #86521 - the8472:add-footgun-comments, r=RalfJungDylan DPC-0/+17
Add comments around code where ordering is important due for panic-safety Iterators contain arbitrary code which may panic. Unsafe code has to be careful to do its state updates at the right point between calls that may panic. As requested in https://github.com/rust-lang/rust/pull/86452#discussion_r655153948 r? `@RalfJung`
2021-06-23Rollup merge of #86223 - fee1-dead:better-E0121, r=petrochenkovDylan DPC-388/+455
Specify the kind of the item for E0121 Fixes #86005