]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoImprove library tracking issue template
Mara Bos [Thu, 31 Dec 2020 12:52:39 +0000 (13:52 +0100)]
Improve library tracking issue template

3 years agoAuto merge of #80267 - 0urobor0s:ouro/61592, r=jyn514
bors [Thu, 31 Dec 2020 09:07:52 +0000 (09:07 +0000)]
Auto merge of #80267 - 0urobor0s:ouro/61592, r=jyn514

Rustdoc render public underscore_imports as Re-exports

Fixes #61592

3 years agoRustdoc render public underscore_imports as Re-exports
bors [Thu, 31 Dec 2020 09:07:51 +0000 (09:07 +0000)]
Rustdoc render public underscore_imports as Re-exports

Fixes #61592

3 years agoAuto merge of #79150 - m-ou-se:bye-bye-doc-comment-hack, r=jyn514
bors [Thu, 31 Dec 2020 06:14:41 +0000 (06:14 +0000)]
Auto merge of #79150 - m-ou-se:bye-bye-doc-comment-hack, r=jyn514

Remove all doc_comment!{} hacks by using #[doc = expr] where needed.

This replaces about 200 cases of

`````rust
        doc_comment! {
            concat!("The smallest value that can be represented by this integer type.

# Examples

Basic usage:

```
", $Feature, "assert_eq!(", stringify!($SelfT), "::MIN, ", stringify!($Min), ");",
$EndFeature, "
```"),
            #[stable(feature = "assoc_int_consts", since = "1.43.0")]
            pub const MIN: Self = !0 ^ ((!0 as $UnsignedT) >> 1) as Self;
        }
`````
by
```rust
        /// The smallest value that can be represented by this integer type.
        ///
        /// # Examples
        ///
        /// Basic usage:
        ///
        /// ```
        #[doc = concat!("assert_eq!(", stringify!($SelfT), "::MIN, ", stringify!($Min), ");")]
        /// ```
        #[stable(feature = "assoc_int_consts", since = "1.43.0")]
        pub const MIN: Self = !0 ^ ((!0 as $UnsignedT) >> 1) as Self;
```

---

**Note:** For a usable diff, make sure to enable 'ignore whitspace': https://github.com/rust-lang/rust/pull/79150/files?diff=unified&w=1

3 years agoAuto merge of #80500 - jyn514:track-caller, r=nagisa
bors [Thu, 31 Dec 2020 03:17:50 +0000 (03:17 +0000)]
Auto merge of #80500 - jyn514:track-caller, r=nagisa

Add `#[track_caller]` to `bug!` and `register_renamed`

Before:

```
thread 'rustc' panicked at 'compiler/rustc_lint/src/context.rs:267:18: invalid lint renaming of broken_intra_doc_links to rustdoc::broken_intra_doc_links', compiler/rustc_middle/src/util/bug.rs:34:26
```

After:

```
thread 'rustc' panicked at 'src/librustdoc/core.rs:455:24: invalid lint renaming of broken_intra_doc_links to rustdoc::broken_intra_doc_links', compiler/rustc_middle/src/util/bug.rs:35:26
```

The reason I added it to `register_renamed` too is that any panic in
that function will be the caller's fault.

3 years agoAuto merge of #80435 - pietroalbini:compression-formats, r=Mark-Simulacrum
bors [Thu, 31 Dec 2020 00:23:13 +0000 (00:23 +0000)]
Auto merge of #80435 - pietroalbini:compression-formats, r=Mark-Simulacrum

Only produce .xz tarballs on CI

This PR adds a `./configure` option to choose which tarball compression formats to produce, and changes our CI configuration to only produce `.xz` tarballs. The release process will then recompress everything into `.gz` when producing a release.

This will drastically reduce our storage costs for CI artifacts, as we'd stop storing the same data twice. **Stable, beta and nightly releases will not be affected by this at all.**

Before landing this we'll need to increase the VM size of our release process, to recompress everything in a reasonable amount of time.
r? `@Mark-Simulacrum`

3 years agoFix typos.
Mara Bos [Wed, 30 Dec 2020 22:23:02 +0000 (23:23 +0100)]
Fix typos.

3 years agoDon't use doc_comment!{} hack in nonzero_leading_trailing_zeros!{}.
Mara Bos [Wed, 30 Dec 2020 21:36:17 +0000 (22:36 +0100)]
Don't use doc_comment!{} hack in nonzero_leading_trailing_zeros!{}.

3 years agoRemove all doc_comment!{} hacks by using #[doc = expr] where needed.
Mara Bos [Tue, 17 Nov 2020 22:57:29 +0000 (23:57 +0100)]
Remove all doc_comment!{} hacks by using #[doc = expr] where needed.

3 years agoAuto merge of #80530 - m-ou-se:rollup-zit69ko, r=m-ou-se
bors [Wed, 30 Dec 2020 21:25:15 +0000 (21:25 +0000)]
Auto merge of #80530 - m-ou-se:rollup-zit69ko, r=m-ou-se

Rollup of 9 pull requests

