Skip to content

Commit 217fffa

Browse files
committed
Update/fix to rust checker.
Switch to --no-trans per rust-lang/rust#3808 Switch source to source-inplace since rustc looks for modules in the source directory. Add a pattern for rustc warnings and add a unit test. Update the rust syntax error unit test.
1 parent cafb71d commit 217fffa

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed

flycheck.el

+4-1
Original file line numberDiff line numberDiff line change
@@ -4655,10 +4655,13 @@ See URL `http://jruby.org/'."
46554655
"A Rust syntax checker using Rust compiler.
46564656
46574657
See URL `http://rust-lang.org'."
4658-
:command ("rustc" "--parse-only" source)
4658+
:command ("rustc" "--no-trans" source-inplace)
46594659
:error-patterns
46604660
((error line-start (file-name) ":" line ":" column ": "
46614661
(one-or-more digit) ":" (one-or-more digit) " error: "
4662+
(message) line-end)
4663+
(warning line-start (file-name) ":" line ":" column ": "
4664+
(one-or-more digit) ":" (one-or-more digit) " warning: "
46624665
(message) line-end))
46634666
:modes rust-mode)
46644667

test/flycheck-test.el

+9-2
Original file line numberDiff line numberDiff line change
@@ -4151,12 +4151,19 @@ Why not:
41514151
'(16 nil warning "Useless use of == in void context."
41524152
:checker ruby-jruby))))
41534153

4154-
(ert-deftest flycheck-define-checker/rust ()
4154+
(ert-deftest flycheck-define-checker/rust-syntax-error ()
41554155
:tags '(builtin-checker external-tool language-rust)
41564156
(skip-unless (flycheck-check-executable 'rust))
41574157
(flycheck-test-should-syntax-check
41584158
"checkers/rust-syntax-error.rs" 'rust-mode
4159-
'(3 10 error "expected `{` but found `bla`" :checker rust)))
4159+
'(4 5 error "unresolved name `bla`." :checker rust)))
4160+
4161+
(ert-deftest flycheck-define-checker/rust-warning ()
4162+
:tags '(builtin-checker external-tool language-rust)
4163+
(skip-unless (flycheck-check-executable 'rust))
4164+
(flycheck-test-should-syntax-check
4165+
"checkers/rust-warning.rs" 'rust-mode
4166+
'(4 9 warning "unused variable: `x`, #[warn(unused_variable)] on by default" :checker rust)))
41604167

41614168
(ert-deftest flycheck-define-checker/sass ()
41624169
:tags '(builtin-checker external-tool language-sass)
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
// A simple syntax error
22

3-
fn main() bla
3+
fn main() {
4+
bla;
5+
}
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// a warning for an unused variable
2+
3+
fn main() {
4+
let x = 5;
5+
}

0 commit comments

Comments
 (0)