kataras / kataras/iris

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

Open
#1,795 0 comments 0 reactions 1 assignee Claimed by @kataras View on GitHub
🐞 type:bug
Dominant language
Go
Stars
25.6k
Forks
2.4k
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
The following code will produce panic.

```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)
})
})
}
```

**To Reproduce**
1. In `main.go`
```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 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/v12@v12.2.0-alpha2.0.20210705170737-afb15b860124/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/v12@v12.2.0-alpha2.0.20210705170737-afb15b860124/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/v12@v12.2.0-alpha2.0.20210705170737-afb15b860124/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/v12@v12.2.0-alpha2.0.20210705170737-afb15b860124/hero/container.go:284 +0x6a
github.com/kataras/iris/v12/core/router.(*APIContainer).RegisterDependency(...)
/Users/yz/go/pkg/mod/github.com/kataras/iris/v12@v12.2.0-alpha2.0.20210705170737-afb15b860124/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/v12@v12.2.0-alpha2.0.20210705170737-afb15b860124/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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.