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
263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 |
# File 'lib/milk_tea/core/compile_time.rb', line 263 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 |