class Solargraph::Pin::Signature
Attributes
allow signature to be created before method pin, then set this to the method pin
Public Class Methods
Source
# File lib/solargraph/pin/signature.rb, line 8 def initialize **splat super(**splat) end
Calls superclass method
Solargraph::Pin::Callable::new
Public Instance Methods
Source
# File lib/solargraph/pin/signature.rb, line 22 def dodgy_return_type_source? super || closure&.dodgy_return_type_source? end
Calls superclass method
Source
# File lib/solargraph/pin/signature.rb, line 12 def generics @generics ||= [].freeze end
Source
# File lib/solargraph/pin/signature.rb, line 16 def identity @identity ||= "signature#{object_id}" end
Source
# File lib/solargraph/pin/signature.rb, line 30 def location super || closure&.location end
Calls superclass method
Source
# File lib/solargraph/pin/signature.rb, line 26 def type_location super || closure&.type_location end
Calls superclass method
Source
# File lib/solargraph/pin/signature.rb, line 34 def typify api_map if return_type.defined? qualified = return_type.qualify(api_map, closure.namespace) logger.debug { "Signature#typify(self=#{self}) => #{qualified.rooted_tags.inspect}" } return qualified end return ComplexType::UNDEFINED if closure.nil? return ComplexType::UNDEFINED unless closure.is_a?(Pin::Method) # @sg-ignore need is_a? support # @type [Array<Pin::Method>] method_stack = closure.rest_of_stack api_map logger.debug { "Signature#typify(self=#{self}) - method_stack: #{method_stack}" } method_stack.each do |pin| sig = pin.signatures.find { |s| s.arity == self.arity } next unless sig unless sig.return_type.undefined? qualified = sig.return_type.qualify(api_map, closure.namespace) logger.debug { "Signature#typify(self=#{self}) => #{qualified.rooted_tags.inspect}" } return qualified end end out = super logger.debug { "Signature#typify(self=#{self}) => #{out}" } out end
Calls superclass method
Solargraph::Pin::Callable#typify