Class: Dhallish::Ast::RecordRecursiveMergeNode
- Inherits:
-
Object
- Object
- Dhallish::Ast::RecordRecursiveMergeNode
- Defined in:
- lib/ast.rb
Instance Attribute Summary collapse
-
#lhs ⇒ Object
Returns the value of attribute lhs.
-
#rhs ⇒ Object
Returns the value of attribute rhs.
Instance Method Summary collapse
- #compute_type(ctx) ⇒ Object
- #evaluate(ctx) ⇒ Object
-
#initialize(lhs, rhs) ⇒ RecordRecursiveMergeNode
constructor
lhs and rhs should be RecordNodes.
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
#lhs ⇒ Object
Returns the value of attribute lhs.
493 494 495 |
# File 'lib/ast.rb', line 493 def lhs @lhs end |
#rhs ⇒ Object
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 |