iris icon indicating copy to clipboard operation
iris copied to clipboard

[BUG] router.APIContainer.RegisterDependency not works with zero input function

Open yz89122 opened this issue 4 years ago • 0 comments

Describe the bug The following code will produce panic.

package main

import (
	"github.com/kataras/iris/v12"
)

func main() {
	app := iris.Default()
	app.ConfigureContainer(func(api *iris.APIContainer) {
		api.RegisterDependency(func() float64 {
			return float64(1)
		})
	})
}

To Reproduce

  1. In main.go
    package main
    
    import (
        "github.com/kataras/iris/v12"
    )
    
    func main() {
        app := iris.Default()
        app.ConfigureContainer(func(api *iris.APIContainer) {
    	    api.RegisterDependency(func() float64 {
    		    return float64(1)
    	    })
        })
    }
    
  2. Run ( go run main.go )
  3. Panic
    [DBUG] 2021/07/22 22:09 Log level set to "debug"
    [DBUG] 2021/07/22 22:09 Using <./access.log> to log requests
    [DBUG] 2021/07/22 22:09 Using <UUID4> to identify requests
    panic: bad value: function has zero inputs
    
    goroutine 1 [running]:
    github.com/kataras/iris/v12/hero.fromFunc(0x1894580, 0x1a24730, 0x13, 0xc00027fb00, 0x100f600)
            /Users/yz/go/pkg/mod/github.com/kataras/iris/[email protected]/hero/dependency.go:144 +0x4cb
    github.com/kataras/iris/v12/hero.resolveDependency(0x1894580, 0x1a24730, 0x13, 0xc0002cd500, 0xc00027fb00, 0xc00027fa40, 0xc, 0xc, 0x1)
            /Users/yz/go/pkg/mod/github.com/kataras/iris/[email protected]/hero/dependency.go:90 +0x151
    github.com/kataras/iris/v12/hero.newDependency(0x1894580, 0x1a24730, 0xc000288f00, 0xc00027fa40, 0xc, 0xc, 0x1823387)
            /Users/yz/go/pkg/mod/github.com/kataras/iris/[email protected]/hero/dependency.go:77 +0x1dc
    github.com/kataras/iris/v12/hero.(*Container).Register(0xc0002f4cb0, 0x1894580, 0x1a24730, 0xc000277500)
            /Users/yz/go/pkg/mod/github.com/kataras/iris/[email protected]/hero/container.go:284 +0x6a
    github.com/kataras/iris/v12/core/router.(*APIContainer).RegisterDependency(...)
            /Users/yz/go/pkg/mod/github.com/kataras/iris/[email protected]/core/router/api_container.go:71
    main.main.func1(0xc000267800)
            /Users/yz/workspace/test/main.go:10 +0x47
    github.com/kataras/iris/v12/core/router.(*APIBuilder).ConfigureContainer(0xc000273e60, 0xc00051ff70, 0x1, 0x1, 0xffffffff)
            /Users/yz/go/pkg/mod/github.com/kataras/iris/[email protected]/core/router/api_builder.go:335 +0x64
    main.main()
            /Users/yz/workspace/test/main.go:9 +0x66
    exit status 2
    

Expected behavior No panic

Desktop (please complete the following information):

  • OS: macOS Big Sur 11.4
  • go: 1.16

iris.Version

  • v12.2.0-alpha2

yz89122 avatar Jul 22 '21 14:07 yz89122