Commit graph

161621 commits

Author SHA1 Message Date
David Tolnay
7ee21e3de1
Bless coverage-reports after format_args change 2022-01-18 11:00:18 -08:00
Jacob Hoffman-Andrews
6a5f8b1aef Simplify and unify rustdoc sidebar styles
This switches to just use size, weight, and spacing to distinguish
headings in the sidebar. We no longer use boxes, horizontal bars, or
centering to distinguish headings. This makes it much easier to
understand the hierarchy of headings, and reduces visual noise.

I also refactored how the mobile topbar works. Previously, we tried to
shift around elements from the sidebar to make the topbar. Now, the
topbar gets its own elements, which can be styled on their own. This
makes styling and reasoning about those elements simpler.

Because the heading font sizes are bigger, increase the sidebar width
slightly.

As a very minor change, removed version from the "All types" page. It's
now only on the crate page.
2022-01-18 10:43:14 -08:00
pierwill
0882bbb3a1 Remove some unused Ord derivations based on DefId
Removes `Ord` and `PartialOrd` from  middle::mir::mirsource, inlineasmoperand,
terminatorkind, operand, constant, constantkind, and place
2022-01-18 10:53:40 -06:00
Amanieu d'Antras
3db479ed07 Fix stdarch submodule pointing to commit outside tree
PR #93016 was merged with the stdarch submodule pointing to a commit in
a PR branch and not in master. This was due to a circular dependency
between the rust and stdarch changes which would cause the other to fail
to build.

cc #75109
2022-01-18 15:25:38 +00:00
bors
9ad5d82f82 Auto merge of #92731 - bjorn3:asm_support_changes, r=nagisa
Avoid unnecessary monomorphization of inline asm related functions

This should reduce build time for codegen backends by avoiding duplicated monomorphization of certain inline asm related functions for each passed in closure type.
2022-01-18 14:32:52 +00:00
threadexception
ef46e38c2b Implement tuple array diagnostic
Co-authored-by: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>
2022-01-18 15:22:35 +01:00
lcnr
217458b9da intra-doc links 2022-01-18 12:23:43 +01:00
lcnr
cbc6d35a57 privacy: update visit_infer 2022-01-18 12:23:43 +01:00
lcnr
b2d8f0c77d generic_arg_infer: placeholder in signature err 2022-01-18 12:23:43 +01:00
lcnr
621e60a54f remove unnecessary fixme 2022-01-18 12:22:57 +01:00
lcnr
a8b71164af change ct_infer to a delay_span_bug 2022-01-18 12:22:57 +01:00
bors
7bc7be860f Auto merge of #87648 - JulianKnodt:const_eq_constrain, r=oli-obk
allow eq constraints on associated constants

Updates #70256

