Michael Goulet
cb41509601
Uplift canonicalizer into new trait solver crate
2023-12-08 17:44:01 +00:00
lcnr
ffb4c08a81
implement and use NormalizesTo
2023-12-08 01:31:18 +01:00
Michael Goulet
334577f091
Add deeply_normalize_for_diagnostics, use it in coherence
2023-12-05 16:33:37 +00:00
lcnr
0ec2bf3e0a
new solver: improve instrument annotations
2023-11-29 19:27:04 +01:00
r0cky
91aee2de15
Clean dead codes
2023-11-26 09:25:07 +08:00
lcnr
42a9b0d7ab
EvalCtxt::commit_if_ok don't inherit nested goals
2023-11-24 15:22:10 +01:00
lcnr
442e112d17
update overflow handling for norm, add test
2023-11-09 11:32:51 +01:00
lcnr
e3850f404d
rework alias-relate to norm(lhs) == norm(rhs)
2023-11-09 11:32:50 +01:00
lcnr
1c54494888
only instantiate opaques with rigid types
2023-11-09 11:32:12 +01:00
lcnr
1f12f1cc83
try_normalize_ty
end with rigid alias on failure
2023-11-09 11:31:22 +01:00
lcnr
15ae59ba03
use global cache when computing proof trees
2023-11-02 10:41:27 +01:00
lcnr
c70ef36f2c
reorder files in solve
2023-10-10 09:55:22 +00:00
lcnr
de53877f8b
proof trees: use for intercrate_ambiguity_causes
2023-09-21 08:17:58 +02:00
lcnr
0cb800ec34
differentiate root and nested goals
2023-09-14 15:10:45 +02:00
lcnr
1b141b6d73
inspect: explicitly store added goals
2023-09-14 10:41:36 +02:00
lcnr
eac55eec9e
dedup GoalEvaluationStep
and GoalCandidate
...
also handle 2 panics when dumping proof trees for the whole test suite
- need to actually tell the proof tree builder about overflow
- need to handle a recursion_limit of 0 :<
2023-09-11 15:50:09 +02:00
lcnr
9eeaf1fd13
normalize in trait_ref_is_knowable
in new solver
2023-08-12 20:37:53 +02:00
lcnr
ae3c353067
fix make_ambiguous_response_no_constraints
...
we previously had incorrect universes in the query response.
2023-08-03 14:30:13 +02:00
Michael Goulet
3ad3bb64d9
lcnr's suggestions
...
Co-authored-by: lcnr <rust@lcnr.de>
2023-07-24 08:37:40 -07:00
Michael Goulet
f3553691a8
Comment stuff in the new solver
2023-07-23 12:30:52 -07:00
Michael Goulet
085ae9e8b4
Add support for inherent projections
2023-07-16 21:14:38 +00:00
bors
ad963232d9
Auto merge of #113471 - compiler-errors:new-solver-norm-escaping, r=lcnr
...
Allow escaping bound vars during `normalize_erasing_regions` in new solver
Add `AllowEscapingBoundVars` to `deeply_normalize`, and use it in the new solver in the `query_normalize` routine.
Ideally, we'd make all `query_normalize` calls handle pass in `AllowEscapingBoundVars` individually, because really the only `query_normalize` call that needs `AllowEscapingBoundVars::Yes` is the one in `try_normalize_generic_arg_after_erasing_regions`, but I think that's kind of overkill. I am happy to be convinced otherwise, though.
r? `@lcnr`
2023-07-14 21:14:30 +00:00
Michael Goulet
4bcca3294a
Allow escaping bound vars during normalize_erasing_regions in new solver
2023-07-14 15:03:21 +00:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Mark Rousskov
cc907f80b9
Re-format let-else per rustfmt update
2023-07-12 21:49:27 -04:00
Matthias Krüger
7996908c4f
Rollup merge of #113324 - lcnr:const-evaluatable-goal, r=BoxyUwU
...
implement `ConstEvaluatable` goals in new solver
this only supports stable const generics. `feature(generic_const_exprs)` needs to extend that function is non-trivial ways. Leaving this for someone else or some later date.
r? `@BoxyUwU`
2023-07-04 17:46:28 +02:00
Boxy
284b61417f
reviews
2023-07-04 14:56:09 +01:00
lcnr
abcaf30f9b
implement ConstEvaluatable
goals in new solver
...
we don't yet handle `generic_const_exprs`, someone else
can do that :3
2023-07-04 15:54:18 +02:00
Boxy
040aa58d0a
add flag for disabling global cache and printing proof trees on error
2023-07-03 21:00:16 +01:00
Michael Goulet
298c0d1a62
Implement selection in new trait solver
2023-07-03 15:53:27 +00:00
lcnr
42067596c2
add deep normalization via the new solver
2023-07-03 09:12:14 +02:00
Boxy
3009b2c647
initial info dump
2023-06-19 09:01:37 +01:00
Oli Scherer
f3b7dd6388
Add AliasKind::Weak
for type aliases.
...
Only use it when the type alias contains an opaque type.
Also does wf-checking on such type aliases.
2023-06-16 19:39:48 +00:00
Michael Goulet
7a2cdf20e4
Move alias-relate to its own module
2023-06-06 18:44:22 +00:00
lcnr
b6b9611190
remove unnecessary .ok()
calls
2023-05-26 11:07:20 +02:00
lcnr
e7fa993d89
do not prefer substs relate during coherence
2023-05-26 11:00:06 +02:00
Michael Goulet
a2d806d56d
Pre-populate MIR with opaques, prefer subst-relate candidate
2023-05-25 03:35:14 +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
ee8942138a
Split out make_ambiguous_response_no_constraints
2023-04-26 22:33:49 +00:00
lcnr
3fab7f7c13
review + some small stuff
2023-04-10 09:21:21 +02:00
lcnr
2b0f5721c1
prioritize param-env candidates
2023-04-10 09:16:33 +02:00
Michael Goulet
786fc90855
Tweak debug outputs to make debugging new solver easier
2023-04-05 03:18:29 +00:00
Matthias Krüger
9f28c98357
Rollup merge of #109511 - compiler-errors:eval-ctxt-infcx-private, r=lcnr
...
Make `EvalCtxt`'s `infcx` private
To better protect against people doing bad things with the inner `InferCtxt`
r? `@lcnr`
2023-03-29 21:19:48 +02:00
Michael Goulet
a61616a016
Move canonicalization code around
2023-03-29 16:19:40 +00:00
Michael Goulet
53ec4bc631
Remove some stale FIXMEs in new solver
2023-03-25 01:51:19 +00:00
Michael Goulet
7f89c7c32d
Make EvalCtxt's infcx private
2023-03-24 16:00:27 +00:00
bors
99c49d95cd
Auto merge of #109517 - matthiaskrgr:rollup-m3orqzd, r=matthiaskrgr
...
Rollup of 7 pull requests
Successful merges:
- #108541 (Suppress `opaque_hidden_inferred_bound` for nested RPITs)
- #109137 (resolve: Querify most cstore access methods (subset 2))
- #109380 (add `known-bug` test for unsoundness issue)
- #109462 (Make alias-eq have a relation direction (and rename it to alias-relate))
- #109475 (Simpler checked shifts in MIR building)
- #109504 (Stabilize `arc_into_inner` and `rc_into_inner`.)
- #109506 (make param bound vars visibly bound vars with -Zverbose)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2023-03-23 12:35:05 +00:00
Michael Goulet
244cdaa457
Remove AliasRelationDirection::Supertype
2023-03-23 05:57:09 +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