Adjust type inference for record literals (#1309)
… to changes from https://github.com/dhall-lang/dhall-lang/pull/740.
This commit is contained in:
parent
ca86ed612c
commit
17c28d4b6c
|
@ -1 +1 @@
|
||||||
Subproject commit 084ec169695c09e8ac92c4c0dfeb4f9b8188b593
|
Subproject commit bdb27504913770a85b308a9d893fdded219c0fa4
|
|
@ -463,13 +463,13 @@ typeWithA tpa = loop
|
||||||
return (Const c)
|
return (Const c)
|
||||||
loop ctx e@(RecordLit kvs ) = do
|
loop ctx e@(RecordLit kvs ) = do
|
||||||
let process k v = do
|
let process k v = do
|
||||||
t <- loop ctx v
|
t <- fmap Dhall.Core.normalize (loop ctx v)
|
||||||
s <- fmap Dhall.Core.normalize (loop ctx t)
|
s <- fmap Dhall.Core.normalize (loop ctx t)
|
||||||
case s of
|
case s of
|
||||||
Const _ -> return t
|
Const _ -> return t
|
||||||
_ -> Left (TypeError ctx e (InvalidFieldType k t))
|
_ -> Left (TypeError ctx e (InvalidFieldType k t))
|
||||||
|
|
||||||
Record <$> Dhall.Map.unorderedTraverseWithKey process kvs
|
Record <$> Dhall.Map.unorderedTraverseWithKey process (Dhall.Map.sort kvs)
|
||||||
loop ctx e@(Union kts ) = do
|
loop ctx e@(Union kts ) = do
|
||||||
let nonEmpty k mt = First (fmap (\t -> (k, t)) mt)
|
let nonEmpty k mt = First (fmap (\t -> (k, t)) mt)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue