Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add async_fn_in_trait lint #116184

Merged
merged 6 commits into from
Oct 5, 2023
Merged

Add async_fn_in_trait lint #116184

merged 6 commits into from
Oct 5, 2023

Conversation

compiler-errors
Copy link
Member

cc #115822 (comment)

Mostly unsure what the messaging should be. Feedback required.

r? @tmandry

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 26, 2023
@rust-log-analyzer

This comment has been minimized.

@petrochenkov
Copy link
Contributor

This should probably be restricted to effective_visibilities.is_reachable(...) traits.
For private traits it's always possible to adjust them as necessary if the problems with Send etc. occur.

Copy link
Contributor

@rakshith-ravi rakshith-ravi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just looking at this from the point of view of new comers, and I feel like explicit suggestions would be more helpful for them

@@ -5,6 +5,10 @@ lint_array_into_iter =
.use_explicit_into_iter_suggestion =
or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value

lint_async_fn_in_trait = usage of `async fn` in trait is discouraged because they do not automatically have auto trait bounds
.note = you can suppress this lint if you plan to use the trait locally, for concrete types, or do not care about auto traits like `Send` on the future
Copy link
Contributor

@rakshith-ravi rakshith-ravi Sep 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we perhaps rephrase this to be more helpful to new users? Like so:

you can suppress this lint if you do not care about auto traits like `Send` on the future with the `#[allow(async_fn_in_trait)]` attribute

Copy link
Member Author

@compiler-errors compiler-errors Sep 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather just make it a structured suggestion, but also, I don't think any other lint goes out of its way to tell you how to suppress it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry, but what's a structured suggestion?

Also, yes, other lints don't do this, but most other lints aren't elevated to be shown by default unless it's guaranteed to not have false positives. Additionally, new-comers probably wouldn't understand a lot about what Send bounds are and why it's needed. While yes, they should eventually learn it, it only increases the barrier to getting started with rust for them. Giving them a simple suggestions is more of a "here's the simple, ugly way out, but you should probably look into this when you understand what's happening"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On second thought, it would also encourage users to do the wrong thing unless they know what they're doing, which isn't exactly ideal.

Hmm, idk. I'm conflicted now. I've put both sides of the coin on the table. Open for suggestions

compiler/rustc_lint/messages.ftl Outdated Show resolved Hide resolved
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

compiler/rustc_lint/src/async_fn_in_trait.rs Outdated Show resolved Hide resolved
compiler/rustc_lint/src/async_fn_in_trait.rs Outdated Show resolved Hide resolved
tests/ui/async-await/in-trait/warn.stderr Outdated Show resolved Hide resolved
tests/ui/async-await/in-trait/warn.stderr Show resolved Hide resolved
compiler-errors and others added 5 commits October 3, 2023 00:37
We're stabilizing `async fn` in trait (AFIT), but we have some
reservations about how people might use this in the definitions of
publicly-visible traits, so we're going to lint about that.

This is a bit of an odd lint for `rustc`.  We normally don't lint just
to have people confirm that they understand how Rust works.  But in
this one exceptional case, this seems like the right thing to do as
compared to the other plausible alternatives.

In this commit, we describe the nature of this odd lint.
@jonhoo
Copy link
Contributor

jonhoo commented Oct 3, 2023

Thank you for implementing this! I think the lint should also warn about the backwards compatibility hazard associated with making the trait method return impl Future + Send, namely that one cannot remove the Send in the future (e.g., when RTN stabilizes) without that being a breaking change. It does mean that the lint boils down to "pick your poison", but that's sort of the point! Maybe it could also suggest ATPIT as another feasible path forward (assuming that stabilizes in time)?

Co-authored-by: Travis Cross <tc@traviscross.com>
@tmandry
Copy link
Member

tmandry commented Oct 4, 2023

@bors r+

@bors
Copy link
Contributor

bors commented Oct 4, 2023

📌 Commit 2f52490 has been approved by tmandry

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 4, 2023
@bors
Copy link
Contributor

bors commented Oct 5, 2023

