class TypedRb::Model::TmRangeLiteral
range literals
Attributes
end_range[R]
start_range[R]
Public Class Methods
new(start_range, end_range, node)
click to toggle source
Calls superclass method
TypedRb::Model::Expr::new
# File lib/typed/model/tm_range_literal.rb, line 8 def initialize(start_range, end_range, node) super(node) @start_range = start_range @end_range = end_range end
Public Instance Methods
check_type(context)
click to toggle source
# File lib/typed/model/tm_range_literal.rb, line 14 def check_type(context) start_range_type = start_range.check_type(context) end_range_type = end_range.check_type(context) max_type = start_range_type.max(end_range_type) type_var = Types::Polymorphism::TypeVariable.new('Range:T', :node => node, :gen_name => false, :upper_bound => max_type, :lower_bound => max_type) type_var.bind(max_type) Types::TyGenericObject.new(Range, [type_var], node) end