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
|
return [] if command.children.length < 2 or command.children[1].children.length < 2
|
||||||
type_specifier = command.children[1]
|
type_specifier = command.children[1]
|
||||||
# the parameter signature is the first child of the specifier and an
|
# the parameter signature is the first child of the specifier and an
|
||||||
# identifier. Convert it to a string.
|
# identifier. Jump to the content inside the quotes and convert it to a
|
||||||
param_signature = type_specifier.children[0].source
|
# string.
|
||||||
|
param_signature = type_specifier.children[0].jump(:tstring_content).source
|
||||||
# The parameter name is the second child of the specifier and a symbol.
|
# The parameter name is the second child of the specifier and a symbol.
|
||||||
# convert it to a string.
|
# convert it to a string.
|
||||||
param_name_ident = type_specifier.jump :ident
|
param_name_ident = type_specifier.jump :ident
|
||||||
|
|
|
@ -118,7 +118,7 @@ class TemplateHelper
|
||||||
function.keys.each do |key|
|
function.keys.each do |key|
|
||||||
if function[key].class == String
|
if function[key].class == String
|
||||||
begin
|
begin
|
||||||
instantiated = type_parser.parse function[key].gsub(/'/, '').gsub(/"/, "")
|
instantiated = type_parser.parse function[key]
|
||||||
rescue Puppet::ParseError
|
rescue Puppet::ParseError
|
||||||
# Likely the result of a malformed type
|
# Likely the result of a malformed type
|
||||||
next
|
next
|
||||||
|
@ -132,15 +132,15 @@ class TemplateHelper
|
||||||
param_instantiated = type_parser.parse type
|
param_instantiated = type_parser.parse type
|
||||||
if not type_calculator.assignable? instantiated, param_instantiated
|
if not type_calculator.assignable? instantiated, param_instantiated
|
||||||
actual_types = object.type_info.map do |sig|
|
actual_types = object.type_info.map do |sig|
|
||||||
sig[key]
|
sig[key].to_s if sig[key]
|
||||||
end
|
end.compact
|
||||||
# Get the locations where the object can be found. We only care about
|
# Get the locations where the object can be found. We only care about
|
||||||
# the first one.
|
# the first one.
|
||||||
locations = object.files
|
locations = object.files
|
||||||
warning = <<-EOS
|
warning = <<-EOS
|
||||||
[warn]: @param tag types do not match the code. The #{param[:name]}
|
[warn]: @param tag types do not match the code. The #{param[:name]}
|
||||||
parameter is declared as types #{param[:types]} in the docstring,
|
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
|
EOS
|
||||||
|
|
||||||
# If the locations aren't in the shape we expect then report that
|
# 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)
|
Puppet Providers: 0 ( 0 undocumented)
|
||||||
100.00% documented
|
100.00% documented
|
||||||
output
|
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 {
|
||||||
expect {
|
expect {
|
||||||
|
|
Loading…
Reference in New Issue