{"record":{"id":"18ccf566cb65e7c7","repo":"biomejs/biome","slug":"bogus-members-are-not-supported-in","errorCode":null,"errorMessage":"bogus members are not supported in {}","messagePattern":"bogus members are not supported in (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"xtask/codegen/src/generate_global_types/lower.rs","lineNumber":2296,"sourceCode":"/// Lowers the single member of a disposable interface. Only a computed method signature\n/// (`[Symbol.dispose](): void`) is supported; every other member shape bails.\nfn lower_disposable_type_member(\n    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!(","sourceCodeStart":2278,"sourceCodeEnd":2314,"githubUrl":"https://github.com/biomejs/biome/blob/3835945f0638c88162351318b7bc8b64c5f2fba7/xtask/codegen/src/generate_global_types/lower.rs#L2278-L2314","documentation":"This is emitted by lower_disposable_type_member in Biome's xtask global-types codegen. Only a computed method signature such as `[Symbol.dispose](): void` is supported inside the disposable interface declaration; any other member shape bails. A 'bogus member' is the parser's JsBogusMember node, meaning the declaration source contained a type member the parser could not parse into a known member kind.","triggerScenarios":"Editing the disposable-interface .d.ts fixture (the file lowering Symbol.dispose/Symbol.asyncDispose globals) so the interface body contains syntactically invalid or unparseable member text, then running `cargo run -p xtask codegen`.","commonSituations":"A hand-edit to the declaration fixture leaves a typo or truncated member (e.g. `[Symbol.dispose] void;`), or a merge conflict marker / stray text is left inside the interface body, producing a bogus parse node.","solutions":["Open the disposable-interface fixture at the file and line reported in the full error chain and fix or remove the unparseable member.","Replace the bogus member with the exact supported shape: `[Symbol.dispose](): void` (or `[Symbol.asyncDispose](): Promise<void>` for the async spec).","Re-run the codegen to confirm the bogus node is gone."],"exampleFix":"// before (fixture)\ninterface Disposable {\n  [Symbol.dispose] void;\n}\n// after\ninterface Disposable {\n  [Symbol.dispose](): void;\n}","handlingStrategy":"validation","validationCode":"// Validate the fixture parses cleanly before codegen; in the xtask pipeline the\n// parse diagnostics of the d.ts file are the check — ensure no bogus nodes:\n// cargo run -p xtask codegen 2>&1 | grep -i bogus","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never hand-edit interface fixture bodies without immediately running the codegen to confirm they parse.","Resolve merge conflicts in fixture files completely; search for leftover conflict markers before codegen.","Keep interface members minimal and limited to the supported `[Symbol.dispose](): void` shape."],"tags":["codegen","parser","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"}