class IDL::Type::Array
Attributes
basetype[R]
sizes[R]
Public Class Methods
new(t, sizes)
click to toggle source
# File lib/ridl/type.rb, line 393 def initialize(t, sizes) raise "Anonymous type definitions are not allowed!" if t.is_anonymous? @basetype = t if sizes.nil? @sizes = [] @typename = t.typename + "[]" else @sizes = sizes @typename = t.typename + sizes.collect { |s| "[#{IDL::Expression::ScopedName === s ? s.node.name : s.to_s}]" }.join end end
Public Instance Methods
instantiate(instantiation_context)
click to toggle source
# File lib/ridl/type.rb, line 434 def instantiate(instantiation_context) self.is_template? ? Type::Array.new(@basetype.instantiate(instantiation_context), @sizes.collect { |sz| sz.instantiate(instantiation_context).value }) : self end
is_anonymous?()
click to toggle source
# File lib/ridl/type.rb, line 422 def is_anonymous? true end
is_complete?()
click to toggle source
# File lib/ridl/type.rb, line 414 def is_complete? @basetype.resolved_type.is_complete? end
is_local?(recurstk = [])
click to toggle source
# File lib/ridl/type.rb, line 418 def is_local?(recurstk = []) @basetype.resolved_type.is_local?(recurstk) end
is_template?()
click to toggle source
# File lib/ridl/type.rb, line 426 def is_template? @sizes.any? { |sz| (sz.is_a?(IDL::Expression::ScopedName) && sz.node.is_a?(IDL::AST::TemplateParam)) } || @basetype.is_template? end
matches?(idltype)
click to toggle source
Calls superclass method
IDL::Type#matches?
# File lib/ridl/type.rb, line 430 def matches?(idltype) super && self.sizes == idltype.sizes && self.basetype.resolved_type.matches?(idltype.basetype.resolved_type) end
narrow(obj)
click to toggle source
# File lib/ridl/type.rb, line 410 def narrow(obj) typeerror(obj) end
typename()
click to toggle source
# File lib/ridl/type.rb, line 406 def typename @typename end