Experimentally add *heterogeneous* try blocks
148725 moved the default to being homogeneous; this adds heterogeneous ones back under an obvious-bikeshed syntax so people can experiment with that as well. Essentially resolves 149025 by letting them move to this syntax instead.
This commit is contained in:
parent
ba2142a19c
commit
4033d19b79
21 changed files with 278 additions and 59 deletions
|
|
@ -1806,8 +1806,14 @@ pub enum ExprKind {
|
|||
/// A use expression (`x.use`). Span is of use keyword.
|
||||
Use(Box<Expr>, Span),
|
||||
|
||||
/// A try block (`try { ... }`).
|
||||
TryBlock(Box<Block>),
|
||||
/// A try block (`try { ... }`), if the type is `None`, or
|
||||
/// A try block (`try bikeshed Ty { ... }`) if the type is `Some`.
|
||||
///
|
||||
/// Note that `try bikeshed` is a *deliberately ridiculous* placeholder
|
||||
/// syntax to avoid deciding what keyword or symbol should go there.
|
||||
/// It's that way for experimentation only; an RFC to decide the final
|
||||
/// semantics and syntax would be needed to put it on stabilization-track.
|
||||
TryBlock(Box<Block>, Option<Box<Ty>>),
|
||||
|
||||
/// An assignment (`a = foo()`).
|
||||
/// The `Span` argument is the span of the `=` token.
|
||||
|
|
|
|||
|
|
@ -1048,8 +1048,8 @@ macro_rules! common_visitor_and_walkers {
|
|||
visit_visitable!($($mut)? vis, kind),
|
||||
ExprKind::Try(subexpression) =>
|
||||
visit_visitable!($($mut)? vis, subexpression),
|
||||
ExprKind::TryBlock(body) =>
|
||||
visit_visitable!($($mut)? vis, body),
|
||||
ExprKind::TryBlock(body, optional_type) =>
|
||||
visit_visitable!($($mut)? vis, body, optional_type),
|
||||
ExprKind::Lit(token) =>
|
||||
visit_visitable!($($mut)? vis, token),
|
||||
ExprKind::IncludedBytes(bytes) =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue