#421·wire

Why are methods in ProviderSet that provide interfaces defined in the dependence project being generated as ’invalid type’?

Author: NameOfGoyCreated Feb 6, 2025Updated Feb 6, 2025

Describe the bug

ProviderSet like :

import (
	"dependence-project/s3"
	"dependence-project/s3/minio"
	"github.com/google/wire"
)
var ProviderSet = wire.NewSet(NewS3)
func NewS3(dataConf *conf.Data) (s3.S3, error) {
	return minio.NewS3(dataConf.Minio.Endpoint, dataConf.Minio.AccessKeyId, dataConf.Minio.SecretAccessKey, false, "")
}

the s3 definition in the dependence project like this : Image

wire.go:

func wireApp(*conf.Data) (*kratos.App, func(), error) {
	panic(wire.Build(s3.ProviderSet, newApp))
}

wire_gen.go:

invalid type, err := s3.NewS3(data)
if err != nil {
	return nil, nil, err
}

and the last generate err : wire: 40:10: expected ';', found 'type' (and 1 more errors)

Expected behavior

I hope that it can be able to correctly generate the interface types defined in the dependency project

Version

0.6.0

Additional context

Add any other context about the problem here.