Successful merges:

 - #78934 (refactor: removing library/alloc/src/vec/mod.rs ignore-tidy-filelength)
 - #79479 (Add `Iterator::intersperse`)
 - #80128 (Edit rustc_ast::ast::FieldPat docs)
 - #80424 (Don't give an error when creating a file for the first time)
 - #80458 (Some Promotion Refactoring)
 - #80488 (Do not create dangling &T in Weak<T>::drop)
 - #80491 (Miri: make size/align_of_val work for dangling raw ptrs)
 - #80495 (Rename kw::Invalid -> kw::Empty)
 - #80513 (Add regression test for #80062)

Failed merges:

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

3 years agoRollup merge of #80513 - LeSeulArtichaut:80062-test, r=lcnr
Mara Bos [Wed, 30 Dec 2020 20:57:00 +0000 (20:57 +0000)]
Rollup merge of #80513 - LeSeulArtichaut:80062-test, r=lcnr

Add regression test for #80062

Closes #80062.
r? `@lcnr`

3 years agoRollup merge of #80495 - jyn514:rename-empty, r=petrochenkov
Mara Bos [Wed, 30 Dec 2020 20:56:58 +0000 (20:56 +0000)]
Rollup merge of #80495 - jyn514:rename-empty, r=petrochenkov

Rename kw::Invalid -> kw::Empty

See https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/Is.20there.20a.20symbol.20for.20the.20empty.20string.3F/near/220054471
for context.

r? `@petrochenkov`

3 years agoRollup merge of #80491 - RalfJung:dangling-of-val, r=oli-obk
Mara Bos [Wed, 30 Dec 2020 20:56:56 +0000 (20:56 +0000)]
Rollup merge of #80491 - RalfJung:dangling-of-val, r=oli-obk

Miri: make size/align_of_val work for dangling raw ptrs

This is needed for https://github.com/rust-lang/rust/issues/80365#issuecomment-752128105.

r? `@oli-obk`

3 years agoRollup merge of #80488 - CAD97:drop-weak-without-reference, r=m-ou-se
Mara Bos [Wed, 30 Dec 2020 20:56:54 +0000 (20:56 +0000)]
Rollup merge of #80488 - CAD97:drop-weak-without-reference, r=m-ou-se

Do not create dangling &T in Weak<T>::drop

Since at this point all strong pointers have been dropped, the wrapped `T` has also been dropped. As such, creating a `&T` to the dropped place is negligent at best (language UB at worst). Since we have `Layout::for_value_raw` now, use that instead of `Layout::for_value` to avoid creating the `&T`.

This does have implications for custom (potentially thin) DSTs, though much less severe than those discussed in #80407. Specifically, one of two things has to be true:

