@@ -46,6 +46,7 @@ import Data.Char ( isDigit )
4646import Data.Foldable ( foldrM )
4747import Data.Fix ( foldFix )
4848import Data.List ( partition )
49+ import qualified Data.HashSet as HS
4950import qualified Data.HashMap.Lazy as M
5051import Data.Scientific
5152import qualified Data.Set as S
@@ -471,6 +472,20 @@ getAttrNix x y =
471472
472473 attrsetGet key aset
473474
475+ unsafeDiscardOutputDependencyNix
476+ :: forall e t f m
477+ . MonadNix e t f m
478+ => NValue t f m
479+ -> m (NValue t f m )
480+ unsafeDiscardOutputDependencyNix nv =
481+ do
482+ (nc, ns) <- (getStringContext &&& ignoreContext) <$> fromValue nv
483+ toValue $ mkNixString (HS. map discard nc) ns
484+ where
485+ discard :: StringContext -> StringContext
486+ discard (StringContext AllOutputs a) = StringContext DirectPath a
487+ discard x = x
488+
474489unsafeGetAttrPosNix
475490 :: forall e t f m
476491 . MonadNix e t f m
@@ -1906,7 +1921,7 @@ builtinsList =
19061921 , add0 Normal " true" (pure $ mkNVBool True )
19071922 , add Normal " tryEval" tryEvalNix
19081923 , add Normal " typeOf" typeOfNix
1909- -- , add0 Normal "unsafeDiscardOutputDependency" unsafeDiscardOutputDependency
1924+ , add Normal " unsafeDiscardOutputDependency" unsafeDiscardOutputDependencyNix
19101925 , add Normal " unsafeDiscardStringContext" unsafeDiscardStringContextNix
19111926 , add2 Normal " unsafeGetAttrPos" unsafeGetAttrPosNix
19121927 , add Normal " valueSize" getRecursiveSizeNix
0 commit comments