func (c *CallCommon) Description() string {
	switch fn := c.Value.(type) {
	case *Builtin:
		return "built-in function call"
	case *MakeClosure:
		return "static function closure call"
	case *Function:
		if fn.Signature.Recv() != nil {
			return "static method call"
		}
		return "static function call"
	}
	if c.IsInvoke() {
		return "dynamic method call" // ("invoke" mode)
	}
	return "dynamic function call"
}
func (c *CallCommon) Description() string {
	switch fn := c.Value.(type) {
	case *Builtin:
		return "built-in function call"
	case *MakeClosure:
		return "static function closure call"
	case *Function:
		if fn.Signature.Recv() != nil {
			return "static method call"
		}
		return "static function call"
	}
	if c.IsInvoke() {
		return "dynamic method call" 
	}
	return "dynamic function call"
}
func ( c * CallCommon ) Description ( ) string { switch fn := c . Value . ( type ) { case * Builtin : return " " case * MakeClosure : return " " case * Function : if fn . Signature . Recv ( ) != nil { return " " } return " " } if c . IsInvoke ( ) { return " " // ("invoke" mode) } return " " }
// Description returns a description of the mode of this call suitable
// for a user interface, e.g., "static method call".
Description returns a description of the mode of this call suitable for a user interface e . g . static method call .