diff --git a/autoload/ale/handlers/gcc.vim b/autoload/ale/handlers/gcc.vim index 09a1848d..eb42b27a 100644 --- a/autoload/ale/handlers/gcc.vim +++ b/autoload/ale/handlers/gcc.vim @@ -99,17 +99,12 @@ function! ale#handlers#gcc#HandleGCCFormat(buffer, lines) abort continue endif - let l:obj = { + call add(l:output, { \ 'lnum': l:match[2] + 0, \ 'col': l:match[3] + 0, \ 'type': l:match[4] =~# 'error' ? 'E' : 'W', \ 'text': s:RemoveUnicodeQuotes(l:match[5]), - \} - - " clang++ and some other tools can output duplicated errors. - if empty(l:output) || l:output[-1] != l:obj - call add(l:output, l:obj) - endif + \}) endif endfor diff --git a/test/handler/test_gcc_handler.vader b/test/handler/test_gcc_handler.vader index 2934bbee..72b7c541 100644 --- a/test/handler/test_gcc_handler.vader +++ b/test/handler/test_gcc_handler.vader @@ -94,29 +94,3 @@ Execute(The GCC handler shouldn't complain about #pragma once for headers): \ ale#handlers#gcc#HandleGCCFormat(347, [ \ ':1:1: warning: #pragma once in main file [enabled by default]', \ ]) - -Execute(The GCC handler should eliminate duplicated clang errors): - AssertEqual - \ [ - \ {'lnum': 2, 'col': 10, 'type': 'E', 'text': '''a.h'' file not found'}, - \ {'lnum': 4, 'col': 10, 'type': 'E', 'text': 'empty filename'}, - \ ], - \ ale#handlers#gcc#HandleGCCFormat(347, [ - \ ':2:10: fatal error: ''a.h'' file not found', - \ '#include "a.h"', - \ ' ^~~~~', - \ '', - \ ':2:10: fatal error: ''a.h'' file not found', - \ '#include "a.h"', - \ ' ^~~~~', - \ '', - \ ':4:10: error: empty filename', - \ '', - \ ':4:10: error: empty filename', - \ '#include ""', - \ ' ^', - \ '', - \ ':4:10: error: empty filename', - \ '#include ""', - \ ' ^', - \ ])