Skip to content

Commit 3bbdf40

Browse files
committed
Insert placeholders for missing Shake features
1 parent 97ec805 commit 3bbdf40

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,36 @@
11

2+
{-# LANGUAGE ExistentialQuantification #-}
23
module Development.IDE.Graph.Database(
34
Shake.ShakeDatabase,
4-
Shake.SomeShakeValue(..),
5+
SomeShakeValue(..),
56
shakeOpenDatabase,
67
shakeRunDatabaseForKeys,
78
Shake.shakeProfileDatabase,
89
) where
910

11+
import Data.Typeable
1012
import Development.IDE.Graph.Internal.Action
1113
import Development.IDE.Graph.Internal.Options
1214
import Development.IDE.Graph.Internal.Rules
15+
import Development.Shake (ShakeValue)
16+
import Development.Shake.Classes
1317
import qualified Development.Shake.Database as Shake
1418

1519
shakeOpenDatabase :: ShakeOptions -> Rules () -> IO (IO Shake.ShakeDatabase, IO ())
1620
shakeOpenDatabase a b = Shake.shakeOpenDatabase (fromShakeOptions a) (fromRules b)
1721

22+
data SomeShakeValue = forall k . ShakeValue k => SomeShakeValue k
23+
instance Eq SomeShakeValue where SomeShakeValue a == SomeShakeValue b = cast a == Just b
24+
instance Hashable SomeShakeValue where hashWithSalt s (SomeShakeValue x) = hashWithSalt s x
25+
instance Show SomeShakeValue where show (SomeShakeValue x) = show x
26+
1827
shakeRunDatabaseForKeys
19-
:: Maybe [Shake.SomeShakeValue] -- ^ Set of keys changed since last run
28+
:: Maybe [SomeShakeValue]
29+
-- ^ Set of keys changed since last run. 'Nothing' means everything has changed
2030
-> Shake.ShakeDatabase
2131
-> [Action a]
2232
-> IO ([a], [IO ()])
23-
shakeRunDatabaseForKeys keys a b = Shake.shakeRunDatabaseForKeys keys a (map fromAction b)
33+
shakeRunDatabaseForKeys _keys a b =
34+
-- Shake upstream does not accept the set of keys changed yet
35+
-- https://github.com/ndmitchell/shake/pull/802
36+
Shake.shakeRunDatabase a (map fromAction b)

0 commit comments

Comments
 (0)