on master help sign in
Fix problem with gathering sub-branches
dbf97e2Evan Czaplicki
src/Optimize/Patterns/DecisionTree.hs+13−5
@@ -315,14 +315,22 @@ toRelevantBranch test path branch@(Branch goal pathPatterns) =
315 case extract path pathPatterns of
315 case extract path pathPatterns of
316 Just (start, A.A _ pattern, end) ->
316 Just (start, A.A _ pattern, end) ->
317 case pattern of
317 case pattern of
318− P.Data name patterns | test == Constructor name ->
318+ P.Data name patterns ->
319+ if test == Constructor name then
319− Just (Branch goal (start ++ subPositions path patterns ++ end))
320+ Just (Branch goal (start ++ subPositions path patterns ++ end))
320
321
322+ else
323+ Nothing
324+
325+ P.Literal lit ->
321− P.Literal lit | test == Literal lit ->
326+ if test == Literal lit then
322− Just (Branch goal (start ++ end))
327+ Just (Branch goal (start ++ end))
328+
329+ else
330+ Nothing
323
331
324 _ ->
332 _ ->
325− Nothing
333+ Just branch
326
334
327 _ ->
335 _ ->
328 Just branch
336 Just branch