title: Bizarre Swift Error: 'filter' is unavailable
body: <p>I working on the exercises provided by exercise.io.  One of them is Raindrops, where provided a number, pass "Pling", "Plang", "Plong", or the number depending on if 3, 5, or 7 are factors of the number.</p>
  
  <p>I've already got a simple working solution, but I wanted to iterate over the problem and try different things.  The following example works in a Swift playground, but mysteriously fails with "'filter' is unavailable" in the exercise project.</p>
  
  <pre><code>class Raindrops {
      let number:   Int
      let notes:  [ Int: String ] =  [ 3: "Pling"
                                     , 5: "Plang"
                                     , 7: "Plong" ]
  
      init( _ number: Int ) {
          self.number = number
      }
  
      var sounds: String {
          return notes.filter{ number % $0.key == 0 }  // (!) 'filter' is unavailable
                     .keys.sorted().map{ notes[ $0 ]! }
                         .joined( separator: "" )
      }
  }
  </code></pre>
  
  <p>In the project, the class is called by functions such as this.  (Edited because previous test would have failed as written yet.)</p>
  
  <pre><code>func test105() {
      XCTAssertEqual("PlingPlangPlong", Raindrops(105).sounds)
  }
  </code></pre>
  
  <p>In my Swift playground, where this error does NOT occur, I have this.</p>
  
  <pre><code>class Raindrops {
      let number:   Int
      let notes:  [ Int: String ] =  [ 3: "Pling"
                                     , 5: "Plang"
                                     , 7: "Plong" ]
  
      init( _ number: Int ) {
          self.number = number
      }
  
      var sounds: String {
          return notes.filter{ number % $0.key == 0 }
                     .keys.sorted().map{ notes[ $0 ]! }
                         .joined( separator: "" )
      }
  }
  
  print( Raindrops( 105 ).sounds ) // Returns "PlingPlangPlong as expected
  </code></pre>
  
  <p>I am using Xcode Version 9.0 (9A235).</p>
  
  <p>I apparently do not have enough reputation to post screenshots.</p>