mirror of
https://github.com/github/semantic.git
synced 2024-12-22 22:31:36 +03:00
Diff switch statements’ cases byIndex.
This commit is contained in:
parent
6f39c764fd
commit
15460768bd
@ -15,7 +15,7 @@ import Info
|
|||||||
import Patch
|
import Patch
|
||||||
import Prologue hiding (lookup)
|
import Prologue hiding (lookup)
|
||||||
import SES
|
import SES
|
||||||
import Syntax
|
import Syntax as S
|
||||||
import Term
|
import Term
|
||||||
|
|
||||||
-- | Returns whether two terms are comparable
|
-- | Returns whether two terms are comparable
|
||||||
@ -41,6 +41,9 @@ diffComparableTerms construct comparable cost = recur
|
|||||||
algorithmWithTerms :: (TermF leaf (Both a) diff -> diff) -> Term leaf a -> Term leaf a -> Algorithm (Term leaf a) diff diff
|
algorithmWithTerms :: (TermF leaf (Both a) diff -> diff) -> Term leaf a -> Term leaf a -> Algorithm (Term leaf a) diff diff
|
||||||
algorithmWithTerms construct t1 t2 = case (unwrap t1, unwrap t2) of
|
algorithmWithTerms construct t1 t2 = case (unwrap t1, unwrap t2) of
|
||||||
(Indexed a, Indexed b) -> byIndex Indexed a b
|
(Indexed a, Indexed b) -> byIndex Indexed a b
|
||||||
|
(S.Switch exprA casesA, S.Switch exprB casesB) -> do
|
||||||
|
expr <- recursively exprA exprB
|
||||||
|
byIndex (S.Switch expr) casesA casesB
|
||||||
(Commented commentsA a, Commented commentsB b) -> do
|
(Commented commentsA a, Commented commentsB b) -> do
|
||||||
wrapped <- sequenceA (recursively <$> a <*> b)
|
wrapped <- sequenceA (recursively <$> a <*> b)
|
||||||
byIndex (`Commented` wrapped) commentsA commentsB
|
byIndex (`Commented` wrapped) commentsA commentsB
|
||||||
|
Loading…
Reference in New Issue
Block a user