⌛ Testing commit 2f52490 with merge b781645...

@bors
Copy link
Contributor

bors commented Oct 5, 2023

☀️ Test successful - checks-actions
Approved by: tmandry
Pushing b781645 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 5, 2023
@bors bors merged commit b781645 into rust-lang:master Oct 5, 2023
12 checks passed
@rustbot rustbot added this to the 1.75.0 milestone Oct 5, 2023
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (b781645): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
4.0% [3.0%, 5.0%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 622.444s -> 623.73s (0.21%)
Artifact size: 272.02 MiB -> 272.01 MiB (-0.01%)

@jonhoo
Copy link
Contributor

jonhoo commented Oct 5, 2023

The backwards compatibility hazard around going the + Send route isn't currently highlighted by the lint. I think it's essential to add that in there, because as written folks will see the suggestion and go "oh, sweet, that fixes my problem, let me just do that!", not realizing that they've now committed to + Send until the next major release.

@compiler-errors
Copy link
Member Author

I'll make a TODO to make that present in the diagnostic. For the record, the lint description does note this:

    /// This still allows the use of `async fn` within impls of the trait.
    /// However, it also means that the trait will never be compatible with
    /// impls where the returned [`Future`] of the method does not implement
    /// `Send`.

@jonhoo
Copy link
Contributor

jonhoo commented Oct 5, 2023

Yeah, I think it specifically needs to be mentioned in the .suggestion — I've found that it's pretty rare someone actually reads (or even knows how to read) lint descriptions.

I saw that bit, and it's close, but I think missing a crucial bi-sentence. Something like:

... without a breaking change to the trait where the + Send bound is removed again.

@tmandry
Copy link
Member

tmandry commented Oct 5, 2023

Yeah, I think it specifically needs to be mentioned in the .suggestion — I've found that it's pretty rare someone actually reads (or even knows how to read) lint descriptions.

I don't agree that it should go in the suggestion; the implication of the syntax should really be clear to anyone who is publishing a trait for public consumption. If someone is unsure, that's a good reason to dig deeper by reading the lint description, the blog post we'll publish about releasing AFIT, etc.

... without a breaking change to the trait where the + Send bound is removed again.

I'm not opposed to saying something like this, though editorially, it's already a pretty long sentence. I'm happy to review a PR.

@jonhoo
Copy link
Contributor

jonhoo commented Oct 6, 2023

the implication of the syntax should really be clear to anyone who is publishing a trait for public consumption

I agree on the "should", but disagree on the implied "would". My hope was that we could help trait definers understand the trade-off they're making, but if you feel strongly that the backwards-compat hazard here will be obvious to all relevant users, then I won't belabor the point. I just don't share your conviction that that is true 😅

dig deeper by reading the lint description

I didn't even known lints had descriptions until this discussion. How does one find them? I can't find a reference anywhere to how to print a lint description? Does it require digging into the rustc src? If so, I think no-one who's at risk from this hazard will go dig that up.

the blog post we'll publish about releasing AFIT

Here's a thought: maybe we could link to the blog post from the lint (once it's out, so one release later)? That feels like it might be a good way to give folks more context than the little note.

bors-ferrocene bot added a commit to ferrocene/ferrocene that referenced this pull request Oct 6, 2023
23: Fix divergence from upstream `master` r=tshepang a=pvdrz

* rust-lang/rust#116483
  * rust-lang/rust#116475
  * rust-lang/rust#116329
  * rust-lang/rust#116198
  * rust-lang/rust#115588
  * rust-lang/rust#115522
  * rust-lang/rust#115454
* rust-lang/rust#111595
* rust-lang/rust#116018
* rust-lang/rust#116472
  * rust-lang/rust#116469
  * rust-lang/rust#116421
* rust-lang/rust#116463
* rust-lang/rust#101150
* rust-lang/rust#116269
* rust-lang/rust#116417
* rust-lang/rust#116455
  * rust-lang/rust#116452
  * rust-lang/rust#116428
  * rust-lang/rust#116415
  * rust-lang/rust#116288
  * rust-lang/rust#116220
