Commit Graph

17597 Commits

Author SHA1 Message Date
Eric Holk
eff35e59c6 Introduce dyn_star feature flag
The primary purpose of this commit is to introduce the
dyn_star flag so we can begin experimenting with implementation.

In order to have something to do in the feature gate test, we also add
parser support for `dyn* Trait` objects. These are currently treated
just like `dyn Trait` objects, but this will change in the future.

Note that for now `dyn* Trait` is experimental syntax to enable
implementing some of the machinery needed for async fn in dyn traits
without fully supporting the feature.
2022-09-12 16:55:55 -07:00
Michael Goulet
c2cff68d84 Don't trim substitution if it's only whitespace 2022-09-12 22:08:30 +00:00
Michael Goulet
370c816a71 A SubstitutionPart is not a deletion if it replaces nothing with nothing 2022-09-12 22:08:30 +00:00
Daniel Paoliello
3c184db386 Fix raw-dylib with link_name 2022-09-12 14:03:19 -07:00
Guillaume Gomez
ac92cc861c Rollup merge of #101732 - Nemo157:gate-rustdoc-missing-examples, r=GuillaumeGomez
Feature gate the `rustdoc::missing_doc_code_examples` lint

Moves the lint from being implicitly active on nightly `rustdoc` to requiring a feature to activate, like other unstable lints.

Uses the new tracking issue https://github.com/rust-lang/rust/issues/101730
2022-09-12 22:47:18 +02:00
Guillaume Gomez
8dc4b26b60 Rollup merge of #101723 - lukas-code:await-diag, r=compiler-errors
Impove diagnostic for `.await`ing non-futures

Strip leading whitespace from the span and use a non-verbose suggestion.
fixes #101715
2022-09-12 22:47:15 +02:00
Guillaume Gomez
b7504d6f4f Rollup merge of #100185 - compiler-errors:issue-100183, r=wesleywiser
Fix `ReErased` leaking into typeck due to `typeof(...)` recovery

Fixes #100183
2022-09-12 22:47:13 +02:00
Wim Looman
72cf46aa72 Feature gate the rustdoc::missing_doc_code_examples lint 2022-09-12 21:20:24 +02:00
Guillaume Gomez
c4559ebfde Improve Attribute doc methods 2022-09-12 21:18:59 +02:00
Wim Looman
fd1a399c4f Allow tool-lints to specify a feature-gate too 2022-09-12 20:08:58 +02:00
Markus Reiter
14230a7f8e Simplify clippy fix. 2022-09-12 19:46:51 +02:00
bors
52e003a6e9 Auto merge of #99334 - NiklasJonsson:84447/error-privacy, r=oli-obk
rustc_error, rustc_private: Switch to stable hash containers

Relates https://github.com/rust-lang/rust/issues/84447
2022-09-12 15:57:37 +00:00
Lukas Markeffsky
2b7fb8d941 Impove diagnostic for .await-ing non-futures 2022-09-12 16:54:25 +02:00
Daniil Belov
ffa83596fe change rlib format to discern native dependencies 2022-09-12 16:45:03 +03:00
bors
7f115e3cd2 Auto merge of #101716 - Dylan-DPC:rollup-ayvh6nd, r=Dylan-DPC
Rollup of 9 pull requests

Successful merges:

 - #100293 (Add inline-llvm option for disabling/enabling LLVM inlining)
 - #100767 (Remove manual <[u8]>::escape_ascii)
 - #101668 (Suggest pub instead of public for const type item)
 - #101671 (Fix naming format of IEEE 754 standard)
 - #101676 (Check that the types in return position `impl Trait` in traits are well-formed)
 - #101681 (Deny return-position `impl Trait` in traits for object safety)
 - #101693 (Update browser UI test 0 10)
 - #101701 (Rustdoc-Json: Add tests for trait impls.)
 - #101706 (rustdoc: remove no-op `#search`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-09-12 13:16:14 +00:00
Dylan DPC
6bacb6f6e9 Rollup merge of #101681 - compiler-errors:rpitit-obj-safety, r=lcnr
Deny return-position `impl Trait` in traits for object safety

