Files
swift-mirror/test/attr/attr_extensible.swift
Pavel Yaskevich a0ae93d3a8 [AST/Sema] Add @extensible attribute on enum declarations
This attribute controls whether cross-module access to the declaration
needs `@unknown default:` because it's allowed to gain new cases even
if the module is non-resilient.
2025-04-03 16:30:19 -07:00

39 lines
1.2 KiB
Swift

// RUN: %target-typecheck-verify-swift
@extensible
public enum E1 { // Ok
}
@extensible // expected-error {{'@extensible' attribute can only be applied to public or package declarations, but 'E2' is fileprivate}}
fileprivate enum E2 {}
@extensible // expected-error {{cannot use '@extensible' together with '@frozen'}}
@frozen
public enum E3 {
}
@extensible // expected-error {{'@extensible' attribute can only be applied to public or package declarations, but 'E4' is internal}}
@usableFromInline
enum E4 {}
@extensible // expected-error {{@extensible may only be used on 'enum' declarations}}
struct Test {
@extensible // expected-error {{@extensible may only be used on 'enum' declarations}}
var v: Int {
@extensible // expected-error {{@extensible may only be used on 'enum' declarations}}
get { 0 }
}
@extensible // expected-error {{@extensible may only be used on 'enum' declarations}}
var v2: String = ""
@extensible // expected-error {{@extensible may only be used on 'enum' declarations}}
func test() {}
@extensible // expected-error {{@extensible may only be used on 'enum' declarations}}
subscript(a: Int) -> Bool {
get { false }
set { }
}
}