rust/compiler
Michael Goulet a04dfc32e6
Rollup merge of #114694 - lcnr:provisional-cache, r=compiler-errors
make the provisional cache slightly less broken

It is still broken for the following cycles:
```mermaid
graph LR
   R["R: coinductive"] --> A["A: inductive"]
   R --> B["B: coinductive"]
   A --> B
   B --> R
```
the `R -> A -> B -> R` cycle should be considered to not hold, as it is mixed, but because we first put `B` into the cache from the `R -> B -> R` cycle which is coinductive, it does hold.

This issue will also affect our new coinduction approach. Longterm cycles are coinductive as long as one step goes through an impl where-clause, see f4fc5bae36/crates/formality-prove/src/prove/prove_wc.rs (L51-L62). Here we would first have a fully inductive cycle `R -> B -> R` which is then entered by a cycle with a coinductive step `R -> A -coinductive-> B -> R`.

I don't know how to soundly implement a provisional cache for goals not on the stack without tracking all cycles the goal was involved in and whether they were inductive or not. We could then only use goals from the cache if the *inductivity?* of every cycle remained the same. This is a mess to implement. I therefore want to rip out the provisional cache entirely, but will wait with this until I talked about it with `@nikomatsakis.`

r? `@compiler-errors`
2023-08-10 21:17:09 -07:00
..
rustc
rustc_abi
rustc_arena
rustc_ast Auto merge of #114545 - fee1-dead-contrib:lower-impl-effect, r=oli-obk 2023-08-08 19:23:41 +00:00
rustc_ast_lowering Rollup merge of #114622 - petrochenkov:noplugin, r=oli-obk 2023-08-10 21:17:07 -07:00
rustc_ast_passes Unlock trailing where-clauses for lazy type aliases 2023-08-10 16:13:08 +02:00
rustc_ast_pretty
rustc_attr
rustc_baked_icu_data
rustc_borrowck Rollup merge of #114566 - fmease:type-alias-laziness-is-crate-specific, r=oli-obk 2023-08-08 03:30:56 +02:00
rustc_builtin_macros Generate better function argument names in global_allocator expansion 2023-08-06 07:36:05 -07:00
rustc_codegen_cranelift Rollup merge of #114622 - petrochenkov:noplugin, r=oli-obk 2023-08-10 21:17:07 -07:00
rustc_codegen_gcc Rollup merge of #114382 - scottmcm:compare-bytes-intrinsic, r=cjgillot 2023-08-07 05:29:12 +02:00
rustc_codegen_llvm Rollup merge of #114622 - petrochenkov:noplugin, r=oli-obk 2023-08-10 21:17:07 -07:00
rustc_codegen_ssa rustc: Move stable_crate_id from Session to GlobalCtxt 2023-08-09 14:35:23 +08:00
rustc_const_eval Auto merge of #114637 - matthiaskrgr:rollup-544y8p5, r=matthiaskrgr 2023-08-08 22:00:40 +00:00
rustc_data_structures Auto merge of #114339 - ttsugriy:unsafe-utf8, r=davidtwco 2023-08-08 10:25:37 +00:00
rustc_driver
rustc_driver_impl rustc: Move crate_types from Session to GlobalCtxt 2023-08-09 14:17:54 +08:00
rustc_error_codes
rustc_error_messages
rustc_errors
rustc_expand
rustc_feature feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
rustc_fluent_macro
rustc_fs_util
rustc_graphviz
rustc_hir Bugfix: 'can_have_side_effects()' would return 'false' for struct/enum/array/tuple literals unless *all* sub-expressions had side effects. This would easily allow side effects to slip through, and also wrongly label empty literals as having side effects. Add some tests for the last point 2023-08-10 02:26:11 +02:00
rustc_hir_analysis Auto merge of #114545 - fee1-dead-contrib:lower-impl-effect, r=oli-obk 2023-08-08 19:23:41 +00:00
rustc_hir_pretty Auto merge of #114545 - fee1-dead-contrib:lower-impl-effect, r=oli-obk 2023-08-08 19:23:41 +00:00
rustc_hir_typeck Auto merge of #114474 - estebank:missing-semi, r=compiler-errors 2023-08-10 20:30:18 +00:00
rustc_incremental
rustc_index
rustc_infer Rollup merge of #114566 - fmease:type-alias-laziness-is-crate-specific, r=oli-obk 2023-08-08 03:30:56 +02:00
rustc_interface rustc: Move stable_crate_id from Session to GlobalCtxt 2023-08-09 14:35:23 +08:00
rustc_lexer
rustc_lint
rustc_lint_defs
rustc_llvm Auto merge of #114005 - Zalathar:no-cstr, r=jackh726 2023-08-10 23:06:10 +00:00
rustc_log
rustc_macros
rustc_metadata rustc: Move crate_types from Session to GlobalCtxt 2023-08-09 14:17:54 +08:00
rustc_middle Rollup merge of #114622 - petrochenkov:noplugin, r=oli-obk 2023-08-10 21:17:07 -07:00
rustc_mir_build Rollup merge of #114566 - fmease:type-alias-laziness-is-crate-specific, r=oli-obk 2023-08-08 03:30:56 +02:00
rustc_mir_dataflow Rollup merge of #114505 - ouz-a:cleanup_mir, r=RalfJung 2023-08-06 17:26:29 +02:00
rustc_mir_transform Rollup merge of #111891 - rustbox:feat/riscv-isr-cconv, r=jackh726 2023-08-09 22:59:58 +02:00
rustc_monomorphize Store the laziness of type aliases in the DefKind 2023-08-07 15:54:31 +02:00
rustc_parse
rustc_parse_format
rustc_passes rustc: Move crate_types from Session to GlobalCtxt 2023-08-09 14:17:54 +08:00
rustc_plugin_impl
rustc_privacy Store the laziness of type aliases in the DefKind 2023-08-07 15:54:31 +02:00
rustc_query_impl
rustc_query_system Rollup merge of #114566 - fmease:type-alias-laziness-is-crate-specific, r=oli-obk 2023-08-08 03:30:56 +02:00
rustc_resolve Rollup merge of #114622 - petrochenkov:noplugin, r=oli-obk 2023-08-10 21:17:07 -07:00
rustc_serialize
rustc_session rustc: Move stable_crate_id from Session to GlobalCtxt 2023-08-09 14:35:23 +08:00
rustc_smir Add impl trait declarations to SMIR 2023-08-10 14:17:50 -03:00
rustc_span feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
rustc_symbol_mangling rustc: Move stable_crate_id from Session to GlobalCtxt 2023-08-09 14:35:23 +08:00
rustc_target Auto merge of #114614 - RalfJung:offset-of-sanity, r=cjgillot 2023-08-10 07:54:05 +00:00
rustc_trait_selection make the provisional cache slightly less broken 2023-08-10 12:35:34 +02:00
rustc_traits
rustc_transmute
rustc_ty_utils Rollup merge of #114670 - compiler-errors:issue-114660, r=cjgillot 2023-08-09 23:00:00 +02:00
rustc_type_ir