Fixes #101667
2022-09-12 15:21:33 +05:30
Dylan DPC
5faf033f62 Rollup merge of #101676 - compiler-errors:rpitit-wf, r=lcnr
Check that the types in return position `impl Trait` in traits are well-formed

This effectively duplicates `check_associated_type_bounds`, but that shouldn't be for long, since we're going to remove it once we refactor RPITITs into regular associated items.

Fixes #101663

---

We don't check

```rust
trait Foo {
  fn bar() -> impl ?Sized;
}
```

currently, but that's for a different reason, which is that we don't currently check that a trait function's return type is sized (i.e. `fn bar() -> [u8]` also works in a trait).
2022-09-12 15:21:33 +05:30
Dylan DPC
d7bad03cab Rollup merge of #101668 - chenyukang:fix-101626, r=TaKO8Ki
Suggest pub instead of public for const type item

Fixes #101626
2022-09-12 15:21:31 +05:30
Dylan DPC
93177758fc Rollup merge of #100767 - kadiwa4:escape_ascii, r=jackh726
Remove manual <[u8]>::escape_ascii

`@rustbot` label: +C-cleanup
2022-09-12 15:21:30 +05:30
Dylan DPC
413703201c Rollup merge of #100293 - yanchen4791:add-inline-llvm-option, r=nnethercote
Add inline-llvm option for disabling/enabling LLVM inlining

In this PR, a new -Z option `inline-llvm` is added in order to be able to turn on/off LLVM inlining.

The capability of turning on/off inlining in LLVM backend is needed for testing performance implications of using recently enabled inlining in rustc's frontend (with -Z inline-mir=yes option, #91743). It would be interesting to see the performance effect using rustc's frontend inlining only without LLVM inlining enabled. Currently LLVM is still doing inlining no mater what value inline-mir is set to. With the option `inline-llvm` being added in this PR, user can turn off LLVM inlining by using `-Z inline-llvm=no` option (the default of inline-llvm is 'yes', LLVM inlining enabled).
2022-09-12 15:21:29 +05:30
bors
a93214ec06 Auto merge of #101604 - compiler-errors:issue-101465, r=lcnr
Fix ICE in opt_suggest_box_span

We were _totally_ mishandling substs and obligations in `opt_suggest_box_span`, so I reworked that function pretty heavily.

Also some drive-by changes, namely removing `ret_type_span`.

Fixes #101465
2022-09-12 08:46:40 +00:00
bors
56e7678ca9 Auto merge of #100502 - chenyukang:fix-100478, r=jackh726
Avoid infinite loop in function arguments checking

Fixes #100478
Fixes #101097
2022-09-12 06:05:32 +00:00
Michael Goulet
2db0492e62 Normalize closure signature after construction 2022-09-12 04:20:58 +00:00
Nicholas Nethercote
b8ed1c5745 Remove unused argument from check_mac_def. 2022-09-12 14:05:54 +10:00
Nicholas Nethercote
7e3fd33a66 Remove unused argument from visit_poly_trait_ref. 2022-09-12 13:51:10 +10:00
Nicholas Nethercote
9ec5bda0dc Remove unused span argument from visit_name. 2022-09-12 13:44:29 +10:00
Nicholas Nethercote
eff1106d56 Remove unused span argument from check_mod and process_mod. 2022-09-12 13:44:27 +10:00
bors
3194958217 Auto merge of #100251 - compiler-errors:tuple-trait-2, r=jackh726
Implement `std::marker::Tuple`

Split out from #99943 (https://github.com/rust-lang/rust/pull/99943#pullrequestreview-1064459183).

Implements part of rust-lang/compiler-team#537
r? `@jackh726`
2022-09-12 03:24:29 +00:00
Nicholas Nethercote
925363f13d Remove unused span argument from walk_fn. 2022-09-12 13:24:27 +10:00
Nicholas Nethercote
6568ef338e Remove path_span argument to the visit_path_segment methods.
The `visit_path_segment` method of both the AST and HIR visitors has a
`path_span` argument that isn't necessary. This commit removes it.

There are two very small and inconsequential functional changes.

