Commit graph

36038 commits

Author SHA1 Message Date
Aman Arora
b89ea96660 Editon 2021 enables precise capture 2021-06-27 21:44:33 -04:00
bors
e8cb1a4a56 Auto merge of #85359 - lrh2000:reserved-prefixes, r=nikomatsakis
Reserve prefixed identifiers and literals (RFC 3101)

This PR denies any identifiers immediately followed by one of three tokens `"`, `'` or `#`, which is stricter than the requirements of RFC 3101 but may be necessary according to the discussion at [Zulip].

[Zulip]: https://rust-lang.zulipchat.com/#narrow/stream/268952-edition-2021/topic/reserved.20prefixes/near/238470099

The tracking issue #84599 says we'll add a feature gate named `reserved_prefixes`, but I don't think I can do this because it is impossible for the lexer to know whether a feature is enabled or not. I guess determining the behavior by the edition information should be enough.

Fixes #84599
2021-06-27 20:33:25 +00:00
bors
a4f832b275 Auto merge of #86445 - sexxi-goose:box_fix, r=nikomatsakis
2229: Capture box completely in move closures

Even if the content from box is used in a sharef-ref context,
we capture the box entirerly.

This is motivated by:
1) We only capture data that is on the stack.
2) Capturing data from within the box might end up moving more data than
the user anticipated.

Closes https://github.com/rust-lang/project-rfc-2229/issues/50

r? `@nikomatsakis`
2021-06-27 18:10:35 +00:00
Albin Hedman
4aa1267cbb
Update and bless tests for const read out of bounds 2021-06-27 14:24:49 +02:00
Albin Hedman
c0125532ea
Update and bless tests for copy intrinsic 2021-06-27 13:48:01 +02:00
Albin Hedman
56c78b2f59
Fix the test copy-intrinsic 2021-06-27 12:05:22 +02:00
Albin Hedman
3a894e38fb
Bring back tests removed in 'Revert PRs 81238 and 82967 (which made copy and copy_nonoverlapping' 5f6016f125 2021-06-27 12:05:21 +02:00
Albin Hedman
4b64baff67
Bless out_of_bounds_read test 2021-06-27 12:05:20 +02:00
Albin Hedman
7de63be56d
Revert "With the revert of PR 83091, swap is not a const fn anymore."
This reverts commit 34deda3cc2.
2021-06-27 12:05:18 +02:00
Albin Hedman
38e9538122
Revert "Remove tests that were also added in PR 79684."
This reverts commit e118a2cbf1.
2021-06-27 12:05:18 +02:00
bors
543ab99640 Auto merge of #85448 - nanguye2496:nanguye2496/debuginfo_tests, r=Mark-Simulacrum
Add debug info tests for range, fix-sized array, and cell types

This PR add several debug info tests to guarantee that the displays of fixed sized arrays, range types, cell types, threads, locks, and mutexes in CDB are correct.

It also updates CDB tests for slices in pretty-std.rs after string visualization in WinDbg is fixed by this PR: #81898.
2021-06-27 06:58:07 +00:00
bors
a5b7511a6c Auto merge of #86645 - FabianWolff:issue-82328, r=LeSeulArtichaut
Fix ICE with `-Zunpretty=hir,typed`

This PR fixes #82328. The `-Zunpretty=hir,typed` pretty-printer maintains an `Option` with type-checking results and sets the `Option` to `Some` when entering a body. However, this leads to an ICE if an expression occurs in a function signature (i.e. outside of a body), such as `128` in
```rust
fn foo(-128..=127: i8) {}
```
This PR fixes the ICE by checking (if necessary) whether the expression's owner has a body, and retrieving type-checking results for that on the fly.
2021-06-27 00:15:49 +00:00
Mara Bos
f6dd1378f0 Update reserved prefixes test for new edition lint wording. 2021-06-26 20:49:29 +00:00
Fabian Wolff
e8ebf98742 Reorder some lines in unpretty-expr-fn-arg.rs 2021-06-26 22:43:27 +02:00
bors
3ddb78a346 Auto merge of #86449 - Stupremee:render-self-cast-in-type-bound, r=GuillaumeGomez
rustdoc: Render `<Self as X>::Y` type casts properly across crate bounds

My last PR that introduced the type casting did not work for cross-crate re-exported traits, which is fixed in this PR.

Fully resolves #85454
2021-06-26 16:13:52 +00:00
Mara Bos
2bcd663100 Add reserved_prefixe tests for macros from different editions. 2021-06-26 23:11:14 +08:00
Mara Bos
c7f7c2efe0 Add quote!() example to reserved_prefix lint test. 2021-06-26 23:11:14 +08:00
Mara Bos
3b18e215a3 Add test for the reserved_prefix migration lint. 2021-06-26 23:11:13 +08:00
Mara Bos
40fb2e9705 Update reserved-prefixes test output. 2021-06-26 23:09:43 +08:00
lrh2000
8dee9bc8fc Reserve prefixed identifiers and string literals (RFC 3101)
This commit denies any identifiers immediately followed by
one of three tokens `"`, `'` or `#`, which is stricter than
the requirements of RFC 3101 but may be necessary according
to the discussion at [Zulip].

