class RBS::Types::Variable
Attributes
location[R]
name[R]
Public Class Methods
build(v)
click to toggle source
# File rbs-2.7.0/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-2.7.0/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-2.7.0/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-2.7.0/lib/rbs/types.rb, line 121 def ==(other) other.is_a?(Variable) && other.name == name end
Also aliased as: eql?
free_variables(set = Set.new)
click to toggle source
# File rbs-2.7.0/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-2.7.0/lib/rbs/types.rb, line 127 def hash self.class.hash ^ name.hash end
sub(s)
click to toggle source
# File rbs-2.7.0/lib/rbs/types.rb, line 141 def sub(s) s.apply(self) end
to_json(state = _ = nil)
click to toggle source
# File rbs-2.7.0/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-2.7.0/lib/rbs/types.rb, line 160 def to_s(level = 0) name.to_s end