about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2023-06-29 05:48:41 +0200
committerGitHub <noreply@github.com>2023-06-29 05:48:41 +0200
commit7a7ffced6a8e0ad1fc1b9c44ebdb2ebb2ca14030 (patch)
tree4dc822a787dfa53393c9570eb9e6c325367a5497
parentc0e37ad1271042428d8e6c8f40516f76e91c4843 (diff)
parent025dd3aef08d3674be596caf2ce2f260d00871c0 (diff)
downloadrust-7a7ffced6a8e0ad1fc1b9c44ebdb2ebb2ca14030.tar.gz
rust-7a7ffced6a8e0ad1fc1b9c44ebdb2ebb2ca14030.zip
Rollup merge of #113143 - joshtriplett:style-guide-narrow-dereference-guidance, r=calebcartwright
style-guide: Narrow guidance about references and dereferencing

The style guide advises "prefer dereferencing to taking references", but
doesn't give guidance on when that "preference" should get overridden by
other considerations. Give an example of when it's fine to ignore
that advice.
-rw-r--r--src/doc/style-guide/src/expressions.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/doc/style-guide/src/expressions.md b/src/doc/style-guide/src/expressions.md
index 8271b42da4c..f5e37b6c46f 100644
--- a/src/doc/style-guide/src/expressions.md
+++ b/src/doc/style-guide/src/expressions.md
@@ -288,7 +288,8 @@ and other assignment operators such as `+=` or `*=`).
 
 For comparison operators, because for `T op U`, `&T op &U` is also implemented:
 if you have `t: &T`, and `u: U`, prefer `*t op u` to `t op &u`. In general,
-within expressions, prefer dereferencing to taking references.
+within expressions, prefer dereferencing to taking references, unless necessary
+(e.g. to avoid an unnecessarily expensive operation).
 
 Use parentheses liberally, do not necessarily elide them due to precedence.
 Tools should not automatically insert or remove parentheses. Do not use spaces