Skip to content

Commit 652ad5c

Browse files
committed
---
yaml --- r: 36759 b: refs/heads/try2 c: 2b5e81c h: refs/heads/master i: 36757: 740a76b 36755: 6b2128a 36751: ba3bab5 v: v3
1 parent 96fcad8 commit 652ad5c

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: eb8fd119c65c67f3b1b8268cc7341c22d39b7b61
55
refs/heads/try: d324a424d8f84b1eb049b12cf34182bda91b0024
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 7f8e302a6a46f175b2f8709b83900288f34164ed
8+
refs/heads/try2: 2b5e81c46470b42a293939aae6ac4b4429e10952
99
refs/heads/incoming: d9317a174e434d4c99fc1a37fd7dc0d2f5328d37
1010
refs/heads/dist-snap: 22efa39382d41b084fde1719df7ae8ce5697d8c9
1111
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596

branches/try2/doc/tutorial-macros.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ match input_2 {
2525
# }
2626
~~~~
2727

28-
This code could become tiresome if repeated many times. However, there is no
29-
straightforward way to rewrite it without the repeated code, using functions
30-
alone. There is a solution, though: defining a macro to solve the problem. Macros are
28+
This code could become tiresome if repeated many times. However, no function
29+
can capture its functionality to make it possible to rewrite the repetition
30+
away. Rust's macro system, however, can eliminate the repetition. Macros are
3131
lightweight custom syntax extensions, themselves defined using the
3232
`macro_rules!` syntax extension. The following `early_return` macro captures
3333
the pattern in the above code:
@@ -65,7 +65,7 @@ macro. It appears on the left-hand side of the `=>` in a macro definition. It
6565
conforms to the following rules:
6666

6767
1. It must be surrounded by parentheses.
68-
2. `$` has special meaning.
68+
2. `$` has special meaning (described below).
6969
3. The `()`s, `[]`s, and `{}`s it contains must balance. For example, `([)` is
7070
forbidden.
7171

@@ -118,10 +118,11 @@ expression, `() => (let $x=$val)` is a macro that expands to a statement, and
118118
`() => (1,2,3)` is a macro that expands to a syntax errror).
119119

120120
Except for permissibility of `$name` (and `$(...)*`, discussed below), the
121-
right-hand side of a macro definition follows the same rules as ordinary
122-
Rust syntax. In particular, macro invocations (including invocations of the
123-
macro currently being defined) are permitted in expression, statement, and
124-
item locations.
121+
right-hand side of a macro definition is ordinary Rust syntax. In particular,
122+
macro invocations (including invocations of the macro currently being defined)
123+
are permitted in expression, statement, and item locations. However, nothing
124+
else about the code is examined or executed by the macro system; execution
125+
still has to wait until runtime.
125126

126127
## Interpolation location
127128

0 commit comments

Comments
 (0)