func (b *builder) setCall(fn *Function, e *ast.CallExpr, c *CallCommon) {
	// First deal with the f(...) part and optional receiver.
	b.setCallFunc(fn, e, c)

	// Then append the other actual parameters.
	sig, _ := fn.Pkg.typeOf(e.Fun).Underlying().(*types.Signature)
	if sig == nil {
		panic(fmt.Sprintf("no signature for call of %s", e.Fun))
	}
	c.Args = b.emitCallArgs(fn, sig, e, c.Args)
}
func (b *builder) setCall(fn *Function, e *ast.CallExpr, c *CallCommon) {
	
	b.setCallFunc(fn, e, c)

	
	sig, _ := fn.Pkg.typeOf(e.Fun).Underlying().(*types.Signature)
	if sig == nil {
		panic(fmt.Sprintf("no signature for call of %s", e.Fun))
	}
	c.Args = b.emitCallArgs(fn, sig, e, c.Args)
}
func ( b * builder ) setCall ( fn * Function , e * ast . CallExpr , c * CallCommon ) { // First deal with the f(...) part and optional receiver. b . setCallFunc ( fn , e , c ) // Then append the other actual parameters. sig , _ := fn . Pkg . typeOf ( e . Fun ) . Underlying ( ) . ( * types . Signature ) if sig == nil { panic ( fmt . Sprintf ( " " , e . Fun ) ) } c . Args = b . emitCallArgs ( fn , sig , e , c . Args ) }
// setCall emits to fn code to evaluate all the parameters of a function
// call e, and populates *c with those values.
//
setCall emits to fn code to evaluate all the parameters of a function call e and populates * c with those values .