Maybe Waffle
da2752e00f
check accessibility before suggesting wrapping expressions
2022-07-19 01:16:25 +04:00
Maybe Waffle
7163e7ff65
Suggest a fix for NonZero*
<- *
coercion error
2022-07-19 00:13:29 +04:00
Maybe Waffle
37c21d6fc7
Do not suggest "wrapping the expression in std::num::NonZeroU64
"
2022-07-18 21:55:47 +04:00
Caio
3266460749
Stabilize let_chains
2022-07-16 20:17:58 -03:00
Matthias Krüger
6277ac2fb8
Rollup merge of #99342 - TaKO8Ki:avoid-symbol-to-string-conversions, r=compiler-errors
...
Avoid some `Symbol` to `String` conversions
This patch removes some Symbol to String conversions.
2022-07-16 22:30:56 +02:00
Matthias Krüger
4805c215c8
Rollup merge of #99316 - tshepang:clearer, r=compiler-errors
...
docs: add missing word
2022-07-16 22:30:53 +02:00
Takayuki Maeda
c54d4ada26
avoid some Symbol
to String
conversions
2022-07-17 04:09:20 +09:00
Tshepang Mbambo
653a214632
docs: add missing word
2022-07-16 12:11:43 +02:00
Will Crichton
e5bb7d80d6
Propagate Expectation around binop typeck code to construct more precise trait obligations for binops.
2022-07-15 18:06:18 -07:00
lcnr
16b2acc7c0
hir typeck: fulfillment_cx
ignore regions
2022-07-15 17:01:32 +02:00
lcnr
5bd8c960f5
provide generic_param_scope
for region errors
2022-07-15 16:53:20 +02:00
lcnr
b955fa7dd0
don't require FnCtxt
to check global asm
2022-07-15 16:53:20 +02:00
lcnr
4b56fd9341
try to avoid FnCtxt
during wf
2022-07-15 16:53:18 +02:00
lcnr
29d0390b97
remove unnecessary select_obligations_where_possible
...
this was previously used for opaque types but became unnecessary
after #89024
2022-07-15 16:40:39 +02:00
lcnr
2b730a3610
remove impl_implied_bounds
from FnCtxt
2022-07-15 16:40:39 +02:00
Dylan DPC
24f0e1499e
Rollup merge of #99119 - TaKO8Ki:remove-string-matching-about-methods, r=cjgillot
...
Refactor: remove a string matching about methods
This patch remove a string matching about methods and adds some rustfix tests.
2022-07-15 15:53:38 +05:30
Dylan DPC
e0e6f1d1cb
Rollup merge of #98869 - compiler-errors:stop_guessing_head_span, r=cjgillot
...
Remove some usages of `guess_head_span`
No need to pass things through `guess_head_span` if they already point to the head span.
Only major change is that we point to the head span of `enum`s on some errors now, which I prefer.
r? `@cjgillot`
2022-07-15 15:53:37 +05:30
Takayuki Maeda
45b88aff10
simplify suggest_deref_ref_or_into
2022-07-15 14:29:15 +09:00
Michael Goulet
fcfb3e92a0
Remove some more usages of guess_head_span
2022-07-15 05:23:47 +00:00
Michael Goulet
4b890f3474
Remove some span_of_impl+unwrap
2022-07-15 03:17:21 +00:00
Michael Goulet
03bfbe1fb3
Move item_span from check_item_type into each function
2022-07-15 03:17:21 +00:00
Michael Goulet
78efaf43e4
remove tcx from ObligationCauseCode::span
2022-07-15 03:17:20 +00:00
Michael Goulet
57f7618f62
Remove some usages of guess_head_span from typeck
2022-07-15 03:17:20 +00:00
Michael Goulet
aad2334ecb
Make item spans more consistent
2022-07-15 03:17:20 +00:00
Michael Goulet
d25abdc0c5
Point out custom Fn-family trait impl
2022-07-14 23:36:46 +00:00
Michael Goulet
ddb7003b79
Add support for APIT and RPIT callables in label_fn_like
2022-07-14 23:29:03 +00:00
bors
24699bcbad
Auto merge of #95956 - yaahc:stable-in-unstable, r=cjgillot
...
Support unstable moves via stable in unstable items
part of https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/moving.20items.20to.20core.20unstably and a blocker of https://github.com/rust-lang/rust/pull/90328 .
The libs-api team needs the ability to move an already stable item to a new location unstably, in this case for Error in core. Otherwise these changes are insta-stable making them much harder to merge.
This PR attempts to solve the problem by checking the stability of path segments as well as the last item in the path itself, which is currently the only thing checked.
2022-07-14 13:42:09 +00:00
bors
f1a8854f9b
Auto merge of #99231 - Dylan-DPC:rollup-0tl8c0o, r=Dylan-DPC
...
Rollup of 5 pull requests
Successful merges:
- #97720 (Always create elided lifetime parameters for functions)
- #98315 (Stabilize `core::ffi:c_*` and rexport in `std::ffi`)
- #98705 (Implement `for<>` lifetime binder for closures)
- #99126 (remove allow(rustc::potential_query_instability) in rustc_span)
- #99139 (Give a better error when `x dist` fails for an optional tool)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-14 11:00:30 +00:00
Dylan DPC
e5a86d7358
Rollup merge of #98705 - WaffleLapkin:closure_binder, r=cjgillot
...
Implement `for<>` lifetime binder for closures
This PR implements RFC 3216 ([TI](https://github.com/rust-lang/rust/issues/97362 )) and allows code like the following:
```rust
let _f = for<'a, 'b> |a: &'a A, b: &'b B| -> &'b C { b.c(a) };
// ^^^^^^^^^^^--- new!
```
cc ``@Aaron1011`` ``@cjgillot``
2022-07-14 14:14:21 +05:30
bors
0ed9c64c3e
Auto merge of #98975 - jyn514:unstable_opts, r=wesleywiser
...
Rename `debugging_opts` to `unstable_opts`
This is no longer used only for debugging options (e.g. `-Zoutput-width`, `-Zallow-features`).
Rename it to be more clear.
cc https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Codegen.20options.20.2F.20debugging.20options
r? `@Amanieu` cc `@nikic` `@joshtriplett`
2022-07-14 08:14:31 +00:00
bors
8a392a5992
Auto merge of #98754 - jyn514:non-trivial-drop, r=compiler-errors
...
Fix drop-tracking ICE when a struct containing a field with a significant drop is used across an await
Previously, drop-tracking would incorrectly assume the struct would be dropped immediately, which was not true.
Fixes #98476 . Also fixes https://github.com/rust-lang/rust/issues/98477 , I think because the parent HIR node for type variables is the whole function instead of the expression where the variable is used.
r? `@eholk`
2022-07-14 02:22:48 +00:00
Joshua Nelson
3c9765cff1
Rename debugging_opts
to unstable_opts
...
This is no longer used only for debugging options (e.g. `-Zoutput-width`, `-Zallow-features`).
Rename it to be more clear.
2022-07-13 17:47:06 -05:00
Ralf Jung
07fe9882cc
add array tests, cleanup, tidy, and bless
2022-07-13 18:31:29 -04:00
Ralf Jung
5bf6017b87
remove untagged_union feature gate
2022-07-13 18:27:28 -04:00
Dylan DPC
68cfdbb5c1
Rollup merge of #99155 - Amanieu:unstable-target-features, r=davidtwco
...
Keep unstable target features for asm feature checking
Inline assembly uses the target features to determine which registers
are available on the current target. However it needs to be able to
access unstable target features for this.
Fixes #99071
2022-07-13 19:32:36 +05:30
Dylan DPC
0083cd2fd4
Rollup merge of #98574 - dingxiangfei2009:let-else-thir, r=oli-obk
...
Lower let-else in MIR
This MR will switch to lower let-else statements in MIR building instead.
To lower let-else in MIR, we build a mini-switch two branches. One branch leads to the matching case, and the other leads to the `else` block. This arrangement will allow temporary lifetime analysis running as-is so that the temporaries are properly extended according to the same rule applied to regular `let` statements.
cc https://github.com/rust-lang/rust/issues/87335
Fix #98672
2022-07-13 19:32:33 +05:30
Guillaume Gomez
8a48557261
Rollup merge of #99020 - fee1-dead-contrib:repr_transparent_non_exhaustive, r=oli-obk
...
check non_exhaustive attr and private fields for transparent types
Fixes #78586 .
2022-07-13 10:38:43 +02:00
Maybe Waffle
df4fee9841
Add an indirection for closures in hir::ExprKind
...
This helps bring `hir::Expr` size down, `Closure` was the biggest
variant, especially after `for<>` additions.
2022-07-12 21:00:13 +04:00
Dylan DPC
c0bcbe8a6e
Rollup merge of #99038 - jackh726:earlybinder-cleanup, r=lcnr
...
Some more `EarlyBinder` cleanups
First commit has a couple unrelated cleanups, but otherwise each commit is self-explanatory
r? rust-lang/types
2022-07-12 17:06:34 +05:30
Dylan DPC
99fc65bc49
Rollup merge of #98972 - TaKO8Ki:suggest-adding-missing-zero-to-floating-point-number, r=compiler-errors
...
Suggest adding a missing zero to a floating point number
fixes #98836
2022-07-12 17:06:33 +05:30
Ding Xiang Fei
947cbda5eb
fix the typo
2022-07-12 13:24:08 +02:00
Deadbeef
944c0e23b8
check non_exhaustive attr and private fields for transparent types
2022-07-12 10:20:55 +00:00
Takayuki Maeda
e03cb7fb9a
implement a suggestion for a floating point number with a type suffix
2022-07-12 13:59:51 +09:00
Ding Xiang Fei
5374688e1d
add tests for async await
2022-07-11 23:20:39 +02:00
Ding Xiang Fei
8e4a971084
extract method to read scrutinee conditionally
2022-07-11 23:20:38 +02:00
Ding Xiang Fei
1cd30e7b32
move else block into the Local
struct
2022-07-11 23:20:37 +02:00
Ding Xiang Fei
6c529ded86
lower let-else in MIR instead
2022-07-11 23:20:36 +02:00
Matthias Krüger
5e223dc7b9
Rollup merge of #99146 - compiler-errors:issue-61525, r=lcnr
...
Do not error during method probe on `Sized` predicates for types that aren't the method receiver
Fixes #61525
This is safe even though we're skipping an error because we end up confirming the method, which means we're still checking the `Sized` predicate in the end. It just means that we don't emit an erroneous message as below:
```
error: the `query` method cannot be invoked on a trait object
--> src/lib.rs:14:11
|
14 | 1.query::<dyn ToString>("")
| ^^^^^
|
= note: another candidate was found in the following trait, perhaps add a `use` for it:
`use crate::Example;`
```
Also fixes erroneously suggesting the same trait over again, as seen in the `issue-35976.rs` UI test.
2022-07-11 22:39:09 +02:00
Michael Goulet
5c6560f2d5
Fix sized check ICE in intrisicck
2022-07-11 17:57:02 +00:00
Jack Huey
988e754691
placeholders -> inference vars in comment
2022-07-11 09:52:25 -04:00