on develop help sign in
Removing the implicit prelude imports to avoid ambiguity
commitbe35737668accd1e63b239f9fd2f01076c678f6f authorBrendan Hay <brendan.g.hay@gmail.com> dateSun 4 Oct 2015, 20:14 (11 years ago) parent4feeffa
7 files changed+28−19
gen/src/Gen/AST/Flatten.hs+16−14 gen/src/Gen/Types/Id.hs+4−2 gen/template/action.ede+1 gen/template/prod.ede+1 gen/template/sum.ede+2−1 gen/template/toc.ede+3−2 gen/template/types.ede+1
gen/src/Gen/AST/Flatten.hs+16−14
@@ -45,6 +45,8 @@ flatten s = do
4545 -- The horror.
4646 ss <- use schemas
4747
48+ -- _ <- mapM (\k -> trace (show k) $ return 1) (Map.keys ss)
49+
4850 reserveBranches
4951 reserveFields
5052
@@ -73,11 +75,10 @@ localSchema g l = schema g (Just l)
7375schema :: Global -> Maybe Local -> Fix Schema -> AST Global
7476schema g ml (Fix f) = go (maybe g (reference g) ml) f >>= uncurry insert
7577 where
76− go :: Global -> Schema (Fix Schema) -> AST (Global, Schema Global)
7778 go p = \case
78− SAny i a -> pure (p, SAny i a)
79− SRef i r -> pure (p, SRef i r)
80− SLit i l -> pure (p, SLit i l)
79+ SAny i a -> pure (reference p "Any", SAny i a)
80+ SRef i r -> pure (reference p "Ref", SRef i r)
81+ SLit i l -> pure (reference p "Lit", SLit i l)
8182 SEnm i e -> (,SEnm i e) <$> name i p ["Type", "Option"]
8283 SArr i a -> do
8384 u <- name i p ["List", "Array"]
@@ -92,16 +93,17 @@ schema g ml (Fix f) = go (maybe g (reference g) ml) f >>= uncurry insert
9293 object p (Obj aps ps) =
9394 Obj Nothing <$> Map.traverseWithKey (localSchema p) ps
9495
95− name i p xs
96− | Just x <- i ^. iId = pure x
97− | otherwise = do
98− e <- uses schemas (Map.lookup p)
99− case (e, xs) of
100− (Nothing, _) -> pure p
101− (Just _, z:zs) -> name i (reference g z) zs
102− (Just x, []) -> throwError $
103− format ("Unable to generate name for: " % gid % ", " % shown % ", " % gid % "\n" % shown)
104− g ml p x
96+ -- | Just x <- i ^. iId = pure x
97+ -- | otherwise = do
98+
99+ name i p xs = do
100+ e <- uses schemas (Map.lookup p)
101+ case (e, xs) of
102+ (Nothing, _) -> pure p
103+ (Just _, z:zs) -> name i (reference g z) zs
104+ (Just x, []) -> throwError $
105+ format ("Unable to generate name for: " % gid % ", " % shown % ", " % gid % "\n" % shown)
106+ g ml p x
105107
106108globalParam :: Local -> Param (Fix Schema) -> AST (Param Global)
107109globalParam l p = ($ p) $ case l of
gen/src/Gen/Types/Id.hs+4−2
@@ -60,6 +60,7 @@ import Data.CaseInsensitive (CI)
6060import qualified Data.CaseInsensitive as CI
6161import Data.Coerce
6262import Data.Foldable (foldl')
63+import Data.Function (on)
6364import Data.Hashable
6465import Data.List (elemIndex, nub, sortOn)
6566import Data.Maybe
@@ -130,8 +131,9 @@ newtype Global = Global [Text]
130131 deriving (Ord, Show, Generic)
131132
132133instance Eq Global where
133− Global xs == Global ys =
134− map CI.mk xs == map CI.mk ys
134+ Global xs == Global ys = on (==) f xs ys
135+ where
136+ f = CI.mk . mconcat
135137
136138instance Hashable Global where
137139 hashWithSalt salt (Global g) = foldl' hashWithSalt salt (map CI.mk g)
gen/template/action.ede+1
@@ -2,6 +2,7 @@
22{-# LANGUAGE DeriveDataTypeable #-}
33{-# LANGUAGE DeriveGeneric #-}
44{-# LANGUAGE FlexibleInstances #-}
5+{-# LANGUAGE NoImplicitPrelude #-}
56{-# LANGUAGE OverloadedStrings #-}
67{-# LANGUAGE RecordWildCards #-}
78{-# LANGUAGE TypeFamilies #-}
gen/template/prod.ede+1
@@ -1,5 +1,6 @@
11{-# LANGUAGE DeriveDataTypeable #-}
22{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE NoImplicitPrelude #-}
34{-# LANGUAGE OverloadedStrings #-}
45{-# LANGUAGE RecordWildCards #-}
56
gen/template/sum.ede+2−1
@@ -1,7 +1,8 @@
11{-# LANGUAGE DeriveDataTypeable #-}
22{-# LANGUAGE DeriveGeneric #-}
3−{-# LANGUAGE OverloadedStrings #-}
43{-# LANGUAGE LambdaCase #-}
4+{-# LANGUAGE NoImplicitPrelude #-}
5+{-# LANGUAGE OverloadedStrings #-}
56
67{-# OPTIONS_GHC -fno-warn-unused-imports #-}
78
gen/template/toc.ede+3−2
@@ -1,5 +1,6 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE TypeOperators #-}
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE NoImplicitPrelude #-}
3+{-# LANGUAGE TypeOperators #-}
34
45{-# OPTIONS_GHC -fno-warn-unused-imports #-}
56{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
gen/template/types.ede+1
@@ -1,5 +1,6 @@
11{-# LANGUAGE DeriveDataTypeable #-}
22{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE NoImplicitPrelude #-}
34{-# LANGUAGE OverloadedStrings #-}
45
56{-# OPTIONS_GHC -fno-warn-unused-imports #-}