<div>var behaviour computed<Value>: Value {</div><div> accessor get() -> Value</div><div> accessor set(newValue: Value) {</div><div> fatalError()</div><div> }</div><div><div> get {</div><div> return get()</div><div> }</div><div> set {</div><div> set(newValue)</div><div> }</div><div>}</div><div><br></div><div>There seems to be no way we can disable `set` if `accessor set` is defaulted, based on current property behaviour rules. We could add both @computed and @computedReadOnly, for example.<br><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Behaviors already support read-only getters—you just omit the set {} block.<br>
</blockquote><div><br></div><div>And I've just discovered a gaping hole in this design: mutability of `accessor get` cannot be automatically forwarded to `get`. We would have to always declare mutable `get`. Or have @computed, @computedMutable, @computedReadOnly, @computedMutableReadOnly.</div><div><br></div><div>So computed properties should remain untouched for now, I guess.</div></div></div>