Sha256: 40c16aaba3a0391a437d93fa69ed41c13eccdff176e2357d3d3d130f7e8097f7
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
require 'forwardable' module Yoda module Typing # Facade for information of the specified node traced on inference class NodeInfo extend Forwardable # @return [AST::Node] attr_reader :node # @return [Inferencer::Tracer] attr_reader :tracer delegate %i(location range) => :node # @param node [AST::Node] # @param tracer [Inferencer::Tracer] def initialize(node:, tracer:) @node = node @tracer = tracer end # @return [Symbol] def kind tracer.kind(node) || node.type end # @return [Types::Type] def receiver_type tracer.receiver_type(node) end # @return [Array<FunctionSignatures::Base>] def method_candidates tracer.method_candidates(node) end # @return [Array<Store::Objects::Base>] def constants tracer.constants(node) end # @return [Types::Type] def type tracer.type(node) end # @return [Array<Store::Objects::Base>] def objects tracer.objects(node) end # @return [Array<Store::Objects::Base>] def scope_objects tracer.objects(node) end # @return [Array<Store::Objects::NamespaceObject>] def lexical_scope_types context&.lexical_scope_types || [] end # @param path_expr [String] # @return [Types::Type, nil] def resolve_constant(path_expr) context&.constant_resolver&.resolve_path(path_expr.to_s) end private # @return [Contexts::BaseContext] def context tracer.context(node) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
yoda-language-server-0.9.0 | lib/yoda/typing/node_info.rb |
yoda-language-server-0.8.0 | lib/yoda/typing/node_info.rb |