@@ -15,6 +15,7 @@ import Control.Arrow (second)
15import Data.Function (on)
15import Data.Function (on)
16import qualified Data.List as List
16import qualified Data.List as List
17import qualified Data.Map as Map
17import qualified Data.Map as Map
18+import qualified Data.Set as Set
18import Data.Map ((!))
19import Data.Map ((!))
19import qualified Data.Maybe as Maybe
20import qualified Data.Maybe as Maybe
@@ -271,7 +272,19 @@ getSubstitution (path, A.A _ pattern) =
272testsAtPath :: Path -> [Branch] -> [Test]
273testsAtPath :: Path -> [Branch] -> [Test]
273testsAtPath selectedPath branches =
274testsAtPath selectedPath branches =
274− List.nub $ Maybe.mapMaybe (testAtPath selectedPath) branches
277+ Maybe.mapMaybe (testAtPath selectedPath) branches
279+ skipVisited test curr@(uniqueTests, visitedTests) =
280+ if Set.member test visitedTests then
283+ ( test : uniqueTests
284+ , Set.insert test visitedTests
287+ fst (foldr skipVisited ([], Set.empty) allTests)
277testAtPath :: Path -> Branch -> Maybe Test
290testAtPath :: Path -> Branch -> Maybe Test