Skip to content

Commit 188f3eb

Browse files
committed
Rollup merge of #24863 - dhardy:patch-1, r=steveklabnik
Remove the name "multi-line string literal" since the rule appears to affect each line-break individually rather than the whole string literal. Re-word, and remove the stray reference to raw strings.
2 parents be569bc + cf650a2 commit 188f3eb

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/doc/reference.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,13 @@ which must be _escaped_ by a preceding `U+005C` character (`\`).
192192

193193
A _string literal_ is a sequence of any Unicode characters enclosed within two
194194
`U+0022` (double-quote) characters, with the exception of `U+0022` itself,
195-
which must be _escaped_ by a preceding `U+005C` character (`\`), or a _raw
196-
string literal_.
195+
which must be _escaped_ by a preceding `U+005C` character (`\`).
197196

198-
A multi-line string literal may be defined by terminating each line with a
199-
`U+005C` character (`\`) immediately before the newline. This causes the
200-
`U+005C` character, the newline, and all whitespace at the beginning of the
201-
next line to be ignored.
197+
Line-break characters are allowed in string literals. Normally they represent
198+
themselves (i.e. no translation), but as a special exception, when a `U+005C`
199+
character (`\`) occurs immediately before the newline, the `U+005C` character,
200+
the newline, and all whitespace at the beginning of the next line are ignored.
201+
Thus `a` and `b` are equal:
202202

203203
```rust
204204
let a = "foobar";
@@ -366,11 +366,19 @@ A _floating-point literal_ has one of two forms:
366366
optionally followed by another decimal literal, with an optional _exponent_.
367367
* A single _decimal literal_ followed by an _exponent_.
368368

369-
By default, a floating-point literal has a generic type, and, like integer
370-
literals, the type must be uniquely determined from the context. There are two valid
369+
Like integer literals, a floating-point literal may be followed by a
370+
suffix, so long as the pre-suffix part does not end with `U+002E` (`.`).
371+
The suffix forcibly sets the type of the literal. There are two valid
371372
_floating-point suffixes_, `f32` and `f64` (the 32-bit and 64-bit floating point
372373
types), which explicitly determine the type of the literal.
373374

375+
The type of an _unsuffixed_ floating-point literal is determined by type
376+
inference. If a floating-point type can be _uniquely_ determined from the
377+
surrounding program context, the unsuffixed floating-point literal has that type.
378+
If the program context underconstrains the type, it defaults to double-precision `f64`;
379+
if the program context overconstrains the type, it is considered a static type
380+
error.
381+
374382
Examples of floating-point literals of various forms:
375383

376384
```

0 commit comments

Comments
 (0)