Class: MilkTea::ProcStorageSupportedVisitor

Inherits:
TypeVisitor
  • Object
show all
Defined in:
lib/milk_tea/core/types/visitor.rb

Instance Method Summary collapse

Methods inherited from TypeVisitor

#visit, #visit_default, #visit_dyn, #visit_event, #visit_function, #visit_generic_instance, #visit_generic_struct_definition, #visit_generic_variant_definition, #visit_lifetime_ref, #visit_null, #visit_nullable, #visit_parameter, #visit_proc, #visit_simd, #visit_soa, #visit_span, #visit_struct, #visit_struct_instance, #visit_task, #visit_tuple, #visit_type_var, #visit_union, #visit_variant, #visit_variant_arm_payload, #visit_variant_instance

Constructor Details

#initializeProcStorageSupportedVisitor

Returns a new instance of ProcStorageSupportedVisitor.



367
368
369
370
# File 'lib/milk_tea/core/types/visitor.rb', line 367

def initialize
  super
  @supported = true
end

Instance Method Details

#dispatch(type) ⇒ Object



376
377
378
379
380
381
382
383
384
385
386
# File 'lib/milk_tea/core/types/visitor.rb', line 376

def dispatch(type)
  case type
  when Types::Nullable, Types::GenericInstance, Types::Struct, Types::Union,
       Types::StructInstance, Types::Variant, Types::VariantInstance, Types::VariantArmPayload,
       Types::Tuple, Types::Span
    visit_children(type)
  when Types::Proc
  when Types::Task, Types::Function, Types::Dyn, Types::SoA
    @supported = false
  end
end

#result?Boolean

Returns:

  • (Boolean)


372
373
374
# File 'lib/milk_tea/core/types/visitor.rb', line 372

def result?
  @supported
end

#visit_children(type) ⇒ Object



388
389
390
391
392
393
# File 'lib/milk_tea/core/types/visitor.rb', line 388

def visit_children(type)
  type.children.each do |child|
    visit(child)
    return unless @supported
  end
end