about summary refs log tree commit diff
path: root/docs/dev
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2021-01-22 15:26:19 +0300
committerAleksey Kladov <aleksey.kladov@gmail.com>2021-01-22 15:29:31 +0300
commit4c92ef03acc5dc983a4ed6c587257e396ef507c0 (patch)
treebd38a2767c17f4b4de2a429c1961b11528d36ee6 /docs/dev
parentf67a2eedf5118990a9aa17c307176b8b355e9759 (diff)
downloadrust-4c92ef03acc5dc983a4ed6c587257e396ef507c0.tar.gz
rust-4c92ef03acc5dc983a4ed6c587257e396ef507c0.zip
Style: use the right string
Diffstat (limited to 'docs/dev')
-rw-r--r--docs/dev/style.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/dev/style.md b/docs/dev/style.md
index 3896493980b..7e6cd49e07f 100644
--- a/docs/dev/style.md
+++ b/docs/dev/style.md
@@ -6,6 +6,9 @@ Our approach to "clean code" is two-fold:
 It is explicitly OK for a reviewer to flag only some nits in the PR, and then send a follow-up cleanup PR for things which are easier to explain by example, cc-ing the original author.
 Sending small cleanup PRs (like renaming a single local variable) is encouraged.
 
+When reviewing pull requests prefer extending this document to leaving
+non-reusable comments on the pull request itself.
+
 # General
 
 ## Scale of Changes
@@ -375,6 +378,15 @@ This allows for exceptionally good performance, but leads to increased compile t
 Runtime performance obeys 80%/20% rule -- only a small fraction of code is hot.
 Compile time **does not** obey this rule -- all code has to be compiled.
 
+## Appropriate String Types
+
+When interfacing with OS APIs, use `OsString`, even if the original source of
+data is utf-8 encoded. **Rationale:** cleanly delineates the boundary when the
+data goes into the OS-land.
+
+Use `AbsPathBuf` and `AbsPath` over `std::Path`. **Rationale:** rust-analyzer is
+a long-lived process which handles several projects at the same time. It is
+important not to leak cwd by accident.
 
 # Premature Pessimization