packages feed

dhall-nix 1.1.12 → 1.1.13

raw patch · 3 files changed

+43/−30 lines, 3 filesdep ~dhalldep ~hnix

Dependency ranges changed: dhall, hnix

Files

LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2017 Gabriel Gonzalez+Copyright (c) 2020 Gabriel Gonzalez All rights reserved.  Redistribution and use in source and binary forms, with or without modification,
dhall-nix.cabal view
@@ -1,5 +1,5 @@ Name: dhall-nix-Version: 1.1.12+Version: 1.1.13 Cabal-Version: >=1.8.0.2 Build-Type: Simple Tested-With: GHC == 8.0.1@@ -30,8 +30,8 @@         base                      >= 4.8.0.0 && < 5   ,         containers                              < 0.7 ,         data-fix                                < 0.3 ,-        dhall                     >= 1.28    && < 1.31,-        hnix                      >= 0.6.1   && < 0.7 ,+        dhall                     >= 1.31    && < 1.32,+        hnix                      >= 0.7     && < 0.8 ,         neat-interpolation                      < 0.5 ,         text                      >= 0.8.0.0 && < 1.3     Exposed-Modules:
src/Dhall/Nix.hs view
@@ -96,7 +96,15 @@ import Data.Traversable (for) import Data.Typeable (Typeable) import Data.Void (Void, absurd)-import Dhall.Core (Chunks(..), Const(..), DhallDouble(..), Expr(..), MultiLet(..), Var(..))+import Dhall.Core+    ( Chunks(..)+    , Const(..)+    , DhallDouble(..)+    , Expr(..)+    , MultiLet(..)+    , PreferAnnotation(..)+    , Var(..)+    ) import Nix.Atoms (NAtom(..)) import Nix.Expr     ( Antiquoted(..)@@ -104,6 +112,7 @@     , NBinaryOp(..)     , NExprF(..)     , NKeyName(..)+    , NRecordType(..)     , NString(..)     , Params(..)     , (@@)@@ -208,13 +217,15 @@ dhallToNix :: Expr s Void -> Either CompileError (Fix NExprF) dhallToNix e = loop (Dhall.Core.normalize e)   where-    loop (Const _) = return (Fix (NSet []))+    untranslatable = Fix (NSet NNonRecursive [])++    loop (Const _) = return untranslatable     loop (Var (V a 0)) = return (Fix (NSym a))     loop (Var  a     ) = Left (CannotReferenceShadowedVariable a)     loop (Lam a _ c) = do         c' <- loop c         return (Fix (NAbs (Param a) c'))-    loop (Pi _ _ _) = return (Fix (NSet []))+    loop (Pi _ _ _) = return untranslatable     -- None needs a type to convert to an Optional     loop (App None _) = do       return (Fix (NConstant NNull))@@ -237,7 +248,7 @@         b' <- loop b         return (Fix (NLet (toList as') b'))     loop (Annot a _) = loop a-    loop Bool = return (Fix (NSet []))+    loop Bool = return untranslatable     loop (BoolLit b) = return (Fix (NConstant (NBool b)))     loop (BoolAnd a b) = do         a' <- loop a@@ -260,7 +271,7 @@         b' <- loop b         c' <- loop c         return (Fix (NIf a' b' c'))-    loop Natural = return (Fix (NSet []))+    loop Natural = return untranslatable     loop (NaturalLit n) = return (Fix (NConstant (NInt (fromIntegral n))))     loop NaturalFold = do         let e0 = Fix (NBinary NMinus "n" (Fix (NConstant (NInt 1))))@@ -272,7 +283,7 @@         return (Fix (NLet [NamedVar ["naturalFold"] e5 Nix.nullPos] "naturalFold"))     loop NaturalBuild = do         let e0 = Fix (NBinary NPlus "n" (Fix (NConstant (NInt 1))))-        let e1 = Fix (NBinary NApp (Fix (NBinary NApp "k" (Fix (NSet [])))) (Fix (NAbs "n" e0)))+        let e1 = Fix (NBinary NApp (Fix (NBinary NApp "k" untranslatable)) (Fix (NAbs "n" e0)))         return (Fix (NAbs "k" (Fix (NBinary NApp e1 (Fix (NConstant (NInt 0)))))))     loop NaturalIsZero = do         let e0 = Fix (NBinary NEq "n" (Fix (NConstant (NInt 0))))@@ -319,7 +330,7 @@         a' <- loop a         b' <- loop b         return (Fix (NBinary NMult a' b'))-    loop Integer = return (Fix (NSet []))+    loop Integer = return untranslatable     loop (IntegerLit n) = return (Fix (NConstant (NInt (fromIntegral n))))     loop IntegerClamp = do         let e0 = Fix (NConstant (NInt 0))@@ -338,11 +349,11 @@         return e3     loop IntegerToDouble = do         return (Fix (NAbs "x" "x"))-    loop Double = return (Fix (NSet []))+    loop Double = return untranslatable     loop (DoubleLit (DhallDouble n)) = return (Fix (NConstant (NFloat (realToFrac n))))     loop DoubleShow = do         return "toString"-    loop Text = return (Fix (NSet []))+    loop Text = return untranslatable     loop (TextLit (Chunks abs_ c)) = do         let process (a, b) = do                 b' <- loop b@@ -386,7 +397,7 @@         let quoted = Nix.mkStr "\"" $+ replaced $+ Nix.mkStr "\""          return ("t" ==> quoted)-    loop List = return (Fix (NAbs "t" (Fix (NSet []))))+    loop List = return (Fix (NAbs "t" untranslatable))     loop (ListAppend a b) = do         a' <- loop a         b' <- loop b@@ -395,7 +406,7 @@         bs' <- mapM loop (toList bs)         return (Fix (NList bs'))     loop ListBuild = do-        let e0 = Fix (NBinary NApp "k" (Fix (NSet [])))+        let e0 = Fix (NBinary NApp "k" untranslatable)         let e1 = Fix (NBinary NConcat (Fix (NList ["x"])) "xs")         let e2 = Fix (NBinary NApp e0 (Fix (NAbs "x" (Fix (NAbs "xs" e1)))))         let e3 = Fix (NAbs "k" (Fix (NBinary NApp e2 (Fix (NList [])))))@@ -427,7 +438,7 @@                 [ NamedVar ["index"] "i" Nix.nullPos                 , NamedVar ["value"] e1  Nix.nullPos                 ]-        let e3 = Fix (NBinary NApp "builtins.genList" (Fix (NAbs "i" (Fix (NSet e2)))))+        let e3 = Fix (NBinary NApp "builtins.genList" (Fix (NAbs "i" (Fix (NSet NNonRecursive e2)))))         return (Fix (NAbs "t" (Fix (NAbs "xs" (Fix (NBinary NApp e3 e0))))))     loop ListReverse = do         let e0 = Fix (NBinary NMinus "n" "i")@@ -438,7 +449,7 @@         let e5 = Fix (NBinary NApp "builtins.length" "xs")         let e6 = Fix (NAbs "xs" (Fix (NLet [NamedVar ["n"] e5 Nix.nullPos] e4)))         return (Fix (NAbs "t" e6))-    loop Optional = return (Fix (NAbs "t" (Fix (NSet []))))+    loop Optional = return (Fix (NAbs "t" untranslatable))     loop (Some a) = loop a     loop None = return (Fix (NConstant NNull))     loop OptionalFold = do@@ -454,14 +465,14 @@         let e4 = Lam "x" "a" (Some "x")         let e5 = App (App (App "f" (App Optional "a")) e4) e3         loop (Lam "a" (Const Type) (Lam "f" e2 e5))-    loop (Record _) = return (Fix (NSet []))+    loop (Record _) = return untranslatable     loop (RecordLit a) = do         a' <- traverse loop a         let a'' = do                 (k, v) <- Dhall.Map.toList a'                 return (NamedVar [StaticKey k] v Nix.nullPos)-        return (Fix (NSet a''))-    loop (Union _) = return (Fix (NSet []))+        return (Fix (NSet NNonRecursive a''))+    loop (Union _) = return untranslatable     loop (Combine _ a b) = do         a' <- loop a         b' <- loop b@@ -480,7 +491,7 @@                         [ NamedVar ["name" ] "k" Nix.nullPos                         , NamedVar ["value"] v   Nix.nullPos                         ]-                in  Fix (NList [Fix (NSet bindings)])+                in  Fix (NList [Fix (NSet NNonRecursive bindings)])          let e3 = Fix (NBinary NApp (Fix (NBinary NApp "combine" valL)) valR)         let e4 = Fix (NBinary NApp "builtins.isAttrs" valL)@@ -503,7 +514,7 @@          let e11 = Fix (NBinary NApp (Fix (NBinary NApp "combine" a')) b')         return (Fix (NLet [NamedVar ["combine"] combine Nix.nullPos] e11))-    loop (CombineTypes _ _) = return (Fix (NSet []))+    loop (CombineTypes _ _) = return untranslatable     loop (Merge a b _) = do         a' <- loop a         b' <- loop b@@ -516,15 +527,15 @@                 [ NamedVar [StaticKey "mapKey"] "k" Nix.nullPos                 , NamedVar [StaticKey "mapValue"] v Nix.nullPos                 ]-        let map_ = Fix (NBinary NApp "map" (Fix (NAbs "k" (Fix (NSet setBindings)))))+        let map_ = Fix (NBinary NApp "map" (Fix (NAbs "k" (Fix (NSet NNonRecursive setBindings)))))         let toMap = Fix (NAbs "kvs" (Fix (NBinary NApp map_ ks)))         return (Fix (NBinary NApp toMap a'))-    loop (Prefer a b) = do-        a' <- loop a+    loop (Prefer _ b c) = do         b' <- loop b-        return (Fix (NBinary NUpdate a' b'))+        c' <- loop c+        return (Fix (NBinary NUpdate b' c'))     loop (RecordCompletion a b) = do-        loop (Annot (Prefer (Field a "default") b) (Field a "Type"))+        loop (Annot (Prefer PreferFromCompletion (Field a "default") b) (Field a "Type"))     loop (Field (Union kts) k) =         case Dhall.Map.lookup k kts of             -- If the selected alternative has an associated payload, then we@@ -551,13 +562,15 @@     loop (Project a (Left b)) = do         a' <- loop a         let b' = fmap StaticKey (toList b)-        return (Fix (NSet [Inherit (Just a') b' Nix.nullPos]))+        return (Fix (NSet NNonRecursive [Inherit (Just a') b' Nix.nullPos]))     loop (Project _ (Right _)) = do         Left CannotProjectByType     loop (Assert _) = do-        return (Fix (NSet []))+        return untranslatable     loop (Equivalent _ _) = do-        return (Fix (NSet []))+        return untranslatable+    loop a@With{} = do+        loop (Dhall.Core.desugarWith a)     loop (ImportAlt a _) = loop a     loop (Note _ b) = loop b     loop (Embed x) = absurd x