title: Mutating function inside class
body: <p>Consider this class in Swift:</p>
  
  <pre><code>class Zombie: Monster {
      var walksWithLimp = true
  
      final override func terrorizeTown()
      {
          town?.changePopulation(-10)
          super.terrorizeTown()
      }
  
      func changeName(name: String, walksWithLimp: Bool)
      {
          self.name = name
          self.walksWithLimp = walksWithLimp
      }
  }
  </code></pre>
  
  <p>Zombie inherits the name field from the Monster class.</p>
  
  <pre><code>var name = "Monster"
  </code></pre>
  
  <p>Why does</p>
  
  <pre><code>fredTheZombie.changeName("Tom", walksWithLimp: true) 
  </code></pre>
  
  <p>work even if there is no mutating keyword before the function header?</p>