title: Swift 2 Error using mutating function in Protocol extension "Cannot use mutating member on immutable value: 'self' is immutable
body: <p>Not sure what's going on here, this seems like it should be pretty straight forward.  I have a protocol that mutable var, an extension with a mutating function.  Things are crapping out in the <em>testClass.testFunc</em>, when I try and use <em>mtkAnimQueAppend</em> declared in the extension, I get this error: <strong>"Cannot use mutating member on immutable value: 'self' is immutable.</strong>  </p>
  
  <pre><code>protocol MTKAnimateValueDelegate {
      var mtkAnimQue:[MTKAnimateValue]? {get set}
  }
  
  extension MTKAnimateValueDelegate {
      ///Adds element to que
      mutating func mtkAnimQueAppend(element:MTKAnimateValue) {
  
          if mtkAnimQue != nil {
            mtkAnimQue?.append(element)
          } else {
            mtkAnimQue = [element]
          }
      }
  }
  
  class testClass: MTKAnimateValueDelegate {
  
    var mtkAnimQue:[MTKAnimateValue]?
  
    func testFunc() {
      var animValue = MTKAnimateValue(fromValue: 10, toValue: 20, inSeconds: 2)
      animValue.isAnimating = true
      mtkAnimQueAppend(animValue) //ERROR: "Cannot use mutating member on immutable value: 'self' is immutable
    }
  
  }
  </code></pre>