in a perfect world, it should be like this:
```
func test() (err error) {
defer func() {
 if e0 := rc.Close(); e0 != nil && err == nil {
   err = e0
}
}()
}
```