Skip to content

Commit

Permalink
Codegen: include generics as params in impl def super methods
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanjermakov committed Mar 25, 2024
1 parent ed849d3 commit c6a4077
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/codegen/js/statement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,15 @@ export const emitInstanceDef = (instanceDef: ImplDef | TraitDef, module: Module,
return { emit: emitToken(''), resultVar: pVar }
}
})
const generics = m.fn.generics.map(g => g.name.value)
const jsParams = [...params.map(p => p.resultVar), ...generics]
const mName = m.fn.name.value
const block = emitTree([
emitToken('{'),
...params.map(p => p.emit),
emitToken(`return ${jsRelName(m.rel)}().${mName}(${params.map(p => p.resultVar).join(',')})}`)
emitToken(`return ${jsRelName(m.rel)}().${mName}(${jsParams.join(',')})}`)
])
return emitTree([emitToken(`${mName}:function(${params.map(p => p.resultVar).join(',')}) `), block])
return emitTree([emitToken(`${mName}:function(${jsParams.join(',')}) `), block])
})
const ms = instanceDef.block.statements
.map(s => <FnDef>s)
Expand Down

0 comments on commit c6a4077

Please sign in to comment.