aboutsummaryrefslogtreecommitdiff
path: root/docs/dev
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-02-02 13:09:21 +0000
committerGitHub <[email protected]>2021-02-02 13:09:21 +0000
commit96f9f0741f0b1ba345f35637cd5b21f5fad2a354 (patch)
tree1c3f2e2cda9b579e70ee6b6c55a89b4428d0170b /docs/dev
parent8720f7f14688257d320de44e1354c62fce1a6bcf (diff)
parent283c3b0133ec4d3217a29547a45092d6e64e4935 (diff)
Merge #7519
7519: add useless types to the styleguide r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'docs/dev')
-rw-r--r--docs/dev/style.md14
1 files changed, 14 insertions, 0 deletions
diff --git a/docs/dev/style.md b/docs/dev/style.md
index 0c5e2ad33..e2f1b6996 100644
--- a/docs/dev/style.md
+++ b/docs/dev/style.md
@@ -267,6 +267,20 @@ Non-local code properties degrade under change, privacy makes invariant local.
267Borrowed own data discloses irrelevant details about origin of data. 267Borrowed own data discloses irrelevant details about origin of data.
268Irrelevant (neither right nor wrong) things obscure correctness. 268Irrelevant (neither right nor wrong) things obscure correctness.
269 269
270## Useless Types
271
272More generally, always prefer types on the left
273
274```rust
275// GOOD BAD
276&[T] &Vec<T>
277&str &String
278Option<&T> &Option<T>
279```
280
281**Rationale:** types on the left are strictly more general.
282Even when generality is not required, consistency is important.
283
270## Constructors 284## Constructors
271 285
272Prefer `Default` to zero-argument `new` function 286Prefer `Default` to zero-argument `new` function