Skip to content

Commit d0cd84f

Browse files
committed
wit/bindgen: define a Go package for every world, regardless of use
1 parent b84a802 commit d0cd84f

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

wit/bindgen/generator.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,11 @@ func (g *generator) define(dir wit.Direction, v wit.Node) (defined bool) {
237237
func (g *generator) defineWorlds() error {
238238
g.opts.logger.Infof("Generating Go for %d world(s)\n", len(g.res.Worlds))
239239
for _, w := range g.res.Worlds {
240+
// Define a Go package for every world, regardless of use
241+
_, err := g.newPackage(w, nil, "")
242+
if err != nil {
243+
return err
244+
}
240245
if w == g.world || g.world == nil {
241246
err := g.defineWorld(w)
242247
if err != nil {
@@ -2293,7 +2298,12 @@ func (g *generator) cgoFileFor(owner wit.TypeOwner) *gen.File {
22932298
}
22942299

22952300
func (g *generator) packageFor(owner wit.TypeOwner) *gen.Package {
2296-
return g.witPackages[owner]
2301+
pkg := g.witPackages[owner]
2302+
if pkg == nil {
2303+
panic(fmt.Sprintf("BUG: nil package for wit.TypeOwner %s (%T: %p)",
2304+
owner.WITPackage().Name.String(), owner, owner))
2305+
}
2306+
return pkg
22972307
}
22982308

22992309
func (g *generator) newPackage(w *wit.World, i *wit.Interface, name string) (*gen.Package, error) {

0 commit comments

Comments
 (0)