Michael Goulet
6711313f76
Move Sized check before first error is created
2022-07-01 17:38:34 +00:00
Michael Goulet
12ab6bfafd
Don't point at Self type if we can't find an infer variable in ambiguous trait predicate
2022-07-01 17:38:34 +00:00
Michael Goulet
ca0105ba4e
Show source of ambiguity in a few more places
2022-07-01 17:38:34 +00:00
Michael Goulet
f44ae98cee
Only label place where type is needed if span is meaningful
2022-07-01 17:38:34 +00:00
bors
5018181c79
Auto merge of #98767 - Dylan-DPC:rollup-j1gq5sr, r=Dylan-DPC
...
Rollup of 6 pull requests
Successful merges:
- #97488 (Suggest blanket impl to the local traits)
- #98585 (Make `ThinBox<T>` covariant in `T`)
- #98644 (fix ICE with -Wrust-2021-incompatible-closure-captures)
- #98739 (fix grammar in useless doc comment lint)
- #98741 (Many small deriving cleanups)
- #98756 (Use const instead of function and make it private)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-01 17:33:42 +00:00
Camille GILLOT
42e4eee893
Shorten def_span for more items.
2022-07-01 17:39:19 +02:00
Cameron Steffen
ec82bc1996
Factor out hir::Node::Binding
2022-07-01 10:04:19 -05:00
Dylan DPC
6404620f18
Rollup merge of #98756 - TaKO8Ki:use-const-instead-of-function, r=Dylan-DPC
...
Use const instead of function and make it private
2022-07-01 20:19:21 +05:30
Dylan DPC
c0cf363ca1
Rollup merge of #98741 - nnethercote:deriving-cleanups, r=Mark-Simulacrum
...
Many small deriving cleanups
These commits remove lots of little unnecessary things, and clarifies other things.
r? `@Mark-Simulacrum`
2022-07-01 20:19:20 +05:30
Dylan DPC
528202fec2
Rollup merge of #98739 - euclio:useless-comment-plural, r=Dylan-DPC
...
fix grammar in useless doc comment lint
2022-07-01 20:19:19 +05:30
Dylan DPC
90b296d770
Rollup merge of #98644 - matthiaskrgr:drp_loc_span_err__2021_inc_clos_cap, r=lcnr
...
fix ICE with -Wrust-2021-incompatible-closure-captures
Fixes #93117
Fixes #96258
2022-07-01 20:19:18 +05:30
Dylan DPC
e2ed8d7ed1
Rollup merge of #97488 - vincenzopalazzo:macros/blanket_sugg, r=compiler-errors
...
Suggest blanket impl to the local traits
This PR will add additional suggestion regarding the blanket implementation when it is possible, by generation a new help message + suggestion.
Closes https://github.com/rust-lang/rust/issues/96076
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
2022-07-01 20:19:16 +05:30
bors
5b9775fe17
Auto merge of #98402 - cjgillot:undead, r=michaelwoerister
...
Rewrite dead-code pass to avoid fetching HIR.
This allows to get a more uniform handling of spans, and to simplify the grouping of diagnostics for variants and fields.
2022-07-01 14:43:15 +00:00
lcnr
cf9c0a5935
cleanup mir visitor for rustc::pass_by_value
2022-07-01 16:21:21 +02:00
Pietro Albini
6b2d3d5f3c
update cfg(bootstrap)s
2022-07-01 15:48:23 +02:00
Thom Chiovoloni
2f872afdb5
Allow arithmetic and certain bitwise ops on AtomicPtr
...
This is mainly to support migrating from AtomicUsize, for the strict
provenance experiment.
Fixes #95492
2022-07-01 06:21:18 -07:00
Oli Scherer
58c08cd037
Remove type flag based opaque type workaround
2022-07-01 13:19:27 +00:00
bors
ca1e68b322
Auto merge of #98730 - matthiaskrgr:rollup-2c4d4x5, r=matthiaskrgr
...
Rollup of 10 pull requests
Successful merges:
- #97629 ([core] add `Exclusive` to sync)
- #98503 (fix data race in thread::scope)
- #98670 (llvm-wrapper: adapt for LLVMConstExtractValue removal)
- #98671 (Fix source sidebar bugs)
- #98677 (For diagnostic information of Boolean, remind it as use the type: 'bool')
- #98684 (add test for 72793)
- #98688 (interpret: add From<&MplaceTy> for PlaceTy)
- #98695 (use "or pattern")
- #98709 (Remove unneeded methods declaration for old web browsers)
- #98717 (get rid of tidy 'unnecessarily ignored' warnings)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-01 11:09:35 +00:00
Takayuki Maeda
f791ac6a79
use const instead of function and make it private
2022-07-01 16:55:23 +09:00
Nicholas Nethercote
85e8d94e05
Change Ty::Tuple
to Ty::Unit
.
...
Because that's all that is needed in practice.
2022-07-01 15:19:49 +10:00
Nicholas Nethercote
00307a5b6f
Rename Ty::Literal
as Ty::Path
.
...
Because a `Literal` is a type of expression, and is simply the wrong
name for this.
2022-07-01 15:19:46 +10:00
Joshua Nelson
3164c2aa15
Make logging for drop-tracking easier to read.
...
Some of these are a little questionable because the output is so much longer, but I would really love to keep the bit that adds the pretty-printed expression to the generated CFG .dot file.
Before:
```
DEBUG rustc_typeck::check::generator_interior::drop_ranges::record_consumed_borrow consume PlaceWithHirId { hir_id: HirId { owner: DefId(0:7 ~ default_struct_update[79f9]::foo), local_id: 15 }, place: Place { base_ty: impl std::future::Future<Output = ()>, base: Rvalue, projections: [] } }; diag_expr_id=HirId { owner: DefId(0:7 ~ default_struct_update[79f9]::foo), local_id: 15 }, using parent expr HirId { owner: DefId(0:7 ~ default_struct_update[79f9]::foo), local_id: 49 }
```
After:
```
DEBUG rustc_typeck::check::generator_interior::drop_ranges::record_consumed_borrow consume PlaceWithHirId { hir_id: HirId { owner: DefId(0:7 ~ default_struct_update[79f9]::foo), local_id: 15 }, place: Place { base_ty: impl std::future::Future<Output = ()>, base: Rvalue, projections: [] } }; diag_expr_id=expr from_config(Config {
nickname: None,
..Default::default()
}) (hir_id=HirId { owner: DefId(0:7 ~ default_struct_update[79f9]::foo), local_id: 15 }), using parent expr
.await (hir_id=HirId { owner: DefId(0:7 ~ default_struct_update[79f9]::foo), local_id: 49 })
```
2022-07-01 00:19:10 -05:00
Nicholas Nethercote
18fef6bbd7
Remove lifetime support in deriving code.
...
It's unused.
2022-07-01 15:16:17 +10:00
Nicholas Nethercote
b94246693a
Simplify pointer handling.
...
The existing derive code allows for various possibilities that aren't
needed in practice, which complicates the code. There are only a few
auto-derived traits and new ones are unlikely, so this commit simplifies
things.
- `PtrTy` has been eliminated. The `Raw` variant was never used, and the
lifetime for the `Borrowed` variant was always `None`. That left just
the mutability field, which has been inlined as necessary.
- `MethodDef::explicit_self` was a confusing `Option<Option<PtrTy>>`.
Indicating either `&self` or nothing. It's now a `bool`.
- `borrowed_self` is renamed as `self_ref`.
- `Ty::Ptr` is renamed to `Ty::Ref`.
2022-07-01 15:16:17 +10:00
Nicholas Nethercote
78ec19ffe6
expand_deriving_clone
tweaks.
...
Improve a comment, and panic on an impossible code path.
2022-07-01 15:16:15 +10:00
Matthias Krüger
0d5636ce88
Rollup merge of #98610 - lcnr:emit_inference_failure_err-ice, r=estebank
...
fix `emit_inference_failure_err` ICE
fixes #98598
this fix doesn't make me too happy, but 🤷
2022-07-01 06:05:52 +02:00
Nicholas Nethercote
623ebbe42a
Remove some commented-out code.
...
This was accidentally left behind in a previous commit.
2022-07-01 06:35:14 +10:00
Nicholas Nethercote
57d56891d2
Remove some unnecessary pub
s.
2022-07-01 06:35:14 +10:00
Nicholas Nethercote
89f6917a49
Remove Substructure::self_args
.
...
It's unused.
2022-07-01 06:35:14 +10:00
Nicholas Nethercote
1254fe974d
Remove {Method,Trait}Def::is_unsafe
.
...
They are always `false`.
2022-07-01 06:35:01 +10:00
Andy Russell
625122af9f
fix grammar in useless doc comment lint
2022-06-30 16:17:38 -04:00
Nicholas Nethercote
d13fa0d21b
Remove Substructure::method_ident
.
...
It's unused.
2022-07-01 06:04:36 +10:00
Nicholas Nethercote
7a4fdcbbc5
Remove unnecessary fields from EnumNonMatchingCollapsed
.
...
The `&[ast::Variant]` field isn't used.
The `Vec<Ident>` field is only used for its length, but that's always
the same as the length of the `&[Ident]` and so isn't necessary.
2022-07-01 06:04:36 +10:00
Nicholas Nethercote
72a1621061
Use split_{first,last}
in cs_fold1
.
...
It makes the code a little nicer to read.
2022-07-01 06:04:36 +10:00
Camille GILLOT
6bb549f0d1
Allow inlining #[inline]
functions.
2022-06-30 21:45:29 +02:00
Wesley Wiser
d1d9092e3c
Test enabling MIR inliner
2022-06-30 21:45:29 +02:00
Camille GILLOT
b33c6e1bd8
Do not error on the param_env during inlining.
...
This created unexpected diagnostics while compiling alga:
cannot satisfy `<Self as Module>::Ring == _`
Turns out that we don't need this diagnostic as we disable inlining when
it would trigger an ICE.
2022-06-30 21:45:29 +02:00
Camille GILLOT
ce4b5c8afc
Skip inlining if there are normalization issues.
2022-06-30 21:45:29 +02:00
Camille GILLOT
0161ecd13f
Recover when failing to normalize closure signature.
2022-06-30 21:45:29 +02:00
Camille GILLOT
2e45cd4b69
Do not ICE when failing to resolve.
2022-06-30 21:45:29 +02:00
Camille GILLOT
114c9284b9
Check history earlier.
2022-06-30 21:45:29 +02:00
Wesley Wiser
5999f34ff6
Don't assert polymorphization has taken effect in const eval
...
Const eval no longer runs MIR optimizations so unless this is getting
run as part of a MIR optimization like const-prop, there can be unused
type parameters even if polymorphization is enabled.
2022-06-30 21:45:29 +02:00
Vincenzo Palazzo
835b7a523a
ui: improve suggestion test by addig the help message
...
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
2022-06-30 18:59:36 +00:00
Matthias Krüger
8385d6bee4
Rollup merge of #98695 - tshepang:or-pattern, r=compiler-errors
...
use "or pattern"
2022-06-30 19:55:55 +02:00
Matthias Krüger
9bcf992499
Rollup merge of #98688 - RalfJung:from-mplace, r=oli-obk
...
interpret: add From<&MplaceTy> for PlaceTy
We have a similar instance for `&MPlaceTy` to `OpTy`. Also add the same for `&mut`.
This avoids having to write `&(*place).into()`, which we have a few times here and at least twice in Miri (and it comes up again in my current patch).
r? ```@oli-obk```
2022-06-30 19:55:54 +02:00
Matthias Krüger
6ee667374e
Rollup merge of #98677 - lyming2007:issue-98492-fix, r=lcnr
...
For diagnostic information of Boolean, remind it as use the type: 'bool'
Fixes #98492 .
It helps programmers coming from other languages
modified: compiler/rustc_resolve/src/late/diagnostics.rs
2022-06-30 19:55:53 +02:00
Matthias Krüger
5cd41d7be8
Rollup merge of #98670 - krasimirgg:llvm-15-LLVMConstExtractValue, r=nikic
...
llvm-wrapper: adapt for LLVMConstExtractValue removal
`LLVMConstExtractValue` was removed recently from LLVM: 5548e807b5
.
This adapts llvm-wrapper to use the new alternative where available, following https://rust-lang.zulipchat.com/#narrow/stream/187780-t-compiler.2Fwg-llvm/topic/LLVMConstExtractValue.20removal .
2022-06-30 19:55:52 +02:00
Yiming Lei
15d3ea504a
For diagnostic information of Boolean, remind it as use the type: 'bool'
...
It helps programmers coming from other languages
modified: compiler/rustc_resolve/src/late/diagnostics.rs
modified: src/test/ui/lint/recommend-literal.rs
modified: src/test/ui/lint/recommend-literal.stderr
modified: compiler/rustc_resolve/src/late/diagnostics.rs
modified: src/test/ui/lint/recommend-literal.rs
modified: src/test/ui/lint/recommend-literal.stderr
modified: compiler/rustc_resolve/src/late/diagnostics.rs
modified: src/test/ui/lint/recommend-literal.rs
modified: src/test/ui/lint/recommend-literal.stderr
2022-06-30 08:34:10 -07:00
Niko Matsakis
7fda86249f
promote placeholder bounds to 'static obligations
...
In NLL, when we are promoting a bound out from a closure,
if we have a requirement that `T: 'a` where `'a` is in a
higher universe, we were previously ignoring that, which is
totally wrong. We should be promoting those constraints to `'static`,
since universes are not expressible across closure boundaries.
2022-06-30 10:49:23 -04:00
Oli Scherer
84fc551664
Make evaluate_obligation
not succeed unconditionally if it registered new hidden types for opaque types
2022-06-30 14:23:31 +00:00