(cc `@varkor,` `@Centril)`
2022-01-18 09:58:39 +00:00
klensy
51cd00c32f fix typo in max description for f32/f64 2022-01-18 10:30:32 +03:00
bors
7531d2fdd4 Auto merge of #93021 - matthiaskrgr:rollup-o7z8zoe, r=matthiaskrgr
Rollup of 14 pull requests

Successful merges:

 - #92629 (Pick themes on settings page, not every page)
 - #92640 (Fix ICEs related to `Deref<Target=[T; N]>` on newtypes)
 - #92701 (Add some more attribute validation)
 - #92803 (Hide mobile sidebar on some clicks)
 - #92830 (Rustdoc style cleanups)
 - #92866 ("Does exists" typos fix)
 - #92870 (add `rustc_diagnostic_item` attribute to `AtomicBool` type)
 - #92914 (htmldocck: Add support for `/text()` in ``@snapshot`)`
 - #92923 (Abstract the pretty printer's ringbuffer to be infinitely sized)
 - #92946 (Exclude llvm-libunwind from the self-contained set on s390x-musl targets)
 - #92947 (rustdoc: Use `intersperse` in a `visit_path` function)
 - #92997 (Add `~const` bound test for negative impls)
 - #93004 (update codegen test for LLVM 14)
 - #93016 (Stabilize vec_spare_capacity)

Failed merges:

 - #92924 (Delete pretty printer tracing)

r? `@ghost`
`@rustbot` modify labels: rollup
2022-01-18 06:07:58 +00:00
Eric Huss
6a1099c202 Disable docs on aarch64-apple-darwin.
This builder is the slowest in the fleet. This should cut a considerable
amount of time. The manifest should now include the docs from
x86_64-apple-darwin. Although those docs are slightly different, it
should be close enough. When aarch64-apple-darwin heads towards tier 1,
we can revisit whether or not to re-enable the docs.
2022-01-17 20:21:44 -08:00
Caleb Zulawski
49d36d733d Improve documentation of splatted constants 2022-01-18 03:51:04 +00:00
Matthias Krüger
83b1a9452a
Rollup merge of #93016 - Amanieu:vec_spare_capacity, r=Mark-Simulacrum
Stabilize vec_spare_capacity

Closes #75017
2022-01-18 04:42:11 +01:00
Matthias Krüger
b8c544de71
Rollup merge of #93004 - krasimirgg:threadlocal-llvm-up, r=nikic
update codegen test for LLVM 14

Fixes https://github.com/rust-lang/rust/issues/93003.
2022-01-18 04:42:10 +01:00
Matthias Krüger
baeff67b5f
Rollup merge of #92997 - woppopo:test92114, r=Mark-Simulacrum
Add `~const` bound test for negative impls

Resolves #92114 which has been fixed in #92892.
2022-01-18 04:42:09 +01:00
Matthias Krüger
71e5bfed70
Rollup merge of #92947 - vacuus:rustdoc-core-visit-path, r=camelid
rustdoc: Use `intersperse` in a `visit_path` function

(~~Is there a better way to word the title?~~ Eh, this works, I guess.)
I'm surprised that the compiler didn't complain when I left out the `.to_string()`, but hey, if it works then it works.
2022-01-18 04:42:08 +01:00
Matthias Krüger
b05be976ef
Rollup merge of #92946 - kaniini:chore/llvm-libunwind-s390x, r=Mark-Simulacrum
Exclude llvm-libunwind from the self-contained set on s390x-musl targets

llvm-libunwind does not support s390x targets at present, so we cannot build it
for s390x targets.  Accordingly, remove it from the self-contained set.
2022-01-18 04:42:07 +01:00
Matthias Krüger
04b2073c84
Rollup merge of #92923 - dtolnay:ringbuffer, r=petrochenkov
Abstract the pretty printer's ringbuffer to be infinitely sized

This PR backports 8e5e83c3ff from the `prettyplease` crate into `rustc_ast_pretty`.

Using a dedicated RingBuffer type with non-wrapping indices, instead of manually `%`-ing indices into a capped sized buffer, unlocks a number of simplifications to the pretty printing algorithm implementation in followup commits such as fcb5968b1e and 4427cedcb8.

This change also greatly reduces memory overhead of the pretty printer. The old implementation always grows its buffer to 205920 bytes even for files without deeply nested code, because it only wraps its indices when they hit the maximum tolerable size of the ring buffer (the size after which the pretty printer will crash if there are that many tokens buffered). In contrast, the new implementation uses memory proportional to the peak number of simultaneously buffered tokens only, not the number of tokens that have ever been in the buffer.

Speaking of crashing the pretty printer and "maximum tolerable size", the constant used for that in the old implementation is a lie:

de9b573eed/compiler/rustc_ast_pretty/src/pp.rs (L227-L228)

It was raised from 3 to 55 in https://github.com/rust-lang/rust/pull/33934 because that was empirically the size that avoided crashing on one particular test crate, but according to https://github.com/rust-lang/rust/pull/33934#issuecomment-226700470 other syntax trees still crash at that size. There is no reason to believe that any particular size is good enough for arbitrary code, and using a large number like 55 adds overhead to inputs that never need close to that much of a buffer. The new implementation eliminates this tradeoff.
2022-01-18 04:42:06 +01:00
Matthias Krüger
be3d25bd78
Rollup merge of #92914 - camelid:snapshot-text, r=GuillaumeGomez
htmldocck: Add support for `/text()` in `@snapshot`

This allows just testing the text, in cases where the HTML tags don't
matter.

See https://github.com/rust-lang/rust/pull/92908#discussion_r785191758 for an example of when this would be useful.

r? `@GuillaumeGomez`
2022-01-18 04:42:05 +01:00
Matthias Krüger
6a5663ed82
Rollup merge of #92870 - llogiq:atomic_bool_sym, r=Manishearth
add `rustc_diagnostic_item` attribute to `AtomicBool` type

I wanted to use this in clippy and found that it didn't work. So hopefully this addition will fix it.
2022-01-18 04:42:04 +01:00
Matthias Krüger
ae8f39e4d4
Rollup merge of #92866 - maxwase:does_exist_typo, r=Mark-Simulacrum
"Does exists" typos fix

Fixed some typos
2022-01-18 04:42:03 +01:00
Matthias Krüger
deee6f770f
Rollup merge of #92830 - jsha:style-cleanups, r=GuillaumeGomez
Rustdoc style cleanups

 - Make "since" version numbers grey again (regressed in #92602).
 - Remove unneeded selectors for when crate filter dropdown is a
   sibling of search-input.
 - Crate filter dropdown doesn't need to be 100% width on mobile.
 - Only build crate filter dropdown when there is more than one crate.
 - Remove unused addCrateDropdown

 Demo: https://rustdoc.crud.net/jsha/style-cleanups/std/string/struct.String.html

 r? `@GuillaumeGomez`
2022-01-18 04:42:02 +01:00
Matthias Krüger
cc2339ce83
Rollup merge of #92803 - jsha:hide-sidebar, r=GuillaumeGomez
Hide mobile sidebar on some clicks

When the user clicks outside the sidebar, the sidebar should close. Also, when the user clicks an internal link in the sidebar, it should close.

Fixes #92682

Demo: https://rustdoc.crud.net/jsha/hide-sidebar/std/string/struct.String.html
2022-01-18 04:42:00 +01:00
Matthias Krüger
804072fdfc
Rollup merge of #92701 - ehuss:even-more-attr-validation, r=matthewjasper
Add some more attribute validation

This adds some more validation for the position of attributes:

* `link` is only valid on an `extern` block
* `windows_subsystem` and `no_builtins` are only valid at the crate level
2022-01-18 04:41:59 +01:00
Matthias Krüger
cb5ecff8b2
Rollup merge of #92640 - compiler-errors:array-deref-on-newtype, r=lcnr
Fix ICEs related to `Deref<Target=[T; N]>` on newtypes

1. Stash a const infer's type into the canonical var during canonicalization, so we can recreate the fresh const infer with that same type.
    For example, given `[T; _]` we know `_` is a `usize`. If we go from infer => canonical => infer, we shouldn't forget that variable is a usize.
Fixes #92626
Fixes #83704

2. Don't stash the autoderef'd slice type that we get from method lookup, but instead recreate it during method confirmation. We need to do this because the type we receive back after picking the method references a type variable that does not exist after probing is done.
Fixes #92637

... A better solution for the second issue would be to actually _properly_ implement `Deref` for `[T; N]` instead of fixing this autoderef hack to stop leaking inference variables. But I actually looked into this, and there are many complications with const impls.
2022-01-18 04:41:58 +01:00
Matthias Krüger
d501ead009
Rollup merge of #92629 - jsha:theme-picker-local-only-2, r=GuillaumeGomez
Pick themes on settings page, not every page

This hides the paintbrush icon on most pages by default, in preference for the settings on the settings page.  When loading from a local file, and not in mobile view, continue to show the theme picker. That's because some browsers limit access to localStorage from file:/// URLs, so choosing a theme from settings.html doesn't take effect.

Fixes #84539
Part of #59840

r? `@GuillaumeGomez`

Demo: https://rustdoc.crud.net/jsha/theme-picker-local-only-2/std/io/trait.Read.html
2022-01-18 04:41:58 +01:00
Caleb Zulawski
1d5bf6bc28
Update compiler/rustc_codegen_llvm/src/builder.rs
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2022-01-17 22:29:12 -05:00
bors
e4ff9031ac Auto merge of #93001 - flip1995:clippyup, r=Manishearth
Out of cycle Clippy update

I want to do an out-of-cycle sync for rust-lang/rust-clippy#8295, and possibly backport this to stable together with https://github.com/rust-lang/rust/issues/92938. If this doesn't get backported to stable, then I at least want to backport it to beta.

r? `@Manishearth`
2022-01-18 02:32:36 +00:00
bors
86b1581ea0 Auto merge of #93009 - matthiaskrgr:rollup-3fkxg6i, r=matthiaskrgr
Rollup of 10 pull requests

Successful merges:

 - #90498 (Clarifications in the target tier policy)
 - #92164 (Implement `#[rustc_must_implement_one_of]` attribute)
 - #92729 (rustc_codegen_llvm: Remove (almost) unused span parameter from many functions in metadata.rs)
 - #92752 (Correct minor typos in some long error code explanations)
 - #92801 (Enable wrapping words by default)
 - #92825 (Rename environment variable for overriding rustc version)
 - #92877 (Remove LLVMRustMarkAllFunctionsNounwind)
 - #92936 (rustdoc: Remove `collect` in `html::markdown::parse`)
 - #92956 (Add `log2` and `log10` to `NonZeroU*`)
 - #92960 (Use `carrying_{mul|add}` in `num::bignum`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-01-17 23:01:35 +00:00
Jacob Hoffman-Andrews
ae99e23c11 Add staged_api for tests 2022-01-17 13:23:46 -08:00
pierwill
ae9b624bf6 Rm some unused ord impls 2022-01-17 15:15:32 -06:00
Amanieu d'Antras
e012b9a78d Stabilize vec_spare_capacity
Closes #75017
2022-01-17 21:07:02 +00:00
David Tolnay
7b5b3cf82c
Abstract the pretty printer's ringbuffer to be infinitely sized 2022-01-17 12:08:08 -08:00
kadmin
b77bb5cb25 Update with final comments 2022-01-17 20:04:37 +00:00
Jacob Hoffman-Andrews
b71f1fb002 Hide mobile sidebar on some clicks
When the user clicks outside the sidebar, the sidebar should close.
Also, when the user clicks an internal link in the sidebar, it should
close.
2022-01-17 12:01:35 -08:00
kadmin
1c1ce2fbda Add term to ExistentialProjection
Also prevent ICE when adding a const in associated const equality.
2022-01-17 20:01:22 +00:00
kadmin
f396888c4d Update w/ comments
Removes uses of ty() where a method is implemented on TypeFoldable, and also directly formats
a Term.
2022-01-17 20:01:21 +00:00
kadmin
e7529d6a38 Update term for use in more places
Replace use of `ty()` on term and use it in more places. This will allow more flexibility in the
future, but slightly worried it allows items which are consts which only accept types.
2022-01-17 19:59:40 +00:00
Jacob Hoffman-Andrews
43b9268592 Rustdoc style cleanups
- Make "since" version numbers grey again (regressed in #92602).
 - Remove unneeded selectors for when crate filter dropdown is a
   sibling of search-input.
 - Crate filter dropdown doesn't need to be 100% width on mobile.
 - Only build crate filter dropdown when there is more than one crate.
 - Remove unused addCrateDropdown.
2022-01-17 11:45:28 -08:00
Matthias Krüger
68d47def01
Rollup merge of #92960 - scottmcm:carrying-bignum, r=Mark-Simulacrum
Use `carrying_{mul|add}` in `num::bignum`

Now that we have (unstable) methods for this, we don't need the bespoke trait methods for it in the `bignum` implementation.

cc #85532
2022-01-17 20:07:10 +01:00
Matthias Krüger
731af70217
Rollup merge of #92956 - scottmcm:nonzero-log2, r=dtolnay
Add `log2` and `log10` to `NonZeroU*`

This version is nice in that it doesn't need to worry about zeros, and thus doesn't have any error cases.

cc `int_log` tracking issue #70887

(I didn't add them to `NonZeroI*` despite it being on `i*` since allowing negatives bring back the error cases again.)
2022-01-17 20:07:09 +01:00
Matthias Krüger
25f73b7815
Rollup merge of #92936 - vacuus:html-markdown-parse, r=GuillaumeGomez
rustdoc: Remove `collect` in `html::markdown::parse`
2022-01-17 20:07:08 +01:00
Matthias Krüger
7f02604f3d
Rollup merge of #92877 - Amanieu:remove_llvm_nounwind, r=Mark-Simulacrum
Remove LLVMRustMarkAllFunctionsNounwind

This was originally introduced in #10916 as a way to remove all landing
pads when performing LTO. However this is no longer necessary today
since rustc properly marks all functions and call-sites as nounwind
where appropriate.

In fact this is incorrect in the presence of `extern "C-unwind"` which
must create a landing pad when compiled with `-C panic=abort` so that
foreign exceptions are caught and properly turned into aborts.
2022-01-17 20:07:07 +01:00
Matthias Krüger
6acb7043e7
Rollup merge of #92825 - pierwill:rustc-version-force-rename, r=Mark-Simulacrum
Rename environment variable for overriding rustc version
2022-01-17 20:07:06 +01:00
Matthias Krüger
51aa20de07
Rollup merge of #92801 - jsha:overflow-wrap, r=GuillaumeGomez
Enable wrapping words by default

Faced with a very long word, browsers will let it overflow its
box horizontally rather than break it in the middle. We essentially
never want that behavior. We would rather break the word and keep it
inside its horizontal limits. So we apply a default overflow-wrap:
break-word/anywhere to the document as a while.

In some contexts we would rather add a horizontal scrollbar (code
blocks), or elide the excess text with an ellipsis (sidebar). Those
still work as expected.

Fixes #92771

[Some related discussion](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/wrap.20.2F.20overflow.20.2F.20scroll) and a related issue: #92421.

Demo: https://rustdoc.crud.net/jsha/overflow-wrap/std/iter/trait.Iterator.html#method.try_find

r? ``@GuillaumeGomez``
2022-01-17 20:07:05 +01:00
Matthias Krüger
4de63e7c23
Rollup merge of #92752 - jamestiotio:error-codes-typos, r=nagisa
Correct minor typos in some long error code explanations

Just a little nitpick to improve the long explanations of the error codes. 😊
2022-01-17 20:07:04 +01:00