{"record":{"id":"a3063d15ed3e6886","repo":"oven-sh/bun","slug":"file-name-collision-basename-bind-ts","errorCode":null,"errorMessage":"File name collision: ${basename}.bind.ts","messagePattern":"File name collision: (.+?)\\.bind\\.ts","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/codegen/bindgen.ts","lineNumber":1082,"sourceCode":"headers.add(\"root.h\");\nheaders.add(\"IDLTypes.h\");\nheaders.add(\"JSDOMBinding.h\");\nheaders.add(\"JSDOMConvertBase.h\");\nheaders.add(\"JSDOMConvertBoolean.h\");\nheaders.add(\"JSDOMConvertNumbers.h\");\nheaders.add(\"JSDOMConvertStrings.h\");\nheaders.add(\"JSDOMExceptionHandling.h\");\nheaders.add(\"JSDOMOperation.h\");\n\n/** Indexed by the `.bind.ts` path; values are the binding's namespace identifier, without collisions. */\nconst fileMap = new Map<string, string>();\nconst fileNames = new Set<string>();\n\nfor (const [filename, { functions, typedefs }] of files) {\n  const basename = path.basename(filename, \".bind.ts\");\n  let varName = basename;\n  if (fileNames.has(varName)) {\n    throw new Error(`File name collision: ${basename}.bind.ts`);\n  }\n  fileNames.add(varName);\n  fileMap.set(filename, varName);\n\n  if (functions.length === 0) continue;\n\n  for (const td of typedefs) {\n    typeHashToNamespace.set(td.type.hash(), varName);\n  }\n\n  for (const fn of functions) {\n    for (const vari of fn.variants) {\n      for (const arg of vari.args) {\n        arg.type.markReachable();\n      }\n    }\n  }\n}","sourceCodeStart":1064,"sourceCodeEnd":1100,"githubUrl":"https://github.com/oven-sh/bun/blob/8c5296ac459e8252d3cd702f3fbcbb0c249d95d5/src/codegen/bindgen.ts#L1064-L1100","documentation":"Error \"File name collision: ${basename}.bind.ts\" thrown in oven-sh/bun.","triggerScenarios":"Thrown at src/codegen/bindgen.ts:1082 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8c5296ac459e8252d3cd702f3fbcbb0c249d95d5","analyzedAt":"2026-08-16T08:01:58.794Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}