Remove infinite loop on MatchGroup without common prefix.
In that case, the exact same MatchGroup would be fed to simplifyTerms again. Now, it is returned immediately, and only the rest of the terms are simplified.
This commit is contained in:
parent
5e1c7899ac
commit
c07090e251
1 changed files with 3 additions and 2 deletions
|
@ -117,8 +117,9 @@ simplifyTerms (MatchClass True (SRange a@[_] []):as) =
|
|||
simplifyTerms (MatchGroup []:as) = simplifyTerms as
|
||||
simplifyTerms (MatchGroup gs:as) =
|
||||
case commonPrefix gs of
|
||||
(p,[]) -> simplifyTerms (MatchLiteral p : as)
|
||||
(p,ss) -> simplifyTerms (MatchLiteral p : MatchGroup ss : as)
|
||||
(p ,[]) -> simplifyTerms (MatchLiteral p : as)
|
||||
("",ss) -> MatchGroup ss : simplifyTerms as
|
||||
(p ,ss) -> simplifyTerms (MatchLiteral p : MatchGroup ss : as)
|
||||
simplifyTerms (a:as) = a:simplifyTerms as
|
||||
|
||||
commonPrefix :: [String] -> (String, [String])
|
||||
|
|
Loading…
Add table
Reference in a new issue