Skip to content

wit-bindgen-go ignores WIT imports with name clash #356

@rvolosatovs

Description

@rvolosatovs

wit-bindgen-go from commit 999af0b (latest main) only generates bindings for wasi:io package for a WIT world like this:

package repro:repro@0.1.0;

world imports {
    include wasi:cli/imports@0.2.1;
    include wasi:http/imports@0.2.1;
}

log:

$ go tool go.bytecodealliance.org/cmd/wit-bindgen-go generate -vv -w imports -o bindings wit
Output dir: bindings
Package root: github.com/rvolosatovs/go-bindgen-repro/bindings
Generating Go for 10 world(s)
Type:	wasi:io/error@0.2.1.error
	github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/error.Error
Type:	wasi:io/poll@0.2.1.pollable
	github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/poll.Pollable
Type:	wasi:io/streams@0.2.1.error
	github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/streams.Error
Type:	wasi:io/streams@0.2.1.pollable
	github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/streams.Pollable
Type:	wasi:io/streams@0.2.1.stream-error
	github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/streams.StreamError
Type:	wasi:io/streams@0.2.1.input-stream
	github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/streams.InputStream
Type:	wasi:io/streams@0.2.1.output-stream
	github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/streams.OutputStream
Generated 13 Go package(s)
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/repro/repro/imports
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/cli/command
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/cli/imports
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/clocks/imports
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/filesystem/imports
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/http/imports
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/http/proxy
Generated package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/error
	bindings/wasi/io/error/empty.s
	bindings/wasi/io/error/error.wasm.go
	bindings/wasi/io/error/error.wit.go
Generated package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/imports
	bindings/wasi/io/imports/imports.wit.go
Generated package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/poll
	bindings/wasi/io/poll/empty.s
	bindings/wasi/io/poll/poll.wasm.go
	bindings/wasi/io/poll/poll.wit.go
Generated package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/io/streams
	bindings/wasi/io/streams/empty.s
	bindings/wasi/io/streams/streams.wasm.go
	bindings/wasi/io/streams/streams.wit.go
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/random/imports
Skipped empty package: github.com/rvolosatovs/go-bindgen-repro/bindings/wasi/sockets/imports

Repro repo available at: https://github.com/rvolosatovs/go-bindgen-repro/tree/6bc07240d7815f63f482fa433e11317b82bb645c
And it can be reproduced using

go tool go.bytecodealliance.org/cmd/wit-bindgen-go generate -vv -w imports -o bindings wit

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions