@@ -41,6 +41,36 @@ to run on a cargo project in the current working directory:
41
41
cargo fmt
42
42
```
43
43
44
+
45
+ ## Limitations
46
+
47
+ Rustfmt tries to work on as much Rust code as possible, sometimes, the code
48
+ doesn't even need to compile! As we approach a 1.0 release we are also looking
49
+ to limit areas of instability; in particular, post-1.0, the formatting of most
50
+ code should not change as Rustfmt improves. However, there are some things that
51
+ Rustfmt can't do or can't do well (and thus where formatting might change
52
+ significantly, even post-1.0). We would like to reduce the list of limitations
53
+ over time.
54
+
55
+ The following list enumerates areas where Rustfmt does not work or where the
56
+ stability guarantees do not apply (we don't make a distinction between the two
57
+ because in the future Rustfmt might work on code where it currently does not):
58
+
59
+ * a program where any part of the program does not parse (parsing is an early
60
+ stage of compilation and in Rust includes macro expansion).
61
+ * Macro declarations and uses (current status: some macro declarations and uses
62
+ are formatted).
63
+ * Comments, including any AST node with a comment 'inside' (Rustfmt does not
64
+ currently attempt to format comments, it does format code with comments inside, but that formatting may change in the future).
65
+ * Rust code in code blocks in comments.
66
+ * Any fragment of a program (i.e., stability guarantees only apply to whole
67
+ programs, even where fragments of a program can be formatted today).
68
+ * Code containing non-ascii unicode characters (we believe Rustfmt mostly works
69
+ here, but do not have the test coverage or experience to be 100% sure).
70
+ * Bugs in Rustfmt (like any software, Rustfmt has bugs, we do not consider bug
71
+ fixes to break our stability guarantees).
72
+
73
+
44
74
## Installation
45
75
46
76
```
0 commit comments