Skip to content

Commit 6ec9bbc

Browse files
fix(es2018): Add wildcard patterns for non-exhaustive enums in object_rest_spread
When compiling with `swc_ast_unknown` cfg flag, several enums become non-exhaustive and require wildcard patterns to handle unknown variants. Fixed non-exhaustive pattern matches in: - PropOrSpread enum (line 112) - ObjectPatProp enum (line 188) - PropName enum (lines 211, 297, 419, 489, 609) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 213e733 commit 6ec9bbc

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

crates/swc_ecma_transformer/src/es2018/object_rest_spread.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ impl ObjectRestSpreadPass {
144144
// Add spread expression
145145
args.push(ExprOrSpread { spread: None, expr });
146146
}
147+
#[cfg(swc_ast_unknown)]
148+
_ => unreachable!("unknown PropOrSpread variant"),
147149
}
148150
}
149151

@@ -187,6 +189,8 @@ impl ObjectRestSpreadPass {
187189
ObjectPatProp::KeyValue(kv) => Some(kv.key.clone()),
188190
ObjectPatProp::Assign(a) => Some(PropName::Ident(IdentName::from(a.key.clone()))),
189191
ObjectPatProp::Rest(_) => None,
192+
#[cfg(swc_ast_unknown)]
193+
_ => unreachable!("unknown ObjectPatProp variant"),
190194
})
191195
.collect();
192196

@@ -218,6 +222,8 @@ impl ObjectRestSpreadPass {
218222
PropName::Num(n) => Expr::Lit(Lit::Num(n.clone())),
219223
PropName::Computed(c) => *c.expr.clone(),
220224
PropName::BigInt(b) => Expr::Lit(Lit::BigInt(b.clone())),
225+
#[cfg(swc_ast_unknown)]
226+
_ => unreachable!("unknown PropName variant"),
221227
};
222228
Some(ExprOrSpread {
223229
spread: None,
@@ -302,6 +308,8 @@ impl VisitMutHook<TraverseCtx> for ObjectRestSpreadPass {
302308
PropName::Num(n) => Expr::Lit(Lit::Num(n.clone())),
303309
PropName::Computed(c) => *c.expr.clone(),
304310
PropName::BigInt(b) => Expr::Lit(Lit::BigInt(b.clone())),
311+
#[cfg(swc_ast_unknown)]
312+
_ => unreachable!("unknown PropName variant"),
305313
};
306314
Some(ExprOrSpread {
307315
spread: None,
@@ -426,6 +434,8 @@ impl VisitMutHook<TraverseCtx> for ObjectRestSpreadPass {
426434
PropName::Num(n) => Expr::Lit(Lit::Num(n.clone())),
427435
PropName::Computed(c) => *c.expr.clone(),
428436
PropName::BigInt(b) => Expr::Lit(Lit::BigInt(b.clone())),
437+
#[cfg(swc_ast_unknown)]
438+
_ => unreachable!("unknown PropName variant"),
429439
};
430440
Some(ExprOrSpread {
431441
spread: None,
@@ -496,6 +506,8 @@ impl VisitMutHook<TraverseCtx> for ObjectRestSpreadPass {
496506
PropName::Num(n) => Expr::Lit(Lit::Num(n.clone())),
497507
PropName::Computed(c) => *c.expr.clone(),
498508
PropName::BigInt(b) => Expr::Lit(Lit::BigInt(b.clone())),
509+
#[cfg(swc_ast_unknown)]
510+
_ => unreachable!("unknown PropName variant"),
499511
};
500512
Some(ExprOrSpread {
501513
spread: None,
@@ -616,6 +628,8 @@ impl VisitMutHook<TraverseCtx> for ObjectRestSpreadPass {
616628
PropName::Num(n) => Expr::Lit(Lit::Num(n.clone())),
617629
PropName::Computed(c) => *c.expr.clone(),
618630
PropName::BigInt(b) => Expr::Lit(Lit::BigInt(b.clone())),
631+
#[cfg(swc_ast_unknown)]
632+
_ => unreachable!("unknown PropName variant"),
619633
};
620634
Some(ExprOrSpread {
621635
spread: None,

0 commit comments

Comments
 (0)