Class: MilkTea::Lowering::Resolve::ConstFnLowerEvaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/milk_tea/core/lowering/resolve.rb

Instance Method Summary collapse

Constructor Details

#initialize(lowerer) ⇒ ConstFnLowerEvaluator

Returns a new instance of ConstFnLowerEvaluator.



1862
1863
1864
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1862

def initialize(lowerer)
  @lowerer = lowerer
end

Instance Method Details

#comptime_const_method_body(binding, arguments, scopes: nil, receiver_value: nil, arg_evaluator: nil) ⇒ Object



1894
1895
1896
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1894

def comptime_const_method_body(binding, arguments, scopes: nil, receiver_value: nil, arg_evaluator: nil)
  @lowerer.comptime_const_method_body(binding, arguments, scopes:, receiver_value:, arg_evaluator:)
end

#comptime_expression_type(expression, scopes: nil) ⇒ Object



1898
1899
1900
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1898

def comptime_expression_type(expression, scopes: nil)
  @lowerer.comptime_expression_type(expression, scopes:)
end

#comptime_method_binding_for_receiver(receiver_type, member) ⇒ Object



1890
1891
1892
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1890

def comptime_method_binding_for_receiver(receiver_type, member)
  @lowerer.comptime_method_binding_for_receiver(receiver_type, member)
end

#comptime_struct_field_names(type_name) ⇒ Object



1886
1887
1888
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1886

def comptime_struct_field_names(type_name)
  @lowerer.comptime_struct_field_names(type_name)
end

#evaluate_compile_time_const_value(expression, scopes: nil) ⇒ Object



1870
1871
1872
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1870

def evaluate_compile_time_const_value(expression, scopes: nil)
  @lowerer.compile_time_const_value(expression, env: @lowerer.empty_env)
end

#resolve_type_expression(expression) ⇒ Object



1882
1883
1884
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1882

def resolve_type_expression(expression)
  @lowerer.resolve_type_expression(expression)
end

#resolve_type_ref(type_ref) ⇒ Object



1878
1879
1880
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1878

def resolve_type_ref(type_ref)
  @lowerer.resolve_type_ref(type_ref)
end

#top_level_function(name) ⇒ Object



1874
1875
1876
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1874

def top_level_function(name)
  @lowerer.instance_variable_get(:@ctx).functions&.[](name)
end

#typesObject



1866
1867
1868
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1866

def types
  @lowerer.instance_variable_get(:@ctx).types
end