class IDL::AST::TemplateModuleReference
def initialize(_name, _enclosure, _params)
def initialize(_name, _enclosure, _params) super(_name, _enclosure) unless _params[:tpl_type].is_a?(IDL::Type::ScopedName) && _params[:tpl_type].is_node?(IDL::AST::TemplateModule) raise "templated module reference type required for #{typename} #{scoped_lm_name}: got #{_params[:tpl_type].typename}" end @template = _params[:tpl_type].resolved_type.node _params[:tpl_params].each do |p| unless (p.is_a?(IDL::Type::ScopedName) || p.is_a?(IDL::Expression::ScopedName)) && p.is_node?(IDL::AST::TemplateParam) raise "invalid template module parameter for template module reference #{typename} #{scoped_lm_name}: #{p.typename}" end end @params = _params[:tpl_params].collect { |p| p.resolved_node } end