diff --git a/src/expressions/block-expr.md b/src/expressions/block-expr.md
index c35c3d678..291634f3c 100644
--- a/src/expressions/block-expr.md
+++ b/src/expressions/block-expr.md
@@ -28,9 +28,6 @@ a following semicolon except if its outer expression is a flow control
expression. Furthermore, extra semicolons between statements are allowed, but
these semicolons do not affect semantics.
-> Note: The semicolon following a statement is not a part of the statement
-> itself. They are invalid when using the `stmt` macro matcher.
-
When evaluating a block expression, each statement, except for item declaration
statements, is executed sequentially. Then the final expression is executed,
if given.
diff --git a/src/expressions/match-expr.md b/src/expressions/match-expr.md
index dcbf69fe7..9a0cb8d61 100644
--- a/src/expressions/match-expr.md
+++ b/src/expressions/match-expr.md
@@ -9,10 +9,10 @@
>
> _MatchArms_ :\
> ( _MatchArm_ `=>`
-> ( [_BlockExpression_] `,`?
-> | [_Expression_] `,` )
+> ( [_ExpressionWithoutBlock_][_Expression_] `,`
+> | [_ExpressionWithBlock_][_Expression_] `,`? )
> )\*\
-> _MatchArm_ `=>` ( [_BlockExpression_] | [_Expression_] ) `,`?
+> _MatchArm_ `=>` [_Expression_] `,`?
>
> _MatchArm_ :\
> [_OuterAttribute_]\* _MatchArmPatterns_ _MatchArmGuard_?
@@ -146,7 +146,6 @@ expression in the same expression contexts as [attributes on block
expressions].
[_Expression_]: ../expressions.md
-[_BlockExpression_]: block-expr.md#block-expressions
[place expression]: ../expressions.md#place-expressions-and-value-expressions
[value expression]: ../expressions.md#place-expressions-and-value-expressions
[_InnerAttribute_]: ../attributes.md
diff --git a/src/statements.md b/src/statements.md
index 9b5bd94f1..5d8e0e95d 100644
--- a/src/statements.md
+++ b/src/statements.md
@@ -69,7 +69,7 @@ from the point of declaration until the end of the enclosing block scope.
> **Syntax**\
> _ExpressionStatement_ :\
> [_ExpressionWithoutBlock_][expression] `;`\
-> | [_ExpressionWithBlock_][expression]
+> | [_ExpressionWithBlock_][expression] `;`?
An *expression statement* is one that evaluates an [expression] and ignores its
result. As a rule, an expression statement's purpose is to trigger the effects