on develop help sign in
Removing the implicit prelude imports to avoid ambiguity
be35737Brendan Hay
gen/src/Gen/AST/Flatten.hs+16−14
@@ -45,6 +45,8 @@ flatten s = do
45 -- The horror.
45 -- The horror.
46 ss <- use schemas
46 ss <- use schemas
47
47
48+ -- _ <- mapM (\k -> trace (show k) $ return 1) (Map.keys ss)
49+
48 reserveBranches
50 reserveBranches
49 reserveFields
51 reserveFields
50
52
@@ -73,11 +75,10 @@ localSchema g l = schema g (Just l)
73schema :: Global -> Maybe Local -> Fix Schema -> AST Global
75schema :: Global -> Maybe Local -> Fix Schema -> AST Global
74schema g ml (Fix f) = go (maybe g (reference g) ml) f >>= uncurry insert
76schema g ml (Fix f) = go (maybe g (reference g) ml) f >>= uncurry insert
75 where
77 where
76− go :: Global -> Schema (Fix Schema) -> AST (Global, Schema Global)
77 go p = \case
78 go p = \case
78− SAny i a -> pure (p, SAny i a)
79+ SAny i a -> pure (reference p "Any", SAny i a)
79− SRef i r -> pure (p, SRef i r)
80+ SRef i r -> pure (reference p "Ref", SRef i r)
80− SLit i l -> pure (p, SLit i l)
81+ SLit i l -> pure (reference p "Lit", SLit i l)
81 SEnm i e -> (,SEnm i e) <$> name i p ["Type", "Option"]
82 SEnm i e -> (,SEnm i e) <$> name i p ["Type", "Option"]
82 SArr i a -> do
83 SArr i a -> do
83 u <- name i p ["List", "Array"]
84 u <- name i p ["List", "Array"]
@@ -92,16 +93,17 @@ schema g ml (Fix f) = go (maybe g (reference g) ml) f >>= uncurry insert
92 object p (Obj aps ps) =
93 object p (Obj aps ps) =
93 Obj Nothing <$> Map.traverseWithKey (localSchema p) ps
94 Obj Nothing <$> Map.traverseWithKey (localSchema p) ps
94
95
95− name i p xs
96− | Just x <- i ^. iId = pure x
96+ -- | Just x <- i ^. iId = pure x
97− | otherwise = do
97+ -- | otherwise = do
98+
99+ name i p xs = do
98− e <- uses schemas (Map.lookup p)
100+ e <- uses schemas (Map.lookup p)
99− case (e, xs) of
101+ case (e, xs) of
100− (Nothing, _) -> pure p
102+ (Nothing, _) -> pure p
101− (Just _, z:zs) -> name i (reference g z) zs
103+ (Just _, z:zs) -> name i (reference g z) zs
102− (Just x, []) -> throwError $
104+ (Just x, []) -> throwError $
103− format ("Unable to generate name for: " % gid % ", " % shown % ", " % gid % "\n" % shown)
105+ format ("Unable to generate name for: " % gid % ", " % shown % ", " % gid % "\n" % shown)
104− g ml p x
106+ g ml p x
105
107
106globalParam :: Local -> Param (Fix Schema) -> AST (Param Global)
108globalParam :: Local -> Param (Fix Schema) -> AST (Param Global)
107globalParam l p = ($ p) $ case l of
109globalParam l p = ($ p) $ case l of
gen/src/Gen/Types/Id.hs+4−2
@@ -60,6 +60,7 @@ import Data.CaseInsensitive (CI)
60import qualified Data.CaseInsensitive as CI
60import qualified Data.CaseInsensitive as CI
61import Data.Coerce
61import Data.Coerce
62import Data.Foldable (foldl')
62import Data.Foldable (foldl')
63+import Data.Function (on)
63import Data.Hashable
64import Data.Hashable
64import Data.List (elemIndex, nub, sortOn)
65import Data.List (elemIndex, nub, sortOn)
65import Data.Maybe
66import Data.Maybe
@@ -130,8 +131,9 @@ newtype Global = Global [Text]
130 deriving (Ord, Show, Generic)
131 deriving (Ord, Show, Generic)
131
132
132instance Eq Global where
133instance Eq Global where
133− Global xs == Global ys =
134+ Global xs == Global ys = on (==) f xs ys
134− map CI.mk xs == map CI.mk ys
135+ where
136+ f = CI.mk . mconcat
135
137
136instance Hashable Global where
138instance Hashable Global where
137 hashWithSalt salt (Global g) = foldl' hashWithSalt salt (map CI.mk g)
139 hashWithSalt salt (Global g) = foldl' hashWithSalt salt (map CI.mk g)
gen/template/action.ede+1
@@ -2,6 +2,7 @@
2{-# LANGUAGE DeriveDataTypeable #-}
2{-# LANGUAGE DeriveDataTypeable #-}
3{-# LANGUAGE DeriveGeneric #-}
3{-# LANGUAGE DeriveGeneric #-}
4{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE FlexibleInstances #-}
5+{-# LANGUAGE NoImplicitPrelude #-}
5{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE RecordWildCards #-}
7{-# LANGUAGE RecordWildCards #-}
7{-# LANGUAGE TypeFamilies #-}
8{-# LANGUAGE TypeFamilies #-}
gen/template/prod.ede+1
@@ -1,5 +1,6 @@
1{-# LANGUAGE DeriveDataTypeable #-}
1{-# LANGUAGE DeriveDataTypeable #-}
2{-# LANGUAGE DeriveGeneric #-}
2{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE NoImplicitPrelude #-}
3{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE RecordWildCards #-}
5{-# LANGUAGE RecordWildCards #-}
5
6
gen/template/sum.ede+2−1
@@ -1,7 +1,8 @@
1{-# LANGUAGE DeriveDataTypeable #-}
1{-# LANGUAGE DeriveDataTypeable #-}
2{-# LANGUAGE DeriveGeneric #-}
2{-# LANGUAGE DeriveGeneric #-}
3−{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE LambdaCase #-}
3{-# LANGUAGE LambdaCase #-}
4+{-# LANGUAGE NoImplicitPrelude #-}
5+{-# LANGUAGE OverloadedStrings #-}
5
6
6{-# OPTIONS_GHC -fno-warn-unused-imports #-}
7{-# OPTIONS_GHC -fno-warn-unused-imports #-}
7
8
gen/template/toc.ede+3−2
@@ -1,5 +1,6 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE NoImplicitPrelude #-}
2−{-# LANGUAGE TypeOperators #-}
3+{-# LANGUAGE TypeOperators #-}
3
4
4{-# OPTIONS_GHC -fno-warn-unused-imports #-}
5{-# OPTIONS_GHC -fno-warn-unused-imports #-}
5{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
6{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
gen/template/types.ede+1
@@ -1,5 +1,6 @@
1{-# LANGUAGE DeriveDataTypeable #-}
1{-# LANGUAGE DeriveDataTypeable #-}
2{-# LANGUAGE DeriveGeneric #-}
2{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE NoImplicitPrelude #-}
3{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE OverloadedStrings #-}
4
5
5{-# OPTIONS_GHC -fno-warn-unused-imports #-}
6{-# OPTIONS_GHC -fno-warn-unused-imports #-}