Module: Jade::Codegen::Pattern::Constructor

Extended by:
Helpers, Constructor
Included in:
Constructor
Defined in:
lib/jade/codegen/pattern/constructor.rb

Constant Summary

Constants included from Helpers

Helpers::NATIVE_RUBY_CLASSES

Instance Method Summary collapse

Methods included from Helpers

data_define, dict_constraints, dict_synthetic_name, fn_constraints, fn_impl_synthetic_name, generate_many, generate_node, impl_synthetic_name, param_synthetic_name, resolve_callee_symbol, ruby_classes_for_type, to_qualified

Instance Method Details

#generate(node, registry) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/jade/codegen/pattern/constructor.rb', line 8

def generate(node, registry)
  node => AST::Pattern::Constructor(symbol:, patterns:)
  constructor = registry.lookup(symbol)
  qualified = to_qualified(constructor.qualified_name)

  if keyed_variant?(constructor)
    generate_keyed(qualified, patterns.first, registry)
  else
    generate_positional(qualified, patterns, registry)
  end
end