[swift-evolution] ability to derive a class from a struct or other value type

Mike Kluev mike.kluev at gmail.com
Wed Jun 21 13:29:53 CDT 2017


sorry if this was already discussed.

proposing an ability to derive a class from a struct or another value type
(e.g. enum).
would make it easy to wrap value type in a reference type without explicit
code:

struct S {
    var v: Int
    func method() {}
    static staticMethod() {}
}

class C: S {
func otherMethod() {}
// ...
}

let c = C()

c.v = 1
c.method()
C.staticMethod()
c.otherMethod()

shall work as if i had a struct variable and all struct functions
implemented in a class calling through that var:

pseudo code:

class C {

// auto generated internally:
    var `struct`: S

    func method() {
        `struct`.method()
    }
    static staticMethod() {
        S.staticMethod()
    }
//---

func otherMethod() {}
}

would also be nice to have ability to overload struct's methods:

class C: S {
    override func method() {
        super.method()
    }
}

and have struct initializators inherited:

let c = C(struct initialization params)

thoughts?

Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170621/89af45c7/attachment.html>


More information about the swift-evolution mailing list