You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sema: Diagnose invalid back deployed declarations. Back deployed declarations must:
- have public visibility
- have at most one back deployment version per-platform
- specify an introduced version for each platform with a back deployment version using @available
- have a back deployment version that is greater than the introduced version
- not have conflicting attributes like @_alwaysEmitIntoClient
Refactor to share code with type checking for @_originallyDefinedIn which has overlapping diagnostics.
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-error {{need @available attribute for @_originallyDefinedIn}}
4
+
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-error {{'@_originallyDefinedIn' requires that 'foo()' have explicit availability for macOS}}
5
5
publicfunc foo(){}
6
6
7
7
@_originallyDefinedIn(modulename:"foo", OSX 13.13) // expected-error {{expected 'module: "original"' in the first argument to @_originallyDefinedIn}}
8
8
publicfunc foo1(){}
9
9
10
-
@_originallyDefinedIn(module:"foo", OSX 13.13.3) // expected-warning {{@_originallyDefinedIn only uses major and minor version number}} expected-error {{need @available attribute for @_originallyDefinedIn}}
10
+
@_originallyDefinedIn(module:"foo", OSX 13.13.3) // expected-warning {{@_originallyDefinedIn only uses major and minor version number}} expected-error {{'@_originallyDefinedIn' requires that 'ToplevelClass' have explicit availability for macOS}}
11
11
publicclassToplevelClass{}
12
12
13
13
@_originallyDefinedIn(module:"foo") // expected-error {{expected at least one platform version in @_originallyDefinedIn}}
@@ -22,7 +22,7 @@ public class ToplevelClass3 {}
22
22
@available(OSX 13.10,*)
23
23
@_originallyDefinedIn(module:"foo",*13.13) // expected-warning {{* as platform name has no effect}} expected-error {{expected at least one platform version in @_originallyDefinedIn}}
@_originallyDefinedIn(module:"foo", OSX 13.14,*7.0) // expected-warning {{* as platform name has no effect}} expected-error {{duplicate version number for platform macOS}}
25
+
@_originallyDefinedIn(module:"foo", OSX 13.14,*7.0) // expected-warning {{* as platform name has no effect}} expected-error {{'@_originallyDefinedIn' contains multiple versions for macOS}}
26
26
publicclassToplevelClass4{
27
27
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-error {{'@_originallyDefinedIn' attribute cannot be applied to this declaration}}
28
28
subscript(index:Int)->Int{
@@ -32,16 +32,16 @@ public class ToplevelClass4 {
32
32
}
33
33
34
34
@available(OSX 13.10,*)
35
-
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-warning {{@_originallyDefinedIn does not have any effect on internal declarations}}
36
-
@_originallyDefinedIn(module:"foo", iOS 7.0) // expected-warning {{@_originallyDefinedIn does not have any effect on internal declarations}}
35
+
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-warning {{'@_originallyDefinedIn' does not have any effect on internal declarations}}
36
+
@_originallyDefinedIn(module:"foo", iOS 7.0) // expected-warning {{'@_originallyDefinedIn' does not have any effect on internal declarations}}
37
37
internalclassToplevelClass5{}
38
38
39
39
@available(OSX 13.10,*)
40
-
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-warning {{@_originallyDefinedIn does not have any effect on private declarations}}
41
-
@_originallyDefinedIn(module:"foo", iOS 7.0) // expected-warning {{@_originallyDefinedIn does not have any effect on private declarations}}
40
+
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-warning {{'@_originallyDefinedIn' does not have any effect on private declarations}}
41
+
@_originallyDefinedIn(module:"foo", iOS 7.0) // expected-warning {{'@_originallyDefinedIn' does not have any effect on private declarations}}
42
42
privateclassToplevelClass6{}
43
43
44
44
@available(OSX 13.10,*)
45
-
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-warning {{@_originallyDefinedIn does not have any effect on fileprivate declarations}}
46
-
@_originallyDefinedIn(module:"foo", iOS 7.0) // expected-warning {{@_originallyDefinedIn does not have any effect on fileprivate declarations}}
45
+
@_originallyDefinedIn(module:"foo", OSX 13.13) // expected-warning {{'@_originallyDefinedIn' does not have any effect on fileprivate declarations}}
46
+
@_originallyDefinedIn(module:"foo", iOS 7.0) // expected-warning {{'@_originallyDefinedIn' does not have any effect on fileprivate declarations}}
@_originallyDefinedIn(module:"original", OSX 10.13) // expected-error {{need @available attribute for @_originallyDefinedIn}}
5
+
@_originallyDefinedIn(module:"original", OSX 10.13) // expected-error {{'@_originallyDefinedIn' requires that 'foo()' have explicit availability for macOS}}
0 commit comments