Matthias Krüger
7fac5048c4
Rollup merge of #104835 - spastorino:use-partially_normalize_associated_types_in, r=lcnr
...
Use infcx.partially_normalize_associated_types_in
r? ``@lcnr``
2022-11-25 18:35:41 +01:00
Matthias Krüger
aec60c6b7c
Rollup merge of #104797 - weihanglo:stream-write-dwp, r=jackh726
...
rustc_codegen_ssa: write `.dwp` in a streaming fashion
When writing a `.dwp` file, rustc writes to a Vec first then to a BufWriter-wrapped file. It seems very likely that we can write in a streaming fashion to avoid double buffering in an intermediate Vec.
On my Linux machine, `.dwp` from the latest rust-lang/cargo is 113MiB. It may worth a stream writer, though I didn't do any benchmark 🙇🏾♂️ .
2022-11-25 18:35:40 +01:00
Matthias Krüger
8f3f4980b4
Rollup merge of #104760 - nnethercote:rm-LegacyDerive, r=petrochenkov
...
Clarify `SyntaxExtensionKind::LegacyDerive`.
It's always treated the same as `SyntaxExtensionKind::Derive`.
2022-11-25 18:35:39 +01:00
Matthias Krüger
9c7dc3e30b
Rollup merge of #104716 - lcnr:selection-candidate, r=jackh726
...
move 2 candidates into builtin candidate
having separate candidates for these isn't too helpful i think
r? types
2022-11-25 18:35:39 +01:00
bors
051cab2b84
Auto merge of #104846 - spastorino:santa-clauses-make-goals-early-christmas- 🎄 , r=oli-obk
...
Branch Clause from Predicate
r? `@oli-obk`
This is part of what's proposed in https://github.com/rust-lang/compiler-team/issues/531
2022-11-25 15:59:31 +00:00
lcnr
4f07008419
remove confusing comment
...
`?0: CoerceUnsized<SomeTy>` can definitely apply because
`?0` matches any type, same for `SomeTy: CoerceUnsized<?0>`
2022-11-25 16:39:23 +01:00
lcnr
a215b7b4df
remove TypeError::ObjectUnsafeCoercion
2022-11-25 16:39:23 +01:00
lcnr
40a053361a
small method code cleanup
2022-11-25 15:52:58 +01:00
Krasimir Georgiev
e5ccd27e67
[llvm-wrapper] adapt for LLVM API change
...
Adapt for the LLVM API changes from
721f975d35 (diff-5a347903b8412ed1b1b1948c3fce47f9a6ff05dc70bfaeedb6d06b622e399d91)
.
2022-11-25 11:29:00 +00:00
lcnr
84e97907c6
add comment
2022-11-25 11:59:08 +01:00
lcnr
31431ccda9
move 2 candidates into builtin candidate
2022-11-25 11:59:08 +01:00
Matthias Krüger
34f1de8395
Rollup merge of #104841 - compiler-errors:fishy-bound-var, r=jackh726
...
Assert that we don't capture escaping bound vars in `Fn` trait selection
Fixes #104825
2022-11-25 10:44:39 +01:00
kadmin
d0209db157
Fix mk_const_list
2022-11-25 09:35:37 +00:00
Boxy
677bdcb8a9
only emit "enable gce" error if it would fix compile error
2022-11-25 09:28:44 +00:00
Boxy
2ac5d91d63
Make expand_abstract_consts
infallible
2022-11-25 09:28:44 +00:00
Boxy
4085e94ece
super_relate_consts
do not spurriously fail on assoc consts
2022-11-25 09:28:44 +00:00
Boxy
430f7d16e6
add FIXME's
2022-11-25 09:28:44 +00:00
Boxy
95e1a39c04
correctly intern List<Const<'tcx>>
2022-11-25 09:28:44 +00:00
Boxy
5a496aab03
dont skip const evalautable of non unevaluateds
2022-11-25 09:28:44 +00:00
Boxy
e58b932daf
add FIXME for things that I couldn't find ways to trigger
2022-11-25 09:28:44 +00:00
Boxy
4833ce8673
fmt
2022-11-25 09:28:43 +00:00
Boxy
f59b91e8a0
reduce duplicated argument logic
2022-11-25 09:28:43 +00:00
Boxy
fd271ffe28
also handle it in evaluate
2022-11-25 09:28:43 +00:00
Boxy
0ae3c5c609
handle assoc consts in fulfill ConstEquate
2022-11-25 09:28:43 +00:00
Boxy
d75cd5c051
fmt
2022-11-25 09:28:43 +00:00
Boxy
8c729bd0f3
handle nested obligations in satisfied_from_param_env
2022-11-25 09:28:43 +00:00
kadmin
5bb1a9febc
Add expand_abstract_const
...
Adds the ability to directly expand a const to an expr without having to deal with intermediate
steps.
2022-11-25 09:28:43 +00:00
kadmin
f9750c1554
Add empty ConstKind::Abstract
...
Initial pass at expr/abstract const/s
Address comments
Switch to using a list instead of &[ty::Const], rm `AbstractConst`
Remove try_unify_abstract_consts
Update comments
Add edits
Recurse more
More edits
Prevent equating associated consts
Move failing test to ui
Changes this test from incremental to ui, and mark it as failing and a known bug.
Does not cause the compiler to ICE, so should be ok.
2022-11-25 09:28:43 +00:00
Oli Scherer
208bb933e7
Use "must be init" instead of "must not be uninit" everywhere
2022-11-25 08:40:27 +00:00
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
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
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
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