about summary refs log tree commit diff
path: root/docs
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2021-04-13 12:20:54 +0300
committerAleksey Kladov <aleksey.kladov@gmail.com>2021-04-13 12:21:59 +0300
commitdb2a989565ea2b3d3c06e34cd385cfb574a32fbb (patch)
tree27d88010e9441d2af973f04c9b979220b0b07ebf /docs
parent06a633ff421b764428bb946ced914e59532fe13f (diff)
downloadrust-db2a989565ea2b3d3c06e34cd385cfb574a32fbb.tar.gz
rust-db2a989565ea2b3d3c06e34cd385cfb574a32fbb.zip
internal: don't use `#[should_panic]` for tests
Diffstat (limited to 'docs')
-rw-r--r--docs/dev/style.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/docs/dev/style.md b/docs/dev/style.md
index 468dedff20d..7c47c26b2d4 100644
--- a/docs/dev/style.md
+++ b/docs/dev/style.md
@@ -152,6 +152,16 @@ Do not reuse marks between several tests.
 
 **Rationale:** marks provide an easy way to find the canonical test for each bit of code.
 This makes it much easier to understand.
+More than one mark per test / code branch doesn't add significantly to understanding.
+
+## `#[should_panic]`
+
+Do not use `#[should_panic]` tests.
+Instead, explicitly check for `None`, `Err`, etc.
+
+**Rationale:**a `#[should_panic]` is a tool for library authors, to makes sure that API does not fail silently, when misused.
+`rust-analyzer` is not a library, we don't need to test for API misuse, and we have to handle any user input without panics.
+Panic messages in the logs from the `#[should_panic]` tests are confusing.
 
 ## Function Preconditions