Skip PMC for boring patterns
Some patterns introduce no new information to the pattern-match checker (such as plain variable or wildcard patterns). We can thus skip doing any pattern-match checking on them when the sole purpose for doing so was introducing new long-distance information. See Note [Boring patterns] in GHC.Hs.Pat. Doing this avoids regressing in performance now that we do additional pattern-match checking inside do notation.
Showing
- compiler/GHC/Hs/Pat.hs 102 additions, 1 deletioncompiler/GHC/Hs/Pat.hs
- compiler/GHC/HsToCore/Match.hs 3 additions, 4 deletionscompiler/GHC/HsToCore/Match.hs
- compiler/GHC/HsToCore/Pmc.hs 1 addition, 1 deletioncompiler/GHC/HsToCore/Pmc.hs
- compiler/GHC/HsToCore/Pmc/Utils.hs 20 additions, 5 deletionscompiler/GHC/HsToCore/Pmc/Utils.hs
- testsuite/tests/pmcheck/should_compile/LongDistanceDo.hs 19 additions, 0 deletionstestsuite/tests/pmcheck/should_compile/LongDistanceDo.hs
- testsuite/tests/pmcheck/should_compile/LongDistanceGRHS.hs 22 additions, 0 deletionstestsuite/tests/pmcheck/should_compile/LongDistanceGRHS.hs
- testsuite/tests/pmcheck/should_compile/all.T 2 additions, 0 deletionstestsuite/tests/pmcheck/should_compile/all.T
Loading
Please register or sign in to comment