Sha256: 42266798403a548afdae93c5521587a5b9f51babe567ca454fa83beb5f3933ed
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
# typed: strict # frozen_string_literal: true module RubyLsp module Requests module Support class Annotation extend T::Sig sig do params( arity: T.any(Integer, T::Range[Integer]), receiver: T::Boolean, ).void end def initialize(arity:, receiver: false) @arity = arity @receiver = receiver end sig { params(node: YARP::CallNode).returns(T::Boolean) } def match?(node) receiver_matches?(node) && arity_matches?(node) end private sig { params(node: YARP::CallNode).returns(T::Boolean) } def receiver_matches?(node) node_receiver = node.receiver (node_receiver && @receiver && node_receiver.location.slice == "T") || (!node_receiver && !@receiver) end sig { params(node: YARP::CallNode).returns(T::Boolean) } def arity_matches?(node) node_arity = node.arguments&.arguments&.size || 0 case @arity when Integer node_arity == @arity when Range @arity.cover?(node_arity) end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ruby-lsp-0.11.2 | lib/ruby_lsp/requests/support/annotation.rb |
ruby-lsp-0.11.1 | lib/ruby_lsp/requests/support/annotation.rb |
ruby-lsp-0.11.0 | lib/ruby_lsp/requests/support/annotation.rb |