Class: Dhallish::Ast::RecordRecursiveMergeNode

Inherits:
Object
  • Object
show all
Defined in:
lib/ast.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(lhs, rhs) ⇒ RecordRecursiveMergeNode

lhs and rhs should be RecordNodes



497
498
499
500
# File 'lib/ast.rb', line 497

def initialize(lhs, rhs)
  @lhs = lhs
  @rhs = rhs
end

Instance Attribute Details

#lhsObject

Returns the value of attribute lhs.



493
494
495
# File 'lib/ast.rb', line 493

def lhs
  @lhs
end

#rhsObject

Returns the value of attribute rhs.



494
495
496
# File 'lib/ast.rb', line 494

def rhs
  @rhs
end

Instance Method Details

#compute_type(ctx) ⇒ Object



502
503
504
505
506
# File 'lib/ast.rb', line 502

def compute_type(ctx)
  lhs = @lhs.compute_type ctx
  rhs = @rhs.compute_type ctx
  ::Dhallish::mergeRecordTypes(lhs, rhs)
end

#evaluate(ctx) ⇒ Object



508
509
510
511
512
# File 'lib/ast.rb', line 508

def evaluate(ctx)
  lhs = @lhs.evaluate(ctx)
  rhs = @rhs.evaluate(ctx)
  ::Dhallish::mergeRecordsRecursively(lhs, rhs)
end