diff options
author | w0rp <devw0rp@gmail.com> | 2017-10-25 23:43:09 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-10-25 23:43:09 +0100 |
commit | da365134b537b00966ba6de1b6184e9fd76e4733 (patch) | |
tree | 5c025345cd684c5c057965c2302720b103b8a8c9 | |
parent | 7eb16836d09f3f847165b1e48fc020ecff2e715e (diff) | |
download | ale-da365134b537b00966ba6de1b6184e9fd76e4733.zip |
Fix an exception with notes with no previous message
-rw-r--r-- | autoload/ale/handlers/gcc.vim | 8 | ||||
-rw-r--r-- | test/handler/test_gcc_handler.vader | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/autoload/ale/handlers/gcc.vim b/autoload/ale/handlers/gcc.vim index a3f2a302..b7db09eb 100644 --- a/autoload/ale/handlers/gcc.vim +++ b/autoload/ale/handlers/gcc.vim @@ -82,8 +82,12 @@ function! ale#handlers#gcc#HandleGCCFormat(buffer, lines) abort " If the 'error type' is a note, make it detail related to " the previous error parsed in output if l:match[4] is# 'note' - let l:output[-1]['detail'] = get(l:output[-1], 'detail', '') - \ . s:RemoveUnicodeQuotes(l:match[0]) . "\n" + if !empty(l:output) + let l:output[-1]['detail'] = + \ get(l:output[-1], 'detail', '') + \ . s:RemoveUnicodeQuotes(l:match[0]) . "\n" + endif + continue endif diff --git a/test/handler/test_gcc_handler.vader b/test/handler/test_gcc_handler.vader index be9e90ee..321dbc6e 100644 --- a/test/handler/test_gcc_handler.vader +++ b/test/handler/test_gcc_handler.vader @@ -128,3 +128,11 @@ Execute(The GCC handler should handle syntax errors): \ '<stdin>:4: error: ''cat'' was not declared in this scope', \ '<stdin>:12: error: expected `;'' before ''o''', \ ]) + +Execute(The GCC handler should handle notes with no previous message): + AssertEqual + \ [], + \ ale#handlers#gcc#HandleGCCFormat(347, [ + \ '<stdin>:1:1: note: x', + \ '<stdin>:1:1: note: x', + \ ]) |