Module: Stone::AST::TypeResolver
- Defined in:
- lib/stone/ast.rb
Overview
Shared type resolution logic for AST nodes
Class Method Summary collapse
Class Method Details
.resolve_node_type(node, mod) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/stone/ast.rb', line 22 module_function def resolve_node_type(node, mod) case node when Stone::AST::Reference then node.type(mod) when Stone::AST::FunctionCall then node.type(mod) when Stone::AST::PropertyAccess then resolve_property_type(node, mod) else node.type end end |
.resolve_property_type(node, mod) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/stone/ast.rb', line 31 module_function def resolve_property_type(node, mod) receiver_type = resolve_node_type(node.receiver, mod) return nil unless receiver_type receiver_type.property_return_type(node.property) end |