summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-05-04 23:34:52 +0100
committerw0rp <devw0rp@gmail.com>2017-05-04 23:34:52 +0100
commitc2a0847f997f70cf529f46ad80e4d2d4283fd7b6 (patch)
tree464a2a625a6a58bba25d6fa70032f62ab423235d
parent8e70dc14f2a51f0ef7acb64c3ef9850cb4f23e64 (diff)
downloadale-c2a0847f997f70cf529f46ad80e4d2d4283fd7b6.zip
#502 Parse more undefined symbol errors
-rw-r--r--ale_linters/java/javac.vim2
-rw-r--r--test/handler/test_javac_handler.vader11
2 files changed, 11 insertions, 2 deletions
diff --git a/ale_linters/java/javac.vim b/ale_linters/java/javac.vim
index 4dbc6cb6..5a109997 100644
--- a/ale_linters/java/javac.vim
+++ b/ale_linters/java/javac.vim
@@ -86,7 +86,7 @@ function! ale_linters#java#javac#Handle(buffer, lines) abort
" Main.java:16: error: ';' expected
let l:pattern = '\v^.*:(\d+): (.+):(.+)$'
- let l:symbol_pattern = '\v^ +symbol: *(class) +([^ ]+)'
+ let l:symbol_pattern = '\v^ +symbol: *(class|method) +([^ ]+)'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, [l:pattern, l:symbol_pattern])
diff --git a/test/handler/test_javac_handler.vader b/test/handler/test_javac_handler.vader
index 2c0723b8..d190ab78 100644
--- a/test/handler/test_javac_handler.vader
+++ b/test/handler/test_javac_handler.vader
@@ -27,6 +27,11 @@ Execute(The javac handler should handle cannot find symbol errors):
\ 'text': 'warning: some warning',
\ 'type': 'W',
\ },
+ \ {
+ \ 'lnum': 42,
+ \ 'text': 'error: cannot find symbol: bar()',
+ \ 'type': 'E',
+ \ },
\ ],
\ ale_linters#java#javac#Handle(347, [
\ '/tmp/vLPr4Q5/33/foo.java:1: error: some error',
@@ -41,5 +46,9 @@ Execute(The javac handler should handle cannot find symbol errors):
\ ' symbol: class BadName2',
\ ' location: class Bar',
\ '/tmp/vLPr4Q5/33/foo.java:37: warning: some warning',
- \ '4 errors',
+ \ '/tmp/vLPr4Q5/264/foo.java:42: error: cannot find symbol',
+ \ ' this.bar();',
+ \ ' ^',
+ \ ' symbol: method bar()',
+ \ '5 errors',
\ ])