* rust-lang/rust#103046
* rust-lang/rust#114042
* rust-lang/rust#104153
* rust-lang/rust#116427
* rust-lang/rust#116443
  * rust-lang/rust#116432
  * rust-lang/rust#116431
  * rust-lang/rust#116429
  * rust-lang/rust#116296
  * rust-lang/rust#116223
* rust-lang/rust#116273
* rust-lang/rust#116184
* rust-lang/rust#116370
* rust-lang/rust#114417
* rust-lang/rust#115200
* rust-lang/rust#116413
* rust-lang/rust#116381
* rust-lang/rust#116360
* rust-lang/rust#116353
* rust-lang/rust#116406
* rust-lang/rust#116408
  * rust-lang/rust#116395
  * rust-lang/rust#116393
  * rust-lang/rust#116388
  * rust-lang/rust#116365
  * rust-lang/rust#116363
  * rust-lang/rust#116146
  * rust-lang/rust#115961
* rust-lang/rust#116386
* rust-lang/rust#116367
* rust-lang/rust#105394
* rust-lang/rust#115301
* rust-lang/rust#116384
  * rust-lang/rust#116379
  * rust-lang/rust#116328
  * rust-lang/rust#116282
  * rust-lang/rust#116261
  * rust-lang/rust#114654
* rust-lang/rust#116376
  * rust-lang/rust#116374
  * rust-lang/rust#116371
  * rust-lang/rust#116358
  * rust-lang/rust#116210
  * rust-lang/rust#115863
* rust-lang/rust#115025
* rust-lang/rust#116372
  * rust-lang/rust#116361
  * rust-lang/rust#116355
  * rust-lang/rust#116351
  * rust-lang/rust#116158
  * rust-lang/rust#115726
  * rust-lang/rust#113053
* rust-lang/rust#116083
* rust-lang/rust#102099
* rust-lang/rust#116356
  * rust-lang/rust#116350
  * rust-lang/rust#116349
  * rust-lang/rust#116289
  * rust-lang/rust#114454
  * rust-lang/rust#114453
* rust-lang/rust#116331
* rust-lang/rust#116346
  * rust-lang/rust#116340
  * rust-lang/rust#116326
  * rust-lang/rust#116313
* rust-lang/rust#116276
* rust-lang/rust#115898
* rust-lang/rust#116325
* rust-lang/rust#116317
* rust-lang/rust#116207
* rust-lang/rust#116281
* rust-lang/rust#116304
* rust-lang/rust#116259
* rust-lang/rust#116228
* rust-lang/rust#116224
* rust-lang/rust#115554
* rust-lang/rust#116311
  * rust-lang/rust#116299
  * rust-lang/rust#116295
  * rust-lang/rust#116292
* rust-lang/rust#116307
* rust-lang/rust#115670
* rust-lang/rust#116225
* rust-lang/rust#116302
* rust-lang/rust#116108
* rust-lang/rust#116160
* rust-lang/rust#116157
* rust-lang/rust#116127
* rust-lang/rust#116286
* rust-lang/rust#116254
* rust-lang/rust#116195
* rust-lang/rust#116280
* rust-lang/rust#115933
* rust-lang/rust#115546
* rust-lang/rust#115368
* rust-lang/rust#116275
  * rust-lang/rust#116263
  * rust-lang/rust#116241
  * rust-lang/rust#116216
  * rust-lang/rust#116030
  * rust-lang/rust#116024
  * rust-lang/rust#112123
* rust-lang/rust#113301
* rust-lang/rust#113797
* rust-lang/rust#115759
* rust-lang/rust#116260
  * rust-lang/rust#116253
  * rust-lang/rust#116245
  * rust-lang/rust#116239
  * rust-lang/rust#116234
  * rust-lang/rust#116231
  * rust-lang/rust#116201
  * rust-lang/rust#116133
* rust-lang/rust#116176
* rust-lang/rust#116089
* rust-lang/rust#115986

