Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit f1b1ed7

Browse files
committedMar 13, 2023
Auto merge of #108471 - clubby789:unbox-the-syntax, r=Nilstrieb,est31
Remove `box_syntax` r? `@Nilstrieb` This removes the feature `box_syntax`, which allows the use of `box <expr>` to create a Box, and finalises removing use of the feature from the compiler. `box_patterns` (allowing the use of `box <pat>` in a pattern) is unaffected. It also removes `ast::ExprKind::Box` - the only way to create a 'box' expression now is with the rustc-internal `#[rustc_box]` attribute. As a temporary measure to help users move away, `box <expr>` now parses the inner expression, and emits a `MachineApplicable` lint to replace it with `Box::new` Closes #49733
2 parents d610b0c + 8b186df commit f1b1ed7

File tree

110 files changed

+979
-1054
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+979
-1054
lines changed
 

‎compiler/rustc_ast/src/ast.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,7 +1230,6 @@ impl Expr {
12301230

12311231
pub fn precedence(&self) -> ExprPrecedence {
12321232
match self.kind {
1233-
ExprKind::Box(_) => ExprPrecedence::Box,
12341233
ExprKind::Array(_) => ExprPrecedence::Array,
12351234
ExprKind::ConstBlock(_) => ExprPrecedence::ConstBlock,
12361235
ExprKind::Call(..) => ExprPrecedence::Call,
@@ -1291,8 +1290,7 @@ impl Expr {
12911290
/// To a first-order approximation, is this a pattern?
12921291
pub fn is_approximately_pattern(&self) -> bool {
12931292
match &self.peel_parens().kind {
1294-
ExprKind::Box(_)
1295-
| ExprKind::Array(_)
1293+
ExprKind::Array(_)
12961294
| ExprKind::Call(_, _)
12971295
| ExprKind::Tup(_)
12981296
| ExprKind::Lit(_)
@@ -1363,8 +1361,6 @@ pub struct StructExpr {
13631361

13641362
#[derive(Clone, Encodable, Decodable, Debug)]
13651363
pub enum ExprKind {
1366-
/// A `box x` expression.
1367-
Box(P<Expr>),
13681364
/// An array (`[a, b, c, d]`)
13691365
Array(ThinVec<P<Expr>>),
13701366
/// Allow anonymous constants from an inline `const` block

‎compiler/rustc_ast/src/mut_visit.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1316,7 +1316,6 @@ pub fn noop_visit_expr<T: MutVisitor>(
13161316
vis: &mut T,
13171317
) {
13181318
match kind {
1319-
ExprKind::Box(expr) => vis.visit_expr(expr),
13201319
ExprKind::Array(exprs) => visit_thin_exprs(exprs, vis),
13211320
ExprKind::ConstBlock(anon_const) => {
13221321
vis.visit_anon_const(anon_const);

0 commit comments

Comments
 (0)
Please sign in to comment.