title: Expected &-ptr, found tuple while iterating over an array of tuples
body: <p>I have an array:</p>
  
  <pre><code>const adjacent: [(i8, i8); 8] = 
      [(-1, -1), (-1, 0), (-1, 1), (-1, 0), (1, 0), (1, 1), (1, 0), (1, -1)];
  </code></pre>
  
  <p>This array represents all adjacent neighbors of a cell within a <em>ROW</em>x<em>COLUMN</em> grid. To iterate over this array to find all neighbors, I do</p>
  
  <pre><code>for k in adjacent.into_iter() {
      let (i, c) = (k.0, k.1);
      if let Some(a) = grid.get(r+i, j+c) {
          /* ... */
      }
  }
  </code></pre>
  
  <p>The second line seems like it could be substituted for K, but this causes an error if you write <code>for (i, c) in adjacency.into_iter() { ...</code></p>
  
  <pre><code>error: type mismatch resolving `&lt;core::slice::Iterator&gt;::Item == (_, _)`:
  expected &amp;-ptr
  found tuple
  </code></pre>
  
  <p>what's going on here? Can someone explain why I cannot do this? </p>