Sha256: 0a22063bb5b8b03501086a6791f6c894507917ab71912beda213c05b03a90ba1
Contents?: true
Size: 820 Bytes
Versions: 57
Compression:
Stored size: 820 Bytes
Contents
# typed: strict # frozen_string_literal: true module RubyLsp class ParameterScope extend T::Sig sig { returns(T.nilable(ParameterScope)) } attr_reader :parent sig { params(parent: T.nilable(ParameterScope)).void } def initialize(parent = nil) @parent = parent @parameters = T.let(Set.new, T::Set[Symbol]) end sig { params(name: T.any(String, Symbol)).void } def <<(name) @parameters << name.to_sym end sig { params(name: T.any(Symbol, String)).returns(Symbol) } def type_for(name) parameter?(name) ? :parameter : :variable end sig { params(name: T.any(Symbol, String)).returns(T::Boolean) } def parameter?(name) sym = name.to_sym @parameters.include?(sym) || (!@parent.nil? && @parent.parameter?(sym)) end end end
Version data entries
57 entries across 57 versions & 2 rubygems