title: Deconstruction is ambiguous
body: <p>I have a vector class with two deconstruction methods as follows:</p>
  
  <pre><code>public readonly struct Vector2
  {
      public readonly double X, Y;
  
      ...
  
      public void Deconstruct( out double x, out double y )
      {
          x = this.X;
          y = this.Y;
      }
  
      public void Deconstruct( out Vector2 unitVector, out double length )
      {
          length = this.Length;
          unitVector = this / length;
      }
  }
  </code></pre>
  
  <p>Somewhere else I have:</p>
  
  <pre><code>Vector2 foo = ...
  (Vector2 dir, double len) = foo;
  </code></pre>
  
  <p>This gives me:</p>
  
  <pre><code>CS0121: The call is ambiguous between the following methods or properties: 'Vector2.Deconstruct(out double, out double)' and 'Vector2.Deconstruct(out Vector2, out double)'
  </code></pre>
  
  <p>How is this ambiguous?</p>
  
  <p>Edit: Calling Deconstruct manually works fine:</p>
  
  <pre><code>foo.Deconstruct( out Vector2 dir, out double len );
  </code></pre>