Class: MilkTea::Lowering::Resolve::ConstFnLowerEvaluator
- Inherits:
-
Object
- Object
- MilkTea::Lowering::Resolve::ConstFnLowerEvaluator
- Defined in:
- lib/milk_tea/core/lowering/resolve.rb
Instance Method Summary collapse
- #comptime_const_method_body(binding, arguments, scopes: nil, receiver_value: nil, arg_evaluator: nil) ⇒ Object
- #comptime_expression_type(expression, scopes: nil) ⇒ Object
- #comptime_method_binding_for_receiver(receiver_type, member) ⇒ Object
- #comptime_struct_field_names(type_name) ⇒ Object
- #evaluate_compile_time_const_value(expression, scopes: nil) ⇒ Object
-
#initialize(lowerer) ⇒ ConstFnLowerEvaluator
constructor
A new instance of ConstFnLowerEvaluator.
- #resolve_type_expression(expression) ⇒ Object
- #resolve_type_ref(type_ref) ⇒ Object
- #top_level_function(name) ⇒ Object
- #types ⇒ Object
Constructor Details
#initialize(lowerer) ⇒ ConstFnLowerEvaluator
Returns a new instance of ConstFnLowerEvaluator.
1858 1859 1860 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1858 def initialize(lowerer) @lowerer = lowerer end |
Instance Method Details
#comptime_const_method_body(binding, arguments, scopes: nil, receiver_value: nil, arg_evaluator: nil) ⇒ Object
1890 1891 1892 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1890 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
1894 1895 1896 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1894 def comptime_expression_type(expression, scopes: nil) @lowerer.comptime_expression_type(expression, scopes:) end |
#comptime_method_binding_for_receiver(receiver_type, member) ⇒ Object
1886 1887 1888 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1886 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
1882 1883 1884 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1882 def comptime_struct_field_names(type_name) @lowerer.comptime_struct_field_names(type_name) end |
#evaluate_compile_time_const_value(expression, scopes: nil) ⇒ Object
1866 1867 1868 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1866 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
1878 1879 1880 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1878 def resolve_type_expression(expression) @lowerer.resolve_type_expression(expression) end |
#resolve_type_ref(type_ref) ⇒ Object
1874 1875 1876 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1874 def resolve_type_ref(type_ref) @lowerer.resolve_type_ref(type_ref) end |
#top_level_function(name) ⇒ Object
1870 1871 1872 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1870 def top_level_function(name) @lowerer.instance_variable_get(:@ctx).functions&.[](name) end |
#types ⇒ Object
1862 1863 1864 |
# File 'lib/milk_tea/core/lowering/resolve.rb', line 1862 def types @lowerer.instance_variable_get(:@ctx).types end |