Co-authored-by: ouz-a <ouz.agz@gmail.com>
Co-authored-by: bors <bors@rust-lang.org>
Co-authored-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Co-authored-by: linkmauve <linkmauve@linkmauve.fr>
Co-authored-by: onur-ozkan <work@onurozkan.dev>
Co-authored-by: asquared31415 <34665709+asquared31415@users.noreply.github.com>
Co-authored-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
Co-authored-by: Ralf Jung <post@ralfj.de>
Co-authored-by: Nadrieril <nadrieril+git@gmail.com>
Co-authored-by: Raekye <Raekye@users.noreply.github.com>
Co-authored-by: Mark Rousskov <mark.simulacrum@gmail.com>
Co-authored-by: Zalathar <Zalathar@users.noreply.github.com>
@tmandry
Copy link
Member

tmandry commented Oct 6, 2023

How does one find them?

Normally the error comes with instructions to run a command like rustc --explain E0046 to print them, but I just noticed this lint doesn't have an error code. @compiler-errors how can we make this description accessible?

For what it's worth, they're also available online in the error codes index. I don't expect anyone to be digging into the compiler source :).

maybe we could link to the blog post from the lint

We could link to it from the lint or from the lint description, yeah.

@compiler-errors
Copy link
Member Author

@tmandry: As far as I can tell, lints are not typically associated with error codes. The only one I could find is E0602, but that doesn't use the same hir-based lint infrastructure that we do to emit this lint. Error code docs would also need to copy the lint description, since they're populated from separate markdown files.

If we think additional information should be attached, then instead of error code docs, I think we should just put another note on the diagnostic.

@jonhoo
Copy link
Contributor

jonhoo commented Oct 7, 2023

According to the rustc dev guide at least:

Diagnostics created by lints don't have a code in the emitted message.

Which matches what I thought was the case 😅 And I agree with @compiler-errors that, given this is the case, we should probably surface some more info from the description in the notes.

bors-ferrocene bot added a commit to ferrocene/ferrocene that referenced this pull request Oct 9, 2023
23: Fix divergence from upstream `master` r=pietroalbini a=pvdrz

* rust-lang/rust#116483
  * rust-lang/rust#116475
  * rust-lang/rust#116329
  * rust-lang/rust#116198
  * rust-lang/rust#115588
  * rust-lang/rust#115522
  * rust-lang/rust#115454
* rust-lang/rust#111595
* rust-lang/rust#116018
* rust-lang/rust#116472
  * rust-lang/rust#116469
  * rust-lang/rust#116421
* rust-lang/rust#116463
* rust-lang/rust#101150
* rust-lang/rust#116269
* rust-lang/rust#116417
* rust-lang/rust#116455
  * rust-lang/rust#116452
  * rust-lang/rust#116428
  * rust-lang/rust#116415
  * rust-lang/rust#116288
  * rust-lang/rust#116220
* rust-lang/rust#103046
* rust-lang/rust#114042
* rust-lang/rust#104153
* rust-lang/rust#116427
* rust-lang/rust#116443
  * rust-lang/rust#116432
  * rust-lang/rust#116431
  * rust-lang/rust#116429
  * rust-lang/rust#116296
  * rust-lang/rust#116223
* rust-lang/rust#116273
* rust-lang/rust#116184
* rust-lang/rust#116370
* rust-lang/rust#114417
* rust-lang/rust#115200
* rust-lang/rust#116413
* rust-lang/rust#116381
* rust-lang/rust#116360
* rust-lang/rust#116353
* rust-lang/rust#116406
* rust-lang/rust#116408
  * rust-lang/rust#116395
  * rust-lang/rust#116393
  * rust-lang/rust#116388
  * rust-lang/rust#116365
  * rust-lang/rust#116363
  * rust-lang/rust#116146
  * rust-lang/rust#115961
* rust-lang/rust#116386
* rust-lang/rust#116367
* rust-lang/rust#105394
* rust-lang/rust#115301
* rust-lang/rust#116384
  * rust-lang/rust#116379
  * rust-lang/rust#116328
  * rust-lang/rust#116282
  * rust-lang/rust#116261
  * rust-lang/rust#114654
