compiler: process literals in analyzeVoidCalls
Function call can occur in the slice or map literal and its result surely isn't unused.
This commit is contained in:
parent
5f3b8c6d51
commit
fd52dee79f
3 changed files with 34 additions and 0 deletions
|
@ -136,6 +136,18 @@ func (c *funcScope) analyzeVoidCalls(node ast.Node) bool {
|
|||
c.voidCalls[n] = true
|
||||
}
|
||||
return false
|
||||
case *ast.CompositeLit:
|
||||
for _, e := range n.Elts {
|
||||
switch val := e.(type) {
|
||||
case *ast.CallExpr: // slice
|
||||
c.voidCalls[val] = false
|
||||
case *ast.KeyValueExpr: // struct and map
|
||||
ce, ok := val.Value.(*ast.CallExpr)
|
||||
if ok {
|
||||
c.voidCalls[ce] = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue