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