class Dry::Types::PrimitiveInferrer::Compiler
Compiler
reduces type AST into a list of primitives
@api private
Public Instance Methods
visit(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 16 def visit(node) meth, rest = node public_send(:"visit_#{meth}", rest) end
visit_any(_)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 69 def visit_any(_) ::Object end
visit_array(_)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 34 def visit_array(_) ::Array end
visit_constrained(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 63 def visit_constrained(node) other, * = node visit(other) end
visit_constructor(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 44 def visit_constructor(node) other, * = node visit(other) end
visit_enum(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 50 def visit_enum(node) other, * = node visit(other) end
visit_hash(_)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 28 def visit_hash(_) ::Hash end
Also aliased as: visit_schema
visit_lax(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 39 def visit_lax(node) visit(node) end
visit_nominal(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 22 def visit_nominal(node) type, _ = node type end
visit_sum(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 56 def visit_sum(node) left, right = node [visit(left), visit(right)].flatten(1) end