Aaron Hill
055651d1af
Remove concept of 'completion' from the projection cache
...
Fixes #88910
When we initially store a `NormalizedTy` in the projection cache,
we discard all obligations that we can (while ensuring that we
don't cause any issues with incremental compilation).
Marking a projection cache entry as 'completed' discards all
obligations associated with it. This can only cause problems,
since any obligations stored in the cache are there for a reason
(e.g. they evaluate to `EvaluatedToOkModuloRegions`).
This commit removes `complete` and `complete_normalized` entirely.
2021-09-14 15:42:50 -05:00
Guillaume Gomez
a9bc2ef894
Rollup merge of #88851 - fee1-dead:dup-bound, r=oli-obk
...
Fix duplicate bounds for const_trait_impl
Fixes #88383 .
Compare the constness of the candidates before winnowing and removing a `~const` `BoundCandidate`.
2021-09-13 21:20:39 +02:00
Fabian Wolff
cbd79836a5
Improve error message for type mismatch in generator arguments
2021-09-13 19:39:30 +02:00
bors
c7dbe7a830
Auto merge of #88881 - Manishearth:rollup-alohfwx, r=Manishearth
...
Rollup of 7 pull requests
Successful merges:
- #88336 ( Detect stricter constraints on gats where clauses in impls vs trait)
- #88677 (rustc: Remove local variable IDs from `Export`s)
- #88699 (Remove extra unshallow from cherry-pick checker)
- #88709 (generic_const_exprs: use thir for abstract consts instead of mir)
- #88711 (Rework DepthFirstSearch API)
- #88810 (rustdoc: Cleanup `clean` part 1)
- #88813 (explicitly link to external `ena` docs)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-09-12 13:29:56 +00:00
Manish Goregaokar
f5ac5cadd3
Rollup merge of #88709 - BoxyUwU:thir-abstract-const, r=lcnr
...
generic_const_exprs: use thir for abstract consts instead of mir
Changes `AbstractConst` building to use `thir` instead of `mir` so that there's less chance of consts unifying when they shouldn't because lowering to mir dropped information (see `abstract-consts-as-cast-5.rs` test)
r? `@lcnr`
2021-09-12 03:44:56 -07:00
bors
9ef27bf7dc
Auto merge of #88771 - jackh726:wf_tys_set, r=nikomatsakis
...
Use FxHashSet instead of Vec for well formed tys
Trying to recover perf from #88312
r? `@ghost`
2021-09-12 10:32:55 +00:00
Michael Howell
e1873ba007
cleanup(rustc_trait_selection): remove vestigial code from rustc_on_unimplemented
...
This isn't allowed by the validator, and seems to be unused.
When it was added in ed10a3faae1fd1176b2edf4a61438e0542c103b9,
it was used on `Sized`, and that usage is gone.
2021-09-11 16:42:42 -07:00
Jubilee
c2e1097f44
Rollup merge of #88849 - matthiaskrgr:clony_on_copy, r=petrochenkov
...
don't clone types that are Copy (clippy::clone_on_copy)
2021-09-11 08:23:45 -07:00
bors
641e02f388
Auto merge of #88327 - bonega:scalar_refactor, r=eddyb
...
`WrappingRange` (#88242 ) follow-up (`is_full_for`, `Scalar: Copy`, etc.)
Some changes related to feedback during #88242
r? `@RalfJung`
2021-09-11 10:18:05 +00:00
Deadbeef
a0b83f542f
Fix duplicate bounds for const_trait_impl
2021-09-11 09:40:19 +00:00
Matthias Krüger
c1e96085d3
don't clone types that are Copy (clippy::clone_on_copy)
2021-09-11 10:18:56 +02:00
Manish Goregaokar
257f5adf0e
Rollup merge of #88578 - notriddle:notriddle/suggest-add-reference-to-for-loop-iter, r=nagisa
...
fix(rustc): suggest `items` be borrowed in `for i in items[x..]`
Fixes #87994
2021-09-10 08:23:18 -07:00
jackh726
c49b0762c0
Use FxHashSet instead of Vec for well formed tys
2021-09-09 11:25:44 -04:00
Ellen
8295e4a6cf
add test for builtin types N + N unifying with fn call
2021-09-09 15:44:04 +01:00
Andreas Liljeqvist
5b2f757dae
Make abi::Abi
Copy
and remove a *lot* of refs
...
fix
fix
Remove more refs and clones
fix
more
fix
2021-09-09 10:41:19 +02:00
Deadbeef
1ca83c6451
Use trait select logic instead of query
2021-09-09 05:21:32 +00:00
Deadbeef
f0a52128ee
fmt
2021-09-09 05:21:31 +00:00
Deadbeef
a13b13ff46
Const drop selection candidates
2021-09-09 05:21:31 +00:00
Ellen
cd2915eddb
fmt
2021-09-09 01:32:03 +01:00
Ellen
3212734bd7
resolve from_hir_call
FIXME
2021-09-09 01:32:03 +01:00
Ellen
8c7954dc42
add a CastKind
to Node::Cast
2021-09-09 01:32:03 +01:00
Ellen
955e2b2da0
nits
2021-09-09 01:32:03 +01:00
Ellen
79be080255
remove comment
2021-09-09 01:32:03 +01:00
Ellen
406d2ab95d
rename mir -> thir around abstract consts
2021-09-09 01:32:03 +01:00
Ellen
15101c8e95
remove debug stmts
2021-09-09 01:32:03 +01:00
Ellen
1f57f8b903
remove WorkNode
2021-09-09 01:32:03 +01:00
Ellen
4cbcb0936a
handle ExprKind::NeverToAny
2021-09-09 01:32:03 +01:00
Ellen
fc63e9a8fb
dont build abstract const for monomorphic consts
2021-09-09 01:32:03 +01:00
Ellen
c170dcf04c
tidy
2021-09-09 01:32:03 +01:00
Ellen
4483c2bdf6
dont support blocks
2021-09-09 01:32:03 +01:00
Ellen
9b2913814b
as casts and block exprs
2021-09-09 01:32:03 +01:00
Ellen
2987f4ba42
WIP state
2021-09-09 01:32:03 +01:00
Mark Rousskov
2eac09d258
Use index newtyping for TyVid
2021-09-06 22:38:06 -04:00
Gary Guo
97214eecc5
Add query own_existential_vtable_entries
2021-09-05 18:13:32 +01:00
Gary Guo
871eb6233e
Stop allocating vtable entries for non-object-safe methods
2021-09-05 18:13:32 +01:00
bors
c5799b2a73
Auto merge of #88618 - m-ou-se:rollup-6tss5z6, r=m-ou-se
...
Rollup of 7 pull requests
Successful merges:
- #88202 (Add an example for deriving PartialOrd on enums)
- #88483 (Fix LLVM libunwind build for non-musl targets)
- #88507 (Add test case for using `slice::fill` with MaybeUninit)
- #88557 (small const generics cleanup)
- #88579 (remove redundant / misplaced sentence from docs)
- #88610 (Update outdated docs of array::IntoIter::new.)
- #88613 (Update primitive docs for rust 2021.)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-09-03 11:37:52 +00:00
Mara Bos
4b5da4aefe
Rollup merge of #88557 - lcnr:const-generics-cleanup, r=BoxyUwU
...
small const generics cleanup
2021-09-03 13:30:48 +02:00
bors
e4e4179539
Auto merge of #86454 - tlyu:refactor-unsized-suggestions, r=davidtwco
...
Refactor unsized suggestions
`@rustbot` label +A-diagnostics +A-traits +A-typesystem +C-cleanup +T-compiler
2021-09-03 08:51:21 +00:00
Aaron Hill
611191f54c
Report cycle error using 'deepest' obligation in the cycle
2021-09-02 11:49:32 -05:00
Aaron Hill
f2d9ee9c34
Preserve most sub-obligations in the projection cache
2021-09-02 11:10:40 -05:00
Michael Howell
733bdd079a
fix(rustc): suggest items
be borrowed in for i in items[x..]
...
Fixes #87994
2021-09-01 20:14:01 -07:00
lcnr
fc2a2650e2
cleanup const generics FIXME
2021-09-01 11:41:06 +02:00
Cameron Steffen
2f4e86b9ef
Enforce diverging let...else
2021-08-30 20:18:42 -05:00
Ellen
fcc2badf9b
rename const_evaluatable_checked to generic_const_exprs
...
✨
2021-08-30 11:00:21 +02:00
Deadbeef
f3d96e9391
fmt
2021-08-27 08:09:00 +00:00
Deadbeef
80e1ee5aee
Add ty::BoundConstness
2021-08-27 06:49:18 +00:00
bors
d5cd3205fd
Auto merge of #88371 - Manishearth:rollup-pkkjsme, r=Manishearth
...
Rollup of 11 pull requests
Successful merges:
- #87832 (Fix debugger stepping behavior with `match` expressions)
- #88123 (Make spans for tuple patterns in E0023 more precise)
- #88215 (Reland #83738 : "rustdoc: Don't load all extern crates unconditionally")
- #88216 (Don't stabilize creation of TryReserveError instances)
- #88270 (Handle type ascription type ops in NLL HRTB diagnostics)
- #88289 (Fixes for LLVM change 0f45c16f2caa7c035e5c3edd40af9e0d51ad6ba7)
- #88320 (type_implements_trait consider obligation failure on overflow)
- #88332 (Add argument types tait tests)
- #88340 (Add `c_size_t` and `c_ssize_t` to `std::os::raw`.)
- #88346 (Revert "Add type of a let tait test impl trait straight in let")
- #88348 (Add field types tait tests)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-08-27 01:07:17 +00:00
Manish Goregaokar
c418a48737
Rollup merge of #88320 - sexxi-goose:issue-88103, r=nikomatsakis
...
type_implements_trait consider obligation failure on overflow
Fixes : #88103
2021-08-26 12:38:11 -07:00
lcnr
7cbfa2ee33
rebase
2021-08-26 11:14:31 +02:00
lcnr
f3996f6a88
review
2021-08-26 11:14:31 +02:00