{"record":{"id":"1b0a19f8c820a38b","repo":"swc-project/swc","slug":"unsupported-meta","errorCode":null,"errorMessage":"Unsupported meta: {:#?}","messagePattern":"Unsupported meta: (.+?)","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/string_enum/src/lib.rs","lineNumber":160,"sourceCode":"                    for item in parse2::<FieldAttr>(meta.tokens.clone())\n                        .expect(\"failed to parse `#[string_enum]`\")\n                        .aliases\n                    {\n                        cases.push(Pat::Lit(PatLit {\n                            attrs: Default::default(),\n                            lit: Lit::Str(item.alias),\n                        }));\n                    }\n\n                    pat = Pat::Or(PatOr {\n                        attrs: Default::default(),\n                        leading_vert: None,\n                        cases,\n                    });\n                    continue;\n                }\n\n                panic!(\"Unsupported meta: {:#?}\", attr.meta);\n            }\n\n            let body = match *v.data() {\n                Fields::Unit => Box::new(parse_quote!(return Ok(#qual_name))),\n                _ => unreachable!(\"StringEnum requires all variants not to have fields\"),\n            };\n\n            Arm {\n                body,\n                attrs: v\n                    .attrs()\n                    .iter()\n                    .filter(|attr| is_attr_name(attr, \"cfg\"))\n                    .cloned()\n                    .collect(),\n                pat,\n                guard: None,\n                fat_arrow_token: Default::default(),","sourceCodeStart":142,"sourceCodeEnd":178,"githubUrl":"https://github.com/swc-project/swc/blob/5176682b65416c6b5de6b47379ae1588ea3ecb3f/crates/string_enum/src/lib.rs#L142-L178","documentation":"Compile-time panic from `#[derive(StringEnum)]` (crates/string_enum). The optional per-variant `#[string_enum(...)]` attribute is only supported in list form — `#[string_enum(alias(\"foo\"))]` adds extra FromStr match arms. If the attribute appears as a bare path (`#[string_enum]`) or name-value form, `attr.meta` is not `Meta::List` and the macro panics with `Unsupported meta: {:#?}`.","triggerScenarios":"Writing `#[string_enum]` alone or `#[string_enum(alias = \"foo\")]` on a variant of a StringEnum-deriving enum.","commonSituations":"Trying to add alias support and guessing the syntax; attribute style drift after refactors.","solutions":["Use the list form: `#[string_enum(alias(\"foo\"))]`","Remove the attribute entirely if no alias is needed"],"exampleFix":"// before\n#[string_enum(alias = \"commonjs\")]\nCommonJs,\n\n// after\n#[string_enum(alias(\"commonjs\"))]\nCommonJs,","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Write aliases only as `#[string_enum(alias(\"foo\"))]` — list form, string literal argument","Never use bare `#[string_enum]` or `alias = \"...\"` on variants"],"tags":["rust","proc-macro","swc","string-enum","attribute-syntax","compile-time"],"backgroundTag":"proc-macro-misuse","analyzedSha":"5176682b65416c6b5de6b47379ae1588ea3ecb3f","analyzedAt":"2026-08-17T16:16:52.067Z","contentChangedAt":"2026-08-17T16:16:52.067Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}