[Zulip]: https://rust-lang.zulipchat.com/#narrow/stream/268952-edition-2021/topic/reserved.20prefixes/near/238470099
2021-06-26 23:09:43 +08:00
Fabian Wolff
7682e87c6d Fix ICE with -Zunpretty=hir,typed when an expression occurs in a function signature 2021-06-26 16:05:53 +02:00
bors
f2571a2dd6 Auto merge of #85682 - m-ou-se:array-into-iter-2, r=nikomatsakis
Update array_into_iter lint for 1.53 and edition changes.

This updates the array_into_iter lint for Rust 1.53 and the edition changes.

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

r? `@estebank`
2021-06-26 13:33:04 +00:00
Mara Bos
dbdf7c7963 Fix array-into-iter tests. 2021-06-26 12:19:18 +00:00
Mara Bos
c685292fba Remove issue-78660-cap-lints-future-compat test. 2021-06-26 12:14:23 +00:00
Mara Bos
bdeb61437f Add test for suggestion of array_into_iter in for loop. 2021-06-26 12:14:22 +00:00
Mara Bos
aec2c5b2b6 Update tests for updated array_into_iter lint. 2021-06-26 12:14:22 +00:00
bors
831ae3c136 Auto merge of #84814 - Stupremee:properly-render-hrtbs, r=GuillaumeGomez
Properly render HRTBs

```rust
pub fn test<T>()
where
    for<'a> &'a T: Iterator,
{}
```

This will now render properly including the `for<'a>`
![image](https://user-images.githubusercontent.com/39732259/116808426-fe6ce600-ab38-11eb-9452-f33f554fbb8e.png)

I do not know if this covers all cases, it only covers everything that I could think of that includes `for` and lifetimes in where bounds.
Also someone need to mentor me on how to add a proper rustdoc test for this.

Resolves #78482
2021-06-26 10:52:16 +00:00
bors
481971978f Auto merge of #86586 - Smittyvb:https-everywhere, r=petrochenkov
Use HTTPS links where possible

While looking at #86583, I wondered how many other (insecure) HTTP links were in `rustc`. This changes most other `http` links to `https`. While most of the links are in comments or documentation, there are a few other HTTP links that are used by CI that are changed to HTTPS.

Notes:
- I didn't change any to or in licences
- Some links don't support HTTPS :(
- Some `http` links were dead, in those cases I upgraded them to their new places (all of which used HTTPS)
2021-06-26 08:24:31 +00:00
bors
bca6d9baa9 Auto merge of #86622 - FabianWolff:issue-83475, r=jonas-schievink
Check that `#[cmse_nonsecure_entry]` is applied to a function definition

This PR fixes #83475. The compiler currently neglects to check whether `#[cmse_nonsecure_entry]` is applied to a function (and not, say, a struct) definition, leading to an ICE later on when the type checker attempts to retrieve the function signature. I have fixed this problem by adding an appropriate check to the `check_attr` pass, so that an error is reported instead of an ICE.
2021-06-26 02:28:45 +00:00
Nam Nguyen
0d917a6b8e Add debug info tests for range, fix-sized array, and cell types. 2021-06-25 14:07:06 -07:00
bors
e6b4c252ea Auto merge of #86599 - Amanieu:asm_raw, r=nagisa
Add a "raw" option for asm! which ignores format string specifiers

This is useful when including raw assembly snippets using `include_str!`.
2021-06-25 20:44:28 +00:00
bors
0d7f236b8a Auto merge of #86627 - JohnTitor:rollup-ey29pc1, r=JohnTitor
Rollup of 5 pull requests

Successful merges:

 - #86330 (Change how edition based future compatibility warnings are handled)
 - #86513 (Rustdoc: Do not list impl when trait has doc(hidden))
 - #86592 (Use `#[non_exhaustive]` where appropriate)
 - #86608 (chore(rustdoc): remove unused members of RenderType)
 - #86624 (Update compiler-builtins)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-06-25 18:16:37 +00:00
Fabian Wolff
499afcdfcf Check that #[cmse_nonsecure_entry] is applied to a function definition 2021-06-25 17:49:41 +02:00
Yuki Okushi
6be1732e69
Rollup merge of #86513 - fee1-dead:cross-crate-doc-hidden, r=danielhenrymantilla
Rustdoc: Do not list impl when trait has doc(hidden)

Fixes #86448.
2021-06-26 00:42:10 +09:00
bors
f726dbe934 Auto merge of #85603 - ogoffart:fix-uninhabited-enum-branching-pass, r=wesleywiser
Fix uninhabited enum branching pass

when the discriminant is taken with some projection.
2021-06-25 15:35:47 +00:00
Ryan Levick
ef08c6bc4d Fix new broken tests 2021-06-25 15:07:25 +02:00
Ryan Levick
7b3940f44b Address PR feedback 2021-06-25 14:51:56 +02:00
Ryan Levick
23176f60e7 Change how edition based future compatibility warnings are handled 2021-06-25 14:51:56 +02:00
bors
117799b73c Auto merge of #86505 - JohnTitor:fix-86483, r=jackh726
Do not panic in `return_type_impl_trait`

Fixes #86483
2021-06-25 09:28:17 +00:00
Deadbeef
9a6343478c
Renamed test and added test for same crate 2021-06-25 14:08:06 +08:00
Aman Arora
d37a07ffbe fixup! 2229: Capture box completely in move closures
fixup! 2229: Capture box completely in move closures
2021-06-24 21:45:29 -04:00
bors
079aa837d2 Auto merge of #86574 - m-ou-se:or-pattern-lint-fix, r=petrochenkov
Don't lint :pat when re-parsing a macro from another crate.

`compile_macro` is used both when compiling the original definition in the crate that defines it, and to compile the macro when loading it when compiling a crate that uses it. We should only emit lints in the first case.

This adds a `is_definition: bool` to pass this information in, so we don't warn about things that only concern the definition site.

Fixes #86567
2021-06-25 01:23:16 +00:00
Aman Arora
de2052af9c 2229: Capture box completely in move closures
Even if the content from box is used in a sharef-ref context,
we capture the box entirerly.

This is motivated by:
1) We only capture data that is on the stack.
2) Capturing data from within the box might end up moving more data than
the user anticipated.
2021-06-24 19:39:51 -04:00
bors
d4e7cb3254 Auto merge of #86272 - nagisa:nagisa/tidy-llvm-components, r=Mark-Simulacrum
tidy: verify that test revisions with --target have associated needs-llvm-components directives