- One call to `NodeCollector::insert` now is passed a path segment
  identifier span instead of a full path span. This span is only used in
a panic message printed in the case of an internal compiler bug.

- Likewise, one call to `LifetimeCollectVisitor::record_elided_anchor`
  now uses a path segment identifier span instead of a full path span.
  This span is used to make some `'_` lifetimes.
2022-09-12 13:24:25 +10:00
Michael Goulet
3b573c9b98 fn pointers don't implement Fn/FnMut/FnOnce traits if its return type is unsized 2022-09-12 03:24:04 +00:00
Michael Goulet
5599a45e58 Fix ICE in opt_suggest_box_span 2022-09-12 02:00:20 +00:00
Michael Goulet
0a605d33cd No more ret_type_span 2022-09-12 02:00:20 +00:00
bors
fa521a4691 Auto merge of #101688 - cjgillot:verify-hir-parent, r=petrochenkov
Assert that HIR nodes are not their own parent.

Fixes https://github.com/rust-lang/rust/issues/101505.
Replaces #101513

r? `@petrochenkov` `@nnethercote`
2022-09-12 00:41:56 +00:00
Camille GILLOT
51f486931f Assert that HIR nodes are not their own parent. 2022-09-11 20:12:51 +02:00
bors
0d56e34047 Auto merge of #101678 - jannic:fix-101640, r=jyn514
Add diagnostic arg 'current_crate'

With this fix, I get almost the same error message as on stable, again.

However, I expected to get the new error message `std is required by {$current_crate} because it does not declare #![no_std]`, but I didn't. Instead, I got a new line `help: consider building the standard library from source with cargo build -Zbuild-std`. So I obviously do not fully understand what is going on.

In any case, the bug itself seems to be fixed by this patch.

Closes #101640
2022-09-11 16:30:59 +00:00
KaDiWa
66211d83f9 Avoid Iterator::last 2022-09-11 17:23:00 +02:00
bors
17a627fe87 Auto merge of #101682 - compiler-errors:rpitit-encode, r=fee1-dead
Only encode return-position `impl Trait` in trait when parent function has a default body

Semi-blocked on #101679, because I can't currently write a test for when we _should_ encode the type of the return-position `impl Trait` in trait, which is when a trait has a default function body, like so:

```rust
trait Foo {
  fn bar() -> impl Sized { }
}
```

Though this can land even without #101679, since it does prevent ICEs from occuring any time you use `#![feature(return_position_impl_trait_in_trait)]` in a library, which is kind annoying.
2022-09-11 13:49:52 +00:00
Michael Goulet
1335da9d48 Only encode RPITIT when trait method has default body 2022-09-11 09:36:02 +00:00
Michael Goulet
89b6488ef0 Deny RPITIT for object safety 2022-09-11 09:14:07 +00:00
Jan Niehusmann
156717d3e5 Add diagnostic arg 'current_crate' 2022-09-11 07:15:23 +00:00
Michael Goulet
fd2766e7fd Check that the types in RPITITs are WF 2022-09-11 06:58:11 +00:00
Charles Lew
0f367a9be8 Use current rustc version. 2022-09-11 14:04:18 +08:00
Andrew Cann
62112f4dc1 minor fixups as per PR feedback 2022-09-11 14:04:17 +08:00
Andrew Cann
543023c249 Add some comments to generator clone shim code 2022-09-11 14:04:17 +08:00
Andrew Cann
1bc9453aa8 Add tracking issue number to feature(generator_clone) 2022-09-11 14:04:17 +08:00
Andrew Cann
22f4bbb20f Apply formatting fixes 2022-09-11 14:04:16 +08:00
Andrew Cann
8aa30dd3cb move generator_clone feature definition
Move it to the list of features with no tracking issue, since it has no
tracking issue.
2022-09-11 14:04:16 +08:00
Andrew Cann
c1f1bc6e8f fix GeneratorWitness: Clone check 2022-09-11 14:04:16 +08:00
Andrew Cann
a5cb3cca5e loosen restriction on when GeneratorWitness: Clone 2022-09-11 14:04:15 +08:00