Michael Goulet
34e91ece90
Higher ranked goal source, do overflow handling less badly
2024-05-02 21:56:14 -04:00
Michael Goulet
3e03b1b190
Use a proof tree visitor to refine the Obligation for error reporting
2024-05-02 21:56:14 -04:00
Matthias Krüger
7a48987006
avoid collecting into vecs in some places
2024-03-02 14:18:47 +01:00
lcnr
3605a09ca2
stash overflowing obligations in fulfill
2024-02-29 10:14:02 +01:00
lcnr
dd4be4cb2f
extract fulfillment err creation
2024-02-29 10:14:02 +01:00
lcnr
5ec9b8d778
distinguish recursion limit based overflow for diagnostics
...
also change the number of allowed fixpoint steps to be fixed instead
of using the `log` of the total recursion depth.
2024-02-29 10:14:02 +01:00
lcnr
1b3164f5c9
always emit AliasRelate
goals when relating aliases
...
Add `StructurallyRelateAliases` to allow instantiating infer vars with rigid aliases.
Change `instantiate_query_response` to be infallible in the new solver. This requires canonicalization to not hide any information used by the query, so weaken
universe compression. It also modifies `term_is_fully_unconstrained` to allow
region inference variables in a higher universe.
2024-02-26 10:17:43 +01:00
Michael Goulet
994d55158d
Simply do not ICE
2024-02-20 02:16:36 +00:00
Boxy
b181a12623
rename instantiate_binder_with_placeholders
2024-02-08 13:01:08 +00:00
Gavin Gray
130b7e713e
Add trait obligation tracking to FulfillCtxt and expose FnCtxt in rustc_infer using callback.
...
Pass each obligation to an fn callback with its respective inference context. This avoids needing to keep around copies of obligations or inference contexts.
Specify usability of inspect_typeck in comment.
2024-01-19 15:38:27 +01:00
Matthias Krüger
1e46be6a53
Rollup merge of #119897 - compiler-errors:fulfillment-errors, r=lcnr
...
`OutputTypeParameterMismatch` -> `SignatureMismatch`
I'm probably missing something that made this rename more complicated. What did you end up getting stuck on when renaming this selection error, `@lcnr?`
**also** I renamed the `FulfillmentErrorCode` variants. This is just churn but I wanted to do it forever. I can move it out of this PR if desired.
r? lcnr
2024-01-15 08:44:48 +01:00
Michael Goulet
7724ba7bd5
assert that trait solver is only created in proper infcx
2024-01-13 22:00:35 +00:00
Michael Goulet
f37a919e96
Remove redundant Code from FulfillmentErrorCode variants
2024-01-12 16:34:39 +00:00
lcnr
3978f545ba
add unused NormalizesTo
predicate
2023-12-07 17:52:51 +01:00
Michael Goulet
93298ee0dd
Remove ClosureKind predicate kind
2023-11-21 18:35:45 +00:00
lcnr
4965caf9be
avoid building proof trees in select
2023-07-10 15:17:01 +02:00
lcnr
be6a344365
rebase
2023-07-03 09:24:02 +02:00
lcnr
4d42de6d1b
add instrument to register_predicate_obligation
2023-07-03 09:12:14 +02:00
bors
7383ab7378
Auto merge of #113154 - lcnr:better-probe-check, r=compiler-errors
...
change snapshot tracking in fulfillment contexts
use the exact snapshot number to prevent misuse even when created inside of a snapshot
2023-07-01 01:53:10 +00:00
lcnr
d04775d739
change snapshot tracking in fulfillment contexts
2023-06-29 10:02:26 +02:00
Michael Goulet
374173cd99
TypeWellFormedInEnv
2023-06-26 23:12:04 +00:00
Michael Goulet
fca56a8d2c
s/Clause/ClauseKind
2023-06-19 14:57:42 +00:00
Boxy
bb743f8635
allow caller to force proof tree generation
2023-06-19 09:08:03 +01:00
Michael Goulet
6594c75449
Move ConstEvaluatable to Clause
2023-06-17 21:27:13 +00:00
Michael Goulet
52d3fc93f2
Move WF goal to clause
2023-06-17 21:20:20 +00:00
Michael Goulet
8912015f71
No const equate in new solver
2023-06-02 22:07:57 +00:00
Michael Goulet
4d80b8090c
Pull out logic from #111131 , plus some new logic in EvalCtxt::normalize_opaque_type
...
Co-authored-by: lcnr <rust@lcnr.de>
2023-05-25 03:19:15 +00:00
Michael Goulet
05a6daab84
Report overflows gracefully with new solver
2023-04-10 16:36:30 +00:00
Michael Goulet
2bab422393
Return nested obligations from canonical response var unification
2023-03-23 19:00:04 +00:00
Michael Goulet
3a36a093dd
Rename AliasEq -> AliasRelate
2023-03-23 05:56:40 +00:00
Michael Goulet
5dc3fd7c05
Include relation direction in AliasEq predicate
2023-03-23 05:56:27 +00:00
Camille GILLOT
fba5d3dd03
drop_tracking_mir: support new solver.
2023-03-05 08:29:35 +00:00
Boxy
23ab2464be
add AliasEq
to PredicateKind
2023-02-10 13:44:46 +00:00
Michael Goulet
03a8a4ff3e
Replacing bound vars is actually instantiating a binder
2023-02-07 23:13:54 +00:00
Camille GILLOT
60e04d1e8c
Compute generator saved locals on MIR.
2023-01-27 20:10:06 +00:00
Camille GILLOT
cb873b2d93
Separate trait selection from ambiguity reporting.
2023-01-27 18:57:10 +00:00
Michael Goulet
8434b43a7f
Report the right fulfillment errors
2023-01-26 03:14:26 +00:00
lcnr
033047a72c
new_outside_solver
-> evaluate_root_goal
2023-01-23 15:58:28 +01:00
Santiago Pastorino
7fe472223e
Store relationships on Inherent
2023-01-22 11:02:28 -03:00
Michael Goulet
f53f5b4463
swap Ambiguity and Unimplemented in new trait engine
2023-01-19 16:15:28 +00:00
lcnr
660c28391c
remove assembly context and impl a bit more
2023-01-18 08:11:15 +01:00
lcnr
bf7dbff921
instantiate canonical vars eagerly
2023-01-18 08:11:13 +01:00
Michael Goulet
5a31d5ebe2
Implement dummy query responses and a jank instantiate
2023-01-12 21:01:34 +00:00
Michael Goulet
104ec48c64
Report fulfillment errors in new trait solver
2023-01-11 18:05:50 +00:00
lcnr
a213bb36c9
implement the skeleton of the updated trait solver
2022-12-19 16:46:17 +00:00