Class: MilkTea::CompileTime::Evaluator
- Inherits:
-
MilkTea::ConstEval::Evaluator
- Object
- MilkTea::ConstEval::Evaluator
- MilkTea::CompileTime::Evaluator
- Defined in:
- lib/milk_tea/core/compile_time.rb
Instance Method Summary collapse
Methods inherited from MilkTea::ConstEval::Evaluator
#evaluate, #evaluate_binary, #evaluate_unary, #initialize, #zero_numeric?
Constructor Details
This class inherits a constructor from MilkTea::ConstEval::Evaluator
Instance Method Details
#resolve_layout_type(type_ref) ⇒ Object
442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 |
# File 'lib/milk_tea/core/compile_time.rb', line 442 def resolve_layout_type(type_ref) super rescue SemanticError return unless type_ref.respond_to?(:name) && type_ref.name.parts.length >= 1 expression = ::MilkTea::AST.build_chain_from_parts(type_ref.name.parts) return unless expression value = evaluate(expression) return value if value.is_a?(Types::Struct) || value.is_a?(Types::Primitive) || value.is_a?(Types::Union) || value.is_a?(Types::Nullable) || value.is_a?(Types::StructInstance) nil end |