{"record":{"id":"11bd043c91ff2f15","repo":"biomejs/biome","slug":"metavariables-are-not-supported-in","errorCode":null,"errorMessage":"metavariables are not supported in {}","messagePattern":"metavariables are not supported in (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"xtask/codegen/src/generate_global_types/lower.rs","lineNumber":2299,"sourceCode":"    member: AnyTsTypeMember,\n    spec: DisposableGlobalSpec,\n) -> Result<LoweredTypeMember> {\n    match member {\n        AnyTsTypeMember::TsMethodSignatureTypeMember(member) => {\n            lower_disposable_method_signature(&member, spec)\n        }\n        AnyTsTypeMember::TsPropertySignatureTypeMember(_) => {\n            bail!(\"properties are not supported in {}\", spec.interface_name)\n        }\n        AnyTsTypeMember::TsCallSignatureTypeMember(_)\n        | AnyTsTypeMember::TsConstructSignatureTypeMember(_) => {\n            bail!(\"signatures are not supported in {}\", spec.interface_name)\n        }\n        AnyTsTypeMember::JsBogusMember(_) => {\n            bail!(\"bogus members are not supported in {}\", spec.interface_name)\n        }\n        AnyTsTypeMember::JsMetavariable(_) => {\n            bail!(\"metavariables are not supported in {}\", spec.interface_name)\n        }\n        AnyTsTypeMember::TsGetterSignatureTypeMember(_) => {\n            bail!(\n                \"getter signatures are not supported in {}\",\n                spec.interface_name\n            )\n        }\n        AnyTsTypeMember::TsIndexSignatureTypeMember(_) => {\n            bail!(\n                \"index signatures are not supported in {}\",\n                spec.interface_name\n            )\n        }\n        AnyTsTypeMember::TsSetterSignatureTypeMember(_) => {\n            bail!(\n                \"setter signatures are not supported in {}\",\n                spec.interface_name\n            )","sourceCodeStart":2281,"sourceCodeEnd":2317,"githubUrl":"https://github.com/biomejs/biome/blob/3835945f0638c88162351318b7bc8b64c5f2fba7/xtask/codegen/src/generate_global_types/lower.rs#L2281-L2317","documentation":"Emitted by lower_disposable_type_member in xtask's generate_global_types lowering when a member of the disposable interface declaration parses as a JsMetavariable node. The lowering only accepts a single `[Symbol.dispose](): void`-style computed method signature; metavariables are template placeholders that appear when the fixture uses codegen metavariable syntax instead of a concrete member.","triggerScenarios":"A disposable-interface fixture (Symbol.dispose / Symbol.asyncDispose global declaration) contains a metavariable placeholder (e.g. `$$METAVARIABLE$$` or a Biome metavariable node) inside the interface body, and `cargo run -p xtask codegen` is run.","commonSituations":"A contributor copies a snippet from a Biome grammar/rule template (which uses metavariables) into a type-declaration fixture instead of writing a concrete member; codegen tooling pastes an unresolved placeholder into the d.ts.","solutions":["Replace the metavariable placeholder in the interface fixture with the concrete member `[Symbol.dispose](): void` (or the asyncDispose equivalent).","Check whether the generator that emits this fixture is inserting raw metavariable text and fix the emitting template.","Re-run the codegen and confirm the lowered Disposable globals build."],"exampleFix":"// before (fixture)\ninterface Disposable {\n  $$METAVARIABLE$$\n}\n// after\ninterface Disposable {\n  [Symbol.dispose](): void;\n}","handlingStrategy":"validation","validationCode":"// Ensure no metavariable placeholders leaked into the fixture:\n//   grep -rnE '\\$\\$|METAVARIABLE' xask-fixture-dir/globals.d.ts\n// (adjust path/pattern to the project's metavariable syntax)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Write concrete TypeScript members in d.ts fixtures; never paste rule/grammar template snippets containing metavariables.","If a generator emits fixture content, assert the output contains no unresolved metavariable tokens before codegen.","Review generated-fixture diffs for placeholder text before committing."],"tags":["codegen","metavariable","build-time","fixture"],"backgroundTag":"schema-validation-failed","analyzedSha":"3835945f0638c88162351318b7bc8b64c5f2fba7","analyzedAt":"2026-09-13T15:11:16.919Z","contentChangedAt":"2026-09-13T15:11:16.919Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}