diff --git a/.cargo/config.toml b/.cargo/config.toml index a2482365a..d72472bab 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -27,3 +27,8 @@ rustflags = ["-C", "target-feature=-crt-static", "-C", "link-arg=-lgcc"] [target.armv7-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc" + +[target.'cfg(target_arch = "wasm32")'] +rustflags = [ + "--cfg=swc_ast_unknown" +] diff --git a/packages/emotion/transform/Cargo.toml b/packages/emotion/transform/Cargo.toml index cafe820e4..a6c99938e 100644 --- a/packages/emotion/transform/Cargo.toml +++ b/packages/emotion/transform/Cargo.toml @@ -12,6 +12,9 @@ version = "0.105.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(swc_ast_unknown)'] } + [dependencies] base64 = { workspace = true } byteorder = { workspace = true } diff --git a/packages/emotion/transform/src/lib.rs b/packages/emotion/transform/src/lib.rs index eb3cfa7c8..e7e573f17 100644 --- a/packages/emotion/transform/src/lib.rs +++ b/packages/emotion/transform/src/lib.rs @@ -291,6 +291,8 @@ impl<'a, C: Comments> EmotionTransformer<'a, C> { ModuleExportName::Str(v) => { v.value.as_str() == Some(exported.name.as_str()) } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") }, _ => named.local.as_ref() == exported.name, }; @@ -312,6 +314,8 @@ impl<'a, C: Comments> EmotionTransformer<'a, C> { self.import_packages .insert(namespace.local.to_id(), PackageMeta::Namespace(c.clone())); } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } } diff --git a/packages/formatjs/transform/Cargo.toml b/packages/formatjs/transform/Cargo.toml index e4ebf55a5..33b71fbf4 100644 --- a/packages/formatjs/transform/Cargo.toml +++ b/packages/formatjs/transform/Cargo.toml @@ -10,6 +10,9 @@ name = "swc_formatjs_transform" repository = { workspace = true } version = "12.0.0" +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(swc_ast_unknown)'] } + [features] custom_transform = [] diff --git a/packages/formatjs/transform/src/lib.rs b/packages/formatjs/transform/src/lib.rs index 836613315..bd37078da 100644 --- a/packages/formatjs/transform/src/lib.rs +++ b/packages/formatjs/transform/src/lib.rs @@ -89,6 +89,8 @@ fn get_message_descriptor_key_from_jsx(name: &JSXAttrName) -> &str { match name { JSXAttrName::Ident(name) | JSXAttrName::JSXNamespacedName(JSXNamespacedName { name, .. }) => &name.sym, + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } // NOTE: Do not support evaluatePath() diff --git a/packages/prefresh/transform/Cargo.toml b/packages/prefresh/transform/Cargo.toml index eb63627b4..ebf87f451 100644 --- a/packages/prefresh/transform/Cargo.toml +++ b/packages/prefresh/transform/Cargo.toml @@ -12,6 +12,9 @@ repository = { workspace = true } rust-version = { workspace = true } version = "0.32.0" +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(swc_ast_unknown)'] } + [dependencies] serde = { workspace = true, features = ["derive"] } swc_atoms = { workspace = true } diff --git a/packages/prefresh/transform/src/lib.rs b/packages/prefresh/transform/src/lib.rs index d11798881..339ad40d6 100644 --- a/packages/prefresh/transform/src/lib.rs +++ b/packages/prefresh/transform/src/lib.rs @@ -105,6 +105,8 @@ impl VisitMut for PrefreshPlugin { let name = match imported { ModuleExportName::Ident(ident) => &ident.sym, ModuleExportName::Str(s) => &s.value.to_atom_lossy(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") }; if name == "createContext" { self.local.insert(spec.local.to_id()); @@ -116,6 +118,8 @@ impl VisitMut for PrefreshPlugin { ImportSpecifier::Namespace(spec) => { self.lib_local.insert(spec.local.to_id()); } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } } diff --git a/packages/styled-components/transform/Cargo.toml b/packages/styled-components/transform/Cargo.toml index d2852b86d..432d2b1e1 100644 --- a/packages/styled-components/transform/Cargo.toml +++ b/packages/styled-components/transform/Cargo.toml @@ -17,6 +17,9 @@ version = "0.129.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(swc_ast_unknown)'] } + [dependencies] Inflector = { workspace = true } once_cell = { workspace = true } diff --git a/packages/styled-components/transform/src/utils/analyzer.rs b/packages/styled-components/transform/src/utils/analyzer.rs index f73e63aa7..ebbdebab0 100644 --- a/packages/styled-components/transform/src/utils/analyzer.rs +++ b/packages/styled-components/transform/src/utils/analyzer.rs @@ -80,6 +80,8 @@ impl Visit for Analyzer<'_> { ModuleExportName::Str(v) => { v.value.as_str().expect("non-utf8 export name") } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") }) .unwrap_or(&*s.local.sym); self.state @@ -92,6 +94,8 @@ impl Visit for Analyzer<'_> { ImportSpecifier::Namespace(s) => { self.state.imported_local_ns = Some(s.local.to_id()); } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } } diff --git a/packages/styled-components/transform/src/utils/mod.rs b/packages/styled-components/transform/src/utils/mod.rs index 8c9700fdb..9ee59b721 100644 --- a/packages/styled-components/transform/src/utils/mod.rs +++ b/packages/styled-components/transform/src/utils/mod.rs @@ -16,6 +16,8 @@ pub(crate) fn get_prop_key_as_expr(p: &Prop) -> Cow { Prop::Getter(p) => prop_name_to_expr(&p.key), Prop::Setter(p) => prop_name_to_expr(&p.key), Prop::Method(p) => prop_name_to_expr(&p.key), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } @@ -26,6 +28,8 @@ pub(crate) fn prop_name_to_expr(p: &PropName) -> Cow { PropName::Num(p) => Cow::Owned(Expr::Lit(Lit::Num(p.clone()))), PropName::BigInt(p) => Cow::Owned(Expr::Lit(Lit::BigInt(p.clone()))), PropName::Computed(e) => Cow::Borrowed(&e.expr), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } @@ -37,6 +41,8 @@ pub(crate) fn get_prop_name(p: &Prop) -> Option<&PropName> { Prop::Getter(p) => Some(&p.key), Prop::Setter(p) => Some(&p.key), Prop::Method(p) => Some(&p.key), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } @@ -48,6 +54,8 @@ pub(crate) fn get_prop_name2(p: &Prop) -> PropName { Prop::Getter(p) => p.key.clone(), Prop::Setter(p) => p.key.clone(), Prop::Method(p) => p.key.clone(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } diff --git a/packages/styled-components/transform/src/visitors/transpile_css_prop/top_level_binding_collector.rs b/packages/styled-components/transform/src/visitors/transpile_css_prop/top_level_binding_collector.rs index 81f9f1f89..4fa1eb187 100644 --- a/packages/styled-components/transform/src/visitors/transpile_css_prop/top_level_binding_collector.rs +++ b/packages/styled-components/transform/src/visitors/transpile_css_prop/top_level_binding_collector.rs @@ -37,6 +37,8 @@ impl Visit for TopLevelBindingCollector { ObjectPatProp::Assign(a) => self.add(&a.key.to_id()), ObjectPatProp::KeyValue(k) => k.value.visit_with(self), ObjectPatProp::Rest(_) => {} + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } } diff --git a/packages/styled-components/transform/src/visitors/transpile_css_prop/transpile.rs b/packages/styled-components/transform/src/visitors/transpile_css_prop/transpile.rs index cc4c49bc1..55e368ff3 100644 --- a/packages/styled-components/transform/src/visitors/transpile_css_prop/transpile.rs +++ b/packages/styled-components/transform/src/visitors/transpile_css_prop/transpile.rs @@ -323,6 +323,8 @@ impl VisitMut for TranspileCssProp<'_> { } } JSXAttrOrSpread::SpreadElement(_) => {} + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } @@ -337,6 +339,8 @@ impl VisitMut for TranspileCssProp<'_> { } } JSXAttrOrSpread::SpreadElement(_) => {} + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } true }); @@ -418,6 +422,8 @@ fn get_name_expr(name: &JSXElementName) -> Box { obj: get_name_expr_jsx_object(&n.obj), prop: MemberProp::Ident(n.prop.clone()), })), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } match name { @@ -430,6 +436,8 @@ fn get_name_expr(name: &JSXElementName) -> Box { JSXElementName::JSXNamespacedName(..) => { unimplemented!("get_name_expr for JSXNamespacedName") } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } @@ -542,6 +550,8 @@ impl PropertyReducer<'_> { acc.push(property); } } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } acc @@ -563,6 +573,8 @@ fn set_value_of_prop(prop: &mut Prop, value: Box) { Prop::Getter(_p) => todo!(), Prop::Setter(_p) => todo!(), Prop::Method(_p) => todo!(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } @@ -574,6 +586,8 @@ fn take_prop_value(prop: &mut Prop) -> Box { Prop::Getter(_p) => todo!(), Prop::Setter(_p) => todo!(), Prop::Method(_p) => todo!(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } @@ -627,6 +641,8 @@ fn get_name_of_jsx_obj(el: &JSXObject) -> Atom { JSXObject::JSXMemberExpr(e) => { format!("{}{}", get_name_of_jsx_obj(&e.obj), e.prop.sym).into() } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } diff --git a/packages/swc-magic/transform/Cargo.toml b/packages/swc-magic/transform/Cargo.toml index 6b902649a..550b9987c 100644 --- a/packages/swc-magic/transform/Cargo.toml +++ b/packages/swc-magic/transform/Cargo.toml @@ -12,6 +12,8 @@ repository = { workspace = true } rust-version = { workspace = true } version = "0.49.0" +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(swc_ast_unknown)'] } [dependencies] rustc-hash = { workspace = true } diff --git a/packages/swc-magic/transform/src/import_analyzer.rs b/packages/swc-magic/transform/src/import_analyzer.rs index 7ed3f2d3a..463694c50 100644 --- a/packages/swc-magic/transform/src/import_analyzer.rs +++ b/packages/swc-magic/transform/src/import_analyzer.rs @@ -75,6 +75,8 @@ impl Visit for Analyzer<'_> { .insert(s.local.to_id(), import.src.value.clone()); continue; } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") }; self.data @@ -88,5 +90,7 @@ fn orig_name(n: &ModuleExportName) -> Atom { match n { ModuleExportName::Ident(v) => v.sym.clone(), ModuleExportName::Str(v) => v.value.as_atom().expect("non-utf8 export name").clone(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } diff --git a/packages/swc-sdk/transform/Cargo.toml b/packages/swc-sdk/transform/Cargo.toml index d41c4b2ef..2777704ae 100644 --- a/packages/swc-sdk/transform/Cargo.toml +++ b/packages/swc-sdk/transform/Cargo.toml @@ -12,6 +12,8 @@ repository = { workspace = true } rust-version = { workspace = true } version = "0.5.0" +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(swc_ast_unknown)'] } [dependencies] default-from-serde = { workspace = true } diff --git a/packages/swc-sdk/transform/src/import_analyzer.rs b/packages/swc-sdk/transform/src/import_analyzer.rs index a5c799721..223551fb5 100644 --- a/packages/swc-sdk/transform/src/import_analyzer.rs +++ b/packages/swc-sdk/transform/src/import_analyzer.rs @@ -92,6 +92,8 @@ impl Visit for Analyzer<'_> { .insert(s.local.to_id(), (import.src.value.clone(), s.local.span)); continue; } + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") }; self.data @@ -105,5 +107,7 @@ fn orig_name(n: &ModuleExportName) -> Atom { match n { ModuleExportName::Ident(v) => v.sym.clone(), ModuleExportName::Str(v) => v.value.to_atom_lossy().into_owned(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") } } diff --git a/packages/transform-imports/transform/Cargo.toml b/packages/transform-imports/transform/Cargo.toml index 03818fee0..8eeaf3c4f 100644 --- a/packages/transform-imports/transform/Cargo.toml +++ b/packages/transform-imports/transform/Cargo.toml @@ -15,6 +15,9 @@ version = "0.101.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(swc_ast_unknown)'] } + [dependencies] convert_case = { workspace = true } handlebars = { workspace = true } diff --git a/packages/transform-imports/transform/src/lib.rs b/packages/transform-imports/transform/src/lib.rs index ace9be7b8..21dd4699c 100644 --- a/packages/transform-imports/transform/src/lib.rs +++ b/packages/transform-imports/transform/src/lib.rs @@ -179,6 +179,8 @@ impl Rewriter<'_> { let name_str = match name_str { ModuleExportName::Ident(x) => Cow::Borrowed(x.as_ref()), ModuleExportName::Str(x) => x.value.to_string_lossy(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") }; let new_path = self.new_path(Some(name_str.as_ref())); @@ -213,6 +215,8 @@ impl Rewriter<'_> { let name_str = match &ns_spec.name { ModuleExportName::Ident(x) => Cow::Borrowed(x.as_ref()), ModuleExportName::Str(x) => x.value.to_string_lossy(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") }; let new_path = self.new_path(Some(name_str.as_ref())); let specifier = ExportSpecifier::Namespace(ns_spec.clone()); @@ -255,6 +259,8 @@ impl Rewriter<'_> { .map(|x| match x { ModuleExportName::Ident(x) => Cow::Borrowed(x.as_ref()), ModuleExportName::Str(x) => x.value.to_string_lossy(), + #[cfg(swc_ast_unknown)] + _ => panic!("unknown node") }) .unwrap_or_else(|| Cow::Borrowed(named_spec.local.as_ref()));