]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoFix compiler docs
Joshua Nelson [Wed, 17 Mar 2021 13:59:45 +0000 (09:59 -0400)]
Fix compiler docs

3 years agoAddress review comments
Joshua Nelson [Tue, 16 Mar 2021 16:57:31 +0000 (12:57 -0400)]
Address review comments

- Add back `HirIdVec`, with a comment that it will soon be used.
- Add back `*_region` functions, with a comment they may soon be used.
- Remove `-Z borrowck_stats` completely. It didn't do anything.
- Remove `make_nop` completely.
- Add back `current_loc`, which is used by an out-of-tree tool.
- Fix style nits
- Remove `AtomicCell` with `cfg(parallel_compiler)` for consistency.

3 years agoRemove (lots of) dead code
Joshua Nelson [Tue, 16 Mar 2021 05:50:34 +0000 (01:50 -0400)]
Remove (lots of) dead code

Found with https://github.com/est31/warnalyzer.

Dubious changes:
- Is anyone else using rustc_apfloat? I feel weird completely deleting
  x87 support.
- Maybe some of the dead code in rustc_data_structures, in case someone
  wants to use it in the future?
- Don't change rustc_serialize

  I plan to scrap most of the json module in the near future (see
  https://github.com/rust-lang/compiler-team/issues/418) and fixing the
  tests needed more work than I expected.

TODO: check if any of the comments on the deleted code should be kept.

3 years agoRemove unused `DiagnosticBuilder::sub` function
Joshua Nelson [Mon, 15 Mar 2021 19:11:40 +0000 (15:11 -0400)]
Remove unused `DiagnosticBuilder::sub` function

`Diagnostic::sub` is only ever used directly; it doesn't need to be
included in the builder.

3 years agoAuto merge of #83103 - petrochenkov:unilex, r=Aaron1011
bors [Sat, 27 Mar 2021 22:19:17 +0000 (22:19 +0000)]
Auto merge of #83103 - petrochenkov:unilex, r=Aaron1011

resolve: Partially unify early and late scope-relative identifier resolution

Reuse `early_resolve_ident_in_lexical_scope` instead of a chunk of code in `resolve_ident_in_lexical_scope` doing the same job.

`early_resolve_ident_in_lexical_scope`/`visit_scopes` had to be slightly extended to be able to 1) start from a specific module instead of the current parent scope and 2) report one deprecation lint.
`early_resolve_ident_in_lexical_scope` still doesn't support walking through "ribs", that part is left in `resolve_ident_in_lexical_scope` (moreover, I'm pretty sure it's buggy, but that's a separate issue, cc https://github.com/rust-lang/rust/issues/52389 at least).

3 years agoresolve: Partially unify early and late scope-relative ident resolution
Vadim Petrochenkov [Sat, 13 Mar 2021 19:23:18 +0000 (22:23 +0300)]
resolve: Partially unify early and late scope-relative ident resolution

3 years agoAuto merge of #83580 - Dylan-DPC:rollup-1zod4p7, r=Dylan-DPC
bors [Sat, 27 Mar 2021 19:38:01 +0000 (19:38 +0000)]
Auto merge of #83580 - Dylan-DPC:rollup-1zod4p7, r=Dylan-DPC

Rollup of 8 pull requests

Successful merges:

 - #81351 (combine: stop eagerly evaluating consts)
 - #82525 (make unaligned_references future-incompat lint warn-by-default)
 - #82626 (update array missing `IntoIterator` msg)
 - #82917 (Add function core::iter::zip)
 - #82993 (rustdoc: Use diagnostics for error when including sources)
 - #83522 (Improve fs error open_from unix)
 - #83548 (Always preserve `None`-delimited groups in a captured `TokenStream`)
 - #83555 (Add #[inline] to io::Error methods)

Failed merges:

 - #83130 (escape_ascii take 2)

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #83555 - m-ou-se:inline-io-error-new-const, r=jackh726
Dylan DPC [Sat, 27 Mar 2021 19:37:13 +0000 (20:37 +0100)]
Rollup merge of #83555 - m-ou-se:inline-io-error-new-const, r=jackh726

Add #[inline] to io::Error methods

Fixes #82812

3 years agoRollup merge of #83548 - Aaron1011:capture-none-delims, r=petrochenkov
Dylan DPC [Sat, 27 Mar 2021 19:37:12 +0000 (20:37 +0100)]
Rollup merge of #83548 - Aaron1011:capture-none-delims, r=petrochenkov

Always preserve `None`-delimited groups in a captured `TokenStream`

Previously, we would silently remove any `None`-delimiters when
capturing a `TokenStream`, 'flattenting' them to their inner tokens.
This was not normally visible, since we usually have
`TokenKind::Interpolated` (which gets converted to a `None`-delimited
group during macro invocation) instead of an actual `None`-delimited
group.

However, there are a couple of cases where this becomes visible to
proc-macros:
1. A cross-crate `macro_rules!` macro has a `None`-delimited group
   stored in its body (as a result of being produced by another
   `macro_rules!` macro). The cross-crate `macro_rules!` invocation
   can then expand to an attribute macro invocation, which needs
   to be able to see the `None`-delimited group.
2. A proc-macro can invoke an attribute proc-macro with its re-collected
   input. If there are any nonterminals present in the input, they will
   get re-collected to `None`-delimited groups, which will then get
   captured as part of the attribute macro invocation.

Both of these cases are incredibly obscure, so there hopefully won't be
any breakage. This change will allow more agressive 'flattenting' of
nonterminals in #82608 without losing `None`-delimited groups.

3 years agoRollup merge of #83522 - pickfire:patch-6, r=JohnTitor
Dylan DPC [Sat, 27 Mar 2021 19:37:11 +0000 (20:37 +0100)]
Rollup merge of #83522 - pickfire:patch-6, r=JohnTitor

Improve fs error open_from unix

Consistency for #79399
Suggested by JohnTitor

r? `@JohnTitor`

Not user if the error is too long now, do we handle long errors well?

3 years agoRollup merge of #82993 - camelid:source-use-diag, r=jyn514
Dylan DPC [Sat, 27 Mar 2021 19:37:09 +0000 (20:37 +0100)]
Rollup merge of #82993 - camelid:source-use-diag, r=jyn514

rustdoc: Use diagnostics for error when including sources

This error probably almost never happens, but we should still use the
diagnostic infrastructure. My guess is that the error was added back
before rustdoc used the rustc diagnostic infrastructure (it was all
`println!` and `eprintln!` back then!) and since it likely rarely occurs
and this code doesn't change that much, no one thought to transition it
to using diagnostics.

