class Dhallish::Ast::OptionalNode
Attributes
expression[RW]
expression should be a some value for prefix “Some” or a Type for prefix “None”
Public Class Methods
new(prefix, expression)
click to toggle source
# File lib/ast.rb, line 328 def initialize(prefix, expression) @isSome = (prefix == "Some") @expression = expression end
Public Instance Methods
compute_type(ctx)
click to toggle source
# File lib/ast.rb, line 333 def compute_type(ctx) if @isSome elem_type = @expression.compute_type ctx else type_type = @expression.compute_type ctx assert ("Expression after \"None\" not a type") { type_type.is_a? Types::Type } elem_type = type_type.metadata end Types::Optional.new elem_type end
evaluate(ctx)
click to toggle source
# File lib/ast.rb, line 344 def evaluate(ctx) if @isSome @expression.evaluate(ctx) else nil end end