vint
vint copied to clipboard
Crash when parsing "silent redir => foo"
Vint crashes when it tries to parse the following line:
silent redir => foo
Without silent
, it works, with >
instead of =>
it works, too.
I'm using Vint 0.3.11.
This is the error message:
Traceback (most recent call last):
File "/usr/local/bin/vint", line 11, in <module>
load_entry_point('vim-vint==0.3.11', 'console_scripts', 'vint')()
File "/usr/local/lib/python2.7/dist-packages/vint/__init__.py", line 11, in main
init_cli()
File "/usr/local/lib/python2.7/dist-packages/vint/bootstrap.py", line 22, in init_cli
cli.start()
File "/usr/local/lib/python2.7/dist-packages/vint/linting/cli.py", line 27, in start
violations = self._lint_all(env, config_dict)
File "/usr/local/lib/python2.7/dist-packages/vint/linting/cli.py", line 120, in _lint_all
violations += linter.lint_file(file_path)
File "/usr/local/lib/python2.7/dist-packages/vint/linting/linter.py", line 106, in lint_file
root_ast = self._parser.parse_file(path)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/parsing.py", line 61, in parse_file
return self.parse(decoded_and_lf_normalized)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/parsing.py", line 38, in parse
plugin.process(ast)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/plugin/scope_plugin/__init__.py", line 32, in process
processed_ast = self._ref_tester.process(ast)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/plugin/scope_plugin/reference_reachability_tester.py", line 43, in process
scope_linker.process(ast)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/plugin/scope_plugin/scope_linker.py", line 312, in process
attached_ast = id_classifier.attach_identifier_attributes(ast)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/plugin/scope_plugin/identifier_classifier.py", line 122, in attach_identifier_attributes
ast_with_parsed_redir = redir_assignment_parser.process(ast)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/plugin/scope_plugin/redir_assignment_parser.py", line 33, in process
traverse(ast, on_enter=enter_handler)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/traversing.py", line 243, in traverse
node[prop_name])
File "/usr/local/lib/python2.7/dist-packages/vint/ast/traversing.py", line 9, in for_each
call_if_def(func, node)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/traversing.py", line 23, in call_if_def
func(node)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/traversing.py", line 242, in <lambda>
accessor_func(lambda child_node: traverse(child_node, on_enter, on_leave),
File "/usr/local/lib/python2.7/dist-packages/vint/ast/traversing.py", line 246, in traverse
handler(node, on_enter=on_enter, on_leave=on_leave)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/plugin/scope_plugin/redir_assignment_parser.py", line 48, in traverse_redir_content
traverse(node[REDIR_CONTENT], on_enter=on_enter, on_leave=on_leave)
File "/usr/local/lib/python2.7/dist-packages/vint/ast/traversing.py", line 227, in traverse
node_type = NodeType(node['type'])
TypeError: 'NoneType' object has no attribute '__getitem__'