diff options
Diffstat (limited to 'src/Hakyll/Core')
| -rw-r--r-- | src/Hakyll/Core/Compiler/Internal.hs | 3 | ||||
| -rw-r--r-- | src/Hakyll/Core/Dependencies.hs | 6 | ||||
| -rw-r--r-- | src/Hakyll/Core/Metadata.hs | 3 |
3 files changed, 7 insertions, 5 deletions
diff --git a/src/Hakyll/Core/Compiler/Internal.hs b/src/Hakyll/Core/Compiler/Internal.hs index 259cd35..8424d69 100644 --- a/src/Hakyll/Core/Compiler/Internal.hs +++ b/src/Hakyll/Core/Compiler/Internal.hs @@ -248,5 +248,6 @@ compilerGetMatches :: Pattern -> Compiler [Identifier] compilerGetMatches pattern = do universe <- compilerUniverse <$> compilerAsk let matching = filterMatches pattern $ S.toList universe - compilerTellDependencies [PatternDependency pattern matching] + set' = S.fromList matching + compilerTellDependencies [PatternDependency pattern set'] return matching diff --git a/src/Hakyll/Core/Dependencies.hs b/src/Hakyll/Core/Dependencies.hs index 7597e61..ebb6fd0 100644 --- a/src/Hakyll/Core/Dependencies.hs +++ b/src/Hakyll/Core/Dependencies.hs @@ -32,7 +32,7 @@ import Hakyll.Core.Identifier.Pattern -------------------------------------------------------------------------------- data Dependency - = PatternDependency Pattern [Identifier] + = PatternDependency Pattern (Set Identifier) | IdentifierDependency Identifier deriving (Show, Typeable) @@ -91,7 +91,7 @@ dependenciesFor id' = do return $ concatMap dependenciesFor' $ fromMaybe [] $ M.lookup id' facts where dependenciesFor' (IdentifierDependency i) = [i] - dependenciesFor' (PatternDependency _ is) = is + dependenciesFor' (PatternDependency _ is) = S.toList is -------------------------------------------------------------------------------- @@ -116,7 +116,7 @@ checkChangedPatterns = do go _ ds (IdentifierDependency i) = return $ IdentifierDependency i : ds go id' ds (PatternDependency p ls) = do universe <- ask - let ls' = filterMatches p universe + let ls' = S.fromList $ filterMatches p universe if ls == ls' then return $ PatternDependency p ls : ds else do diff --git a/src/Hakyll/Core/Metadata.hs b/src/Hakyll/Core/Metadata.hs index 7902b94..3ce854f 100644 --- a/src/Hakyll/Core/Metadata.hs +++ b/src/Hakyll/Core/Metadata.hs @@ -12,6 +12,7 @@ module Hakyll.Core.Metadata import Control.Monad (forM) import Data.Map (Map) import qualified Data.Map as M +import qualified Data.Set as S -------------------------------------------------------------------------------- @@ -60,4 +61,4 @@ getMetadataField' identifier key = do makePatternDependency :: MonadMetadata m => Pattern -> m Dependency makePatternDependency pattern = do matches' <- getMatches pattern - return $ PatternDependency pattern matches' + return $ PatternDependency pattern (S.fromList matches') |