Note that the old error was actually a warning (it didn't stop the rest
of doc building). It seems very unlikely that this would fail without
the rest of the doc build failing, so it makes more sense for it to be a
hard error.

The error looks like this:

    error: failed to render source code for `src/test/rustdoc/smart-punct.rs`: "bar": foo
      --> src/test/rustdoc/smart-punct.rs:3:1
       |
    3  | / #![crate_name = "foo"]
    4  | |
    5  | | //! This is the "start" of the 'document'! How'd you know that "it's" ...
    6  | | //!
    ...  |
    22 | | //! I say "don't smart-punct me -- please!"
    23 | | //! ```
       | |_______^

I wasn't sure how to trigger the error, so to create that message I
temporarily made rustdoc always emit it. That's also why it says "bar"
and "foo" instead of a real error message.

Note that the span of the diagnostic starts at line 3 because line 1 of
that file is a (non-doc) comment and line 2 is a blank line.

3 years agoRollup merge of #82917 - cuviper:iter-zip, r=m-ou-se
Dylan DPC [Sat, 27 Mar 2021 19:37:07 +0000 (20:37 +0100)]
Rollup merge of #82917 - cuviper:iter-zip, r=m-ou-se

Add function core::iter::zip

This makes it a little easier to `zip` iterators:

```rust
for (x, y) in zip(xs, ys) {}
// vs.
for (x, y) in xs.into_iter().zip(ys) {}
```

You can `zip(&mut xs, &ys)` for the conventional `iter_mut()` and
`iter()`, respectively. This can also support arbitrary nesting, where
it's easier to see the item layout than with arbitrary `zip` chains:

```rust
for ((x, y), z) in zip(zip(xs, ys), zs) {}
for (x, (y, z)) in zip(xs, zip(ys, zs)) {}
// vs.
for ((x, y), z) in xs.into_iter().zip(ys).zip(xz) {}
for (x, (y, z)) in xs.into_iter().zip((ys.into_iter().zip(xz)) {}
```

It may also format more nicely, especially when the first iterator is a
longer chain of methods -- for example:

```rust
    iter::zip(
        trait_ref.substs.types().skip(1),
        impl_trait_ref.substs.types().skip(1),
    )
    // vs.
    trait_ref
        .substs
        .types()
        .skip(1)
        .zip(impl_trait_ref.substs.types().skip(1))
```

This replaces the tuple-pair `IntoIterator` in #78204.
There is prior art for the utility of this in [`itertools::zip`].

[`itertools::zip`]: https://docs.rs/itertools/0.10.0/itertools/fn.zip.html

3 years agoRollup merge of #82626 - lcnr:encode_with_shorthandb, r=estebank
Dylan DPC [Sat, 27 Mar 2021 19:37:06 +0000 (20:37 +0100)]
Rollup merge of #82626 - lcnr:encode_with_shorthandb, r=estebank

update array missing `IntoIterator` msg

fixes #82602

r? ```@estebank``` do you know whether we can use the expr span in `rustc_on_unimplemented`? The label isn't too great rn

3 years agoRollup merge of #82525 - RalfJung:unaligned-ref-warn, r=petrochenkov
Dylan DPC [Sat, 27 Mar 2021 19:37:05 +0000 (20:37 +0100)]
Rollup merge of #82525 - RalfJung:unaligned-ref-warn, r=petrochenkov

make unaligned_references future-incompat lint warn-by-default

and also remove the safe_packed_borrows lint that it replaces.

`std::ptr::addr_of!` has hit beta now and will hit stable in a month, so I propose we start fixing https://github.com/rust-lang/rust/issues/27060 for real: creating a reference to a field of a packed struct needs to eventually become a hard error; this PR makes it a warn-by-default future-incompat lint. (The lint already existed, this just raises its default level.) At the same time I removed the corresponding code from unsafety checking; really there's no reason an `unsafe` block should make any difference here.

For references to packed fields outside `unsafe` blocks, this means `unaligned_refereces` replaces the previous `safe_packed_borrows` warning with a link to https://github.com/rust-lang/rust/issues/82523 (and no more talk about unsafe blocks making any difference). So behavior barely changes, the warning is just worded differently. For references to packed fields inside `unsafe` blocks, this PR shows a new future-incompat warning.

Closes https://github.com/rust-lang/rust/issues/46043 because that lint no longer exists.

3 years agoRollup merge of #81351 - lcnr:big-money-big-prices, r=oli-obk
Dylan DPC [Sat, 27 Mar 2021 19:37:04 +0000 (20:37 +0100)]
Rollup merge of #81351 - lcnr:big-money-big-prices, r=oli-obk

combine: stop eagerly evaluating consts

`super_relate_consts` eagerly evaluates constants which doesn't seem too great.

I now also finally understand why all of the unused substs test passed. The reason being
that we just evaluated the constants in `super_relate_consts` :laughing:

While this change isn't strictly necessary as evaluating consts here doesn't hurt, it still feels a lot cleaner to do it this way

r? `@oli-obk` `@nikomatsakis`

3 years agoAdd the tracking issue for `#![feature(iter_zip)]`
Josh Stone [Sat, 27 Mar 2021 17:14:54 +0000 (10:14 -0700)]
Add the tracking issue for `#![feature(iter_zip)]`

3 years agoAuto merge of #83573 - JohnTitor:rollup-28jnzsr, r=JohnTitor
bors [Sat, 27 Mar 2021 16:34:59 +0000 (16:34 +0000)]
Auto merge of #83573 - JohnTitor:rollup-28jnzsr, r=JohnTitor

Rollup of 10 pull requests

Successful merges:

 - #79399 (Use detailed and shorter fs error explaination)
 - #83348 (format macro argument parsing fix)
 - #83462 (ExitStatus: print "exit status: {}" rather than "exit code: {}" on unix)
 - #83526 (lazily calls some fns)
 - #83558 (Use DebugStruct::finish_non_exhaustive() in std.)
 - #83559 (Fix Debug implementation for RwLock{Read,Write}Guard.)
 - #83560 (Derive Debug for io::Chain instead of manually implementing it.)
 - #83561 (Improve Debug implementations of Mutex and RwLock.)
 - #83567 (Update rustup cross-compilation docs link)
 - #83569 (Add regression tests for #56445)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #83569 - sjakobi:issue56445-regression-test, r=jackh726
Yuki Okushi [Sat, 27 Mar 2021 16:33:23 +0000 (01:33 +0900)]
Rollup merge of #83569 - sjakobi:issue56445-regression-test, r=jackh726

Add regression tests for #56445

Closes #56445.

