[Frontend] Add ExtensibleAttribute to guard use of @extensible attribute

Guard against condfails when older compilers get a swift interface
that uses `@extensible` attribute. The attribute itself doesn't
have any effect in swift interfaces yet since all of the public
enums are already resilient in that mode.

(cherry picked from commit 6d89bca765)
This commit is contained in:
Pavel Yaskevich
2025-04-24 09:40:43 -07:00
parent 4579afb71d
commit a0ab1dc40d
5 changed files with 32 additions and 9 deletions

View File

@@ -0,0 +1,18 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-emit-module-interface(%t/Library.swiftinterface) %s -enable-experimental-feature ExtensibleAttribute -module-name Library
// RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -enable-experimental-feature ExtensibleAttribute -module-name Library
// RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -module-name Library
// RUN: %FileCheck %s < %t/Library.swiftinterface
// REQUIRES: swift_feature_ExtensibleAttribute
// CHECK: #if compiler(>=5.3) && $ExtensibleAttribute
// CHECK-NEXT: @extensible public enum E {
// CHECK-NEXT: }
// CHECK-NEXT: #else
// CHECK-NEXT: public enum E {
// CHECK-NEXT: }
// CHECK-NEXT: #endif
@extensible
public enum E {
}