Make SpecConstr deal with casts better
This patch does two things, to fix #23209: * It improves SpecConstr so that it no longer quantifies over coercion variables. See Note [SpecConstr and casts] * It improves the rule matcher to deal nicely with the case where the rule does not quantify over coercion variables, but the the template has a cast in it. See Note [Casts in the template]
Showing
- compiler/GHC/Core/Opt/SpecConstr.hs 70 additions, 97 deletionscompiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Rules.hs 92 additions, 31 deletionscompiler/GHC/Core/Rules.hs
- compiler/GHC/Core/SimpleOpt.hs 35 additions, 26 deletionscompiler/GHC/Core/SimpleOpt.hs
- testsuite/tests/simplCore/should_compile/T23209.hs 12 additions, 0 deletionstestsuite/tests/simplCore/should_compile/T23209.hs
- testsuite/tests/simplCore/should_compile/T23209_Aux.hs 19 additions, 0 deletionstestsuite/tests/simplCore/should_compile/T23209_Aux.hs
- testsuite/tests/simplCore/should_compile/all.T 3 additions, 1 deletiontestsuite/tests/simplCore/should_compile/all.T
Loading
Please register or sign in to comment