Oli Scherer
5446a52b4b
Add a because to errors derived from fields
2022-11-25 08:40:03 +00:00
Oli Scherer
d7f5d784d7
Simplify and document range layout computation
2022-11-25 08:39:11 +00:00
Oli Scherer
fcb1f1874f
Don't show fields from other crates
2022-11-25 08:12:16 +00:00
Oli Scherer
2e79f5f9f8
Move a comment to the right place
2022-11-25 08:11:53 +00:00
Oli Scherer
98c550ecc8
Reinstate the previous compact form of "in this field" errors
2022-11-25 08:11:29 +00:00
Oli Scherer
ccaa28bf69
Don't try to compute the layout of generic types.
2022-11-25 08:10:52 +00:00
Oli Scherer
2bed079103
Compute layout instead of manually procesisng the layout restriction attributes
2022-11-25 08:10:29 +00:00
Oli Scherer
5cbf172909
Print a trace through types to show how to get to the problematic type
2022-11-25 08:09:52 +00:00
Oli Scherer
9909cb902f
Make the ICEs in the mir typechecker have more spans helpful
2022-11-25 08:01:12 +00:00
Oli Scherer
6773e7ee56
More manual formatting
2022-11-25 08:00:49 +00:00
Oli Scherer
c3eb8f2778
rustc_layout_scalar_valid_range can be applied to scalar pairs and affects teh first scalar
2022-11-25 08:00:26 +00:00
Oli Scherer
2b8963a94c
Some manual formatting of let..else statements
2022-11-25 08:00:02 +00:00
Oli Scherer
2a94a2d385
Prefer not accessing the private field of newtype_index types
2022-11-25 07:51:56 +00:00
Oli Scherer
b5554722ff
Add helper method to ScalarInt
2022-11-25 07:47:56 +00:00
yukang
68ea51602a
fix the crossing function issue
2022-11-25 15:25:04 +08:00
bors
41e0363055
Auto merge of #104602 - petrochenkov:effvisperf5, r=oli-obk
...
privacy: Fix more (potential) issues with effective visibilities
Continuation of https://github.com/rust-lang/rust/pull/103965 .
See individual commits for more detailed description of the changes.
The shortcuts removed in https://github.com/rust-lang/rust/pull/104602/commits/4eb63f618e601efee657d24cd4e8833fb03fac4c and https://github.com/rust-lang/rust/pull/104602/commits/c7c7d1672739e38c8d39ae861b284486aefd5b48 could actually be correct (or correct after some tweaks), but they used global reasoning like "we can skip this update because if the code compiles then some other update should do the same thing eventually".
I have some expertise in this area, but I still have doubt whether such global reasoning was correct or not, especially in presence of all possible exotic cases with imports.
After this PR all table changes should be "locally correct" after every update, even if it may be overcautious.
If similar optimizations are introduced again they will need detailed comments explaining why it's legal to do what they do and providing proofs.
Fixes https://github.com/rust-lang/rust/issues/104249 .
Fixes https://github.com/rust-lang/rust/issues/104539 .
2022-11-25 06:14:42 +00:00
yukang
7cd4b673d0
fix #104700 , account for item-local in inner scope for E0425
2022-11-25 13:19:21 +08:00
Santiago Pastorino
974e2837bb
Introduce PredicateKind::Clause
2022-11-25 00:04:54 -03:00
Oli Scherer
42cc8e8f4e
Simplify a bunch of trait ref obligation creations
2022-11-25 00:04:54 -03:00
Oli Scherer
08afabddac
get rid of to_poly_trait_predicate
2022-11-25 00:04:52 -03:00
Luqman Aden
2582e36da3
Don't suggest associated function call for associated const.
2022-11-24 21:15:46 -05:00
bors
65a6e22668
Auto merge of #104845 - matthiaskrgr:rollup-tckj956, r=matthiaskrgr
...
Rollup of 11 pull requests
Successful merges:
- #104514 (Use node_ty_opt to avoid ICE in visit_ty)
- #104704 (Allow power10-vector feature in PowerPC)
- #104747 (resolve: Don't use constructor def ids in the map for field names)
- #104773 (OpaqueCast projections are always overlapping, they can't possibly be disjoint)
- #104774 (Document split{_ascii,}_whitespace() for empty strings)
- #104780 (make `error_reported` check for delayed bugs)
- #104782 (Bump the const eval step limit)
- #104792 (rustdoc: simplify `.search-results-title` CSS)
- #104796 (lint: do not warn unused parens around higher-ranked function pointers)
- #104820 (Remove normalize_projection_type)
- #104822 (with_query_mode -> new)
Failed merges:
- #104716 (move 2 candidates into builtin candidate)
- #104841 (Assert that we don't capture escaping bound vars in `Fn` trait selection)
r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-24 23:45:32 +00:00
Nicholas Nethercote
2c5d3705ec
Clarify SyntaxExtensionKind::LegacyDerive.
2022-11-25 09:13:27 +11:00
Michael Goulet
d945967779
Remove comment, simplify since we asserted fn ptr Self type has no bound vars
2022-11-24 21:50:04 +00:00
Michael Goulet
c7330c9fe8
Also check that fn pointer candidates don't have escaping bound vars
2022-11-24 21:50:04 +00:00
Michael Goulet
8927135274
Assert that we don't capture escaping bound vars in Fn trait selection
2022-11-24 21:50:04 +00:00
Matthias Krüger
1048a85dbe
Rollup merge of #104822 - spastorino:selctx-new-instead-of-with_query_mode, r=lcnr
...
with_query_mode -> new
r? ```@lcnr```
2022-11-24 21:34:57 +01:00
Matthias Krüger
73f01ffd46
Rollup merge of #104820 - spastorino:remove-normalize_projection_type, r=jackh726
...
Remove normalize_projection_type
r? ``@lcnr``
2022-11-24 21:34:56 +01:00
Matthias Krüger
83d1aab9ff
Rollup merge of #104796 - notriddle:notriddle/unused-issue-104397, r=oli-obk
...
lint: do not warn unused parens around higher-ranked function pointers
Fixes #104397
2022-11-24 21:34:56 +01:00
Matthias Krüger
679f1b7892
Rollup merge of #104782 - oli-obk:const_eval_limit_bump, r=pnkfelix
...
Bump the const eval step limit
fixes https://github.com/rust-lang/rust/issues/103814
https://github.com/rust-lang/rust/pull/103877 has too much of an impact to beta backport. So let's just increase the limit, avoiding the immediate breakage.
r? ``@pnkfelix``
2022-11-24 21:34:55 +01:00
Matthias Krüger
4843946a10
Rollup merge of #104780 - BoxyUwU:error_reported_not_be_bad, r=oli-obk
...
make `error_reported` check for delayed bugs
Fixes #104768
`error_reported()` was only checking if there were errors emitted, not for `delay_bug`s which can also be a source of `ErrorGuaranteed`. I assume the same is true of `lint_err_count` but i dont know
2022-11-24 21:34:54 +01:00
Matthias Krüger
9a558b68e1
Rollup merge of #104773 - oli-obk:overlap, r=lcnr
...
OpaqueCast projections are always overlapping, they can't possibly be disjoint
r? ``@lcnr``
2022-11-24 21:34:53 +01:00
Matthias Krüger
0e4eb0da33
Rollup merge of #104747 - petrochenkov:ctorfields, r=cjgillot
...
resolve: Don't use constructor def ids in the map for field names
Also do some minor cleanup to insertion of those field names.
Addresses a FIXME left in https://github.com/rust-lang/rust/pull/103578 .
2022-11-24 21:34:53 +01:00
Matthias Krüger
7a17d61d3d
Rollup merge of #104704 - ecnelises:p10vec, r=jackh726
...
Allow power10-vector feature in PowerPC
Note that we don't have `power10-altivec`:
57fd7ffeff/llvm/lib/Target/PowerPC/PPC.td (L277-L280)
2022-11-24 21:34:52 +01:00
Matthias Krüger
80dc91c6c3
Rollup merge of #104514 - chenyukang:yukang/fix-104513-ice, r=petrochenkov
...
Use node_ty_opt to avoid ICE in visit_ty
Fixes #104513
2022-11-24 21:34:51 +01:00
bors
b3bc6bf312
Auto merge of #103693 - HKalbasi:master, r=oli-obk
...
Make rustc_target usable outside of rustc
I'm working on showing type size in rust-analyzer (https://github.com/rust-lang/rust-analyzer/pull/13490 ) and I currently copied rustc code inside rust-analyzer, which works, but is bad. With this change, I would become able to use `rustc_target` and `rustc_index` directly in r-a, reducing the amount of copy needed.
This PR contains some feature flag to put nightly features behind them to make crates buildable on the stable compiler + makes layout related types generic over index type + removes interning of nested layouts.
2022-11-24 20:29:13 +00:00
Maybe Waffle
e143fa2156
nested-match mutability (proposed by the reviewer)
2022-11-24 18:18:45 +00:00
Camille GILLOT
5de9c84140
Fix rustc_pass_by_value.
2022-11-24 17:49:42 +00:00
Camille GILLOT
1c737d6997
Use kw::Empty for elided lifetimes in path.
2022-11-24 17:48:59 +00:00
Camille GILLOT
41090346d8
Change how suggested lifetime args are computed.
2022-11-24 17:48:42 +00:00
Camille GILLOT
5f5e7a8eec
Record in HIR whether lifetime elision was succesful.
2022-11-24 17:48:27 +00:00
Santiago Pastorino
3dee3aac78
Use infcx.partially_normalize_associated_types_in
2022-11-24 14:16:40 -03:00
bors
5dfb4b0afa
Auto merge of #104321 - Swatinem:async-gen, r=oli-obk
...
Avoid `GenFuture` shim when compiling async constructs
Previously, async constructs would be lowered to "normal" generators, with an additional `from_generator` / `GenFuture` shim in between to convert from `Generator` to `Future`.
The compiler will now special-case these generators internally so that async constructs will *directly* implement `Future` without the need to go through the `from_generator` / `GenFuture` shim.
The primary motivation for this change was hiding this implementation detail in stack traces and debuginfo, but it can in theory also help the optimizer as there is less abstractions to see through.
---
Given this demo code:
```rust
pub async fn a(arg: u32) -> Backtrace {
let bt = b().await;
let _arg = arg;
bt
}
pub async fn b() -> Backtrace {
Backtrace::force_capture()
}
```
I would get the following with the latest stable compiler (on Windows):
```
4: async_codegen:🅱️ :async_fn$0
at .\src\lib.rs:10
5: core::future::from_generator::impl$1::poll<enum2$<async_codegen:🅱️ :async_fn_env$0> >
at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\core\src\future\mod.rs:91
6: async_codegen:🅰️ :async_fn$0
at .\src\lib.rs:4
7: core::future::from_generator::impl$1::poll<enum2$<async_codegen:🅰️ :async_fn_env$0> >
at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\core\src\future\mod.rs:91
```
whereas now I get a much cleaner stack trace:
```
3: async_codegen:🅱️ :async_fn$0
at .\src\lib.rs:10
4: async_codegen:🅰️ :async_fn$0
at .\src\lib.rs:4
```
2022-11-24 17:14:42 +00:00
Sarthak Singh
1767f9f9bf
Unsupported query error now specifies if its unsupported for local or external crate
2022-11-24 19:05:17 +05:30
hkalbasi
390a637e29
move things from rustc_target::abi to rustc_abi
2022-11-24 16:26:13 +03:30
hkalbasi
27fb904d68
move some layout logic to rustc_target::abi::layout
2022-11-24 16:26:12 +03:30
hkalbasi
09a384643e
make rustc_target usable outside of rustc
2022-11-24 16:26:12 +03:30
Santiago Pastorino
66b4b8b907
with_query_mode -> new
2022-11-24 09:36:17 -03:00
Santiago Pastorino
1930c77de1
Remove normalize_projection_type
2022-11-24 09:02:55 -03:00
Boxy
72d8879c29
make error_reported check for delayed bugs
2022-11-24 11:12:46 +00:00