* rust-lang/rust#116376
  * rust-lang/rust#116374
  * rust-lang/rust#116371
  * rust-lang/rust#116358
  * rust-lang/rust#116210
  * rust-lang/rust#115863
* rust-lang/rust#115025
* rust-lang/rust#116372
  * rust-lang/rust#116361
  * rust-lang/rust#116355
  * rust-lang/rust#116351
  * rust-lang/rust#116158
  * rust-lang/rust#115726
  * rust-lang/rust#113053
* rust-lang/rust#116083
* rust-lang/rust#102099
* rust-lang/rust#116356
  * rust-lang/rust#116350
  * rust-lang/rust#116349
  * rust-lang/rust#116289
  * rust-lang/rust#114454
  * rust-lang/rust#114453
* rust-lang/rust#116331
* rust-lang/rust#116346
  * rust-lang/rust#116340
  * rust-lang/rust#116326
  * rust-lang/rust#116313
* rust-lang/rust#116276
* rust-lang/rust#115898
* rust-lang/rust#116325
* rust-lang/rust#116317
* rust-lang/rust#116207
* rust-lang/rust#116281
* rust-lang/rust#116304
* rust-lang/rust#116259
* rust-lang/rust#116228
* rust-lang/rust#116224
* rust-lang/rust#115554
* rust-lang/rust#116311
  * rust-lang/rust#116299
  * rust-lang/rust#116295
  * rust-lang/rust#116292
* rust-lang/rust#116307
* rust-lang/rust#115670
* rust-lang/rust#116225
* rust-lang/rust#116302
* rust-lang/rust#116108
* rust-lang/rust#116160
* rust-lang/rust#116157
* rust-lang/rust#116127
* rust-lang/rust#116286
* rust-lang/rust#116254
* rust-lang/rust#116195
* rust-lang/rust#116280
* rust-lang/rust#115933
* rust-lang/rust#115546
* rust-lang/rust#115368
* rust-lang/rust#116275
  * rust-lang/rust#116263
  * rust-lang/rust#116241
  * rust-lang/rust#116216
  * rust-lang/rust#116030
  * rust-lang/rust#116024
  * rust-lang/rust#112123
* rust-lang/rust#113301
* rust-lang/rust#113797
* rust-lang/rust#115759
* rust-lang/rust#116260
  * rust-lang/rust#116253
  * rust-lang/rust#116245
  * rust-lang/rust#116239
  * rust-lang/rust#116234
  * rust-lang/rust#116231
  * rust-lang/rust#116201
  * rust-lang/rust#116133
* rust-lang/rust#116176
* rust-lang/rust#116089
* rust-lang/rust#115986

Co-authored-by: bors <bors@rust-lang.org>
Co-authored-by: ouz-a <ouz.agz@gmail.com>
Co-authored-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Co-authored-by: linkmauve <linkmauve@linkmauve.fr>
Co-authored-by: onur-ozkan <work@onurozkan.dev>
Co-authored-by: asquared31415 <34665709+asquared31415@users.noreply.github.com>
Co-authored-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
Co-authored-by: Ralf Jung <post@ralfj.de>
Co-authored-by: Nadrieril <nadrieril+git@gmail.com>
Co-authored-by: Raekye <Raekye@users.noreply.github.com>
Co-authored-by: Mark Rousskov <mark.simulacrum@gmail.com>
Co-authored-by: Zalathar <Zalathar@users.noreply.github.com>
bors-ferrocene bot added a commit to ferrocene/ferrocene that referenced this pull request Oct 9, 2023
23: Fix divergence from upstream `master` r=Dajamante a=pvdrz

* rust-lang/rust#116483
  * rust-lang/rust#116475
  * rust-lang/rust#116329
  * rust-lang/rust#116198
  * rust-lang/rust#115588
  * rust-lang/rust#115522
  * rust-lang/rust#115454
* rust-lang/rust#111595
* rust-lang/rust#116018
* rust-lang/rust#116472
  * rust-lang/rust#116469
  * rust-lang/rust#116421
* rust-lang/rust#116463
* rust-lang/rust#101150
* rust-lang/rust#116269
* rust-lang/rust#116417
* rust-lang/rust#116455
  * rust-lang/rust#116452
  * rust-lang/rust#116428
  * rust-lang/rust#116415
  * rust-lang/rust#116288
  * rust-lang/rust#116220
* rust-lang/rust#103046
* rust-lang/rust#114042
* rust-lang/rust#104153
* rust-lang/rust#116427
* rust-lang/rust#116443
  * rust-lang/rust#116432
  * rust-lang/rust#116431
  * rust-lang/rust#116429
  * rust-lang/rust#116296
  * rust-lang/rust#116223
* rust-lang/rust#116273
* rust-lang/rust#116184
* rust-lang/rust#116370
* rust-lang/rust#114417
* rust-lang/rust#115200
* rust-lang/rust#116413
* rust-lang/rust#116381
* rust-lang/rust#116360
* rust-lang/rust#116353
* rust-lang/rust#116406
* rust-lang/rust#116408
  * rust-lang/rust#116395
  * rust-lang/rust#116393
  * rust-lang/rust#116388
  * rust-lang/rust#116365
  * rust-lang/rust#116363
  * rust-lang/rust#116146
  * rust-lang/rust#115961
* rust-lang/rust#116386
* rust-lang/rust#116367
* rust-lang/rust#105394
* rust-lang/rust#115301
* rust-lang/rust#116384
  * rust-lang/rust#116379
  * rust-lang/rust#116328
  * rust-lang/rust#116282
  * rust-lang/rust#116261
  * rust-lang/rust#114654
* rust-lang/rust#116376
  * rust-lang/rust#116374
  * rust-lang/rust#116371
  * rust-lang/rust#116358
  * rust-lang/rust#116210
  * rust-lang/rust#115863
* rust-lang/rust#115025
* rust-lang/rust#116372
  * rust-lang/rust#116361
  * rust-lang/rust#116355
  * rust-lang/rust#116351
  * rust-lang/rust#116158
  * rust-lang/rust#115726
  * rust-lang/rust#113053
* rust-lang/rust#116083
* rust-lang/rust#102099
* rust-lang/rust#116356
  * rust-lang/rust#116350
  * rust-lang/rust#116349
  * rust-lang/rust#116289
  * rust-lang/rust#114454
  * rust-lang/rust#114453
* rust-lang/rust#116331
* rust-lang/rust#116346
  * rust-lang/rust#116340
  * rust-lang/rust#116326
  * rust-lang/rust#116313
* rust-lang/rust#116276
* rust-lang/rust#115898
* rust-lang/rust#116325
* rust-lang/rust#116317
* rust-lang/rust#116207
* rust-lang/rust#116281
* rust-lang/rust#116304
* rust-lang/rust#116259
* rust-lang/rust#116228
* rust-lang/rust#116224
* rust-lang/rust#115554
* rust-lang/rust#116311
  * rust-lang/rust#116299
  * rust-lang/rust#116295
  * rust-lang/rust#116292
* rust-lang/rust#116307
* rust-lang/rust#115670
* rust-lang/rust#116225
* rust-lang/rust#116302
* rust-lang/rust#116108
* rust-lang/rust#116160
* rust-lang/rust#116157
* rust-lang/rust#116127
* rust-lang/rust#116286
* rust-lang/rust#116254
* rust-lang/rust#116195
* rust-lang/rust#116280
* rust-lang/rust#115933
* rust-lang/rust#115546
* rust-lang/rust#115368
* rust-lang/rust#116275
  * rust-lang/rust#116263
  * rust-lang/rust#116241
  * rust-lang/rust#116216
  * rust-lang/rust#116030
  * rust-lang/rust#116024
  * rust-lang/rust#112123
* rust-lang/rust#113301
* rust-lang/rust#113797
* rust-lang/rust#115759
* rust-lang/rust#116260
  * rust-lang/rust#116253
  * rust-lang/rust#116245
  * rust-lang/rust#116239
  * rust-lang/rust#116234
  * rust-lang/rust#116231
  * rust-lang/rust#116201
  * rust-lang/rust#116133
