From a00c309229306dead75a40c7ba59eab50aaa2c55 Mon Sep 17 00:00:00 2001 From: Lou Knauer <lou.knauer@gmx.de> Date: Tue, 5 Mar 2019 12:17:13 +0100 Subject: [PATCH] mergeRecords interface changed to no value class --- lib/types.rb | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/types.rb b/lib/types.rb index ae766cb..5df8108 100644 --- a/lib/types.rb +++ b/lib/types.rb @@ -333,22 +333,19 @@ module Dhallish # TODO: .val weg! def mergeRecordsRecursively(a, b) - restype = mergeRecordTypes(a.type, b.type) - - merged = a.val.clone - b.val.each { |key, val| + merged = a.clone + b.each { |key, val| if merged.key? key - if val.type.is_a? Types::Record and merged[key].type.is_a? Types::Record + if val.is_a? Hash and merged[key].is_a? Hash merged[key] = mergeRecordsRecursively(merged[key], val) else - raise DhallError, "key `#{key}` apeares in left and right side of `/\\`" + raise DhallError, "key `#{key}` apeares in left and right side of `/\\` (should not happen becouse of static type checks)" end else merged[key] = val end } - - Value.new merged, restype + merged end module_function :mergeRecordsRecursively @@ -360,12 +357,10 @@ module Dhallish end module_function :mergeRecordTypesPrefereRight - # TODO: .val weg! def mergeRecordsPrefereRight(a, b) - mergedType = mergeRecordTypesPrefereRight(a.type, b.type) - mergedVals = a.val.clone - b.val.each { |key, val| mergedVals[key] = val } - Value.new mergedVals, mergedType + mergedVals = a.clone + b.each { |key, val| mergedVals[key] = val } + mergedVals end module_function :mergeRecordsPrefereRight end -- GitLab