title: Cannot assign value using a custom subscript method with a setter
body: <p>This is from apple's official documentation(slightly modified) -</p>
  
  <pre><code>class Person {
      var residence: Residence?
  }
  
  
  class Residence {
      var rooms = [Room]()
      var numberOfRooms: Int {
          return rooms.count
      }
      subscript(i: Int) -&gt; Room {
          get {
              return rooms[i]
          }
          set {
              rooms[i] = newValue
          }
      }
  }
  
  class Room {
      let name: String
      init(name: String) { self.name = name }
  }
  
  let john = Person()
  let johnsHouse = Residence()
  
  johnsHouse.rooms.append(Room(name: "Living Room")) 
  johnsHouse.rooms.append(Room(name: "Kitchen"))
  john.residence = johnsHouse 
  
  let firstRoomName = john.residence?[0].name
  print(firstRoomName)
  </code></pre>
  
  <p>prints - Optional("Living Room")</p>
  
  <p>So, above program uses getter (even if I omit setter, prints the same). This time I want to use setter instead of getter. How to go about it ? </p>