@@ -46,6 +46,7 @@ import Data.Char ( isDigit )
46
46
import Data.Foldable ( foldrM )
47
47
import Data.Fix ( foldFix )
48
48
import Data.List ( partition )
49
+ import qualified Data.HashSet as HS
49
50
import qualified Data.HashMap.Lazy as M
50
51
import Data.Scientific
51
52
import qualified Data.Set as S
@@ -471,6 +472,20 @@ getAttrNix x y =
471
472
472
473
attrsetGet key aset
473
474
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
+
474
489
unsafeGetAttrPosNix
475
490
:: forall e t f m
476
491
. MonadNix e t f m
@@ -1906,7 +1921,7 @@ builtinsList =
1906
1921
, add0 Normal " true" (pure $ mkNVBool True )
1907
1922
, add Normal " tryEval" tryEvalNix
1908
1923
, add Normal " typeOf" typeOfNix
1909
- -- , add0 Normal "unsafeDiscardOutputDependency" unsafeDiscardOutputDependency
1924
+ , add Normal " unsafeDiscardOutputDependency" unsafeDiscardOutputDependencyNix
1910
1925
, add Normal " unsafeDiscardStringContext" unsafeDiscardStringContextNix
1911
1926
, add2 Normal " unsafeGetAttrPos" unsafeGetAttrPosNix
1912
1927
, add Normal " valueSize" getRecursiveSizeNix
0 commit comments