I’d like to revive this idea I posted long time ago. There is only one thing I
need to update here:
protocol MagicType: class /* missed the class constraint */ {
final var foo: Int { get }
final func boo()
}
What do you guys think? Is there any technical reason why this is not possible?
--
Adrian Zubarev
Sent with Airmail
Am 5. Dezember 2015 bei 16:26:23, Adrian Zubarev
([email protected]) schrieb:
Hello there,
I wonder if it is a good idea to be able to finalize in protocols and default
implementations.
Here is an example:
protocol MagicType {
final var foo: Int { get }
final func boo()
}
class X: MagicType {
final var foo: Int {
return 42
}
final func boo() {
print("magic")
}
}
class Y: X {
// can't override func boo or var foo in here
}
//===================================================//
protocol SomeType {}
extension SomeType {
final func foo() {
print("Hello World")
}
}
class A: SomeType {}
class B: SomeType {
/* this should raise an error, because the class B shouldn't */
/* be able to override that function from SomeType */
func foo() {
// do something else
}
}
—
Regards Adrian
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution