Merge pull request #62 from iankronquist/type-warnings-fixes
Last PR for the Summer
This commit is contained in:
commit
4e1e8cf36d
|
@ -30,8 +30,9 @@ class Puppet4xFunctionHandler < YARD::Handlers::Ruby::Base
|
|||
return [] if command.children.length < 2 or command.children[1].children.length < 2
|
||||
type_specifier = command.children[1]
|
||||
# the parameter signature is the first child of the specifier and an
|
||||
# identifier. Convert it to a string.
|
||||
param_signature = type_specifier.children[0].source
|
||||
# identifier. Jump to the content inside the quotes and convert it to a
|
||||
# string.
|
||||
param_signature = type_specifier.children[0].jump(:tstring_content).source
|
||||
# The parameter name is the second child of the specifier and a symbol.
|
||||
# convert it to a string.
|
||||
param_name_ident = type_specifier.jump :ident
|
||||
|
|
|
@ -118,7 +118,7 @@ class TemplateHelper
|
|||
function.keys.each do |key|
|
||||
if function[key].class == String
|
||||
begin
|
||||
instantiated = type_parser.parse function[key].gsub(/'/, '').gsub(/"/, "")
|
||||
instantiated = type_parser.parse function[key]
|
||||
rescue Puppet::ParseError
|
||||
# Likely the result of a malformed type
|
||||
next
|
||||
|
@ -132,15 +132,15 @@ class TemplateHelper
|
|||
param_instantiated = type_parser.parse type
|
||||
if not type_calculator.assignable? instantiated, param_instantiated
|
||||
actual_types = object.type_info.map do |sig|
|
||||
sig[key]
|
||||
end
|
||||
sig[key].to_s if sig[key]
|
||||
end.compact
|
||||
# Get the locations where the object can be found. We only care about
|
||||
# the first one.
|
||||
locations = object.files
|
||||
warning = <<-EOS
|
||||
[warn]: @param tag types do not match the code. The #{param[:name]}
|
||||
parameter is declared as types #{param[:types]} in the docstring,
|
||||
but the code specifies the types #{actual_types.inspect}
|
||||
but the code specifies the types #{actual_types}
|
||||
EOS
|
||||
|
||||
# If the locations aren't in the shape we expect then report that
|
||||
|
|
|
@ -79,7 +79,7 @@ Puppet Types: 0 ( 0 undocumented)
|
|||
Puppet Providers: 0 ( 0 undocumented)
|
||||
100.00% documented
|
||||
output
|
||||
expected_stderr = "[warn]: @param tag types do not match the code. The ident\n parameter is declared as types [\"Float\"] in the docstring,\n but the code specifies the types [Puppet::Pops::Types::PStringType]\n in the file manifests/init.pp near line 2.\n"
|
||||
expected_stderr = "[warn]: @param tag types do not match the code. The ident\n parameter is declared as types [\"Float\"] in the docstring,\n but the code specifies the types [\"String\"]\n in the file manifests/init.pp near line 2.\n"
|
||||
|
||||
expect {
|
||||
expect {
|
||||
|
|
Loading…
Reference in New Issue