This directory contains snippets of code that should yield a warning/note/help/error at compilation. Syntax of annotations is described in rust documentation. For more information check out compiletest crate.

To run compile tests issue cargo +nightly --test --features compiletest.

Notes on working with compiletest crate

  • Currently code that is inside macro should not be annotated, as compiletest crate cannot deal with the fact that macro invocations effectively changes line numbering. To prevent this add a // error-pattern:<your error message here> on the top of the file and make sure that you set deny lint level if you want to test compiler message different than error.
  • compiletest crate by default sets allow(dead_code) lint level so make sure that you change it to something suiting your needs even if the warning is issued prior to any macro invocation.
  • If you get a message error: 0 unexpected errors found, 1 expected errors not found despite the fact that some error was bound to occur don‘t worry - it’s a known issue in the compiletest crate and your error was probably not registered - make sure that your annotations are correct and that you are setting correct lint levels.