Overriding computed properties with let constants?


(Roman Zhikharevich) #1

I think, it could be a good idea to make computed properties overridable with let constants.

Something like this:

class Parent {
    var x: Int {
        let x = 42
        /*
         * Compute x...
         */
        return x
    }
}

class Child: Parent {
    /*
     * Sometimes you need to override computed properties with simple constants.
     * This is currently done like this.
     */
    //override var x: Int {return 7}
    
    /*
     * But this looks neater.
     * Currently this gives "error: cannot override with a stored property 'x'".
     */
    override let x = 7
}