diff --git a/lib/puppet_x/puppetlabs/strings/yard/handlers/defined_type_handler.rb b/lib/puppet_x/puppetlabs/strings/yard/handlers/defined_type_handler.rb index 6e0a51a..78bff28 100644 --- a/lib/puppet_x/puppetlabs/strings/yard/handlers/defined_type_handler.rb +++ b/lib/puppet_x/puppetlabs/strings/yard/handlers/defined_type_handler.rb @@ -8,6 +8,23 @@ class PuppetX::PuppetLabs::Strings::YARD::Handlers::DefinedTypeHandler < PuppetX param_tuple << ( a[1].nil? ? nil : a[1].source ) end end + tp = Puppet::Pops::Types::TypeParser.new + param_type_info = {} + statement.pops_obj.parameters.each do |pop_param| + # If the parameter's type expression is nil, default to Any + if pop_param.type_expr == nil + param_type_info[pop_param.name] = Puppet::Pops::Types::TypeFactory.any() + else + begin + param_type_info[pop_param.name] = tp.interpret_any(pop_param.type_expr) + rescue Puppet::ParseError => e + # If the type could not be interpreted insert a prominent warning + param_type_info[pop_param.name] = "Type Error: #{e.message}" + end + end + end + obj.type_info = [param_type_info] + register obj end