3 years agoRollup merge of #83567 - jonjensen:patch-1, r=GuillaumeGomez
Yuki Okushi [Sat, 27 Mar 2021 16:33:22 +0000 (01:33 +0900)]
Rollup merge of #83567 - jonjensen:patch-1, r=GuillaumeGomez

Update rustup cross-compilation docs link

3 years agoRollup merge of #83561 - m-ou-se:lock-debug, r=jackh726
Yuki Okushi [Sat, 27 Mar 2021 16:33:21 +0000 (01:33 +0900)]
Rollup merge of #83561 - m-ou-se:lock-debug, r=jackh726

Improve Debug implementations of Mutex and RwLock.

This improves the Debug implementations of Mutex and RwLock.

They now show the poison flag and use debug_non_exhaustive. (See #67364.)

3 years agoRollup merge of #83560 - m-ou-se:io-chain-debug, r=sfackler
Yuki Okushi [Sat, 27 Mar 2021 16:33:19 +0000 (01:33 +0900)]
Rollup merge of #83560 - m-ou-se:io-chain-debug, r=sfackler

Derive Debug for io::Chain instead of manually implementing it.

This derives Debug for io::Chain instead of manually implementing it.

The manual implementation has the same bounds, so I don't think there's any reason for a manual implementation. The names used in the derive implementation are even nicer (`first`/`second`) than the manual implementation (`t`/`u`), and include the `done_first` field too.

3 years agoRollup merge of #83559 - m-ou-se:rwlock-guard-debug-fix, r=jackh726
Yuki Okushi [Sat, 27 Mar 2021 16:33:18 +0000 (01:33 +0900)]
Rollup merge of #83559 - m-ou-se:rwlock-guard-debug-fix, r=jackh726

Fix Debug implementation for RwLock{Read,Write}Guard.

This would attempt to print the Debug representation of the lock that the guard has locked, which will try to lock again, fail, and just print `"<locked>"` unhelpfully.

After this change, this just prints the contents of the mutex, like the other smart pointers (and MutexGuard) do.

MutexGuard had this problem too: https://github.com/rust-lang/rust/issues/57702

3 years agoRollup merge of #83558 - m-ou-se:use-finish-non-exhaustive, r=jackh726
Yuki Okushi [Sat, 27 Mar 2021 16:33:17 +0000 (01:33 +0900)]
Rollup merge of #83558 - m-ou-se:use-finish-non-exhaustive, r=jackh726

Use DebugStruct::finish_non_exhaustive() in std.

See https://github.com/rust-lang/rust/issues/67364

3 years agoRollup merge of #83526 - klensy:lazy-too, r=petrochenkov
Yuki Okushi [Sat, 27 Mar 2021 16:33:16 +0000 (01:33 +0900)]
Rollup merge of #83526 - klensy:lazy-too, r=petrochenkov

lazily calls some fns

Replaced some fn's with it's lazy variants.

3 years agoRollup merge of #83462 - ijackson:exitstatus-message-wording, r=joshtriplett
Yuki Okushi [Sat, 27 Mar 2021 16:33:15 +0000 (01:33 +0900)]
Rollup merge of #83462 - ijackson:exitstatus-message-wording, r=joshtriplett

ExitStatus: print "exit status: {}" rather than "exit code: {}" on unix

Proper Unix terminology is "exit status" (vs "wait status").  "exit
code" is imprecise on Unix and therefore unclear.  (As far as I can
tell, "exit code" is correct terminology on Windows.)

This new wording is unfortunately inconsistent with the identifier
names in the Rust stdlib.

It is the identifier names that are wrong, as discussed at length in eg
  https://doc.rust-lang.org/nightly/std/process/struct.ExitStatus.html
  https://doc.rust-lang.org/nightly/std/os/unix/process/trait.ExitStatusExt.html

Unfortunately for API stability reasons it would be a lot of work, and
a lot of disruption, to change the names in the stdlib (eg to rename
`std::process::ExitStatus` to `std::process::ChildStatus` or
something), but we should fix the message output.  Many (probably
most) readers of these messages about exit statuses will be users and
system administrators, not programmers, who won't even know that Rust
has this wrong terminology.

So I think the right thing is to fix the documentation (as I have
already done) and, now, the terminology in the implementation.

This is a user-visible change to the behaviour of all Rust programs
which run Unix subprocesses.  Hopefully no-one is matching against the
exit status string, except perhaps in tests.

3 years agoRollup merge of #83348 - osa1:issue83344, r=jackh726
Yuki Okushi [Sat, 27 Mar 2021 16:33:13 +0000 (01:33 +0900)]
Rollup merge of #83348 - osa1:issue83344, r=jackh726

format macro argument parsing fix

When the character next to `{}` is "shifted" (when mapping a byte index
in the format string to span) we should avoid shifting the span end
index, so first map the index of `}` to span, then bump the span,
instead of first mapping the next byte index to a span (which causes
bumping the end span too much).

Regression test added.

Fixes #83344

---

r? ```@estebank```

3 years agoRollup merge of #79399 - pickfire:patch-3, r=JohnTitor
Yuki Okushi [Sat, 27 Mar 2021 16:33:11 +0000 (01:33 +0900)]
Rollup merge of #79399 - pickfire:patch-3, r=JohnTitor

Use detailed and shorter fs error explaination

Includes suggestion from `@the8472` https://github.com/rust-lang/rust/issues/79390#issuecomment-733263336

3 years agomake unaligned_refereces future-incompat lint warn-by-default, and remove the safe_pa...
Ralf Jung [Thu, 25 Feb 2021 18:38:53 +0000 (19:38 +0100)]
make unaligned_refereces future-incompat lint warn-by-default, and remove the safe_packed_borrows lint that it replaces

3 years agoupdate tests
lcnr [Mon, 15 Mar 2021 22:10:24 +0000 (23:10 +0100)]
update tests

3 years agocombine: stop eagerly evaluating consts
Bastian Kauschke [Sun, 24 Jan 2021 19:08:12 +0000 (20:08 +0100)]
combine: stop eagerly evaluating consts

3 years agoAdd regression tests for #56445
Simon Jakobi [Sat, 27 Mar 2021 03:22:22 +0000 (04:22 +0100)]
Add regression tests for #56445

Closes #56445.

3 years agoUpdate rustup cross-compilation docs link
Jon Jensen [Sat, 27 Mar 2021 13:51:46 +0000 (07:51 -0600)]
Update rustup cross-compilation docs link

3 years agoAuto merge of #83245 - the8472:generalize-slice-fill, r=m-ou-se
bors [Sat, 27 Mar 2021 13:25:16 +0000 (13:25 +0000)]
Auto merge of #83245 - the8472:generalize-slice-fill, r=m-ou-se

Generalize and inline slice::fill specializations

This makes the memset specialization applicable to more types. And since the code now lives in a generic method it is also eligible for cross-crate inlining which  should fix #83235

3 years agoImprove fs error open_from unix
Ivan Tham [Fri, 26 Mar 2021 17:21:35 +0000 (01:21 +0800)]
Improve fs error open_from unix

Consistency for #79399
Suggested by JohnTitor

Improve fs error invaild input for sys_common

The text was duplicated from unix.

3 years agoUse detailed and shorter fs error explaination
Ivan Tham [Wed, 25 Nov 2020 03:22:19 +0000 (11:22 +0800)]
Use detailed and shorter fs error explaination

Includes suggestion from the8472 https://github.com/rust-lang/rust/issues/79390#issuecomment-733263336

More detail error explanation in fs doc

3 years agoImprove Debug implementations of Mutex and RwLock.
Mara Bos [Sat, 27 Mar 2021 12:47:11 +0000 (13:47 +0100)]
Improve Debug implementations of Mutex and RwLock.

They now show the poison flag and use debug_non_exhaustive.

3 years agoDerive Debug for io::Chain instead of manually implementing it.
Mara Bos [Sat, 27 Mar 2021 12:36:07 +0000 (13:36 +0100)]
Derive Debug for io::Chain instead of manually implementing it.

The manual implementation has the same bounds, so I don't think there's
any reason for a manual implementation. The names used in the derive
implementation are even nicer (`first`/`second`) than the manual
implementation (`t`/`u`), and include the `done_first` field too.

3 years agoFix Debug implementation for RwLock{Read,Write}Guard.
Mara Bos [Sat, 27 Mar 2021 12:31:17 +0000 (13:31 +0100)]
Fix Debug implementation for RwLock{Read,Write}Guard.

This would attempt to print the Debug representation of the lock that
the guard has locked, which will try to lock again, fail, and just print
"<locked>" unhelpfully.

After this change, this just prints the contents of the mutex, like the
other smart pointers (and MutexGuard) do.

3 years agoUse DebugStruct::finish_non_exhaustive() in std.
Mara Bos [Sat, 27 Mar 2021 12:29:23 +0000 (13:29 +0100)]
Use DebugStruct::finish_non_exhaustive() in std.

3 years agoAdd #[inline] to io::Error methods.
Mara Bos [Sat, 27 Mar 2021 11:13:32 +0000 (12:13 +0100)]
Add #[inline] to io::Error methods.

3 years agoAuto merge of #78618 - workingjubilee:ieee754-fmt, r=m-ou-se
bors [Sat, 27 Mar 2021 10:40:16 +0000 (10:40 +0000)]
Auto merge of #78618 - workingjubilee:ieee754-fmt, r=m-ou-se

Add IEEE 754 compliant fmt/parse of -0, infinity, NaN

This pull request improves the Rust float formatting/parsing libraries to comply with IEEE 754's formatting expectations around certain special values, namely signed zero, the infinities, and NaN. It also adds IEEE 754 compliance tests that, while less stringent in certain places than many of the existing flt2dec/dec2flt capability tests, are intended to serve as the beginning of a roadmap to future compliance with the standard. Some relevant documentation is also adjusted with clarifying remarks.

This PR follows from discussion in https://github.com/rust-lang/rfcs/issues/1074, and closes #24623.

The most controversial change here is likely to be that -0 is now printed as -0. Allow me to explain: While there appears to be community support for an opt-in toggle of printing floats as if they exist in the naively expected domain of numbers, i.e. not the extended reals (where floats live), IEEE 754-2019 is clear that a float converted to a string should be capable of being transformed into the original floating point bit-pattern when it satisfies certain conditions (namely, when it is an actual numeric value i.e. not a NaN and the original and destination float width are the same). -0 is given special attention here as a value that should have its sign preserved. In addition, the vast majority of other programming languages not only output `-0` but output `-0.0` here.