* rust-lang/rust#116176
* rust-lang/rust#116089
* rust-lang/rust#115986

35: Automated pull from `rust-lang/libc` r=pietroalbini a=github-actions[bot]

This PR pulls the following changes from the [`rust-lang/libc`](https://github.com/rust-lang/libc) repository:

* rust-lang/libc#3335
* rust-lang/libc#3373
* rust-lang/libc#3360
* rust-lang/libc#3374
* rust-lang/libc#3375
* rust-lang/libc#3376
* rust-lang/libc#3377


Co-authored-by: ouz-a <ouz.agz@gmail.com>
Co-authored-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Co-authored-by: bors <bors@rust-lang.org>
Co-authored-by: linkmauve <linkmauve@linkmauve.fr>
Co-authored-by: onur-ozkan <work@onurozkan.dev>
Co-authored-by: asquared31415 <34665709+asquared31415@users.noreply.github.com>
Co-authored-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
Co-authored-by: Ralf Jung <post@ralfj.de>
Co-authored-by: Nadrieril <nadrieril+git@gmail.com>
Co-authored-by: Raekye <Raekye@users.noreply.github.com>
Co-authored-by: Mark Rousskov <mark.simulacrum@gmail.com>
Co-authored-by: Zalathar <Zalathar@users.noreply.github.com>
Co-authored-by: Nikolay Arhipov <nikolajs.arhipovs@gmail.com>
Co-authored-by: Brian Cain <bcain@quicinc.com>
Co-authored-by: Steve Lau <stevelauc@outlook.com>
Co-authored-by: David CARLIER <devnexen@gmail.com>
Co-authored-by: Louis Dupré Bertoni <louisdb@lespetitspedestres.org>
Co-authored-by: Taiki Endo <te316e89@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Oct 14, 2023
…tmandry

Fix AFIT lint message to mention pitfall

Addresses rust-lang#116184 (comment) by adding a short note. Not sure exactly of the wording -- I don't think this should be a blocker for the stabilization PR since we can iterate on this lint's messaging in the next few weeks in the worst case.

r? `@tmandry` cc `@traviscross` `@jonhoo`
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Oct 14, 2023
Rollup merge of rust-lang#116704 - compiler-errors:afit-lint-plus, r=tmandry

Fix AFIT lint message to mention pitfall

Addresses rust-lang#116184 (comment) by adding a short note. Not sure exactly of the wording -- I don't think this should be a blocker for the stabilization PR since we can iterate on this lint's messaging in the next few weeks in the worst case.

r? `@tmandry` cc `@traviscross` `@jonhoo`
celinval added a commit to celinval/rust-dev that referenced this pull request Jun 4, 2024
Update Rust toolchain from nightly-2023-10-05 to nightly-2023-10-06
without any other source changes.
This is an automatically generated pull request. If any of the CI checks
fail, manual intervention is required. In such a case, review the
changes at https://github.com/rust-lang/rust from
rust-lang@2bbb619
up to
rust-lang@cae0791.
The log for this commit range is:
rust-lang@cae0791da4 Auto merge of
rust-lang#116417 - ouz-a:trait_type_detective, r=compiler-errors
rust-lang@e30d27be00 remove is global
hack
rust-lang@cdca82c2c8 Auto merge of
rust-lang#116455 - matthiaskrgr:rollup-p226a5u, r=matthiaskrgr
rust-lang@76d0b794cb Rollup merge of
rust-lang#116452 - cjgillot:noassert-erased, r=oli-obk
rust-lang@c1c5ab717e Rollup merge of
rust-lang#116428 - Alexendoo:note-duplicate-diagnostics,
r=compiler-errors,estebank
rust-lang@08cc7428d9 Rollup merge of
rust-lang#116415 - ouz-a:move_subtyper, r=oli-obk
rust-lang@b301bd4220 Rollup merge of
rust-lang#116288 - ouz-a:smir_spans, r=spastorino
rust-lang@864e5d8d94 Rollup merge of
rust-lang#116220 - llogiq:stabilize-option-as-slice, r=BurntSushi
rust-lang@3088c4b046 move subtyper change
reveal_all
rust-lang@14c846cb05 Do not assert that
hidden types don't have erased regions.
rust-lang@3bcad65fbf Auto merge of
rust-lang#103046 - JanBeh:PR_clarify_cmp_terminology, r=workingjubilee
rust-lang@cf9fd95b1c Auto merge of
rust-lang#114042 - liushuyu:ubuntu/i586-fpmath, r=workingjubilee
rust-lang@86b031b734 docs: Correct
terminology in std::cmp
rust-lang@90f3a6f920 Auto merge of
rust-lang#104153 - tspiteri:doc-float-constants, r=workingjubilee
rust-lang@5c3a0e932b Auto merge of
rust-lang#116427 - cjgillot:no-internal, r=oli-obk
rust-lang@a49138e46e impl stable for
kinds
rust-lang@a79567b01c add span to
statements
rust-lang@e293927016 Auto merge of
rust-lang#116443 - workingjubilee:rollup-r9mh13f, r=workingjubilee
rust-lang@4a14a80605 Rollup merge of
rust-lang#116432 - notriddle:master, r=fmease
rust-lang@d7b02c3d40 Rollup merge of
rust-lang#116431 - estebank:issue-80476, r=compiler-errors
rust-lang@a9a389cf44 Rollup merge of
rust-lang#116429 - fmease:clean-up-struct-field-suggs, r=compiler-errors
rust-lang@cfce3a919d Rollup merge of
rust-lang#116296 - compiler-errors:default-return, r=estebank
rust-lang@ea3454eabb Rollup merge of
rust-lang#116223 - catandcoder:master, r=cjgillot
rust-lang@5236c8e1fa Auto merge of
rust-lang#116273 - compiler-errors:refine2, r=tmandry
rust-lang@b781645332 Auto merge of
rust-lang#116184 - compiler-errors:afit-lint, r=tmandry
rust-lang@5453a9f34d Add a note to
duplicate diagnostics
rust-lang@afe67fa2ef Auto merge of
rust-lang#116370 - nnethercote:more-arena-stuff, r=cjgillot
rust-lang@2f5249019e Apply suggestions
from code review
rust-lang@dd5f26c42d Fix spans for
comments in rustfmt
rust-lang@1f079cfb44 Point to closure
return instead of output if defaulted
rust-lang@89b14ae212 Fix clippy
rust-lang@137b6d0b01 Point to where
missing return type should go
rust-lang@a46ccd8d3f Add URL to test case
issues
rust-lang@9266270ef5 Rename issue-\d+.rs
tests to have meaningful names
rust-lang@041e54bd92 Tweak wording of
E0562
rust-lang@867cc41b5b clean up struct
field suggestions
rust-lang@a198aff4a4 Add `crate_name` to
test so that it can be renamed
rust-lang@e63d19c4dd Remove
mir::LocalDecl::internal.
rust-lang@f44d116e1f Fix misuses of a vs
an
rust-lang@a2051dd578 Optimize some
`alloc_from_iter` call sites.
rust-lang@816383c60d Remove the
`TypedArena::alloc_from_iter` specialization.
rust-lang@c373d206cd Address review nits
rust-lang@90dfa24415 Only reachable
traits
rust-lang@afea0b4eab Fill in prose to
describe the `async_fn_in_trait` lint
rust-lang@28d58f6524 Bless tests
rust-lang@ec79720c1e Add
async_fn_in_trait lint
rust-lang@999a354a81 add span to
terminator
rust-lang@9130484db9 create localdecl and
add span to it
rust-lang@06d9602d33 Only trigger refine
lint on reachable traits
rust-lang@702da3b89c stabilize
`Option::as_`(`mut_`)`slice`
rust-lang@40a52cf55c core library:
Disable fpmath tests for i386 ...
rust-lang@c953b6c014 doc: expand
description for f32 and f64 associated constants

Co-authored-by: celinval <celinval@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants