Class: Yoda::Typing::Types::Var

Inherits:
Base
  • Object
show all
Defined in:
lib/yoda/typing/types/var.rb

Instance Method Summary collapse

Constructor Details

#initialize(label = nil, ref = nil) ⇒ Var

Returns a new instance of Var.



7
8
9
10
11
# File 'lib/yoda/typing/types/var.rb', line 7

def initialize(label = nil, ref = nil)
  @id = SecureRandom.alphanumeric(20)
  @label = label
  @ref = ref
end

Instance Method Details

#refBase?

Returns:



24
25
26
# File 'lib/yoda/typing/types/var.rb', line 24

def ref
  @ref&.ref
end

#ref=(new_ref) ⇒ Object

Parameters:



14
15
16
17
# File 'lib/yoda/typing/types/var.rb', line 14

def ref=(new_ref)
  return if new_ref == self
  @ref = new_ref
end

#reference?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/yoda/typing/types/var.rb', line 19

def reference?
  true
end

#to_expressionObject



28
29
30
# File 'lib/yoda/typing/types/var.rb', line 28

def to_expression
  ref&.to_expression || Store::TypeExpressions::UnknownType.new
end

#to_type_stringObject



32
33
34
# File 'lib/yoda/typing/types/var.rb', line 32

def to_type_string
  ref ? ref.to_type_string : "var(#{label}:#{id})"
end