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 18 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 71 def visit_any(_) ::Object end
visit_array(_)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 36 def visit_array(_) ::Array end
visit_constrained(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 65 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 46 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 52 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 30 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 41 def visit_lax(node) visit(node) end
visit_nominal(node)
click to toggle source
@api private
# File lib/dry/types/primitive_inferrer.rb, line 24 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 58 def visit_sum(node) left, right = node [visit(left), visit(right)].flatten(1) end