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
	
	 Hailee Kenney
						Hailee Kenney