This ensures that people who tend to write `--target` `#[no_core]` tests don't miss specifying the `needs-llvm-components` directive. This is necessary for the test suite to pass when LLVM is compiled with a subset of components enabled.

While here I also took the opportunity to implement a more fine-grained handling of the ignore directives, so that they are evaluated for each revision, rather than for the entire test. With this even if people have `arm` component disabled, only the revision that depends on the arm component will not run.

Fixes https://github.com/rust-lang/rust/issues/82405
2021-06-24 22:42:26 +00:00
Amanieu d'Antras
d0443bb7c2 Add a "raw" option for asm! which ignores format string specifiers 2021-06-24 23:42:15 +01:00
Mara Bos
06db210459 Don't lint :pat when re-parsing a macro from another crate. 2021-06-24 22:04:55 +00:00
Simonas Kazlauskas
cfcb2b664d compiletest: ignore tests on a per-revision basis
Otherwise something that ought to seemingly work like `//[x86]
needs-llvm-components: x86` or `//[nll_beyond]should-fail` do not get
evaluated properly.
2021-06-24 23:13:08 +03:00
Simonas Kazlauskas
493fe8008b Re-Annotate the tests with needs-llvm-components
Doesn't work though, because compiletest doesn't process ignores on a
per-revision manner.
2021-06-24 23:13:08 +03:00
bors
7c3872e6bf Auto merge of #85651 - dns2utf8:rustdoc_flexbox, r=GuillaumeGomez
rustdoc: staggered layout for module contents on mobile

This PR adds the container `<item-table>` with its two children `<item-left>` and `<item-right>`.
It uses grid-layout on desktop and flexbox on mobile to make better use of the available space.

Additionally it allows to share parts of the CSS with the search function.

* Demo: https://data.estada.ch/rustdoc-nightly_126561cb3_2021-05-25/generic_array/index.html
* Related: #85540

## Desktop
![grafik](https://user-images.githubusercontent.com/739070/119416896-2be62300-bce4-11eb-9555-792b859ab611.png)

## Mobile
![grafik](https://user-images.githubusercontent.com/739070/119416934-44563d80-bce4-11eb-9e77-70a72edcc487.png)

r? `@GuillaumeGomez` `@jsha`
2021-06-24 20:01:39 +00:00
bors
d95745e5fa Auto merge of #85427 - ehuss:fix-use-placement, r=jackh726
Fix use placement for suggestions near main.

This fixes an edge case for the suggestion to add a `use`. When running with `--test`, the `main` function will be annotated with an `#[allow(dead_code)]` attribute. The `UsePlacementFinder` would end up using the dummy span of that synthetic attribute. If there are top-level inner attributes, this would place the `use` in the wrong position. The solution here is to ignore attributes with dummy spans.

In the process of working on this, I discovered that the `use_suggestion_placement` test was broken. `UsePlacementFinder` is unaware of active attributes. Attributes like `#[derive]` don't exist in the AST since they are removed. Fixing that is difficult, since the AST does not retain enough information. I considered trying to place the `use` towards the top of the module after any `extern crate` items, but I couldn't find a way to get a span for the start of a module block (the `mod` span starts at the `mod` keyword, and it seems tricky to find the spot just after the opening bracket and past inner attributes). For now, I just put some comments about the issue. This appears to have been a known issue in #44215 where the test for it was introduced, and the fix seemed to be deferred to later.
2021-06-24 14:56:28 +00:00