From da365134b537b00966ba6de1b6184e9fd76e4733 Mon Sep 17 00:00:00 2001 From: w0rp Date: Wed, 25 Oct 2017 23:43:09 +0100 Subject: [PATCH] Fix an exception with notes with no previous message --- autoload/ale/handlers/gcc.vim | 8 ++++++-- 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): \ ':4: error: ''cat'' was not declared in this scope', \ ':12: error: expected `;'' before ''o''', \ ]) + +Execute(The GCC handler should handle notes with no previous message): + AssertEqual + \ [], + \ ale#handlers#gcc#HandleGCCFormat(347, [ + \ ':1:1: note: x', + \ ':1:1: note: x', + \ ])