title: go error - multiple-value fn() in single-value context
body: <p>I want to pass the results from a function fn() returning multiple values into a function wantx() that accepts multiple values.  This seems to work if the number of values accepted by wantx() matches the number of return values.  For example, fn() returns 2 values, and want2() accepts 2 values:</p>
  
  <pre><code>r:= want2( fn(5) )   // seems to work fine
  </code></pre>
  
  <p>However, if I want the return values of fn() to act as arguments 2 and 3 of want3(), then I get an error:</p>
  
  <pre><code>r:= want3( 1, fn(5) ) // error: multiple-value fn() in single-value context
  </code></pre>
  
  <p>How is want2() a multiple-value context while want3() is not ?</p>
  
  <p>How do I get the call to want3() to work ?</p>
  
  <p>Here is the full program:</p>
  
  <pre><code>package sandbox
  
  import "testing"
  
  func want3(fac int, i int, ok bool) int {
      if ok {
          return i * fac * 2
      }
      return i * fac * 3
  }
  
  func want2(i int, ok bool) int {
      if ok {
          return i * 2
      }
      return i * 3
  }
  
  func fn(i int) (int, bool) {
      return i, true
  }
  
  func TestCall(t *testing.T) {
      // error: multiple-value fn() in single-value context
      // r := want3(1, fn(5))
  
      r := want2( fn(5) )  // works fine
  
      if r != 10 {
          t.Errorf("Call!")
      }
  }
  </code></pre>