- It has to be possible to use a `*const T` to a dropped (potentially custom, potentially thin) unsized tailed object to determine the layout (size/align) of the object. This is what is currently implemented (though with `&T` instead of `&T`). The validity of reading some location after it has been dropped is an open question IIUC (https://github.com/rust-lang/unsafe-code-guidelines/issues/188) (except when the whole type is `Copy`, per `drop_in_place`'s docs).
  In this design, custom DSTs would get a `*mut T` and use that to return layout, and must be able to do so while in the "zombie" (post-drop, pre-free) state.
- `RcBox`/`ArcInner` compute and store layout eagerly, so that they don't have to ask the type for its layout after dropping it.

Importantly, this is already true today, as you can construct `Rc<DST>`, create a `Weak<DST>`, and drop the `Rc` before the `Weak`. This PR is a strict improvement over the status quo, and the above question about potentially thin DSTs will need to be resolved by any custom DST proposal.

3 years agoRollup merge of #80458 - RalfJung:promotion-refactor, r=oli-obk
Mara Bos [Wed, 30 Dec 2020 20:56:52 +0000 (20:56 +0000)]
Rollup merge of #80458 - RalfJung:promotion-refactor, r=oli-obk

Some Promotion Refactoring

Clean up promotion a bit:
* factor out some common code
* more exhaustive matches

This *should* not break anything... the only potentially-breaking change is that `BorrowKind::Shallow | BorrowKind::Unique` are now rejected for internal references.

r? ``@oli-obk``

3 years agoRollup merge of #80424 - jyn514:bootstrap-cleanup, r=Mark-Simulacrum
Mara Bos [Wed, 30 Dec 2020 20:56:51 +0000 (20:56 +0000)]
Rollup merge of #80424 - jyn514:bootstrap-cleanup, r=Mark-Simulacrum

Don't give an error when creating a file for the first time

Previously, `os.remove` would always give a FileNotFound error the first
time you called it, causing bootstrap to make unnecessary copies. This
now only calls `remove()` if the file exists, avoiding the unnecessary
error.

This is a pretty small cleanup but I think it's useful. Taken from https://github.com/rust-lang/rust/pull/79540.

3 years agoRollup merge of #80128 - pierwill:pierwill-docs-fieldpat, r=jyn514
Mara Bos [Wed, 30 Dec 2020 20:56:49 +0000 (20:56 +0000)]
Rollup merge of #80128 - pierwill:pierwill-docs-fieldpat, r=jyn514

Edit rustc_ast::ast::FieldPat docs

Punctuation fixes.

3 years agoRollup merge of #79479 - camelid:intersperse, r=m-ou-se
Mara Bos [Wed, 30 Dec 2020 20:56:47 +0000 (20:56 +0000)]
Rollup merge of #79479 - camelid:intersperse, r=m-ou-se

Add `Iterator::intersperse`

This is a rebase of #75784. I'm hoping to push this past the finish line!

cc `@jonas-schievink`

3 years agoRollup merge of #78934 - DeveloperC286:issue_60302_vec, r=m-ou-se
Mara Bos [Wed, 30 Dec 2020 20:56:45 +0000 (20:56 +0000)]
Rollup merge of #78934 - DeveloperC286:issue_60302_vec, r=m-ou-se

refactor: removing library/alloc/src/vec/mod.rs ignore-tidy-filelength

This PR removes the need for ignore-tidy-filelength for library/alloc/src/vec/mod.rs which is part of the issue #60302

It is probably easiest to review this PR by looking at it commit by commit rather than looking at the overall diff.

3 years agoAdd tracking issue
Camelid [Sat, 28 Nov 2020 23:55:07 +0000 (15:55 -0800)]
Add tracking issue

3 years agoAdd Iterator::intersperse
Jonas Schievink [Fri, 21 Aug 2020 19:56:40 +0000 (21:56 +0200)]
Add Iterator::intersperse

3 years agoAuto merge of #80511 - Mark-Simulacrum:bump-stage0, r=pietroalbini
bors [Wed, 30 Dec 2020 18:32:31 +0000 (18:32 +0000)]
Auto merge of #80511 - Mark-Simulacrum:bump-stage0, r=pietroalbini

Bump bootstrap compiler to 1.50 beta

r? `@pietroalbini`

3 years agoFix rustdoc link in vec/into_iter.rs.
Mara Bos [Wed, 30 Dec 2020 15:35:02 +0000 (15:35 +0000)]
Fix rustdoc link in vec/into_iter.rs.

3 years agoAuto merge of #80510 - JohnTitor:rollup-gow7y0l, r=JohnTitor
bors [Wed, 30 Dec 2020 15:30:56 +0000 (15:30 +0000)]
Auto merge of #80510 - JohnTitor:rollup-gow7y0l, r=JohnTitor

Rollup of 7 pull requests

Successful merges:

 - #80185 (Fix ICE when pointing at multi bytes character)
 - #80260 (slightly more typed interface to panic implementation)
 - #80311 (Improvements to NatVis support)
 - #80337 (Use `desc` as a doc-comment for queries if there are no doc comments)
 - #80381 (Revert "Cleanup markdown span handling")
 - #80492 (remove empty wraps, don't return Results from from infallible functions)
 - #80509 (where possible, pass slices instead of &Vec or &String (clippy::ptr_arg))

Failed merges:

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

3 years agoAdd regression test for #80062
LeSeulArtichaut [Wed, 30 Dec 2020 14:59:44 +0000 (15:59 +0100)]
Add regression test for #80062

3 years agobootstrap: extract from any compression algorithm during distcheck
Pietro Albini [Wed, 30 Dec 2020 15:05:57 +0000 (16:05 +0100)]
bootstrap: extract from any compression algorithm during distcheck

3 years agoRename kw::Invalid -> kw::Empty
Joshua Nelson [Wed, 30 Dec 2020 01:28:08 +0000 (20:28 -0500)]
Rename kw::Invalid -> kw::Empty

See https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/Is.20there.20a.20symbol.20for.20the.20empty.20string.3F/near/220054471
for context.

3 years agoBump bootstrap compiler to 1.50 beta
Mark Rousskov [Wed, 30 Dec 2020 13:04:59 +0000 (08:04 -0500)]
Bump bootstrap compiler to 1.50 beta

3 years agoRollup merge of #80509 - matthiaskrgr:ptr_arg, r=varkor
Yuki Okushi [Wed, 30 Dec 2020 13:49:26 +0000 (22:49 +0900)]
Rollup merge of #80509 - matthiaskrgr:ptr_arg, r=varkor

where possible, pass slices instead of &Vec or &String (clippy::ptr_arg)

3 years agoRollup merge of #80492 - matthiaskrgr:tasty_wraps, r=varkor
Yuki Okushi [Wed, 30 Dec 2020 13:49:24 +0000 (22:49 +0900)]
Rollup merge of #80492 - matthiaskrgr:tasty_wraps, r=varkor

remove empty wraps, don't return Results from from infallible functions

This makes code easier to understand because it is more obvious when a function actually can't fail (return Err or None)

Make functions that only ever return Some(x), return x directly
Remove return type from functions that return Option<(), Err> but would only ever return Ok(()).

Found with `clippy::unnecessary_wraps`

3 years agoRollup merge of #80381 - rust-lang:revert-80244-spans, r=GuillaumeGomez
Yuki Okushi [Wed, 30 Dec 2020 13:49:23 +0000 (22:49 +0900)]
Rollup merge of #80381 - rust-lang:revert-80244-spans, r=GuillaumeGomez

Revert "Cleanup markdown span handling"

Reverts rust-lang/rust#80244. This caused a diagnostic regression, originally it was:

```
warning: unresolved link to `std::process::Comman`
 --> link.rs:3:10
  |
3 | //! [a]: std::process::Comman
  |          ^^^^^^^^^^^^^^^^^^^^ no item named `Comman` in module `process`
  |
  = note: `#[warn(broken_intra_doc_links)]` on by default
```
but after that PR rustdoc now displays
```
warning: unresolved link to `std::process::Comman`
 --> link.rs:1:14
  |
1 | //! Links to [a] [link][a]
  |              ^^^ no item named `Comman` in module `process`
  |
  = note: `#[warn(broken_intra_doc_links)]` on by default
```
which IMO is much less clear.

cc `@bugadani,` thanks for catching this in https://github.com/rust-lang/rust/pull/77859.
r? `@GuillaumeGomez`

3 years agoRollup merge of #80337 - jyn514:add-query-desc, r=varkor
Yuki Okushi [Wed, 30 Dec 2020 13:49:21 +0000 (22:49 +0900)]
Rollup merge of #80337 - jyn514:add-query-desc, r=varkor

Use `desc` as a doc-comment for queries if there are no doc comments

This at least gives *some* idea of what the query does even if it's not very readable. Some examples:

![image](https://user-images.githubusercontent.com/23638587/103021399-13e15c00-4518-11eb-8121-940774ae2fd1.png)
![image](https://user-images.githubusercontent.com/23638587/103021448-222f7800-4518-11eb-8ee6-cc10795fdc22.png)
![image](https://user-images.githubusercontent.com/23638587/103021434-1d6ac400-4518-11eb-885b-59d00c57bc70.png)

I want to turn `{}` into either `_` or the stringified expr, but [I'm not sure how to do that](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/Evaluate.20format.20string.20in.20proc-macro). In the meantime, this is better than having no docs at all.

3 years agoRollup merge of #80311 - sivadeilra:natvis, r=petrochenkov
Yuki Okushi [Wed, 30 Dec 2020 13:49:19 +0000 (22:49 +0900)]
Rollup merge of #80311 - sivadeilra:natvis, r=petrochenkov

Improvements to NatVis support

NatVis files describe how to display types in some Windows debuggers,
such as Visual Studio, WinDbg, and VS Code.

This commit makes several improvements:

* Adds visualizers for Rc<T>, Weak<T>, and Arc<T>.

* Changes [size] to [len], for consistency with the Rust API.
  Visualizers often use [size] to mirror the size() method on C++ STL
  collections.

* Several visualizers used the PVOID and ULONG typedefs. These are part
  of the Windows API; they are not guaranteed to always be defined in a
  pure Rust DLL/EXE. I converted PVOID to `void*` and `ULONG` to
  `unsigned long`.

* Cosmetic change: Removed {} braces around the visualized display
  for `Option` types. They now display simply as `Some(value)` or
  `None`, which reflects what is written in source code.

* The visualizer for `alloc::string::String` makes assumptions about
  the layout of `String` (it casts `String*` to another type), rather
  than using symbolic expressions. This commit changes the visualizer
  so that it simply uses symbolic expressions to access the string
  data and string length.

* The visualizers for `str` and `String` now place the character data
  array under a synthetic `[chars]` node. When expanding a `String`
  node, users rarely want to see an array of characters. This just places
  them behind one expansion node / level.

3 years agoRollup merge of #80260 - RalfJung:less-untyped-panics, r=m-ou-se
Yuki Okushi [Wed, 30 Dec 2020 13:49:17 +0000 (22:49 +0900)]
Rollup merge of #80260 - RalfJung:less-untyped-panics, r=m-ou-se

slightly more typed interface to panic implementation

The panic payload is currently being passed around as a `usize`. However, it actually is a pointer, and the involved types are available on all ends of this API, so I propose we use the proper pointer type to avoid some casts. Avoiding int-to-ptr casts also makes this code work with `miri -Zmiri-track-raw-pointers`.

3 years agoRollup merge of #80185 - JohnTitor:issue-80134, r=davidtwco
Yuki Okushi [Wed, 30 Dec 2020 13:49:16 +0000 (22:49 +0900)]
Rollup merge of #80185 - JohnTitor:issue-80134, r=davidtwco

Fix ICE when pointing at multi bytes character

Fixes #80134

Seems this ICE was introduced by #73953, checking width of span to avoid ICE.

3 years agoFix ICE when pointing at multi bytes character
Yuki Okushi [Sat, 19 Dec 2020 10:29:56 +0000 (19:29 +0900)]
Fix ICE when pointing at multi bytes character

3 years agoCTFE: test size/align_of_val_raw on dangling pointers
Ralf Jung [Wed, 30 Dec 2020 13:29:33 +0000 (14:29 +0100)]
CTFE: test size/align_of_val_raw on dangling pointers

3 years agoAuto merge of #79684 - usbalbin:const_copy, r=oli-obk
bors [Wed, 30 Dec 2020 12:43:02 +0000 (12:43 +0000)]
Auto merge of #79684 - usbalbin:const_copy, r=oli-obk

Make copy[_nonoverlapping] const

Constifies
* `intrinsics::copy` and `intrinsics::copy_nonoverlapping`
* `ptr::read` and `ptr::read_unaligned`
  * `*const T::read` and `*const T::read_unaligned`
  * `*mut T::read` and `*mut T::read_unaligned`
* `MaybeUninit::assume_init_read`

3 years agoremove unused return types such as empty Results or Options that would always be...
Matthias Krüger [Tue, 29 Dec 2020 21:24:15 +0000 (22:24 +0100)]
remove unused return types such as empty Results or Options that would always be Some(..)

remove unused return type of dropck::check_drop_obligations()
don't wrap return type in Option in get_macro_by_def_id() since we would always return Some(..)
remove redundant return type of back::write::optimize()
don't Option-wrap return type of compute_type_parameters() since we always return Some(..)
don't return empty Result in assemble_generator_candidates()
don't return empty Result in assemble_closure_candidates()
don't return empty result in assemble_fn_pointer_candidates()
don't return empty result in assemble_candidates_from_impls()
don't return empty result in assemble_candidates_from_auto_impls()
don't return emtpy result in assemble_candidates_for_trait_alias()
don't return empty result in assemble_builtin_bound_candidates()
don't return empty results in assemble_extension_candidates_for_traits_in_scope() and assemble_extension_candidates_for_trait()
remove redundant wrapping of return type of StripItem::strip() since it always returns Some(..)
remove unused return type of assemble_extension_candidates_for_all_traits()

3 years agowhere possible, pass slices instead of &Vec or &String (clippy::ptr_arg)
Matthias Krüger [Wed, 30 Dec 2020 11:59:07 +0000 (12:59 +0100)]
where possible, pass slices instead of &Vec or &String (clippy::ptr_arg)

3 years agoAuto merge of #80503 - JohnTitor:rollup-b26vglu, r=JohnTitor
bors [Wed, 30 Dec 2020 09:51:42 +0000 (09:51 +0000)]
Auto merge of #80503 - JohnTitor:rollup-b26vglu, r=JohnTitor

Rollup of 13 pull requests

Successful merges:

 - #79812 (Lint on redundant trailing semicolon after item)
 - #80348 (remove redundant clones (clippy::redundant_clone))
 - #80358 (Edit rustc_span documentation)
 - #80457 (Add missing commas to `rustc_ast_pretty::pp` docs)
 - #80461 (Add llvm-libunwind change to bootstrap CHANGELOG)
 - #80464 (Use Option::map_or instead of open coding it)
 - #80465 (Fix typo in ffi-pure.md)
 - #80467 (More uses of the matches! macro)
 - #80469 (Fix small typo in time comment)
 - #80472 (Use sans-serif font for the "all items" page links)
 - #80477 (Make forget intrinsic safe)
 - #80482 (don't clone copy types)
 - #80487 (don't redundantly repeat field names)

Failed merges:

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

3 years agoRollup merge of #80487 - matthiaskrgr:field_names, r=jyn514
Yuki Okushi [Wed, 30 Dec 2020 09:15:29 +0000 (18:15 +0900)]
Rollup merge of #80487 - matthiaskrgr:field_names, r=jyn514

don't redundantly repeat field names

r? `@Dylan-DPC`

3 years agoRollup merge of #80482 - matthiaskrgr:cl0ne_on_copy, r=jyn514
Yuki Okushi [Wed, 30 Dec 2020 09:15:27 +0000 (18:15 +0900)]
Rollup merge of #80482 - matthiaskrgr:cl0ne_on_copy, r=jyn514

don't clone copy types

r? `@Dylan-DPC`

3 years agoRollup merge of #80477 - tmiasko:safe-forget, r=oli-obk
Yuki Okushi [Wed, 30 Dec 2020 09:15:25 +0000 (18:15 +0900)]
Rollup merge of #80477 - tmiasko:safe-forget, r=oli-obk

Make forget intrinsic safe

3 years agoRollup merge of #80472 - GuillaumeGomez:sans-serif-for-all-items-page, r=Nemo157
Yuki Okushi [Wed, 30 Dec 2020 09:15:23 +0000 (18:15 +0900)]
Rollup merge of #80472 - GuillaumeGomez:sans-serif-for-all-items-page, r=Nemo157

Use sans-serif font for the "all items" page links

The "all items" pages' links aren't using a sans-serif font unlike the rest of equivalent items in the other module pages. ``@Nemo157`` reported me this issue so here is the fix!

r? ``@Nemo157``

3 years agoRollup merge of #80469 - BlackHoleFox:fix-time-typo, r=jonas-schievink
Yuki Okushi [Wed, 30 Dec 2020 09:15:21 +0000 (18:15 +0900)]
Rollup merge of #80469 - BlackHoleFox:fix-time-typo, r=jonas-schievink

Fix small typo in time comment

I was reading through [this PR](https://github.com/rust-lang/rust/pull/77727/files) and noticed a [small typo](https://github.com/rust-lang/rust/pull/77727/files#diff-3183738c82f747fd92bb573712073aa384b16e14d154bf2df18f41077edc31cbR240) smuggled though. This just fixes that.

3 years agoRollup merge of #80467 - LingMan:more_matches, r=oli-obk
Yuki Okushi [Wed, 30 Dec 2020 09:15:20 +0000 (18:15 +0900)]
Rollup merge of #80467 - LingMan:more_matches, r=oli-obk

More uses of the matches! macro

`@rustbot` modify labels +C-cleanup +T-compiler

3 years agoRollup merge of #80465 - eltociear:patch-3, r=jyn514
Yuki Okushi [Wed, 30 Dec 2020 09:15:18 +0000 (18:15 +0900)]
Rollup merge of #80465 - eltociear:patch-3, r=jyn514

Fix typo in ffi-pure.md

accesing -> accessing

3 years agoRollup merge of #80464 - LingMan:map_or, r=oli-obk
Yuki Okushi [Wed, 30 Dec 2020 09:15:16 +0000 (18:15 +0900)]
Rollup merge of #80464 - LingMan:map_or, r=oli-obk

Use Option::map_or instead of open coding it

``@rustbot`` modify labels +C-cleanup +T-compiler

3 years agoRollup merge of #80461 - rust-lang:tmandry-patch-1, r=Mark-Simulacrum
Yuki Okushi [Wed, 30 Dec 2020 09:15:14 +0000 (18:15 +0900)]
Rollup merge of #80461 - rust-lang:tmandry-patch-1, r=Mark-Simulacrum

Add llvm-libunwind change to bootstrap CHANGELOG

From #77703.

This doesn't need a `changelog-seen` version bump because the old values aren't accepted anymore, meaning anyone who was using this had to change it already.

r? ``@Mark-Simulacrum``

3 years agoRollup merge of #80457 - camelid:pretty-docs-commas, r=jonas-schievink
Yuki Okushi [Wed, 30 Dec 2020 09:15:13 +0000 (18:15 +0900)]
Rollup merge of #80457 - camelid:pretty-docs-commas, r=jonas-schievink

Add missing commas to `rustc_ast_pretty::pp` docs

3 years agoRollup merge of #80358 - pierwill:edit_rustc_span, r=lcnr
Yuki Okushi [Wed, 30 Dec 2020 09:15:11 +0000 (18:15 +0900)]
Rollup merge of #80358 - pierwill:edit_rustc_span, r=lcnr

Edit rustc_span documentation

Various changes to the `rustc_span` docs, including the following:

- Additions to top-level docs
- Edits to the source_map module docs
- Edits to documentation for `Span` and `SpanData`
- Added intra-docs links
- Documentation for Levenshtein distances
- Fixed missing punctuation

3 years agoRollup merge of #80348 - matthiaskrgr:less_clones, r=Dylan-DPC
Yuki Okushi [Wed, 30 Dec 2020 09:15:04 +0000 (18:15 +0900)]
Rollup merge of #80348 - matthiaskrgr:less_clones, r=Dylan-DPC

remove redundant clones (clippy::redundant_clone)

3 years agoRollup merge of #79812 - Aaron1011:lint-item-trailing-semi, r=oli-obk
Yuki Okushi [Wed, 30 Dec 2020 09:15:03 +0000 (18:15 +0900)]
Rollup merge of #79812 - Aaron1011:lint-item-trailing-semi, r=oli-obk

Lint on redundant trailing semicolon after item

We now lint on code like this:

```rust
fn main() {
    fn foo() {};
    struct Bar {};
}
```

Previously, this caused warnings in Cargo, so it was disabled.

3 years agoAuto merge of #79472 - Aaron1011:new-remove-pretty-print-hack, r=petrochenkov
bors [Wed, 30 Dec 2020 07:04:49 +0000 (07:04 +0000)]
Auto merge of #79472 - Aaron1011:new-remove-pretty-print-hack, r=petrochenkov

Replace pretty-print/compare/retokenize hack with targeted workarounds

Based on https://github.com/rust-lang/rust/pull/78296
cc https://github.com/rust-lang/rust/issues/43081

The 'pretty-print/compare/retokenize' hack is used to try to avoid passing an outdated `TokenStream` to a proc-macro when the underlying AST is modified in some way (e.g. cfg-stripping before derives). Unfortunately, retokenizing throws away spans (including hygiene information), which causes issues of its own. Every improvement to the accuracy of the pretty-print/retokenize comparison has resulted in non-trivial ecosystem breakage due to hygiene changes. In extreme cases, users deliberately wrote unhygienic `macro_rules!` macros (likely because they did not realize that the compiler's behavior was a bug).

Additionaly, the comparison between the original and pretty-printed/retoknized token streams comes at a non-trivial runtime cost, as shown by https://github.com/rust-lang/rust/pull/79338

This PR removes the pretty-print/compare/retokenize logic from `nt_to_tokenstream`. We only discard the original `TokenStream` under two circumstances:
* Inner attributes are used (detected by examining the AST)
* `cfg`/`cfg_attr` processing modifies the AST. This is detected by making the visitor update a flag when it performs a modification, instead of trying to detect the modification after-the-fact. Note that a 'matching' `cfg` (e.g. `#[cfg(not(FALSE)]`) does not actually get removed from the AST, allowing us to preserve the original `TokenStream`.

In all other cases, we preserve the original `TokenStream`.

This could use a bit of refactoring/renaming - opening for a Crater run.

r? `@ghost`

3 years agoAdd `#[track_caller]` to `bug!` and `register_renamed`
Joshua Nelson [Wed, 30 Dec 2020 04:16:40 +0000 (23:16 -0500)]
Add `#[track_caller]` to `bug!` and `register_renamed`

Before:

```
thread 'rustc' panicked at 'compiler/rustc_lint/src/context.rs:267:18: invalid lint renaming of broken_intra_doc_links to rustdoc::broken_intra_doc_links', compiler/rustc_middle/src/util/bug.rs:34:26
```

After:

```
thread 'rustc' panicked at 'src/librustdoc/core.rs:455:24: invalid lint renaming of broken_intra_doc_links to rustdoc::broken_intra_doc_links', compiler/rustc_middle/src/util/bug.rs:35:26
```

The reason I added it to `register_renamed` too is that any panic in
that function will be the caller's fault.

3 years agoUse `desc` as a doc-comment if none exist yet
Joshua Nelson [Wed, 23 Dec 2020 16:45:30 +0000 (11:45 -0500)]
Use `desc` as a doc-comment if none exist yet

- Replace {} with the stringified expr

  Giant thank you to `@danielhenrymantilla` for figuring out how to make
  this work :heart:

- Note that this is just an approximation and it would be better to add
  a doc-comment

3 years agoAuto merge of #80453 - petrochenkov:nocfail, r=Mark-Simulacrum
bors [Tue, 29 Dec 2020 23:20:46 +0000 (23:20 +0000)]
Auto merge of #80453 - petrochenkov:nocfail, r=Mark-Simulacrum

Remove `compile-fail` test suite

By moving all of its tests to `ui` test suite.
Now we have directives like `// dont-check-compiler-stderr` that allow to disable `.stderr` comparison for platform-dependent tests without introducing a whole new test suite.

3 years agoRemove unnecessary semicolon from Clippy test
Aaron Hill [Tue, 29 Dec 2020 22:15:53 +0000 (17:15 -0500)]
Remove unnecessary semicolon from Clippy test

3 years agoMiri: make size/align_of_val work for dangling raw ptrs
Ralf Jung [Tue, 29 Dec 2020 21:46:17 +0000 (22:46 +0100)]
Miri: make size/align_of_val work for dangling raw ptrs

3 years agoRemove unnecessary semicolon from Rustdoc-generated code
Aaron Hill [Mon, 28 Dec 2020 19:44:33 +0000 (14:44 -0500)]
Remove unnecessary semicolon from Rustdoc-generated code

3 years agoRemove trailing semicolon in librustdoc
Aaron Hill [Tue, 8 Dec 2020 02:52:13 +0000 (21:52 -0500)]
Remove trailing semicolon in librustdoc

3 years agoLint on redundant trailing semicolon after item
Aaron Hill [Mon, 7 Dec 2020 23:10:48 +0000 (18:10 -0500)]
Lint on redundant trailing semicolon after item

We now lint on code like this:

```rust
fn main() {
    fn foo() {};
    struct Bar {};
}
```

Previously, this caused warnings in Cargo, so it was disabled.

3 years agodon't redundantly repeat field names
Matthias Krüger [Tue, 29 Dec 2020 21:02:47 +0000 (22:02 +0100)]
don't redundantly repeat field names

3 years agoDo not create dangling &T in Weak<T>::drop
CAD97 [Tue, 29 Dec 2020 20:42:41 +0000 (15:42 -0500)]
Do not create dangling &T in Weak<T>::drop

3 years agoRemove `compile-fail` test suite
Vadim Petrochenkov [Mon, 28 Dec 2020 17:15:16 +0000 (20:15 +0300)]
Remove `compile-fail` test suite

3 years agodon't clone copy types
Matthias Krüger [Tue, 29 Dec 2020 18:33:48 +0000 (19:33 +0100)]
don't clone copy types

3 years agoMore uses of the matches! macro
LingMan [Tue, 29 Dec 2020 00:20:06 +0000 (01:20 +0100)]
More uses of the matches! macro

3 years agofix a comment
Ralf Jung [Tue, 29 Dec 2020 15:32:38 +0000 (16:32 +0100)]
fix a comment

3 years agoUse sans-serif font for the "all items" page links
Guillaume Gomez [Tue, 29 Dec 2020 14:56:52 +0000 (15:56 +0100)]
Use sans-serif font for the "all items" page links

3 years agoRemove pretty-print/reparse hack, and add derive-specific hack
Aaron Hill [Mon, 23 Nov 2020 06:43:55 +0000 (01:43 -0500)]
Remove pretty-print/reparse hack, and add derive-specific hack

3 years agotest: updated expected Vec src path
C [Sat, 5 Dec 2020 14:21:50 +0000 (14:21 +0000)]
test: updated expected Vec src path

3 years agodocs: fixing references
C [Sat, 5 Dec 2020 13:47:27 +0000 (13:47 +0000)]
docs: fixing references

3 years agofix: moved import into #[cfg(test)]
C [Sat, 5 Dec 2020 13:27:03 +0000 (13:27 +0000)]
fix: moved import into #[cfg(test)]

3 years agostyle: applying Rust style
C [Sat, 5 Dec 2020 01:44:07 +0000 (01:44 +0000)]
style: applying Rust style

3 years agorefactor: removing // ignore-tidy-filelength
C [Sat, 5 Dec 2020 01:42:29 +0000 (01:42 +0000)]
refactor: removing // ignore-tidy-filelength

3 years agorefactor: moved SpecExtend into spec_extend.rs
C [Sat, 5 Dec 2020 01:41:44 +0000 (01:41 +0000)]
refactor: moved SpecExtend into spec_extend.rs

3 years agorefactor: moving SpecFromIter into spec_from_iter.rs
C [Sat, 5 Dec 2020 01:37:10 +0000 (01:37 +0000)]
refactor: moving SpecFromIter into spec_from_iter.rs

3 years agorefactor: moved SpecFromIterNested to spec_from_iter_nested.rs
C [Sat, 5 Dec 2020 01:30:20 +0000 (01:30 +0000)]
refactor: moved SpecFromIterNested to spec_from_iter_nested.rs

3 years agorefactor: moved InPlaceDrop into in_place_drop.rs
C [Sat, 5 Dec 2020 01:26:52 +0000 (01:26 +0000)]
refactor: moved InPlaceDrop into in_place_drop.rs

3 years agorefactor: moved SetLenOnDrop to set_len_on_drop
C [Sat, 5 Dec 2020 01:21:51 +0000 (01:21 +0000)]
refactor: moved SetLenOnDrop to set_len_on_drop

3 years agorefactor: moved SpecFromElem to spec_from_elem.rs
C [Sat, 5 Dec 2020 01:14:31 +0000 (01:14 +0000)]
refactor: moved SpecFromElem to spec_from_elem.rs

3 years agorefactor: moved PartialEq into partial_eq
C [Sat, 5 Dec 2020 01:07:34 +0000 (01:07 +0000)]
refactor: moved PartialEq into partial_eq

3 years agorefactor: moving SourceIterMarker into source_iter_marker.rs
C [Sat, 5 Dec 2020 01:04:06 +0000 (01:04 +0000)]
refactor: moving SourceIterMarker into source_iter_marker.rs

3 years agorefactor: moved IsZero into is_zero.rs
C [Sat, 5 Dec 2020 00:52:48 +0000 (00:52 +0000)]
refactor: moved IsZero into is_zero.rs

3 years agorefactor: moving AsIntoIter into into_iter.rs
C [Sat, 5 Dec 2020 00:47:54 +0000 (00:47 +0000)]
refactor: moving AsIntoIter into into_iter.rs

3 years agorefactor: moved IntoIter into into_iter.rs
C [Sat, 5 Dec 2020 00:45:20 +0000 (00:45 +0000)]
refactor: moved IntoIter into into_iter.rs

3 years agorefactor: moved Vec impl Cow into cow.rs
C [Sat, 5 Dec 2020 00:17:25 +0000 (00:17 +0000)]
refactor: moved Vec impl Cow into cow.rs

3 years agorefactor: moving Drain into drain.rs
C [Sat, 5 Dec 2020 00:12:42 +0000 (00:12 +0000)]
refactor: moving Drain into drain.rs

3 years agorefactor: moving Splice into splice.rs
C [Sat, 5 Dec 2020 00:04:32 +0000 (00:04 +0000)]
refactor: moving Splice into splice.rs

3 years agorefactor: moving DrainFilter into drain_filter.rs
C [Fri, 4 Dec 2020 23:58:11 +0000 (23:58 +0000)]
refactor: moving DrainFilter into drain_filter.rs

3 years agorefactor: moving vec.rs to vec/mod.rs
C [Fri, 4 Dec 2020 23:50:05 +0000 (23:50 +0000)]
refactor: moving vec.rs to vec/mod.rs

3 years agoci: stop producing gzip-compressed dist tarballs
Pietro Albini [Mon, 28 Dec 2020 12:00:50 +0000 (13:00 +0100)]
ci: stop producing gzip-compressed dist tarballs

3 years agobootstrap: add the dist.compression-formats option
Pietro Albini [Mon, 14 Dec 2020 14:53:07 +0000 (15:53 +0100)]
bootstrap: add the dist.compression-formats option

The option allows to add or remove compression formats used while
producing dist tarballs.

3 years agoAuto merge of #80014 - jyn514:box-item-kind, r=nnethercote
bors [Tue, 29 Dec 2020 10:41:01 +0000 (10:41 +0000)]
Auto merge of #80014 - jyn514:box-item-kind, r=nnethercote

[rustdoc] Box ItemKind to reduce the size of `Item`

This brings the size of `Item` from

```
[src/librustdoc/lib.rs:103] std::mem::size_of::<Item>() = 536
```

to

```
[src/librustdoc/lib.rs:103] std::mem::size_of::<Item>() = 136
```

This is an alternative to https://github.com/rust-lang/rust/pull/79967; I don't think it makes sense to make both changes.

Helps with #79103.

3 years agoFix small typo in time comment
BlackHoleFox [Tue, 29 Dec 2020 08:10:29 +0000 (02:10 -0600)]
Fix small typo in time comment

3 years agoAuto merge of #79084 - simonvandel:instcombine-perf, r=oli-obk
bors [Tue, 29 Dec 2020 06:21:18 +0000 (06:21 +0000)]
Auto merge of #79084 - simonvandel:instcombine-perf, r=oli-obk

Small perf changes for InstCombine

3 years agoAdd static assertion for the size of ItemKind
Joshua Nelson [Tue, 29 Dec 2020 05:31:46 +0000 (00:31 -0500)]
Add static assertion for the size of ItemKind

3 years agoFix typo in ffi-pure.md
Ikko Ashimine [Tue, 29 Dec 2020 04:37:21 +0000 (13:37 +0900)]
Fix typo in ffi-pure.md

accesing -> accessing

3 years agoUse Option::map_or instead of open coding it
LingMan [Tue, 29 Dec 2020 03:27:37 +0000 (04:27 +0100)]
Use Option::map_or instead of open coding it