Markdown indented code blocks (#20473)
* Implement Markdown indented code blocks
Additional indentation of 4 spaces makes a block an "indented code block"
(monospaced text without syntax highlighting).
Also `::` RST syntax for code blocks is disabled.
So instead of
```rst
see::
Some code
```
the code block should be written as
```markdown
see:
Some code
```
* Migrate RST literal blocks :: to Markdown's ones
This commit is contained in:
parent
594e93a66b
commit
6505bd347d
33 changed files with 697 additions and 603 deletions
|
|
@ -358,58 +358,57 @@ Rewrite rules
|
|||
The current implementation follows strategy (2). This means that resources are
|
||||
destroyed at the scope exit.
|
||||
|
||||
::
|
||||
|
||||
var x: T; stmts
|
||||
--------------- (destroy-var)
|
||||
var x: T; try stmts
|
||||
finally: `=destroy`(x)
|
||||
var x: T; stmts
|
||||
--------------- (destroy-var)
|
||||
var x: T; try stmts
|
||||
finally: `=destroy`(x)
|
||||
|
||||
|
||||
g(f(...))
|
||||
------------------------ (nested-function-call)
|
||||
g(let tmp;
|
||||
bitwiseCopy tmp, f(...);
|
||||
tmp)
|
||||
finally: `=destroy`(tmp)
|
||||
g(f(...))
|
||||
------------------------ (nested-function-call)
|
||||
g(let tmp;
|
||||
bitwiseCopy tmp, f(...);
|
||||
tmp)
|
||||
finally: `=destroy`(tmp)
|
||||
|
||||
|
||||
x = f(...)
|
||||
------------------------ (function-sink)
|
||||
`=sink`(x, f(...))
|
||||
x = f(...)
|
||||
------------------------ (function-sink)
|
||||
`=sink`(x, f(...))
|
||||
|
||||
|
||||
x = lastReadOf z
|
||||
------------------ (move-optimization)
|
||||
`=sink`(x, z)
|
||||
wasMoved(z)
|
||||
x = lastReadOf z
|
||||
------------------ (move-optimization)
|
||||
`=sink`(x, z)
|
||||
wasMoved(z)
|
||||
|
||||
|
||||
v = v
|
||||
------------------ (self-assignment-removal)
|
||||
discard "nop"
|
||||
v = v
|
||||
------------------ (self-assignment-removal)
|
||||
discard "nop"
|
||||
|
||||
|
||||
x = y
|
||||
------------------ (copy)
|
||||
`=copy`(x, y)
|
||||
x = y
|
||||
------------------ (copy)
|
||||
`=copy`(x, y)
|
||||
|
||||
|
||||
f_sink(g())
|
||||
----------------------- (call-to-sink)
|
||||
f_sink(g())
|
||||
f_sink(g())
|
||||
----------------------- (call-to-sink)
|
||||
f_sink(g())
|
||||
|
||||
|
||||
f_sink(notLastReadOf y)
|
||||
-------------------------- (copy-to-sink)
|
||||
(let tmp; `=copy`(tmp, y);
|
||||
f_sink(tmp))
|
||||
f_sink(notLastReadOf y)
|
||||
-------------------------- (copy-to-sink)
|
||||
(let tmp; `=copy`(tmp, y);
|
||||
f_sink(tmp))
|
||||
|
||||
|
||||
f_sink(lastReadOf y)
|
||||
----------------------- (move-to-sink)
|
||||
f_sink(y)
|
||||
wasMoved(y)
|
||||
f_sink(lastReadOf y)
|
||||
----------------------- (move-to-sink)
|
||||
f_sink(y)
|
||||
wasMoved(y)
|
||||
|
||||
|
||||
Object and array construction
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue