nils
6bf57b8110
Rollup merge of #105806 - mejrs:eager2, r=davidtwco
...
Support eager subdiagnostics again
See https://github.com/rust-lang/rust/pull/104941#discussion_r1051135746
I'm not sure how to add a test for this. But I did pick some of the diagnostic structs in the mentioned PR and it works with them.
2023-01-12 15:44:50 +01:00
Petar Dambovaliev
bdf990022a
add note for float iterator
2023-01-12 15:29:53 +01:00
bors
222d1ff68d
Auto merge of #105603 - oli-obk:non_repeatable_queries, r=petrochenkov
...
Harden the pre-tyctxt query system against accidental recomputation
While the current compiler has no issues where we `take` and then compute the query again, in https://github.com/rust-lang/rust/pull/105462 I accidentally introduced such a case.
I also took the opportunity to remove `peek_mut`, which is only ever used for `global_tcx` to then invoke `enter`. I added an `enter` method directly on the query.
2023-01-12 13:59:30 +00:00
yukang
c82545955e
Provide help on closures capturing self causing borrow checker errors
2023-01-12 20:17:25 +08:00
Caio
7dd45bafb4
[RFC 2397] Deny incorrect locations
2023-01-12 08:41:21 -03:00
Arthur Carcano
797f247997
Mark ZST as FFI-safe if all its fields are PhantomData
...
Modify the linting behavior and add the corresponding
regression test
2023-01-12 12:21:35 +01:00
bors
606c390725
Auto merge of #106760 - compiler-errors:rollup-0bogyco, r=compiler-errors
...
Rollup of 8 pull requests
Successful merges:
- #103236 (doc: rewrite doc for signed int::{carrying_add,borrowing_sub})
- #103800 (Stabilize `::{core,std}::pin::pin!`)
- #106097 (Migrate mir_build diagnostics 2 of 3)
- #106170 (Move autoderef to `rustc_hir_analysis`)
- #106323 (Stabilize f16c_target_feature)
- #106360 (Tweak E0277 `&`-removal suggestions)
- #106524 (Label `struct/enum constructor` instead of `fn item`, mention that it should be called on type mismatch)
- #106739 (Remove `<dyn AstConv<'tcx>>::fun(c, ...)` calls in favour of `c.astconv().fun(...)`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2023-01-12 10:46:19 +00:00
Oli Scherer
58782a8842
Harden the pre-tyctxt query system against accidental recomputation
2023-01-12 09:26:28 +00:00
Michael Goulet
d7113948d3
Rollup merge of #106524 - compiler-errors:constructor-note, r=cjgillot
...
Label `struct/enum constructor` instead of `fn item`, mention that it should be called on type mismatch
Fixes #106516
2023-01-11 22:25:49 -08:00
Michael Goulet
54f6fea818
Rollup merge of #106360 - estebank:remove-borrow-suggestion, r=compiler-errors
...
Tweak E0277 `&`-removal suggestions
Fix #64068 , fix #84837 .
2023-01-11 22:25:49 -08:00
Michael Goulet
83d3b76ac2
Rollup merge of #106097 - mejrs:mir_build2, r=oli-obk
...
Migrate mir_build diagnostics 2 of 3
The first three commits are fairly boring, however I've made some changes to the output of the match checking diagnostics.
2023-01-11 22:25:47 -08:00
Michael Goulet
2e17a5d406
Rollup merge of #103800 - danielhenrymantilla:stabilize-pin-macro, r=dtolnay
...
Stabilize `::{core,std}::pin::pin!`
As discussed [over here](https://github.com/rust-lang/rust/issues/93178#issuecomment-1295843548 ), it looks like a decent time to stabilize the `pin!` macro.
### Public API
```rust
// in module `core::pin`
/// API: `fn pin<T>($value: T) -> Pin<&'local mut T>`
pub macro pin($value:expr $(,)?) {
…
}
```
- Tracking issue: #93178
(now all this needs is an FCP by the proper team?)
2023-01-11 22:25:47 -08:00
Michael Goulet
0a2b55d4c8
Revert "Make nested RPITIT inherit the parent opaque's generics." and adjust test
...
This reverts commit e2d41f4c97
.
2023-01-12 06:07:53 +00:00
Matthias Krüger
8a13157c16
Rollup merge of #106702 - estebank:trait-bounds, r=compiler-errors
...
Conserve cause of `ImplDerivedObligation` in E0599
CC #86377 .
2023-01-12 06:52:38 +01:00
Matthias Krüger
d42d952afc
Rollup merge of #106676 - oli-obk:tait_test, r=dtolnay
...
Test that we cannot use trait impl methods arguments as defining uses
Addresses https://github.com/rust-lang/rust/issues/63063#issuecomment-1360053614
r? `@dtolnay`
2023-01-12 06:52:37 +01:00
Matthias Krüger
890bc3ca90
Rollup merge of #106596 - estebank:verbose-e0271, r=compiler-errors
...
Hide more of long types in E0271
Fix #40186 .
2023-01-12 06:52:36 +01:00
Matthias Krüger
e664cb2154
Rollup merge of #106532 - compiler-errors:dyn-star-to-dyn, r=jackh726
...
Allow codegen to unsize `dyn*` to `dyn`
`dyn* Trait` is just another type that implements `Trait`, so we should be able to unsize `&dyn* Trait` into `&dyn Trait` perfectly fine, same for `Box` and other unsizeable types.
Fixes #106488
2023-01-12 06:52:35 +01:00
Matthias Krüger
9b538e8e62
Rollup merge of #106309 - compiler-errors:prefer-non-err-candidates, r=oli-obk
...
Prefer non-`[type error]` candidates during selection
Fixes #102130
Fixes #106351
r? types
note: Alternatively we could filter out error where-clauses during param-env construction? But we still need to filter out impls with errors during `match_impl`, I think.
2023-01-12 06:52:34 +01:00
Matthias Krüger
a8bd0c04b4
Rollup merge of #106167 - yanchen4791:issue-105544-fix, r=oli-obk
...
Fix invalid syntax and incomplete suggestion in impl Trait parameter type suggestions for E0311
Fixes #105544
The problems: The suggestion given for E0311 has invalid syntax when the synthetic type parameter is used for Trait type in function declaration:
```rust
fn foo(d: impl Sized) -> impl Sized
```
instead of explicitly specified like the following:
```rust
fn foo<T: Sized>(d: T) -> impl Sized
```
In addition to the syntax error, the suggestions given for E0311 are not complete when multiple elided lifetimes are involved in lifetime bounds, not all involved parameters are given the named lifetime in the suggestions. For the following test case:
```
fn foo(d: impl Sized, p: &mut ()) -> impl Sized + '_ {
(d, p)
}
```
a good suggestion should add the lifetime 'a to both d and p, instead of d only:
```
fn foo<'a>(d: impl Sized + 'a, p: &'a mut ()) -> impl Sized + '_ {
(d, p)
}
```
The Solution: Fix the syntax problem in the suggestions when synthetic type parameter is used, and also add lifetimes for all involved parameters.
2023-01-12 06:52:34 +01:00
Michael Goulet
0be510ee71
RPITITs are not suggestable
2023-01-12 04:20:17 +00:00
Deadbeef
42a50bac31
move to correct test
2023-01-12 04:20:00 +00:00
clubby789
740f6aaf95
Fix rendering 'const' for intrinsics
2023-01-12 03:19:08 +00:00
Deadbeef
ca1eb4309e
test use in libcore
2023-01-12 02:28:38 +00:00
Deadbeef
b0aa859c24
fix fmt and bless
2023-01-12 02:28:38 +00:00
Deadbeef
4fb10c0ce4
parse const closures
2023-01-12 02:28:37 +00:00
bors
d4203eda5f
Auto merge of #106537 - fmease:recover-where-clause-before-tuple-struct-body, r=estebank
...
Recover from where clauses placed before tuple struct bodies
Open to any suggestions regarding the phrasing of the diagnostic.
Fixes #100790 .
`@rustbot` label A-diagnostics
r? diagnostics
2023-01-12 02:16:16 +00:00
Nicholas Bishop
46f9e878f6
Stabilize abi_efiapi
feature
...
Tracking issue: https://github.com/rust-lang/rust/issues/65815
2023-01-11 20:42:13 -05:00
clubby789
a3d6bc3468
Emit a single error for contiguous sequences of Unicode homoglyphs
2023-01-12 00:15:32 +00:00
Mara Bos
7a3d5fe842
Bless pretty tests.
2023-01-12 00:25:46 +01:00
Mara Bos
525b0bb77a
Bless tests.
2023-01-12 00:25:46 +01:00
mejrs
a8e3abd04c
Address feedback
2023-01-12 00:11:32 +01:00
mejrs
f92000816e
Improve proc macro attribute diagnostics
2023-01-12 00:11:11 +01:00
bors
56ee65aeb6
Auto merge of #106743 - matthiaskrgr:rollup-q5dpxms, r=matthiaskrgr
...
Rollup of 6 pull requests
Successful merges:
- #106620 (Detect struct literal needing parentheses)
- #106622 (Detect out of bounds range pattern value)
- #106703 (Note predicate span on `ImplDerivedObligation`)
- #106705 (Report fulfillment errors in new trait solver)
- #106726 (Fix some typos in code comments.)
- #106734 (Deny having src/test exisiting in tidy)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2023-01-11 23:05:58 +00:00
yanchen4791
621d412241
Fix invalid syntax in impl Trait parameter type suggestions for E0311
2023-01-11 14:49:55 -08:00
mejrs
372ac9c1a2
Translate Overlap
eagerly
2023-01-11 14:40:13 -08:00
mejrs
8476c517c0
Don't recommend if let
if let else
works
2023-01-11 14:40:07 -08:00
mejrs
31c20210b9
Migrate pattern matching
2023-01-11 14:40:02 -08:00
mejrs
5d2b9a9ed0
Migrate deconstruct_pat.rs
2023-01-11 14:39:49 -08:00
asquared31415
337a97d374
add checks for the signature of the lang item
2023-01-11 14:35:08 -08:00
mejrs
7aff210ead
Support eager subdiagnostics again
2023-01-11 14:20:34 -08:00
Daniel Henry-Mantilla
48b7e2a5b9
Stabilize ::{core,std}::pin::pin!
2023-01-11 14:09:14 -08:00
Oli Scherer
44a5ce6f75
Test that we cannot use trait impl methods arguments as defining uses
2023-01-11 14:00:25 -08:00
Esteban Küber
f1ffe823cf
Hide more of long types in E0271
...
Fix #40186 .
2023-01-11 21:40:39 +00:00
Esteban Küber
8b8cce16bf
Use the root trait predicate to determine whether to remove references
...
Fix #84837 .
2023-01-11 21:39:07 +00:00
Esteban Küber
ce83be4af8
Account for type params
2023-01-11 21:38:56 +00:00
Esteban Küber
2024aa48b4
Make &
-removal suggestion verbose
2023-01-11 21:38:54 +00:00
Esteban Küber
41e66d9025
review comments: Tweak output
...
* Account for `struct S(pub(super)Ty);` in suggestion
* Suggest changing field visibility in E0603 too
2023-01-11 21:36:02 +00:00
Esteban Küber
ad13d9fbbe
Suggest making private tuple struct field public
...
Fix #52144 .
2023-01-11 21:35:42 +00:00
Esteban Küber
c6f322bf30
review comments: account for generics
2023-01-11 21:30:32 +00:00
Esteban Küber
12ddf77811
When suggesting writing a fully qualified path probe for appropriate types
...
Fix #46585 .
2023-01-11 21:30:10 +00:00
Matthias Krüger
90f9c681d4
Rollup merge of #106703 - compiler-errors:impl-derived-span, r=estebank
...
Note predicate span on `ImplDerivedObligation`
Seems obvious to point out the where-clause that introduces the `ImplDerivedObligation` :)
r? `@estebank`
2023-01-11 21:08:08 +01:00
Matthias Krüger
88765b0f59
Rollup merge of #106622 - estebank:issue-68972, r=davidtwco
...
Detect out of bounds range pattern value
Fix #68972 .
2023-01-11 21:08:07 +01:00
Michael Goulet
83fbc71d02
Filter impl and where-clause candidates that reference errors
2023-01-11 20:03:29 +00:00
Michael Goulet
959616ef44
Handle inference variables in CollectAllMismatches correctly
2023-01-11 20:01:24 +00:00
Michael Goulet
d375440dab
label where constructor is defined and note that it should be called
2023-01-11 19:53:15 +00:00
Michael Goulet
ede5c31af4
Be more specific about constructor FnDef
s in type mismatch
2023-01-11 19:53:14 +00:00
Michael Goulet
70a8d8dcf3
Allow codegen to unsize dyn* to dyn
2023-01-11 19:52:42 +00:00
Michael Goulet
9a39d7e441
Note predicate span on ImplDerivedObligation
2023-01-11 19:46:45 +00:00
Esteban Küber
317adda649
Tweak output
2023-01-11 19:31:34 +00:00
Esteban Küber
fb5d215347
Conserve cause of ImplDerivedObligation
in E0599
...
CC #86377 .
2023-01-11 19:31:33 +00:00
León Orell Valerian Liehr
70ddde76df
parser: recover from where clauses placed before tuple struct bodies
2023-01-11 17:54:48 +01:00
Esteban Küber
5311938531
Detect struct literal needing parentheses
...
Fix #82051 .
2023-01-11 16:53:21 +00:00
Esteban Küber
52d534ef63
Detect out of bounds range pattern value
...
Fix #68972 .
2023-01-11 16:50:55 +00:00
Camille GILLOT
b7bb8a5ce9
Do not filter substs in remap_generic_params_to_declaration_params
.
...
The relevant filtering should have been performed by borrowck.
2023-01-11 16:29:25 +00:00
Ben Kimock
13eec69e1c
Add a regression test for argument copies with DestinationPropagation
2023-01-11 10:27:06 -05:00
Yuki Omoto
4e2a3567bc
Add log-backtrace option to show backtraces along with logging
2023-01-12 00:17:48 +09:00
Albert Larsan
40ba0e84d5
Change src/test
to tests
in source files, fix tidy and tests
2023-01-11 09:32:13 +00:00
Albert Larsan
cf2dff2b1e
Move /src/test to /tests
2023-01-11 09:32:08 +00:00