class RBS::Types::Variable

Attributes

location[R]
name[R]

Public Class Methods

build(v) click to toggle source
# File rbs-3.2.2/lib/rbs/types.rb, line 145
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.2.2/lib/rbs/types.rb, line 155
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.2.2/lib/rbs/types.rb, line 116
def initialize(name:, location:)
  @name = name
  @location = location
end

Public Instance Methods

==(other) click to toggle source
# File rbs-3.2.2/lib/rbs/types.rb, line 121
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.2.2/lib/rbs/types.rb, line 131
def free_variables(set = Set.new)
  set.tap do
    set << name
  end
end
hash() click to toggle source
# File rbs-3.2.2/lib/rbs/types.rb, line 127
def hash
  self.class.hash ^ name.hash
end
sub(s) click to toggle source
# File rbs-3.2.2/lib/rbs/types.rb, line 141
def sub(s)
  s.apply(self)
end
to_json(state = _ = nil) click to toggle source
# File rbs-3.2.2/lib/rbs/types.rb, line 137
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.2.2/lib/rbs/types.rb, line 160
def to_s(level = 0)
  name.to_s
end