summaryrefslogtreecommitdiff
path: root/dhall/src/error
diff options
context:
space:
mode:
authorFintan Halpenny2019-07-27 15:09:31 +0100
committerFintanH2019-07-31 10:35:03 +0100
commite51b89d717a1f1aaba7e59c79c9fb4b8e7031bab (patch)
treecef94e9c2c4af33555d457dcd7b19e91e1be185a /dhall/src/error
parent2a6a37398394a33e281fa4f2055a3b33c21502c3 (diff)
Add case for RightBasedRecordMerge in the typechecking phase.
The implementation checks the types and kinds of the LHS and RHS. In the happy path it unions the HashMap prefering keys on the RHS over the LHS, and the result is the type of the resulting HashMap. The error cases are: - If the kinds of the records differ it results in a RecordMismatch error. - If either the LHS or RHS are not records it results in a MustCombineRecord error.
Diffstat (limited to 'dhall/src/error')
-rw-r--r--dhall/src/error/mod.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/dhall/src/error/mod.rs b/dhall/src/error/mod.rs
index 125d013..20b8636 100644
--- a/dhall/src/error/mod.rs
+++ b/dhall/src/error/mod.rs
@@ -76,9 +76,11 @@ pub(crate) enum TypeMessage {
MergeAnnotMismatch,
MergeHandlerTypeMismatch,
MergeHandlerReturnTypeMustNotBeDependent,
+ MustCombineRecord(Typed),
ProjectionMustBeRecord,
ProjectionMissingEntry,
Sort,
+ RecordMismatch(Typed, Typed),
RecordTypeDuplicateField,
UnionTypeDuplicateField,
Unimplemented,