class RBS::Types::Variable

Attributes

location[R]
name[R]

Public Class Methods

build(v) click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 166
def self.build(v)
  case v
  when Symbol
    new(name: v, location: nil)
  when Array
    v.map {|x| new(name: x, location: nil) }
  end
end
fresh(v = :T) click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 176
def self.fresh(v = :T)
  @@count = @@count + 1
  new(name: :"#{v}@#{@@count}", location: nil)
end
new(name:, location:) click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 137
def initialize(name:, location:)
  @name = name
  @location = location
end

Public Instance Methods

==(other) click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 142
def ==(other)
  other.is_a?(Variable) && other.name == name
end
Also aliased as: eql?
eql?(other)
Alias for: ==
free_variables(set = Set.new) click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 152
def free_variables(set = Set.new)
  set.tap do
    set << name
  end
end
has_classish_type?() click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 191
def has_classish_type?
  false
end
has_self_type?() click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 187
def has_self_type?
  false
end
hash() click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 148
def hash
  self.class.hash ^ name.hash
end
sub(s) click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 162
def sub(s)
  s.apply(self)
end
to_json(state = _ = nil) click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 158
def to_json(state = _ = nil)
  { class: :variable, name: name, location: location }.to_json(state)
end
to_s(level = 0) click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 181
def to_s(level = 0)
  name.to_s
end
with_nonreturn_void?() click to toggle source
# File rbs-3.6.1/lib/rbs/types.rb, line 195
def with_nonreturn_void?
  false
end