on develop help sign in
Correctly priming the reserved branches map
2bfe6a2Brendan Hay
gen/src/Gen/AST/Flatten.hs+4−2
@@ -44,6 +44,8 @@ flatten s = do
44 -- The horror.
44 -- The horror.
45 ss <- use schemas
45 ss <- use schemas
46
46
47+ reserveBranches
48+
47 let d = (s ^. sDescription)
49 let d = (s ^. sDescription)
48 { _dSchemas = Map.fromList $ map (join (,)) (Map.keys ss)
50 { _dSchemas = Map.fromList $ map (join (,)) (Map.keys ss)
49 , _dParameters = ps
51 , _dParameters = ps
@@ -82,7 +84,7 @@ schema g ml (Fix f) = go f >>= insert this
82 SObj i o -> SObj i <$> object o
84 SObj i o -> SObj i <$> object o
83
85
84 array (Arr e) =
86 array (Arr e) =
85− Arr <$> localSchema this "item" (setRequired e)
87+ Arr <$> schema this (Just "item") (setRequired e)
86
88
87 object (Obj aps ps) =
89 object (Obj aps ps) =
88 Obj Nothing <$> Map.traverseWithKey (localSchema this) ps
90 Obj Nothing <$> Map.traverseWithKey (localSchema this) ps
@@ -176,5 +178,5 @@ insert g s = do
176 where
178 where
177 exists n x =
179 exists n x =
178 format ("Schema exists: " % stext % " - " % gid %
180 format ("Schema exists: " % stext % " - " % gid %
179− "\nCurrent: " % shown % "\nTried: " % shown)
181+ "\n\n[Current]\n" % shown % "\n[Tried]\n\n" % shown)
180 n g x s
182 n g x s
gen/src/Gen/Text.hs+1
@@ -208,6 +208,7 @@ upperAcronym x = Fold.foldl' (flip (uncurry RE.replaceAll)) x xs
208 , ("Jwk", "JWK")
208 , ("Jwk", "JWK")
209 , ("Dto", "DTO")
209 , ("Dto", "DTO")
210 , ("Sku", "SKU")
210 , ("Sku", "SKU")
211+ , ("Cse$", "CSE")
211
212
212 , ("access", "Access")
213 , ("access", "Access")
213 , ("account", "Account")
214 , ("account", "Account")
gen/src/Gen/Types.hs+7−5
@@ -268,20 +268,22 @@ data Memo = Memo
268 }
268 }
269
269
270initial :: Service (Fix Schema) -> Memo
270initial :: Service (Fix Schema) -> Memo
271−initial s = Memo s mempty mempty core mempty reserveBranches mempty
271+initial s = Memo s mempty mempty core mempty mempty mempty
272 where
272 where
273 -- Types available in Network.Google.Prelude.
273 -- Types available in Network.Google.Prelude.
274 core = Map.fromList
274 core = Map.fromList
275 [ ("Body", SLit requiredInfo Body)
275 [ ("Body", SLit requiredInfo Body)
276 ]
276 ]
277
277
278− -- Reserved sum constructor names.
279− reserveBranches = Map.singleton mempty . Set.fromList $
280− map (CI.mk . global) (Map.keys (s ^. dSchemas))
281−
282makeLenses ''Memo
278makeLenses ''Memo
283
279
284instance HasService Memo (Fix Schema) where
280instance HasService Memo (Fix Schema) where
285 service = context
281 service = context
286
282
287type AST = ExceptT Error (State Memo)
283type AST = ExceptT Error (State Memo)
284+
285+reserveBranches :: AST ()
286+reserveBranches = do
287+ ss <- use schemas
288+ let bs = Set.fromList $ map (CI.mk . global) (Map.keys ss)
289+ branches %= Map.insertWith (<>) mempty bs