While IEEE 754 offers a broad leeway in how to handle producing what it calls a "decimal character sequence", it is clear that the operations a language provides should be capable of round tripping, and it is confusing to advertise the f32 and f64 types as binary32 and binary64 yet have the most basic way of producing a string and then reading it back into a floating point number be non-conformant with the standard. Further, existing documentation suggested that e.g. -0 would be printed with -0 regardless of the presence of the `+` fmt character, but it prints "+0" instead if given such (which was what led to the opening of #24623).

There are other parsing and formatting issues for floating point numbers which prevent Rust from complying with the standard, as well as other well-documented challenges on the arithmetic level, but I hope that this can be the beginning of motion towards solving those challenges.

3 years agoformat macro argument parsing fix
Ömer Sinan Ağacan [Sun, 21 Mar 2021 14:29:21 +0000 (17:29 +0300)]
format macro argument parsing fix

When the character next to `{}` is "shifted" (when mapping a byte index
in the format string to span) we should avoid shifting the span end
index, so first map the index of `}` to span, then bump the span,
instead of first mapping the next byte index to a span (which causes
bumping the end span too much).

Regression test added.

Fixes #83344

3 years agoAuto merge of #83547 - JohnTitor:rollup-qh7j6hg, r=JohnTitor
bors [Sat, 27 Mar 2021 07:59:24 +0000 (07:59 +0000)]
Auto merge of #83547 - JohnTitor:rollup-qh7j6hg, r=JohnTitor

Rollup of 9 pull requests

Successful merges:

 - #83239 (Remove/replace some outdated crates from the dependency tree)
 - #83328 (Fixes to inline assmebly tests)
 - #83343 (Simplify and fix byte skipping in format! string parser)
 - #83388 (Make # pretty print format easier to discover)
 - #83431 (Tell GitHub to highlight `config.toml.example` as TOML)
 - #83508 (Use the direct link to the platform support page)
 - #83511 (compiletest: handle llvm_version with suffix like "12.0.0libcxx")
 - #83524 (Document that the SocketAddr memory representation is not stable)
 - #83525 (fix doc comment for `ty::Dynamic`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agolazily calls some fns
klensy [Fri, 26 Mar 2021 19:32:37 +0000 (22:32 +0300)]
lazily calls some fns

3 years agoRollup merge of #83525 - rust-lang:lcnr-doc-patch, r=jonas-schievink
Yuki Okushi [Sat, 27 Mar 2021 03:37:25 +0000 (12:37 +0900)]
Rollup merge of #83525 - rust-lang:lcnr-doc-patch, r=jonas-schievink

fix doc comment for `ty::Dynamic`

3 years agoRollup merge of #83524 - faern:document-socketaddr-mem-layout, r=sfackler
Yuki Okushi [Sat, 27 Mar 2021 03:37:24 +0000 (12:37 +0900)]
Rollup merge of #83524 - faern:document-socketaddr-mem-layout, r=sfackler

Document that the SocketAddr memory representation is not stable

Intended to help out with #78802. Work has been put into finding and fixing code that assumes the memory layout of `SocketAddrV4` and `SocketAddrV6`. But it turns out there are cases where new code continues to make the same assumption ([example](https://github.com/spacejam/seaslug/commit/96927dc2b7b918860a79c4eb6336051e52c6137a#diff-917db3d8ca6f862ebf42726b23c72a12b35e584e497ebdb24e474348d7c6ffb6R610-R621)).

The memory layout of a type in `std` is never part of the public API. Unless explicitly stated I guess. But since that is invalidly relied upon by a considerable amount of code for these particular types, it might make sense to explicitly document this. This can be temporary. Once #78802 lands it does not make sense to rely on the layout any longer, and this documentation can also be removed.

3 years agoRollup merge of #83511 - 12101111:fix-llvm-version-suffix, r=Mark-Simulacrum
Yuki Okushi [Sat, 27 Mar 2021 03:37:23 +0000 (12:37 +0900)]
Rollup merge of #83511 - 12101111:fix-llvm-version-suffix, r=Mark-Simulacrum

compiletest: handle llvm_version with suffix like "12.0.0libcxx"

The previous code only remove the suffix begin with `-`, but Gentoo Linux [define `LLVM_VERSION_SUFFIX="libcxx"`](https://github.com/gentoo/gentoo/blob/604d79f327176eecb05293d7154e24231229cb31/sys-devel/llvm/llvm-11.1.0.ebuild#L378) when llvm is linked to libc++ and lead to a panic:

```
thread 'main' panicked at 'Malformed version component: ParseIntError { kind: InvalidDigit }', src/tools/compiletest/src/header.rs:968:28
```

This new code will handle all suffix not beginning with digit or dot.

3 years agoRollup merge of #83508 - JohnTitor:platform-support-link, r=joshtriplett
Yuki Okushi [Sat, 27 Mar 2021 03:37:22 +0000 (12:37 +0900)]
Rollup merge of #83508 - JohnTitor:platform-support-link, r=joshtriplett

Use the direct link to the platform support page

3 years agoRollup merge of #83431 - camelid:config-example-gitattributes, r=Mark-Simulacrum
Yuki Okushi [Sat, 27 Mar 2021 03:37:21 +0000 (12:37 +0900)]
Rollup merge of #83431 - camelid:config-example-gitattributes, r=Mark-Simulacrum

Tell GitHub to highlight `config.toml.example` as TOML

This should be a nice small quality of life improvement when looking at
`config.toml.example` on GitHub or looking at diffs of it in PRs.

3 years agoRollup merge of #83388 - alamb:alamb/fmt-dcs, r=Mark-Simulacrum
Yuki Okushi [Sat, 27 Mar 2021 03:37:20 +0000 (12:37 +0900)]
Rollup merge of #83388 - alamb:alamb/fmt-dcs, r=Mark-Simulacrum

Make # pretty print format easier to discover

# Rationale:

I use (cargo cult?) three formats in rust:  `{}`, debug `{:?}`, and pretty-print debug `{:#?}`. I discovered `{:#?}` in some blog post or guide when I started working in Rust. While `#` is documented I think it is hard to discover. So taking the good advice of ```@carols10cents```  I am trying to improve the docs with a PR

As a reminder "pretty print" means that where `{:?}` will print something like
```
foo: { b1: 1, b2: 2}
```

`{:#?}` will prints something like
```
foo {
  b1: 1
  b2: 3
}
```

# Changes
Add an example to `fmt` to try and make it easier to discover `#`

3 years agoRollup merge of #83343 - osa1:issue83340, r=jackh726
Yuki Okushi [Sat, 27 Mar 2021 03:37:19 +0000 (12:37 +0900)]
Rollup merge of #83343 - osa1:issue83340, r=jackh726

Simplify and fix byte skipping in format! string parser

Fixes '\\' handling in format strings.

Fixes #83340

3 years agoRollup merge of #83328 - tmiasko:asm-test, r=joshtriplett
Yuki Okushi [Sat, 27 Mar 2021 03:37:19 +0000 (12:37 +0900)]
Rollup merge of #83328 - tmiasko:asm-test, r=joshtriplett

Fixes to inline assmebly tests

* Join test thread to make assertion effective in sym.rs test case
* Use a single codegen unit to reduce non-determinism in srcloc.rs test #82886

3 years agoRollup merge of #83239 - JohnTitor:reduce-deps, r=Mark-Simulacrum
Yuki Okushi [Sat, 27 Mar 2021 03:37:18 +0000 (12:37 +0900)]
Rollup merge of #83239 - JohnTitor:reduce-deps, r=Mark-Simulacrum

Remove/replace some outdated crates from the dependency tree

- Remove `cloudabi` by updating `parking_lot` to 0.11.1.
- Replace `packed_simd` with `packed_simd2` by updating `bytecount` to 0.6.2.

3 years agoAlways preserve `None`-delimited groups in a captured `TokenStream`
Aaron Hill [Sat, 27 Mar 2021 03:23:20 +0000 (23:23 -0400)]
Always preserve `None`-delimited groups in a captured `TokenStream`

Previously, we would silently remove any `None`-delimiters when
capturing a `TokenStream`, 'flattenting' them to their inner tokens.
This was not normally visible, since we usually have
`TokenKind::Interpolated` (which gets converted to a `None`-delimited
group during macro invocation) instead of an actual `None`-delimited
group.

However, there are a couple of cases where this becomes visible to
proc-macros:
1. A cross-crate `macro_rules!` macro has a `None`-delimited group
   stored in its body (as a result of being produced by another
   `macro_rules!` macro). The cross-crate `macro_rules!` invocation
   can then expand to an attribute macro invocation, which needs
   to be able to see the `None`-delimited group.
2. A proc-macro can invoke an attribute proc-macro with its re-collected
   input. If there are any nonterminals present in the input, they will
   get re-collected to `None`-delimited groups, which will then get
   captured as part of the attribute macro invocation.

Both of these cases are incredibly obscure, so there hopefully won't be
any breakage. This change will allow more agressive 'flattenting' of
nonterminals in #82608 without losing `None`-delimited groups.

3 years agoAuto merge of #83418 - ehuss:update-cargo, r=ehuss
bors [Fri, 26 Mar 2021 23:01:18 +0000 (23:01 +0000)]
Auto merge of #83418 - ehuss:update-cargo, r=ehuss

Update cargo

12 commits in 90691f2bfe9a50291a98983b1ed2feab51d5ca55..1e8703890f285befb5e32627ad4e0a0454dde1fb
2021-03-16 21:36:55 +0000 to 2021-03-26 16:59:39 +0000
- tests: Tolerate "exit status" in error messages (rust-lang/cargo#9307)
- Default macOS targets to `unpacked` debuginfo (rust-lang/cargo#9298)
- Fix publication of packages with metadata and resolver (rust-lang/cargo#9300)
- Fix config includes not working. (rust-lang/cargo#9299)
- Emit note when `--future-incompat-report` had nothing to report (rust-lang/cargo#9263)
- RFC 3052: Stop including authors field in manifests made by cargo new (rust-lang/cargo#9282)
- Refactor feature handling, and improve error messages. (rust-lang/cargo#9290)
- Split out cargo-util package for cargo-test-support. (rust-lang/cargo#9292)
- Fix redundant_semicolons warning in resolver-tests. (rust-lang/cargo#9293)
- Use serde's error message option to avoid implementing `Deserialize`. (rust-lang/cargo#9237)
- Allow `cargo update` to operate with the --offline flag (rust-lang/cargo#9279)
- Fix typo in faq.md (rust-lang/cargo#9285)

3 years agofix rustc_on_implemented `_Self` paths
lcnr [Fri, 12 Mar 2021 10:48:05 +0000 (11:48 +0100)]
fix rustc_on_implemented `_Self` paths

3 years agoupdate array missing `IntoIterator` msg
lcnr [Sun, 28 Feb 2021 11:42:56 +0000 (12:42 +0100)]
update array missing `IntoIterator` msg

3 years agoUpdate cargo
Eric Huss [Fri, 26 Mar 2021 19:29:08 +0000 (12:29 -0700)]
Update cargo

3 years agofix doc comment for `ty::Dynamic
lcnr [Fri, 26 Mar 2021 18:52:09 +0000 (19:52 +0100)]
fix doc comment for `ty::Dynamic

3 years agoDocument that the SocketAddr memory representation is not stable
Linus Färnstrand [Fri, 26 Mar 2021 18:44:06 +0000 (19:44 +0100)]
Document that the SocketAddr memory representation is not stable

3 years agoAuto merge of #83488 - Aaron1011:ban-expr-inner-attrs, r=petrochenkov
bors [Fri, 26 Mar 2021 17:26:18 +0000 (17:26 +0000)]
Auto merge of #83488 - Aaron1011:ban-expr-inner-attrs, r=petrochenkov

Ban custom inner attributes in expressions and statements

Split out from https://github.com/rust-lang/rust/pull/82608

Custom inner attributes are unstable, so this won't break any stable users.
This allows us to speed up token collection, and avoid a redundant call to `collect_tokens_no_attrs` when parsing an `Expr` that has outer attributes.

r? `@petrochenkov`

3 years agoUse iter::zip in src/tools/clippy/
Josh Stone [Mon, 8 Mar 2021 23:57:44 +0000 (15:57 -0800)]
Use iter::zip in src/tools/clippy/

3 years agoUse iter::zip in compiler/
Josh Stone [Mon, 8 Mar 2021 23:32:41 +0000 (15:32 -0800)]
Use iter::zip in compiler/

3 years agoUse iter::zip in library/
Josh Stone [Mon, 8 Mar 2021 23:32:41 +0000 (15:32 -0800)]
Use iter::zip in library/

3 years agoAdd function core::iter::zip
Josh Stone [Mon, 8 Mar 2021 23:32:33 +0000 (15:32 -0800)]
Add function core::iter::zip

This makes it a little easier to `zip` iterators:

```rust
for (x, y) in zip(xs, ys) {}
// vs.
for (x, y) in xs.into_iter().zip(ys) {}
```

You can `zip(&mut xs, &ys)` for the conventional `iter_mut()` and
`iter()`, respectively. This can also support arbitrary nesting, where
it's easier to see the item layout than with arbitrary `zip` chains:

```rust
for ((x, y), z) in zip(zip(xs, ys), zs) {}
for (x, (y, z)) in zip(xs, zip(ys, zs)) {}
// vs.
for ((x, y), z) in xs.into_iter().zip(ys).zip(xz) {}
for (x, (y, z)) in xs.into_iter().zip((ys.into_iter().zip(xz)) {}
```

It may also format more nicely, especially when the first iterator is a
longer chain of methods -- for example:

```rust
    iter::zip(
        trait_ref.substs.types().skip(1),
        impl_trait_ref.substs.types().skip(1),
    )
    // vs.
    trait_ref
        .substs
        .types()
        .skip(1)
        .zip(impl_trait_ref.substs.types().skip(1))
```

This replaces the tuple-pair `IntoIterator` in rust-lang/rust#78204.
There is prior art for the utility of this in [`itertools::zip`].

[`itertools::zip`]: https://docs.rs/itertools/0.10.0/itertools/fn.zip.html

3 years agoAuto merge of #83404 - michaelwoerister:issue83045, r=eddyb
bors [Fri, 26 Mar 2021 14:39:02 +0000 (14:39 +0000)]
Auto merge of #83404 - michaelwoerister:issue83045, r=eddyb

Fix #83045 by moving some crate loading verification code to a better place

r? `@eddyb`

3 years agoAuto merge of #82980 - tmiasko:import-cold-multiplier, r=michaelwoerister
bors [Fri, 26 Mar 2021 11:57:44 +0000 (11:57 +0000)]
Auto merge of #82980 - tmiasko:import-cold-multiplier, r=michaelwoerister

Import small cold functions

The Rust code is often written under an assumption that for generic
methods inline attribute is mostly unnecessary, since for optimized
builds using ThinLTO, a method will be code generated in at least one
CGU and available for import.

For example, deref implementations for Box, Vec, MutexGuard, and
MutexGuard are not currently marked as inline, neither is identity
implementation of From trait.

In PGO builds, when functions are determined to be cold, the default
multiplier of zero will stop the import, no matter how trivial the
implementation.

Increase slightly the default multiplier from 0 to 0.1.

r? `@ghost`

3 years agoHandle llvm_version with suffix like "12.0.0libcxx"
12101111 [Fri, 26 Mar 2021 09:29:52 +0000 (17:29 +0800)]
Handle llvm_version with suffix like "12.0.0libcxx"

3 years agoAuto merge of #83079 - osa1:issue83046, r=m-ou-se
bors [Fri, 26 Mar 2021 09:11:18 +0000 (09:11 +0000)]
Auto merge of #83079 - osa1:issue83046, r=m-ou-se

Update char::escape_debug_ext to handle different escapes in strings and chars

Fixes #83046

The program

    fn main() {
        println!("{:?}", '"');
        println!("{:?}", "'");
    }

would previously print

    '\"'
    "\'"

With this patch it now prints:

    '"'
    "'"

3 years agoFix #83045 by moving some crate loading verification code to a better place.
Michael Woerister [Mon, 22 Mar 2021 17:09:33 +0000 (18:09 +0100)]
Fix #83045 by moving some crate loading verification code to a better place.

3 years agoUpdate char::escape_debug_ext to handle different escapes in strings vs. chars
Ömer Sinan Ağacan [Fri, 26 Mar 2021 08:23:51 +0000 (11:23 +0300)]
Update char::escape_debug_ext to handle different escapes in strings vs. chars

Fixes #83046

The program

    fn main() {
        println!("{:?}", '"');
        println!("{:?}", "'");
    }

would previously print

    '\"'
    "\'"

With this patch it now prints:

    '"'
    "'"

3 years agoAuto merge of #83480 - flip1995:clippyup, r=Dylan-DPC
bors [Fri, 26 Mar 2021 06:30:16 +0000 (06:30 +0000)]
Auto merge of #83480 - flip1995:clippyup, r=Dylan-DPC

Update Clippy

Bi-weekly Clippy update.

r? `@Manishearth`

3 years agoUse the direct link to the platform support page
JohnTitor [Fri, 26 Mar 2021 05:32:19 +0000 (14:32 +0900)]
Use the direct link to the platform support page

3 years agoAuto merge of #83503 - Dylan-DPC:rollup-mqvjfav, r=Dylan-DPC
bors [Fri, 26 Mar 2021 04:10:13 +0000 (04:10 +0000)]
Auto merge of #83503 - Dylan-DPC:rollup-mqvjfav, r=Dylan-DPC

Rollup of 8 pull requests

Successful merges:

 - #83055 ([rustdoc] Don't document stripped items in JSON renderer.)
 - #83437 (Refactor #82270 as lint instead of an error)
 - #83444 (Fix bootstrap tests on beta)
 - #83456 (Add docs for Vec::from functions)
 - #83463 (ExitStatusExt: Fix missing word in two docs messages)
 - #83470 (Fix patch note about #80653 not mentioning nested nor recursive)
 - #83485 (Mark asm tests as requiring LLVM 10.0.1)
 - #83486 (Don't ICE when using `#[global_alloc]` on a non-item statement)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #83486 - Aaron1011:fix/global-alloc-error, r=petrochenkov
Dylan DPC [Fri, 26 Mar 2021 01:34:45 +0000 (02:34 +0100)]
Rollup merge of #83486 - Aaron1011:fix/global-alloc-error, r=petrochenkov

Don't ICE when using `#[global_alloc]` on a non-item statement

Fixes #83469

We need to return an `Annotatable::Stmt` if we were passed an
`Annotatable::Stmt`

3 years agoRollup merge of #83485 - Amanieu:asm_llvm10, r=joshtriplett
Dylan DPC [Fri, 26 Mar 2021 01:34:44 +0000 (02:34 +0100)]
Rollup merge of #83485 - Amanieu:asm_llvm10, r=joshtriplett

Mark asm tests as requiring LLVM 10.0.1

3 years agoRollup merge of #83470 - danielhenrymantilla:patch-1, r=jyn514
Dylan DPC [Fri, 26 Mar 2021 01:34:43 +0000 (02:34 +0100)]
Rollup merge of #83470 - danielhenrymantilla:patch-1, r=jyn514

Fix patch note about #80653 not mentioning nested nor recursive

Which thus missed the point of the change: `rustdoc` already bundled documentation for methods accessible through one layer of `Deref`, it has now been enhanced to keep recursing 🙂

r? ``@jyn514``

3 years agoRollup merge of #83463 - ijackson:exitstatusext-doc-grammar, r=kennytm
Dylan DPC [Fri, 26 Mar 2021 01:34:42 +0000 (02:34 +0100)]
Rollup merge of #83463 - ijackson:exitstatusext-doc-grammar, r=kennytm

ExitStatusExt: Fix missing word in two docs messages

Looks like I missed the lack of these "and"s.

3 years agoRollup merge of #83456 - notriddle:vec-from-docs, r=JohnTitor
Dylan DPC [Fri, 26 Mar 2021 01:34:41 +0000 (02:34 +0100)]
Rollup merge of #83456 - notriddle:vec-from-docs, r=JohnTitor

Add docs for Vec::from functions

Part of #51430

3 years agoRollup merge of #83444 - Mark-Simulacrum:bootstrap-beta, r=pietroalbini
Dylan DPC [Fri, 26 Mar 2021 01:34:40 +0000 (02:34 +0100)]
Rollup merge of #83444 - Mark-Simulacrum:bootstrap-beta, r=pietroalbini

Fix bootstrap tests on beta

Forward-porting a fix from the beta branch, which led to test failure on beta.

r? ``@pietroalbini``

3 years agoRollup merge of #83437 - Amanieu:asm_syntax, r=petrochenkov
Dylan DPC [Fri, 26 Mar 2021 01:34:39 +0000 (02:34 +0100)]
Rollup merge of #83437 - Amanieu:asm_syntax, r=petrochenkov

Refactor #82270 as lint instead of an error

This PR fixes several issues with #82270 which generated an error when `.intel_syntax` or `.att_syntax` was used in inline assembly:
- It is now a warn-by-default lint instead of an error.
- The lint only triggers on x86. `.intel_syntax` and `.att_syntax` are only valid on x86.
- The lint no longer provides machine-applicable suggestions for two reasons:
- These changes should not be made automatically since changes to assembly code can be very subtle.
- The template string is not always just a string: it can contain macro invocation (`concat!`), raw strings, escape characters, etc.

cc ``@asquared31415``

3 years agoRollup merge of #83055 - aDotInTheVoid:selective-strip-item-doc, r=jyn514
Dylan DPC [Fri, 26 Mar 2021 01:34:38 +0000 (02:34 +0100)]
Rollup merge of #83055 - aDotInTheVoid:selective-strip-item-doc, r=jyn514

[rustdoc] Don't document stripped items in JSON renderer.

Fixes #80664, see [my comment there](https://github.com/rust-lang/rust/issues/80664#issuecomment-797557948) for why

Note that we already do something similar in `convert_item`:

https://github.com/rust-lang/rust/blob/bb4cdf8ec034dca5c056ec9295f38062e5b7e871/src/librustdoc/json/conversions.rs#L28-L31

``@rustbot`` modify labels: +T-rustdoc +A-rustdoc-json

r? ``@jyn514``
cc ``@CraftSpider``

3 years agoAuto merge of #83465 - michaelwoerister:safe-read_raw_bytes, r=cjgillot
bors [Fri, 26 Mar 2021 01:28:59 +0000 (01:28 +0000)]
Auto merge of #83465 - michaelwoerister:safe-read_raw_bytes, r=cjgillot

Allow for reading raw bytes from rustc_serialize::Decoder without unsafe code

The current `read_raw_bytes` method requires using `MaybeUninit` and `unsafe`. I don't think this is necessary. Let's see if a safe interface has any performance drawbacks.

This is a followup to #83273 and will make it easier to rebase #82183.

r? `@cjgillot`

3 years agoAuto merge of #82873 - GuillaumeGomez:rustdoc-const-ty, r=jyn514
bors [Thu, 25 Mar 2021 22:09:27 +0000 (22:09 +0000)]
Auto merge of #82873 - GuillaumeGomez:rustdoc-const-ty, r=jyn514

Rework rustdoc const type

This PR is mostly about two things:
 1. Not storing some information in the `clean::Constant` type
 2. Using `TyCtxt` in the formatting (which we will need in any case as we move forward in any case).

Also: I'm very curious of the perf change in here.

Thanks a lot `@danielhenrymantilla` for your `Captures` idea! It allowed me to solve the lifetime issue completely. :)

r? `@jyn514`

3 years agoAvoid double-collection for expression nonterminals
Aaron Hill [Thu, 25 Mar 2021 22:05:49 +0000 (18:05 -0400)]
Avoid double-collection for expression nonterminals

3 years agoBan custom inner attributes in expressions and statements
Aaron Hill [Mon, 1 Mar 2021 21:02:09 +0000 (16:02 -0500)]
Ban custom inner attributes in expressions and statements

3 years agoMark inline asm tests as requiring LLVM 10.0.1
Amanieu d'Antras [Thu, 25 Mar 2021 20:21:58 +0000 (20:21 +0000)]
Mark inline asm tests as requiring LLVM 10.0.1

3 years agoDon't ICE when using `#[global_alloc]` on a non-item statement
Aaron Hill [Thu, 25 Mar 2021 19:40:50 +0000 (15:40 -0400)]
Don't ICE when using `#[global_alloc]` on a non-item statement

Fixes #83469

We need to return an `Annotatable::Stmt` if we were passed an
`Annotatable::Stmt`

3 years agoAuto merge of #82743 - jackh726:resolve-refactor, r=nikomatsakis
bors [Thu, 25 Mar 2021 19:28:16 +0000 (19:28 +0000)]
Auto merge of #82743 - jackh726:resolve-refactor, r=nikomatsakis

Refactor rustc_resolve::late::lifetimes to resolve per-item

There are some changes to tests that I'd like some feedback on; so this is still WIP.

The reason behind this change will (hopefully) allow us to (as part of #76814) be able to essentially use the lifetime resolve code to resolve *all* late bound vars (including those of super traits). Currently, it only resolves those that are *syntactically* in scope. In #76814, I'm essentially finding that I would essentially have to redo the passing of bound vars through scopes (i.e. when instantiating a poly trait ref), and that's what this code does anyways. However, to be able to do this (ask super traits what bound vars are in scope), we have to be able to resolve items separately.

The first commit is actually partially orthogonal. Essentially removing one use of late bound debruijn indices.

Not exactly sure who would be best to review here.
Let r? `@nikomatsakis`

3 years agoUpdate Cargo.lock
flip1995 [Thu, 25 Mar 2021 18:29:39 +0000 (19:29 +0100)]
Update Cargo.lock

3 years agoMerge commit '0e87918536b9833bbc6c683d1f9d51ee2bf03ef1' into clippyup
flip1995 [Thu, 25 Mar 2021 18:29:11 +0000 (19:29 +0100)]
Merge commit '0e87918536b9833bbc6c683d1f9d51ee2bf03ef1' into clippyup

3 years agoBless nll test
Jack Huey [Thu, 25 Mar 2021 18:11:03 +0000 (14:11 -0400)]
Bless nll test

3 years agoAuto merge of #6971 - flip1995:rustup, r=flip1995
bors [Thu, 25 Mar 2021 17:49:06 +0000 (17:49 +0000)]
Auto merge of #6971 - flip1995:rustup, r=flip1995

Rustup

r? `@ghost`

changelog: none

3 years agoBump Clippy Version -> 0.1.53
flip1995 [Thu, 25 Mar 2021 17:48:48 +0000 (18:48 +0100)]
Bump Clippy Version -> 0.1.53

3 years agoBump nightly version -> 2021-03-25
flip1995 [Thu, 25 Mar 2021 17:38:52 +0000 (18:38 +0100)]
Bump nightly version -> 2021-03-25

3 years agoMerge remote-tracking branch 'upstream/master' into rustup
flip1995 [Thu, 25 Mar 2021 17:38:13 +0000 (18:38 +0100)]
Merge remote-tracking branch 'upstream/master' into rustup

3 years agoAuto merge of #83424 - cjgillot:noparam, r=lcnr
bors [Thu, 25 Mar 2021 16:35:19 +0000 (16:35 +0000)]
Auto merge of #83424 - cjgillot:noparam, r=lcnr

GenericParam does not need to be a HIR owner.

The special case is not required.

Universal impl traits design to regular generic parameters, and their content is owned by the enclosing item.

Existential (and opaque) impl traits generate their own enclosing item, and are collected through it.

3 years agoFix patch note about #80653 not mentioning nested nor recursive
Daniel Henry-Mantilla [Thu, 25 Mar 2021 14:00:03 +0000 (15:00 +0100)]
Fix patch note about #80653 not mentioning nested nor recursive

Which thus missed the point of the change: `rustdoc` already bundled documentation for methods accessible through one layer of `Deref`, it now has been enhanced to keep recursing 🙂

3 years agowrite-up what is happening
Niko Matsakis [Thu, 25 Mar 2021 13:22:15 +0000 (09:22 -0400)]
write-up what is happening

3 years agoRefactor #82270 as lint instead of an error
Amanieu d'Antras [Wed, 24 Mar 2021 04:52:57 +0000 (04:52 +0000)]
Refactor #82270 as lint instead of an error