class TypedRb::Model::TmSClass
Class
expression
Attributes
body[R]
class_name[R]
super_class_name[R]
Public Class Methods
new(class_name, body, node)
click to toggle source
Calls superclass method
TypedRb::Model::Expr::new
# File lib/typed/model/tm_s_class.rb, line 9 def initialize(class_name, body, node) super(node) @class_name = class_name @body = body end
Public Instance Methods
check_type(context)
click to toggle source
# File lib/typed/model/tm_s_class.rb, line 15 def check_type(context) if class_name != :self class_ruby_type = Types::TypingContext.find_namespace(class_name) class_type = Runtime::TypeParser.parse_singleton_object_type(class_ruby_type.name) class_type.node = node context = context.add_binding(:self, class_type) end Types::TypingContext.push_context(:sclass) res = body.check_type(context) Types::TypingContext.pop_context res end