class TypedRb::Model::TmConst
A constant expression
Attributes
val[R]
Public Class Methods
new(val, node)
click to toggle source
Calls superclass method
TypedRb::Model::Expr::new
# File lib/typed/model/tm_const.rb, line 9 def initialize(val, node) super(node) @val = val end
Public Instance Methods
check_type(_context)
click to toggle source
# File lib/typed/model/tm_const.rb, line 14 def check_type(_context) value_ruby_type = Types::TypingContext.find_namespace(@val) type = if value_ruby_type.instance_of?(Class) Runtime::TypeParser.parse_singleton_object_type(value_ruby_type.name) elsif value_ruby_type.instance_of?(Module) Runtime::TypeParser.parse_existential_object_type(value_ruby_type.name) else # Must be a user defined constant Types::TyObject.new(value_ruby_type.class) end type.node = node type end