Source: golang-github-google-wire
Version: 0.5.0-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20220326 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --builddirectory=_build --buildsystem=golang
>    dh_update_autotools_config -O--builddirectory=_build -O--buildsystem=golang
>    dh_autoreconf -O--builddirectory=_build -O--buildsystem=golang
>    dh_auto_configure -O--builddirectory=_build -O--buildsystem=golang
>    dh_auto_build -O--builddirectory=_build -O--buildsystem=golang
>       cd _build && go install -trimpath -v -p 8 github.com/google/wire 
> github.com/google/wire/cmd/wire github.com/google/wire/internal/wire
> internal/goos
> github.com/google/wire
> internal/goexperiment
> internal/goarch
> internal/cpu
> internal/unsafeheader
> runtime/internal/atomic
> runtime/internal/syscall
> internal/race
> sync/atomic
> internal/itoa
> math/bits
> internal/abi
> runtime/internal/math
> runtime/internal/sys
> unicode/utf8
> unicode
> encoding
> unicode/utf16
> internal/goversion
> golang.org/x/xerrors/internal
> internal/bytealg
> math
> runtime
> internal/reflectlite
> sync
> internal/testlog
> math/rand
> errors
> sort
> internal/oserror
> strconv
> io
> path
> syscall
> golang.org/x/mod/semver
> container/heap
> bytes
> text/tabwriter
> strings
> reflect
> regexp/syntax
> bufio
> go/build/constraint
> internal/syscall/unix
> internal/syscall/execenv
> time
> regexp
> context
> io/fs
> internal/poll
> encoding/binary
> internal/fmtsort
> os
> encoding/base64
> internal/lazyregexp
> path/filepath
> fmt
> io/ioutil
> os/exec
> golang.org/x/sys/execabs
> go/token
> net/url
> encoding/json
> flag
> text/template/parse
> internal/buildcfg
> math/big
> internal/execabs
> go/scanner
> text/scanner
> internal/goroot
> golang.org/x/tools/internal/event/label
> golang.org/x/tools/internal/event/keys
> golang.org/x/xerrors
> github.com/google/subcommands
> log
> go/ast
> github.com/pmezard/go-difflib/difflib
> golang.org/x/tools/internal/event/core
> golang.org/x/tools/internal/event
> text/template
> golang.org/x/tools/internal/gocommand
> golang.org/x/tools/internal/packagesinternal
> go/internal/typeparams
> go/printer
> go/parser
> go/constant
> go/doc
> go/format
> go/build
> go/types
> golang.org/x/tools/go/internal/packagesdriver
> golang.org/x/tools/internal/typeparams
> golang.org/x/tools/internal/typesinternal
> golang.org/x/tools/go/ast/astutil
> golang.org/x/tools/go/internal/gcimporter
> golang.org/x/tools/go/types/typeutil
> golang.org/x/tools/go/gcexportdata
> golang.org/x/tools/go/packages
> github.com/google/wire/internal/wire
> github.com/google/wire/cmd/wire
>    dh_auto_test -O--builddirectory=_build -O--buildsystem=golang
>       cd _build && go test -vet=off -v -p 8 github.com/google/wire 
> github.com/google/wire/cmd/wire github.com/google/wire/internal/wire
> ?     github.com/google/wire  [no test files]
> ?     github.com/google/wire/cmd/wire [no test files]
> === RUN   TestWire
> === RUN   TestWire/BindInjectorArg
> === PAUSE TestWire/BindInjectorArg
> === RUN   TestWire/BindInjectorArgPointer
> === PAUSE TestWire/BindInjectorArgPointer
> === RUN   TestWire/BindInterfaceWithValue
> === PAUSE TestWire/BindInterfaceWithValue
> === RUN   TestWire/BuildTagsAllPackages
> === PAUSE TestWire/BuildTagsAllPackages
> === RUN   TestWire/Chain
> === PAUSE TestWire/Chain
> === RUN   TestWire/Cleanup
> === PAUSE TestWire/Cleanup
> === RUN   TestWire/CopyOtherDecls
> === PAUSE TestWire/CopyOtherDecls
> === RUN   TestWire/Cycle
> === PAUSE TestWire/Cycle
> === RUN   TestWire/DocComment
> === PAUSE TestWire/DocComment
> === RUN   TestWire/EmptyVar
> === PAUSE TestWire/EmptyVar
> === RUN   TestWire/ExampleWithMocks
> === PAUSE TestWire/ExampleWithMocks
> === RUN   TestWire/ExportedValue
> === PAUSE TestWire/ExportedValue
> === RUN   TestWire/ExportedValueDifferentPackage
> === PAUSE TestWire/ExportedValueDifferentPackage
> === RUN   TestWire/FieldsOfCycle
> === PAUSE TestWire/FieldsOfCycle
> === RUN   TestWire/FieldsOfImportedStruct
> === PAUSE TestWire/FieldsOfImportedStruct
> === RUN   TestWire/FieldsOfStruct
> === PAUSE TestWire/FieldsOfStruct
> === RUN   TestWire/FieldsOfStructDoNotProvidePtrToField
> === PAUSE TestWire/FieldsOfStructDoNotProvidePtrToField
> === RUN   TestWire/FieldsOfStructPointer
> === PAUSE TestWire/FieldsOfStructPointer
> === RUN   TestWire/FieldsOfValueStruct
> === PAUSE TestWire/FieldsOfValueStruct
> === RUN   TestWire/FuncArgProvider
> === PAUSE TestWire/FuncArgProvider
> === RUN   TestWire/Header
> === PAUSE TestWire/Header
> === RUN   TestWire/ImportedInterfaceBinding
> === PAUSE TestWire/ImportedInterfaceBinding
> === RUN   TestWire/InjectInput
> === PAUSE TestWire/InjectInput
> === RUN   TestWire/InjectInputConflict
> === PAUSE TestWire/InjectInputConflict
> === RUN   TestWire/InjectWithPanic
> === PAUSE TestWire/InjectWithPanic
> === RUN   TestWire/InjectorMissingCleanup
> === PAUSE TestWire/InjectorMissingCleanup
> === RUN   TestWire/InjectorMissingError
> === PAUSE TestWire/InjectorMissingError
> === RUN   TestWire/InterfaceBinding
> === PAUSE TestWire/InterfaceBinding
> === RUN   TestWire/InterfaceBindingDoesntImplement
> === PAUSE TestWire/InterfaceBindingDoesntImplement
> === RUN   TestWire/InterfaceBindingInvalidArg0
> === PAUSE TestWire/InterfaceBindingInvalidArg0
> === RUN   TestWire/InterfaceBindingNotEnoughArgs
> === PAUSE TestWire/InterfaceBindingNotEnoughArgs
> === RUN   TestWire/InterfaceBindingReuse
> === PAUSE TestWire/InterfaceBindingReuse
> === RUN   TestWire/InterfaceValue
> === PAUSE TestWire/InterfaceValue
> === RUN   TestWire/InterfaceValueDoesntImplement
> === PAUSE TestWire/InterfaceValueDoesntImplement
> === RUN   TestWire/InterfaceValueInvalidArg0
> === PAUSE TestWire/InterfaceValueInvalidArg0
> === RUN   TestWire/InterfaceValueNotEnoughArgs
> === PAUSE TestWire/InterfaceValueNotEnoughArgs
> === RUN   TestWire/InvalidInjector
> === PAUSE TestWire/InvalidInjector
> === RUN   TestWire/MultipleArgsSameType
> === PAUSE TestWire/MultipleArgsSameType
> === RUN   TestWire/MultipleBindings
> === PAUSE TestWire/MultipleBindings
> === RUN   TestWire/MultipleMissingInputs
> === PAUSE TestWire/MultipleMissingInputs
> === RUN   TestWire/MultipleSimilarPackages
> === PAUSE TestWire/MultipleSimilarPackages
> === RUN   TestWire/NamingWorstCase
> === PAUSE TestWire/NamingWorstCase
> === RUN   TestWire/NamingWorstCaseAllInOne
> === PAUSE TestWire/NamingWorstCaseAllInOne
> === RUN   TestWire/NiladicIdentity
> === PAUSE TestWire/NiladicIdentity
> === RUN   TestWire/NiladicValue
> === PAUSE TestWire/NiladicValue
> === RUN   TestWire/NoImplicitInterface
> === PAUSE TestWire/NoImplicitInterface
> === RUN   TestWire/NoInjectParamNames
> === PAUSE TestWire/NoInjectParamNames
> === RUN   TestWire/NoopBuild
> === PAUSE TestWire/NoopBuild
> === RUN   TestWire/PartialCleanup
> === PAUSE TestWire/PartialCleanup
> === RUN   TestWire/PkgImport
> === PAUSE TestWire/PkgImport
> === RUN   TestWire/ProviderSetBindingMissingConcreteType
> === PAUSE TestWire/ProviderSetBindingMissingConcreteType
> === RUN   TestWire/RelativePkg
> === PAUSE TestWire/RelativePkg
> === RUN   TestWire/ReservedKeywords
> === PAUSE TestWire/ReservedKeywords
> === RUN   TestWire/ReturnArgumentAsInterface
> === PAUSE TestWire/ReturnArgumentAsInterface
> === RUN   TestWire/ReturnError
> === PAUSE TestWire/ReturnError
> === RUN   TestWire/Struct
> === PAUSE TestWire/Struct
> === RUN   TestWire/StructNotAStruct
> === PAUSE TestWire/StructNotAStruct
> === RUN   TestWire/StructPointer
> === PAUSE TestWire/StructPointer
> === RUN   TestWire/StructWithPreventTag
> === PAUSE TestWire/StructWithPreventTag
> === RUN   TestWire/TwoDeps
> === PAUSE TestWire/TwoDeps
> === RUN   TestWire/UnexportedStruct
> === PAUSE TestWire/UnexportedStruct
> === RUN   TestWire/UnexportedValue
> === PAUSE TestWire/UnexportedValue
> === RUN   TestWire/UnusedProviders
> === PAUSE TestWire/UnusedProviders
> === RUN   TestWire/ValueChain
> === PAUSE TestWire/ValueChain
> === RUN   TestWire/ValueConversion
> === PAUSE TestWire/ValueConversion
> === RUN   TestWire/ValueFromFunctionScope
> === PAUSE TestWire/ValueFromFunctionScope
> === RUN   TestWire/ValueIsInterfaceValue
> === PAUSE TestWire/ValueIsInterfaceValue
> === RUN   TestWire/ValueIsStruct
> === PAUSE TestWire/ValueIsStruct
> === RUN   TestWire/VarValue
> === PAUSE TestWire/VarValue
> === RUN   TestWire/Varargs
> === PAUSE TestWire/Varargs
> === CONT  TestWire/BindInjectorArg
> === CONT  TestWire/NoopBuild
> === CONT  TestWire/TwoDeps
> === CONT  TestWire/InjectWithPanic
> === CONT  TestWire/ExportedValueDifferentPackage
> === CONT  TestWire/InvalidInjector
> === CONT  TestWire/InterfaceBindingNotEnoughArgs
> === CONT  TestWire/ValueFromFunctionScope
>     wire_test.go:108: 
> /tmp/wire_test2466639856/src/example.com/foo/wire.go:23:1: inject injectBar: 
> value int can't be used: f is not declared in package scope
> === CONT  TestWire/InterfaceBindingInvalidArg0
> === CONT  TestWire/ExportedValueDifferentPackage
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "os"
>         )
>         
>         // Injectors from wire.go:
>         
>         func injectedFile() *os.File {
>               file := _wireFileValue
>               return file
>         }
>         
>         var (
>               _wireFileValue = os.Stdout
>         )
> === CONT  TestWire/InterfaceBindingDoesntImplement
> === CONT  TestWire/TwoDeps
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFooBar() FooBar {
>               foo := provideFoo()
>               bar := provideBar()
>               fooBar := provideFooBar(foo, bar)
>               return fooBar
>         }
> === CONT  TestWire/InterfaceBinding
> === CONT  TestWire/InvalidInjector
>     wire_test.go:108: a call to wire.Build indicates that this function is an 
> injector, but injectors must consist of only the wire.Build call and an 
> optional return
>     wire_test.go:108: a call to wire.Build indicates that this function is an 
> injector, but injectors must consist of only the wire.Build call and an 
> optional return
> === CONT  TestWire/InjectorMissingError
> === CONT  TestWire/InjectWithPanic
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               string2 := provideMessage()
>               return string2
>         }
> === CONT  TestWire/InjectorMissingCleanup
> === CONT  TestWire/InterfaceBindingNotEnoughArgs
>     wire_test.go:108: 
> /tmp/wire_test3209769703/src/example.com/foo/wire.go:25:33: not enough 
> arguments in call to wire.Bind
>               have (*Fooer)
>               want (interface{}, interface{})
>     wire_test.go:121: Errors didn't match expected errors from 
> wire_errors.txt:
>           []string{
>               strings.Join({
>                       "example.com/foo/wire.go:x:y: not enough arguments in 
> call to wir",
>                       "e.Bind",
>         -             "\n\thave (*Fooer)\n\twant (interface{}, interface{})",
>               }, ""),
>           }
> === CONT  TestWire/VarValue
> === CONT  TestWire/Varargs
> === CONT  TestWire/BindInjectorArg
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func inject(foo Foo) *Bar {
>               bar := NewBar(foo)
>               return bar
>         }
> === CONT  TestWire/UnusedProviders
> === CONT  TestWire/InterfaceBindingInvalidArg0
>     wire_test.go:108: 
> /tmp/wire_test3347856413/src/example.com/foo/wire.go:25:13: first argument to 
> Bind must be a pointer to an interface type; found string
> === CONT  TestWire/ValueConversion
> === CONT  TestWire/InterfaceBindingDoesntImplement
>     wire_test.go:108: 
> /tmp/wire_test3195472652/src/example.com/foo/wire.go:25:13: string does not 
> implement example.com/foo.Fooer
> === CONT  TestWire/ValueChain
> === CONT  TestWire/InjectorMissingError
>     wire_test.go:108: 
> /tmp/wire_test1412186609/src/example.com/foo/wire.go:23:1: inject injectFoo: 
> provider for example.com/foo.Foo returns error but injection not allowed to 
> fail
> === CONT  TestWire/NamingWorstCaseAllInOne
> === CONT  TestWire/InterfaceBinding
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFooer() Fooer {
>               bar := provideBar()
>               return bar
>         }
> === CONT  TestWire/NoInjectParamNames
> === CONT  TestWire/VarValue
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               string2 := _wireStringValue
>               return string2
>         }
>         
>         var (
>               _wireStringValue = msg
>         )
> === CONT  TestWire/NoImplicitInterface
> === CONT  TestWire/Varargs
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage(t title, lines ...string) string {
>               string2 := provideMessage(lines...)
>               return string2
>         }
> === CONT  TestWire/NiladicValue
> === CONT  TestWire/InjectorMissingCleanup
>     wire_test.go:108: 
> /tmp/wire_test1339852549/src/example.com/foo/wire.go:23:1: inject injectFoo: 
> provider for example.com/foo.Foo returns cleanup but injection does not 
> return cleanup function
> === CONT  TestWire/NiladicIdentity
> === CONT  TestWire/UnusedProviders
>     wire_test.go:108: 
> /tmp/wire_test1078268874/src/example.com/foo/wire.go:23:1: inject 
> injectFooBar: unused provider set "unusedSet"
>     wire_test.go:108: 
> /tmp/wire_test1078268874/src/example.com/foo/wire.go:23:1: inject 
> injectFooBar: unused provider "main.provideUnused"
>     wire_test.go:108: 
> /tmp/wire_test1078268874/src/example.com/foo/wire.go:23:1: inject 
> injectFooBar: unused value of type string
>     wire_test.go:108: 
> /tmp/wire_test1078268874/src/example.com/foo/wire.go:23:1: inject 
> injectFooBar: unused interface binding to type example.com/foo.Fooer
>     wire_test.go:108: 
> /tmp/wire_test1078268874/src/example.com/foo/wire.go:23:1: inject 
> injectFooBar: unused field "example.com/foo.S".Cfg
> === CONT  TestWire/ReturnArgumentAsInterface
> === CONT  TestWire/ValueConversion
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() Foo {
>               foo := _wireFooValue
>               return foo
>         }
>         
>         var (
>               _wireFooValue = Foo("Hello, World!")
>         )
> === CONT  TestWire/StructWithPreventTag
> === CONT  TestWire/ValueChain
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFooBar() FooBar {
>               foo := _wireFooValue
>               fooBar := provideFooBar(foo)
>               return fooBar
>         }
>         
>         var (
>               _wireFooValue = Foo(41)
>         )
> === CONT  TestWire/StructPointer
> === CONT  TestWire/NamingWorstCaseAllInOne
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               context2 "context"
>               "fmt"
>               "os"
>               "reflect"
>         )
>         
>         // Injectors from foo.go:
>         
>         func inject(context3 context2.Context, err2 struct{}) (context, 
> error) {
>               mainContext, err := Provide(context3)
>               if err != nil {
>                       return context{}, err
>               }
>               return mainContext, nil
>         }
>         
>         // foo.go:
>         
>         type context struct{}
>         
>         func main() {
>               if _, ok := reflect.TypeOf(context{}).MethodByName("Provide"); 
> !ok {
>                       fmt.Println("ERROR: context.Provide renamed")
>                       os.Exit(1)
>               }
>               c, err := inject(context2.Background(), struct{}{})
>               if err != nil {
>                       fmt.Println("ERROR:", err)
>                       os.Exit(1)
>               }
>               fmt.Println(c)
>         }
>         
>         func Provide(context2_2 context2.Context) (context, error) {
>               var context3 = context2.Background()
>               _ = context2_2
>               _ = context3
>               return context{}, nil
>         }
>         
>         func (context) Provide() {
>         }
> === CONT  TestWire/StructNotAStruct
> === CONT  TestWire/NoInjectParamNames
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               context2 "context"
>         )
>         
>         // Injectors from wire.go:
>         
>         func inject(contextContext context2.Context, arg struct{}) (context, 
> error) {
>               mainContext, err := provide(contextContext)
>               if err != nil {
>                       return context{}, err
>               }
>               return mainContext, nil
>         }
> === CONT  TestWire/Struct
> === CONT  TestWire/NoImplicitInterface
>     wire_test.go:108: 
> /tmp/wire_test3370591960/src/example.com/foo/wire.go:23:1: inject 
> injectFooer: no provider found for example.com/foo.Fooer, output of injector
> === CONT  TestWire/ReturnError
> === CONT  TestWire/NiladicIdentity
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               string2 := provideMessage()
>               return string2
>         }
> === CONT  TestWire/ProviderSetBindingMissingConcreteType
> === CONT  TestWire/NiladicValue
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               string2 := _wireStringValue
>               return string2
>         }
>         
>         var (
>               _wireStringValue = "Hello, World!"
>         )
> === CONT  TestWire/ReservedKeywords
> === CONT  TestWire/ReturnArgumentAsInterface
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "fmt"
>         )
>         
>         // Injectors from wire.go:
>         
>         func injectStringer(s MyString) fmt.Stringer {
>               return s
>         }
> === CONT  TestWire/RelativePkg
> === CONT  TestWire/StructWithPreventTag
>     wire_test.go:108: 
> /tmp/wire_test1802987480/src/example.com/foo/foo.go:45:2: "mu" is prevented 
> from injecting by wire
> === CONT  TestWire/UnexportedValue
> === CONT  TestWire/StructPointer
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFooBar() *FooBar {
>               foo := provideFoo()
>               bar := provideBar()
>               fooBar := &FooBar{
>                       Foo: foo,
>                       Bar: bar,
>               }
>               return fooBar
>         }
>         
>         func injectEmptyStruct() *Empty {
>               empty := &Empty{}
>               return empty
>         }
> === CONT  TestWire/InterfaceValueDoesntImplement
> === CONT  TestWire/Struct
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFooBar() FooBar {
>               foo := provideFoo()
>               bar := provideBar()
>               fooBar := FooBar{
>                       Foo: foo,
>                       Bar: bar,
>               }
>               return fooBar
>         }
>         
>         func injectPartFooBar() FooBar {
>               foo := provideFoo()
>               fooBar := FooBar{
>                       Foo: foo,
>               }
>               return fooBar
>         }
> === CONT  TestWire/InterfaceValueNotEnoughArgs
> === CONT  TestWire/ReturnError
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFoo() (Foo, error) {
>               foo, err := provideFoo()
>               if err != nil {
>                       return 0, err
>               }
>               return foo, nil
>         }
> === CONT  TestWire/InterfaceValueInvalidArg0
> === CONT  TestWire/StructNotAStruct
>     wire_test.go:108: 
> /tmp/wire_test3138492415/src/example.com/foo/wire.go:24:13: first argument to 
> Struct must be a pointer to a named struct; found **example.com/foo.A
> === CONT  TestWire/InterfaceValue
> === CONT  TestWire/ProviderSetBindingMissingConcreteType
>     wire_test.go:108: 
> /tmp/wire_test437429966/src/example.com/foo/foo.go:47:21: wire.Bind of 
> concrete type "*example.com/foo.foo" to interface "example.com/foo.fooer", 
> but setB does not include a provider for "*example.com/foo.foo"
> === CONT  TestWire/ValueIsStruct
> === CONT  TestWire/ReservedKeywords
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectInterface() Interface {
>               select2 := provideSelect()
>               mainInterface := provideInterface(select2)
>               return mainInterface
>         }
>         
>         // wire.go:
>         
>         // Wire tries to disambiguate the variable "select" by prepending
>         // the package name; this package-scoped variable conflicts with that
>         // and forces a different name.
>         var mainSelect = 0
> === CONT  TestWire/InterfaceBindingReuse
> === CONT  TestWire/RelativePkg
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               string2 := provideMessage()
>               return string2
>         }
> === CONT  TestWire/PkgImport
> === CONT  TestWire/UnexportedValue
>     wire_test.go:108: 
> /tmp/wire_test268902747/src/example.com/foo/wire.go:24:1: inject 
> injectedMessage: value string can't be used: uses unexported identifier 
> privateMsg
> === CONT  TestWire/PartialCleanup
> === CONT  TestWire/InterfaceValueDoesntImplement
>     wire_test.go:108: 
> /tmp/wire_test2760373376/src/example.com/foo/wire.go:26:13: string does not 
> implement io.Reader
> === CONT  TestWire/ValueIsInterfaceValue
> === CONT  TestWire/InterfaceValue
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "io"
>               "strings"
>         )
>         
>         // Injectors from wire.go:
>         
>         func injectedReader() io.Reader {
>               reader := _wireReaderValue
>               return reader
>         }
>         
>         var (
>               _wireReaderValue = strings.NewReader("hello world")
>         )
> === CONT  TestWire/CopyOtherDecls
> === CONT  TestWire/ValueIsStruct
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFoo() Foo {
>               foo := _wireFooValue
>               return foo
>         }
>         
>         var (
>               _wireFooValue = Foo{X: 42}
>         )
> === CONT  TestWire/ExportedValue
> === CONT  TestWire/InterfaceValueNotEnoughArgs
>     wire_test.go:108: 
> /tmp/wire_test1393717585/src/example.com/foo/wire.go:25:38: not enough 
> arguments in call to wire.InterfaceValue
>               have (string)
>               want (interface{}, interface{})
>     wire_test.go:121: Errors didn't match expected errors from 
> wire_errors.txt:
>           []string{
>               strings.Join({
>                       "example.com/foo/wire.go:x:y: not enough arguments in 
> call to wir",
>                       "e.InterfaceValue",
>         -             "\n\thave (string)\n\twant (interface{}, interface{})",
>               }, ""),
>           }
> === CONT  TestWire/ExampleWithMocks
> === CONT  TestWire/InterfaceValueInvalidArg0
>     wire_test.go:108: 
> /tmp/wire_test4096247115/src/example.com/foo/wire.go:25:13: first argument to 
> InterfaceValue must be a pointer to an interface type; found string
> === CONT  TestWire/EmptyVar
> === CONT  TestWire/PkgImport
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "example.com/bar"
>         )
>         
>         import (
>               _ "example.com/anon1"
>               _ "example.com/anon2"
>         )
>         
>         // Injectors from wire.go:
>         
>         func injectFooBar() FooBar {
>               foo := provideFoo()
>               barBar := bar.ProvideBar()
>               fooBar := provideFooBar(foo, barBar)
>               return fooBar
>         }
> === CONT  TestWire/DocComment
> === CONT  TestWire/InterfaceBindingReuse
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFooBar() FooBar {
>               bar := provideBar()
>               fooBar := provideFooBar(bar, bar)
>               return fooBar
>         }
> === CONT  TestWire/Cycle
> === CONT  TestWire/PartialCleanup
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectBaz() (Baz, func(), error) {
>               foo, cleanup := provideFoo()
>               bar, cleanup2, err := provideBar(foo)
>               if err != nil {
>                       cleanup()
>                       return 0, nil, err
>               }
>               baz, err := provideBaz(bar)
>               if err != nil {
>                       cleanup2()
>                       cleanup()
>                       return 0, nil, err
>               }
>               return baz, func() {
>                       cleanup2()
>                       cleanup()
>               }, nil
>         }
> === CONT  TestWire/FieldsOfValueStruct
> === CONT  TestWire/ValueIsInterfaceValue
>     wire_test.go:108: 
> /tmp/wire_test1660143031/src/example.com/foo/wire.go:27:13: argument to Value 
> may not be an interface value (found io.Reader); use InterfaceValue instead
> === CONT  TestWire/InjectInputConflict
> === CONT  TestWire/ExportedValue
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "example.com/bar"
>         )
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               string2 := _wireStringValue
>               return string2
>         }
>         
>         var (
>               _wireStringValue = bar.PublicMsg
>         )
> === CONT  TestWire/InjectInput
> === CONT  TestWire/ExampleWithMocks
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         // initApp returns a real app.
>         func initApp() *app {
>               mainTimer := _wireRealTimeValue
>               mainGreeter := greeter{
>                       T: mainTimer,
>               }
>               mainApp := &app{
>                       g: mainGreeter,
>               }
>               return mainApp
>         }
>         
>         var (
>               _wireRealTimeValue = realTime{}
>         )
>         
>         // initMockedAppFromArgs returns an app with mocked dependencies 
> provided via
>         // arguments (Approach A). Note that the argument's type is the 
> interface
>         // type (timer), but the concrete mock type should be passed.
>         func initMockedAppFromArgs(mt timer) *app {
>               mainGreeter := greeter{
>                       T: mt,
>               }
>               mainApp := &app{
>                       g: mainGreeter,
>               }
>               return mainApp
>         }
>         
>         // initMockedApp returns an app with its mocked dependencies, created
>         // via providers (Approach B).
>         func initMockedApp() *appWithMocks {
>               mainMockTimer := newMockTimer()
>               mainGreeter := greeter{
>                       T: mainMockTimer,
>               }
>               mainApp := app{
>                       g: mainGreeter,
>               }
>               mainAppWithMocks := &appWithMocks{
>                       app: mainApp,
>                       mt:  mainMockTimer,
>               }
>               return mainAppWithMocks
>         }
> === CONT  TestWire/ImportedInterfaceBinding
> === CONT  TestWire/EmptyVar
>     wire_test.go:108: 
> /tmp/wire_test2371649975/src/example.com/foo/wire.go:24:13: var 
> example.com/foo.myFakeSet struct{} is not a provider or a provider set
> === CONT  TestWire/Header
> === CONT  TestWire/CopyOtherDecls
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "fmt"
>         )
>         
>         // Injectors from foo.go:
>         
>         func injectedMessage() string {
>               string2 := provideMessage()
>               return string2
>         }
>         
>         // foo.go:
>         
>         func main() {
>               fmt.Println(injectedMessage())
>         }
>         
>         // provideMessage provides a friendly user greeting.
>         func provideMessage() string {
>               return "Hello, World!"
>         }
> === CONT  TestWire/FuncArgProvider
> === CONT  TestWire/DocComment
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         /* blockComment returns Foo and has a /*- style doc comment */
>         func blockComment() *Foo {
>               foo := &Foo{}
>               return foo
>         }
>         
>         // lineComment returns Bar and has a //- style doc comment
>         func lineComment() *Bar {
>               bar := &Bar{}
>               return bar
>         }
> === CONT  TestWire/BuildTagsAllPackages
> === CONT  TestWire/Cycle
>     wire_test.go:108: 
> /tmp/wire_test268932666/src/example.com/foo/wire.go:23:1: cycle for 
> example.com/foo.Bar:
>         example.com/foo.Bar (example.com/foo.provideBar) ->
>         example.com/foo.Foo (example.com/foo.provideFoo) ->
>         example.com/foo.Baz (example.com/foo.provideBaz) ->
>         example.com/foo.Bar
> === CONT  TestWire/Cleanup
> === CONT  TestWire/InjectInputConflict
>     wire_test.go:108: 
> /tmp/wire_test1573005150/src/example.com/foo/wire.go:24:2: multiple bindings 
> for example.com/foo.Foo
>         current:
>         <- provider "provideFoo" 
> (/tmp/wire_test1573005150/src/example.com/foo/foo.go:37:6)
>         <- provider set "Set" 
> (/tmp/wire_test1573005150/src/example.com/foo/foo.go:33:11)
>         previous:
>         <- argument foo to injector function injectBar 
> (/tmp/wire_test1573005150/src/example.com/foo/wire.go:23:1)
> === CONT  TestWire/Chain
> === CONT  TestWire/FieldsOfValueStruct
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "example.com/bar"
>               "example.com/baz"
>               "example.com/foo"
>               "fmt"
>         )
>         
>         // Injectors from wire.go:
>         
>         func newBazService() *baz.Service {
>               config := _wireConfigValue
>               fooConfig := config.Foo
>               service := foo.New(fooConfig)
>               barConfig := config.Bar
>               barService := bar.New(barConfig, service)
>               bazService := &baz.Service{
>                       Foo: service,
>                       Bar: barService,
>               }
>               return bazService
>         }
>         
>         var (
>               _wireConfigValue = &baz.Config{
>                       Foo: &foo.Config{1},
>                       Bar: &bar.Config{2},
>               }
>         )
>         
>         // wire.go:
>         
>         func main() {
>               svc := newBazService()
>               fmt.Println(svc.String())
>         }
> === CONT  TestWire/BindInjectorArgPointer
> === CONT  TestWire/InjectInput
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFooBar(foo Foo) FooBar {
>               bar := provideBar()
>               fooBar := provideFooBar(foo, bar)
>               return fooBar
>         }
> === CONT  TestWire/BindInterfaceWithValue
> === CONT  TestWire/ImportedInterfaceBinding
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "example.com/foo"
>         )
>         
>         // Injectors from wire.go:
>         
>         func injectFooer() foo.Fooer {
>               bar := provideBar()
>               return bar
>         }
> === CONT  TestWire/FieldsOfStruct
> === CONT  TestWire/Header
>     wire_test.go:164: wire_gen.go:
>         // This is a sample header file.
>         //
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFoo() Foo {
>               foo := provideFoo()
>               return foo
>         }
> === CONT  TestWire/FieldsOfStructPointer
> === CONT  TestWire/FuncArgProvider
>     wire_test.go:108: 
> /tmp/wire_test1806825206/src/example.com/foo/wire.go:25:19: var fn func() 
> *example.com/foo.Foo is not a provider or a provider set
> === CONT  TestWire/FieldsOfStructDoNotProvidePtrToField
> === CONT  TestWire/BuildTagsAllPackages
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               string2 := _wireStringValue
>               return string2
>         }
>         
>         var (
>               _wireStringValue = "Hello, World!"
>         )
> === CONT  TestWire/FieldsOfImportedStruct
> === CONT  TestWire/Cleanup
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectBar() (*Bar, func()) {
>               foo, cleanup := provideFoo()
>               bar, cleanup2 := provideBar(foo)
>               return bar, func() {
>                       cleanup2()
>                       cleanup()
>               }
>         }
> === CONT  TestWire/FieldsOfCycle
> === CONT  TestWire/BindInjectorArgPointer
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func inject(foo *Foo) *Bar {
>               bar := NewBar(foo)
>               return bar
>         }
> === CONT  TestWire/UnexportedStruct
> === CONT  TestWire/Chain
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectFooBar() FooBar {
>               foo := provideFoo()
>               fooBar := provideFooBar(foo)
>               return fooBar
>         }
> === CONT  TestWire/MultipleMissingInputs
> === CONT  TestWire/FieldsOfStruct
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               s := provideS()
>               string2 := s.Foo
>               return string2
>         }
> === CONT  TestWire/NamingWorstCase
> === CONT  TestWire/BindInterfaceWithValue
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "io"
>               "os"
>         )
>         
>         // Injectors from wire.go:
>         
>         func inject() io.Writer {
>               file := _wireFileValue
>               return file
>         }
>         
>         var (
>               _wireFileValue = os.Stdout
>         )
> === CONT  TestWire/MultipleSimilarPackages
> === CONT  TestWire/FieldsOfStructPointer
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         // Injectors from wire.go:
>         
>         func injectedMessage() string {
>               s := provideS()
>               string2 := s.Foo
>               return string2
>         }
>         
>         func injectedMessagePtr() *string {
>               s := provideS()
>               string2 := &s.Foo
>               return string2
>         }
> === CONT  TestWire/MultipleBindings
> === CONT  TestWire/FieldsOfStructDoNotProvidePtrToField
>     wire_test.go:108: 
> /tmp/wire_test1505679569/src/example.com/foo/wire.go:23:1: inject 
> injectedMessagePtr: no provider found for *string, output of injector
> === CONT  TestWire/MultipleArgsSameType
> === CONT  TestWire/FieldsOfImportedStruct
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "example.com/bar"
>               "example.com/baz"
>               "example.com/foo"
>               "fmt"
>         )
>         
>         // Injectors from wire.go:
>         
>         func newBazService(config *baz.Config) *baz.Service {
>               fooConfig := config.Foo
>               service := foo.New(fooConfig)
>               barConfig := config.Bar
>               barService := bar.New(barConfig, service)
>               bazService := &baz.Service{
>                       Foo: service,
>                       Bar: barService,
>               }
>               return bazService
>         }
>         
>         // wire.go:
>         
>         func main() {
>               cfg := &baz.Config{
>                       Foo: &foo.Config{1},
>                       Bar: &bar.Config{2},
>               }
>               svc := newBazService(cfg)
>               fmt.Println(svc.String())
>         }
> === CONT  TestWire/FieldsOfCycle
>     wire_test.go:108: 
> /tmp/wire_test536177072/src/example.com/foo/wire.go:23:1: cycle for 
> example.com/foo.Bar:
>         example.com/foo.Bar (example.com/foo.provideBar) ->
>         example.com/foo.Foo (example.com/foo.provideFoo) ->
>         example.com/foo.Baz (example.com/foo.Bar.Bz) ->
>         example.com/foo.Bar
> === CONT  TestWire/MultipleMissingInputs
>     wire_test.go:108: 
> /tmp/wire_test1596155149/src/example.com/foo/wire.go:23:1: inject 
> injectMissingOutputType: no provider found for example.com/foo.Foo, output of 
> injector
>     wire_test.go:108: 
> /tmp/wire_test1596155149/src/example.com/foo/wire.go:29:1: inject 
> injectMultipleMissingTypes: no provider found for example.com/foo.Foo
>         needed by example.com/foo.Baz in provider "provideBaz" 
> (/tmp/wire_test1596155149/src/example.com/foo/foo.go:29:6)
>     wire_test.go:108: 
> /tmp/wire_test1596155149/src/example.com/foo/wire.go:29:1: inject 
> injectMultipleMissingTypes: no provider found for example.com/foo.Bar
>         needed by example.com/foo.Baz in provider "provideBaz" 
> (/tmp/wire_test1596155149/src/example.com/foo/foo.go:29:6)
>     wire_test.go:108: 
> /tmp/wire_test1596155149/src/example.com/foo/wire.go:35:1: inject 
> injectMissingRecursiveType: no provider found for example.com/foo.Foo
>         needed by example.com/foo.Zip in provider "provideZip" 
> (/tmp/wire_test1596155149/src/example.com/foo/foo.go:37:6)
>         needed by example.com/foo.Zap in provider "provideZap" 
> (/tmp/wire_test1596155149/src/example.com/foo/foo.go:41:6)
>         needed by example.com/foo.Zop in provider "provideZop" 
> (/tmp/wire_test1596155149/src/example.com/foo/foo.go:45:6)
> === CONT  TestWire/UnexportedStruct
>     wire_test.go:108: 
> /tmp/wire_test437593323/src/example.com/foo/wire.go:26:17: foo not exported 
> by package bar
> === CONT  TestWire/NamingWorstCase
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               context2 "context"
>         )
>         
>         // Injectors from wire.go:
>         
>         func inject(context3 context2.Context, err2 struct{}) (context, 
> error) {
>               mainContext, err := provide(context3)
>               if err != nil {
>                       return context{}, err
>               }
>               return mainContext, nil
>         }
> === CONT  TestWire/MultipleSimilarPackages
>     wire_test.go:164: wire_gen.go:
>         // Code generated by Wire. DO NOT EDIT.
>         
>         //go:generate go run github.com/google/wire/cmd/wire
>         //go:build !wireinject
>         // +build !wireinject
>         
>         package main
>         
>         import (
>               "example.com/bar"
>               "example.com/baz"
>               "example.com/foo"
>               "fmt"
>         )
>         
>         // Injectors from wire.go:
>         
>         func newMainService(mainConfig MainConfig) *MainService {
>               config := mainConfig.Foo
>               service := foo.New(config)
>               barConfig := mainConfig.Bar
>               barService := bar.New(barConfig, service)
>               bazConfig := mainConfig.baz
>               bazService := baz.New(bazConfig, barService)
>               mainService := &MainService{
>                       Foo: service,
>                       Bar: barService,
>                       baz: bazService,
>               }
>               return mainService
>         }
>         
>         // wire.go:
>         
>         type MainConfig struct {
>               Foo *foo.Config
>               Bar *bar.Config
>               baz *baz.Config
>         }
>         
>         type MainService struct {
>               Foo *foo.Service
>               Bar *bar.Service
>               baz *baz.Service
>         }
>         
>         func (m *MainService) String() string {
>               return fmt.Sprintf("%d %d %d", m.Foo.Cfg.V, m.Bar.Cfg.V, 
> m.baz.Cfg.V)
>         }
>         
>         func main() {
>               cfg := MainConfig{
>                       Foo: &foo.Config{1},
>                       Bar: &bar.Config{2},
>                       baz: &baz.Config{3},
>               }
>               svc := newMainService(cfg)
>               fmt.Println(svc.String())
>         }
> === CONT  TestWire/MultipleBindings
>     wire_test.go:108: 
> /tmp/wire_test1899858094/src/example.com/foo/wire.go:27:8: multiple bindings 
> for example.com/foo.Foo
>         current:
>         <- provider "provideFooAgain" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:39:6)
>         previous:
>         <- provider "provideFoo" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:35:6)
>     wire_test.go:108: 
> /tmp/wire_test1899858094/src/example.com/foo/wire.go:32:8: multiple bindings 
> for example.com/foo.Foo
>         current:
>         <- provider "provideFoo" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:35:6)
>         previous:
>         <- provider "provideFoo" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:35:6)
>         <- provider set "Set" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:31:11)
>     wire_test.go:108: 
> /tmp/wire_test1899858094/src/example.com/foo/wire.go:37:8: multiple bindings 
> for example.com/foo.Foo
>         current:
>         <- provider "provideFoo" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:35:6)
>         previous:
>         <- provider "provideFoo" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:35:6)
>         <- provider set "Set" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:31:11)
>         <- provider set "SuperSet" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:32:16)
>     wire_test.go:108: 
> /tmp/wire_test1899858094/src/example.com/foo/foo.go:33:32: 
> SetWithDuplicateBindings has multiple bindings for example.com/foo.Foo
>         current:
>         <- provider "provideFoo" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:35:6)
>         <- provider set "Set" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:31:11)
>         <- provider set "SuperSet" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:32:16)
>         previous:
>         <- provider "provideFoo" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:35:6)
>         <- provider set "Set" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:31:11)
>     wire_test.go:108: 
> /tmp/wire_test1899858094/src/example.com/foo/wire.go:47:8: multiple bindings 
> for example.com/foo.Foo
>         current:
>         <- wire.Value 
> (/tmp/wire_test1899858094/src/example.com/foo/wire.go:47:42)
>         previous:
>         <- provider "provideFoo" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:35:6)
>     wire_test.go:108: 
> /tmp/wire_test1899858094/src/example.com/foo/wire.go:52:8: multiple bindings 
> for example.com/foo.Bar
>         current:
>         <- wire.Bind 
> (/tmp/wire_test1899858094/src/example.com/foo/wire.go:52:31)
>         previous:
>         <- provider "provideBar" 
> (/tmp/wire_test1899858094/src/example.com/foo/foo.go:43:6)
> === CONT  TestWire/MultipleArgsSameType
>     wire_test.go:108: 
> /tmp/wire_test350672140/src/example.com/foo/wire.go:25:8: multiple bindings 
> for string
>         current:
>         <- argument b to injector function inject 
> (/tmp/wire_test350672140/src/example.com/foo/wire.go:23:1)
>         previous:
>         <- argument a to injector function inject 
> (/tmp/wire_test350672140/src/example.com/foo/wire.go:23:1)
> --- FAIL: TestWire (0.01s)
>     --- PASS: TestWire/ValueFromFunctionScope (1.59s)
>     --- PASS: TestWire/ExportedValueDifferentPackage (1.66s)
>     --- PASS: TestWire/TwoDeps (1.86s)
>     --- PASS: TestWire/InvalidInjector (1.89s)
>     --- PASS: TestWire/InjectWithPanic (1.92s)
>     --- FAIL: TestWire/InterfaceBindingNotEnoughArgs (1.93s)
>     --- PASS: TestWire/NoopBuild (1.95s)
>     --- PASS: TestWire/BindInjectorArg (2.03s)
>     --- PASS: TestWire/InterfaceBindingInvalidArg0 (1.57s)
>     --- PASS: TestWire/InterfaceBindingDoesntImplement (1.54s)
>     --- PASS: TestWire/InjectorMissingError (1.36s)
>     --- PASS: TestWire/InterfaceBinding (1.52s)
>     --- PASS: TestWire/VarValue (1.46s)
>     --- PASS: TestWire/Varargs (1.65s)
>     --- PASS: TestWire/InjectorMissingCleanup (1.74s)
>     --- PASS: TestWire/UnusedProviders (1.71s)
>     --- PASS: TestWire/ValueConversion (1.38s)
>     --- PASS: TestWire/ValueChain (1.38s)
>     --- PASS: TestWire/NamingWorstCaseAllInOne (1.53s)
>     --- PASS: TestWire/NoInjectParamNames (1.42s)
>     --- PASS: TestWire/NoImplicitInterface (1.40s)
>     --- PASS: TestWire/NiladicIdentity (1.30s)
>     --- PASS: TestWire/NiladicValue (1.51s)
>     --- PASS: TestWire/ReturnArgumentAsInterface (1.45s)
>     --- PASS: TestWire/StructWithPreventTag (1.36s)
>     --- PASS: TestWire/StructPointer (1.44s)
>     --- PASS: TestWire/Struct (1.35s)
>     --- PASS: TestWire/ReturnError (1.35s)
>     --- PASS: TestWire/StructNotAStruct (1.39s)
>     --- PASS: TestWire/ProviderSetBindingMissingConcreteType (1.34s)
>     --- PASS: TestWire/ReservedKeywords (1.57s)
>     --- PASS: TestWire/RelativePkg (1.49s)
>     --- PASS: TestWire/UnexportedValue (1.16s)
>     --- PASS: TestWire/InterfaceValueDoesntImplement (1.24s)
>     --- PASS: TestWire/InterfaceValue (1.39s)
>     --- PASS: TestWire/ValueIsStruct (1.27s)
>     --- FAIL: TestWire/InterfaceValueNotEnoughArgs (1.46s)
>     --- PASS: TestWire/InterfaceValueInvalidArg0 (1.53s)
>     --- PASS: TestWire/PkgImport (1.27s)
>     --- PASS: TestWire/InterfaceBindingReuse (1.33s)
>     --- PASS: TestWire/PartialCleanup (1.39s)
>     --- PASS: TestWire/ValueIsInterfaceValue (1.20s)
>     --- PASS: TestWire/ExportedValue (1.47s)
>     --- PASS: TestWire/ExampleWithMocks (1.48s)
>     --- PASS: TestWire/EmptyVar (1.46s)
>     --- PASS: TestWire/CopyOtherDecls (1.64s)
>     --- PASS: TestWire/DocComment (1.40s)
>     --- PASS: TestWire/Cycle (1.65s)
>     --- PASS: TestWire/InjectInputConflict (1.37s)
>     --- PASS: TestWire/FieldsOfValueStruct (1.39s)
>     --- PASS: TestWire/InjectInput (1.09s)
>     --- PASS: TestWire/ImportedInterfaceBinding (1.07s)
>     --- PASS: TestWire/Header (1.47s)
>     --- PASS: TestWire/FuncArgProvider (1.59s)
>     --- PASS: TestWire/BuildTagsAllPackages (1.45s)
>     --- PASS: TestWire/Cleanup (1.50s)
>     --- PASS: TestWire/BindInjectorArgPointer (1.38s)
>     --- PASS: TestWire/Chain (1.45s)
>     --- PASS: TestWire/FieldsOfStruct (1.28s)
>     --- PASS: TestWire/BindInterfaceWithValue (1.29s)
>     --- PASS: TestWire/FieldsOfStructPointer (1.36s)
>     --- PASS: TestWire/FieldsOfStructDoNotProvidePtrToField (1.53s)
>     --- PASS: TestWire/FieldsOfImportedStruct (1.57s)
>     --- PASS: TestWire/FieldsOfCycle (1.27s)
>     --- PASS: TestWire/MultipleMissingInputs (1.20s)
>     --- PASS: TestWire/UnexportedStruct (1.27s)
>     --- PASS: TestWire/NamingWorstCase (1.17s)
>     --- PASS: TestWire/MultipleSimilarPackages (1.28s)
>     --- PASS: TestWire/MultipleBindings (0.78s)
>     --- PASS: TestWire/MultipleArgsSameType (0.62s)
> === RUN   TestUnexport
> --- PASS: TestUnexport (0.00s)
> === RUN   TestExport
> --- PASS: TestExport (0.00s)
> === RUN   TestTypeVariableName
> === RUN   
> TestTypeVariableName/basic_type:_typeVariableName(bool,_"",_"",_map[])
> === RUN   
> TestTypeVariableName/basic_type_with_transform:_typeVariableName(bool,_"",_"suffix",_map[])
> === RUN   
> TestTypeVariableName/basic_type_with_collision:_typeVariableName(bool,_"",_"",_map[bool:true])
> === RUN   
> TestTypeVariableName/basic_type_with_transform_and_collision:_typeVariableName(bool,_"",_"suffix",_map[boolsuffix:true])
> === RUN   
> TestTypeVariableName/a_different_basic_type:_typeVariableName(string,_"",_"",_map[])
> === RUN   
> TestTypeVariableName/named_type:_typeVariableName(foo,_"",_"",_map[])
> === RUN   
> TestTypeVariableName/named_type_with_transform:_typeVariableName(foo,_"",_"suffix",_map[])
> === RUN   
> TestTypeVariableName/named_type_with_collision:_typeVariableName(foo,_"",_"",_map[foo:true])
> === RUN   
> TestTypeVariableName/named_type_with_transform_and_collision:_typeVariableName(foo,_"",_"suffix",_map[foosuffix:true])
> === RUN   
> TestTypeVariableName/noname_type:_typeVariableName(,_"bar",_"",_map[])
> === RUN   
> TestTypeVariableName/noname_type_with_transform:_typeVariableName(,_"bar",_"s",_map[])
> === RUN   
> TestTypeVariableName/noname_type_with_transform_and_collision:_typeVariableName(,_"bar",_"s",_map[bars:true])
> === RUN   
> TestTypeVariableName/var_in_pkg_type:_typeVariableName(my.example/foo.bar,_"",_"",_map[])
> === RUN   
> TestTypeVariableName/var_in_pkg_type_with_collision:_typeVariableName(my.example/foo.bar,_"",_"",_map[bar:true])
> === RUN   
> TestTypeVariableName/var_in_pkg_type_with_double_collision:_typeVariableName(my.example/foo.bar,_"",_"",_map[bar:true_fooBar:true])
> --- PASS: TestTypeVariableName (0.00s)
>     --- PASS: 
> TestTypeVariableName/basic_type:_typeVariableName(bool,_"",_"",_map[]) (0.00s)
>     --- PASS: 
> TestTypeVariableName/basic_type_with_transform:_typeVariableName(bool,_"",_"suffix",_map[])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/basic_type_with_collision:_typeVariableName(bool,_"",_"",_map[bool:true])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/basic_type_with_transform_and_collision:_typeVariableName(bool,_"",_"suffix",_map[boolsuffix:true])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/a_different_basic_type:_typeVariableName(string,_"",_"",_map[])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/named_type:_typeVariableName(foo,_"",_"",_map[]) (0.00s)
>     --- PASS: 
> TestTypeVariableName/named_type_with_transform:_typeVariableName(foo,_"",_"suffix",_map[])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/named_type_with_collision:_typeVariableName(foo,_"",_"",_map[foo:true])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/named_type_with_transform_and_collision:_typeVariableName(foo,_"",_"suffix",_map[foosuffix:true])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/noname_type:_typeVariableName(,_"bar",_"",_map[]) (0.00s)
>     --- PASS: 
> TestTypeVariableName/noname_type_with_transform:_typeVariableName(,_"bar",_"s",_map[])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/noname_type_with_transform_and_collision:_typeVariableName(,_"bar",_"s",_map[bars:true])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/var_in_pkg_type:_typeVariableName(my.example/foo.bar,_"",_"",_map[])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/var_in_pkg_type_with_collision:_typeVariableName(my.example/foo.bar,_"",_"",_map[bar:true])
>  (0.00s)
>     --- PASS: 
> TestTypeVariableName/var_in_pkg_type_with_double_collision:_typeVariableName(my.example/foo.bar,_"",_"",_map[bar:true_fooBar:true])
>  (0.00s)
> === RUN   TestDisambiguate
> === RUN   TestDisambiguate/disambiguate("foo",_map[])
> === RUN   TestDisambiguate/disambiguate("foo",_map[foo:true])
> === RUN   
> TestDisambiguate/disambiguate("foo",_map[foo:true_foo1:true_foo2:true])
> === RUN   
> TestDisambiguate/disambiguate("foo1",_map[foo:true_foo1:true_foo2:true])
> === RUN   
> TestDisambiguate/disambiguate("foo١",_map[foo:true_foo1:true_foo2:true])
> === RUN   
> TestDisambiguate/disambiguate("foo١",_map[foo:true_foo1:true_foo2:true_foo١:true])
> === RUN   TestDisambiguate/disambiguate("select",_map[])
> === RUN   TestDisambiguate/disambiguate("var",_map[])
> --- PASS: TestDisambiguate (0.00s)
>     --- PASS: TestDisambiguate/disambiguate("foo",_map[]) (0.00s)
>     --- PASS: TestDisambiguate/disambiguate("foo",_map[foo:true]) (0.00s)
>     --- PASS: 
> TestDisambiguate/disambiguate("foo",_map[foo:true_foo1:true_foo2:true]) 
> (0.00s)
>     --- PASS: 
> TestDisambiguate/disambiguate("foo1",_map[foo:true_foo1:true_foo2:true]) 
> (0.00s)
>     --- PASS: 
> TestDisambiguate/disambiguate("foo١",_map[foo:true_foo1:true_foo2:true]) 
> (0.00s)
>     --- PASS: 
> TestDisambiguate/disambiguate("foo١",_map[foo:true_foo1:true_foo2:true_foo١:true])
>  (0.00s)
>     --- PASS: TestDisambiguate/disambiguate("select",_map[]) (0.00s)
>     --- PASS: TestDisambiguate/disambiguate("var",_map[]) (0.00s)
> FAIL
> FAIL  github.com/google/wire/internal/wire    13.014s
> FAIL
> dh_auto_test: error: cd _build && go test -vet=off -v -p 8 
> github.com/google/wire github.com/google/wire/cmd/wire 
> github.com/google/wire/internal/wire returned exit code 1


The full build log is available from:
http://qa-logs.debian.net/2022/03/26/golang-github-google-wire_0.5.0-1_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to