Invalid Type Error

17 views
Skip to first unread message

Sarath Prabath Redlapalli Jaya

unread,
Aug 12, 2020, 8:12:49 AM8/12/20
to go-cloud
We're using Golang 1.13 with wire 0.4.0 for dependency injection. On wire command run

Getting this error 

    inject Inject: no provider found for invalid type

and this for pointer arguments

    inject Inject: no provider found for *invalid type

the provider function is

    UserClient(externalServiceConfig *service.ServiceConfig) user.Client

Please help

Sarath Prabath Redlapalli Jaya

unread,
Aug 17, 2020, 12:48:38 PM8/17/20
to go-cloud

Golang : 1.14
Wire: v0.4.0

type Configuration struct { config.Configuration `mapstructure:",squash"` Engine *service.EngineConfig `validate:"required"` } package service type EngineConfig struct { UrlBase string `mapstructure:"url_base" validate:"required"` }

In wire.go

// Viper func Config() *config.Configuration { var conf config.Configuration // config confManager, err := configManager.Load() if err != nil { panic(err) } err = confManager.Unmarshal(&conf) if err != nil { panic(err) } return &conf } func EngineConfig(conf *config.Configuration) *service.EngineConfig { return conf.Engine }

^^^ giving cannot use conf.Engine (variable of type *invalid type) as *service.EngineConfig value in return statement

Also, tried with wire.FieldsOf as wire.FieldsOf(new(*config.Configuration), "Engine", "ApiInternalAuthConfig"). On multiple wire cmd executions, gave 4 different results with the same wire.go file

➜ wire wire: github.com/someorg/someproject/service/cmd/boot: wrote /Users/someuser/Documents/repos/currproj/service/cmd/boot/wire_gen.go currproj/service/cmd/boot on  develop [⇣$»!+?] via 🐹 v1.14 took 2s ➜ wire wire: /Users/someuser/Documents/repos/currproj/service/cmd/boot/wire.go:21:1: inject Inject: no provider found for *github.com/someorg/someproject/service/cmd/boot/config.Configuration needed by github.com/someorg/go-common.Env in provider "Env" (/Users/someuser/Documents/repos/currproj/service/cmd/boot/wire.go:72:6) needed by *github.com/someorg/someproject/service/cmd/boot.App in provider "NewApp" (/Users/someuser/Documents/repos/currproj/service/cmd/boot/app.go:52:6) wire: /Users/someuser/Documents/repos/currproj/service/cmd/boot/wire.go:21:1: inject Inject: no provider found for github.com/someorg/someproject/service.Database needed by *github.com/someorg/someproject/service.Engine in struct provider "Engine" (/Users/someuser/Documents/repos/currproj/service/currproj.go:57:6) needed by github.com/someorg/protonium/http.Application in provider "App" (/Users/someuser/Documents/repos/currproj/service/http/handlers.go:27:6) needed by *github.com/someorg/someproject/service/cmd/boot.App in provider "NewApp" (/Users/someuser/Documents/repos/currproj/service/cmd/boot/app.go:52:6) wire: github.com/someorg/someproject/service/cmd/boot: generate failed wire: at least one generate failure currproj/service/cmd/boot on  develop [⇣$»!+?] via 🐹 v1.14 ➜ wire wire: /Users/someuser/Documents/repos/currproj/service/cmd/boot/wire.go:21:1: inject Inject: no provider found for github.com/someorg/someproject/service.Database needed by *github.com/someorg/someproject/service.Engine in struct provider "Engine" (/Users/someuser/Documents/repos/currproj/service/currproj.go:57:6) needed by github.com/someorg/protonium/pubsubv2.Application in provider "New" (/Users/someuser/Documents/repos/currproj/service/pubsub/listener.go:17:6) needed by *github.com/someorg/someproject/service/cmd/boot.App in provider "NewApp" (/Users/someuser/Documents/repos/currproj/service/cmd/boot/app.go:52:6) wire: github.com/someorg/someproject/service/cmd/boot: generate failed wire: at least one generate failure currproj/service/cmd/boot on  develop [⇣$»!+?] via 🐹 v1.14 took 2s ➜ wire wire: github.com/someorg/currproj/service/cmd/boot: wrote /Users/someuser/Documents/repos/currproj/service/cmd/boot/wire_gen.go

Please help us understand and how to proceed with these errors

rvan...@google.com

unread,
Aug 17, 2020, 12:51:56 PM8/17/20
to go-cloud
This was resolved in https://github.com/google/wire/issues/258 -- TL;DR, it was a compilation error.
Reply all
Reply to author
Forward
0 new messages