Skip to content

Commit 45c7d88

Browse files
committed
Fixed: Predefined was not respected in a codepath in toConstructor
1 parent c7861ae commit 45c7d88

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

dhall/src/Dhall/TH.hs

+6-4
Original file line numberDiff line numberDiff line change
@@ -372,15 +372,17 @@ toConstructor typeParams GenerateOptions{..} haskellTypes outerTypeName (constru
372372

373373
case maybeAlternativeType of
374374
Just dhallType
375-
| let predicate Scoped{} = False
375+
| let predicate haskellType@Predefined{} = Core.judgmentallyEqual (code haskellType) dhallType
376+
predicate Scoped{} = False
376377
predicate haskellType =
377378
Core.judgmentallyEqual (code haskellType) dhallType
378379
&& typeName haskellType /= outerTypeName
379380
, Just haskellType <- List.find predicate haskellTypes -> do
380-
let innerName =
381-
Syntax.mkName (Text.unpack (typeName haskellType))
381+
let inner = case haskellType of
382+
Predefined{..} -> haskellSplice
383+
_ -> ConT (Syntax.mkName (Text.unpack (typeName haskellType)))
382384

383-
return (NormalC name [ (bang, ConT innerName) ])
385+
return (NormalC name [ (bang, inner) ])
384386

385387
Just (Record kts) -> do
386388
let process (key, dhallFieldType) = do

0 commit comments

Comments
 (0)