Matthias Krüger
74b79aee60
Rollup merge of #140711 - compiler-errors:combine-maybes, r=lcnr
...
Do not discard constraints on overflow if there was candidate ambiguity
Fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/201 .
There's a pretty chunky justification in the test.
r? lcnr
2025-05-08 08:14:18 +02:00
lcnr
fc0ef54fd9
opaque_type_storage to InferCtxtLike
2025-05-07 17:58:20 +00:00
Michael Goulet
a910329c67
Use MaybeCause::or to allow constraints from overflows if they are combined with ambiguity
2025-05-07 17:12:15 +00:00
lcnr
431f02d531
support duplicates in the opaque_types_storage
2025-05-06 14:59:09 +00:00
Romain Perier
6970813e78
Use less rustc_type_ir in the compiler codebase
...
This commit does the following:
- Replaces use of rustc_type_ir by rustc_middle in rustc_infer.
- The DelayedMap type is exposed by rustc_middle so everything can be
accessed through rustc_middle in a coherent manner.
- API-layer traits, like InferCtxtLike, Interner or inherent::* must be
accessed via rustc_type_ir, not rustc_middle::ty. For this reason
these are not reexported by rustc_middle::ty.
- Replaces use of ty::Interner by rustc_type_ir::Interner in
rustc_trait_selection
2025-05-02 09:37:06 +02:00
Matthias Krüger
6423d75076
Rollup merge of #140468 - BoxyUwU:normalization_confusings2, r=lcnr
...
Minor tweaks to make some normalization (adjacent) code less confusing
r? lcnr
sorry for double ping lol
2025-04-30 22:36:41 +02:00
Romain Perier
ea7af1803f
Use less rustc_type_ir in the compiler codebase
...
This commit does the following:
- Replaces use of rustc_type_ir by rustc_middle
- Removes the rustc_type_ir dependency
- The DelayedSet type is exposed by rustc_middle so everything can be
accessed through rustc_middle in a coherent manner.
2025-04-30 16:42:33 +02:00
Boxy
c31794d6d3
confusings
2025-04-29 18:55:21 +01:00
Matthias Krüger
3c322bc1cc
Rollup merge of #140320 - lcnr:wf-use-term, r=compiler-errors
...
replace `GenericArg` with `Term` where applicable
r? types
2025-04-26 16:12:33 +02:00
lcnr
855035b038
convert some GenericArg to Term
2025-04-26 02:05:31 +00:00
Michael Goulet
31c8d10342
Track per-obligation recursion depth only if there is inference
2025-04-25 18:14:39 +00:00
bors
fa58ce343a
Auto merge of #138845 - compiler-errors:stall-generators, r=lcnr
...
Properly stall coroutine witnesses in new solver
TODO: write description
r? lcnr
2025-04-23 21:35:15 +00:00
Michael Goulet
f943f73db4
More
2025-04-23 15:09:25 +00:00
Michael Goulet
169955f3be
Properly drain pending obligations for coroutines
2025-04-22 16:50:38 +00:00
Michael Goulet
67df5b9cfa
Collect and resolve ambiguous obligations from normalizing in writeback
2025-04-22 16:50:38 +00:00
Oli Scherer
5d2952100f
Use is_lang_item and as_lang_item instead of handrolling their logic
2025-04-22 11:02:37 +00:00
Michael Goulet
3863018d96
Fix replacing supertrait aliases in ReplaceProjectionWith
2025-04-16 20:05:55 +00:00
Michael Goulet
decd7ecd1e
Deeply normalize obligations in BestObligation
2025-04-10 18:58:04 +00:00
Michael Goulet
62d5fb85ac
Simplify
2025-04-10 17:52:46 +00:00
Michael Goulet
f6faaee372
Report higher-ranked trait error when higher-ranked projection goal fails in new solver
2025-04-09 17:53:32 +00:00
lcnr
509a144eed
add TypingMode::Borrowck
2025-04-03 11:13:10 +02:00
lcnr
cb275d4f26
simplify Interner opaque types API
2025-04-01 23:24:28 +02:00
Michael Goulet
575f129faa
Obligation::as_goal
2025-03-23 18:18:47 +00:00
Michael Goulet
e5a2220327
Fold visit into ty
2025-03-15 06:34:36 +00:00
Michael Goulet
dc0cdfd753
Squash fold into ty
2025-03-15 06:34:36 +00:00
lcnr
01795b14f0
change definitely non-productive cycles to error
2025-03-05 10:06:43 +01:00
Matthias Krüger
b6c1b635f7
Rollup merge of #137776 - nnethercote:rustc_transmute-cleanups, r=jswrenn
...
Some `rustc_transmute` cleanups
A number of small things that can be removed.
r? ``@jswrenn``
2025-03-01 11:34:01 +01:00
lcnr
7eb677e7eb
normalizing where-clauses is also coinductive, add tests
2025-02-28 12:16:47 +01:00
Nicholas Nethercote
785e21d382
Remove allow(unused_variables) for rustc_transmute.
...
This was hiding some genuine sins, including unused arguments in
numerous functions/methods (incl. trait methods), and some unnecessary
computation.
2025-02-28 17:31:31 +11:00
Nicholas Nethercote
5f58985f5d
Remove rustc_transmute's dependence on rustc_infer.
...
`TransmuteTypeEnv` only needs a `TyCtxt`, not an `InferCtxt`.
2025-02-28 16:34:41 +11:00
Michael Goulet
12e3911d81
Greatly simplify lifetime captures in edition 2024
2025-02-22 22:24:52 +00:00
Michael Goulet
3d5438accd
Fix binding mode problems
2025-02-22 00:13:19 +00:00
Michael Goulet
b78c626a95
Make fewer crates depend on rustc_ast_ir
2025-02-19 07:06:54 +00:00
lcnr
059288ed44
adjust derive_error
2025-02-13 23:49:09 +01:00
lcnr
de273e459e
normalizes-to rework rigid alias handling
2025-02-13 20:19:11 +00:00
bjorn3
1fcae03369
Rustfmt
2025-02-08 22:12:13 +00:00
Michael Goulet
4e763c2297
Pass spans around new solver
2025-02-05 18:32:06 +00:00
Michael Goulet
fd1110ce6a
Remove span from delegate
2025-02-05 18:18:11 +00:00
Michael Goulet
304b3cfcb2
Manually walk into WF obligations in BestObligation proof tree visitor
2025-01-31 18:21:58 +00:00
Michael Goulet
d8b176f683
Move fulfillment error derivation into new module
2025-01-31 18:16:02 +00:00
Lukas Markeffsky
10fc0b159e
introduce ty::Value
...
Co-authored-by: FedericoBruzzone <federico.bruzzone.i@gmail.com>
2025-01-30 17:47:44 +01:00
Boxy
3ef506fb4d
Don't pick T: FnPtr nested goals
2025-01-22 06:55:38 +00:00
Guillaume Gomez
b1035d7f49
Rollup merge of #135498 - compiler-errors:dyn-upcasting-completeness, r=lcnr
...
Prefer lower `TraitUpcasting` candidates in selection
Fixes #135463 . The underlying cause is this ambiguity, but it's more clear (and manifests as a coercion error, rather than a MIR validation error) when it's written the way I did in the UI test.
Sorry this is cursed r? lcnr
2025-01-15 16:30:17 +01:00
Michael Goulet
516a93353d
Make sure we can produce ConstArgHasWrongType errors for valtree consts
2025-01-14 18:46:04 +00:00
Michael Goulet
bf545ce2fe
Prefer lower TraitUpcasting candidates
2025-01-14 17:59:54 +00:00
Jacob Pratt
b642740e4f
Rollup merge of #132345 - compiler-errors:fx-diag, r=lcnr
...
Improve diagnostics for `HostEffectPredicate` in the new solver
Adds derived cause for host effect predicates. Some diagnostics regress, but that's connected to the fact that our predicate visitor doesn't play well with aliases just yet.
2025-01-06 22:04:13 -05:00
Matthias Krüger
44c6e83b49
Rollup merge of #134771 - compiler-errors:const-arg-has-type-err, r=lcnr
...
Report correct `SelectionError` for `ConstArgHasType` in new solver fulfill
r? ``@BoxyUwU``
2025-01-06 20:59:32 +01:00
Michael Goulet
ebdf19a8bb
Recurse on GAT where clauses in fulfillment error proof tree visitor
2025-01-06 17:58:42 +00:00
Michael Goulet
2be9ffc1af
Add derived causes for host effect predicates
2025-01-06 17:49:46 +00:00
Michael Goulet
7143ef6550
Also in the new solver
2025-01-03 05:22:14 +00:00