on develop help sign in
Disambiguating sum type constructors
73be2e4Brendan Hay
gen/src/Gen/Solve.hs+7−4
@@ -158,11 +158,14 @@ prefix :: Id -> AST Pre
158prefix n = memo prefixed n typ
158prefix n = memo prefixed n typ
159 where
159 where
160 typ = \case
160 typ = \case
161− Obj i rs -> field rs
161+ Obj _ rs -> field rs
162− Enum i vs _ -> branch vs
162+ Enum _ vs _ -> branch vs
163− _ -> pure mempty
163+ _ -> pure mempty
164
164
165− branch vs = pure (Pre "")
165+ branch vs = do
166+ p <- uniq branches (acronymPrefixes n) $
167+ Set.fromList (map CI.mk vs)
168+ pure (Pre p)
166
169
167 field rs = do
170 field rs = do
168 let ls = Map.keys rs
171 let ls = Map.keys rs