Skip to content

Commit a9b9b36

Browse files
authored
Merge pull request #39813 from nkcsgexi/84425205
2 parents 367734a + aba7f28 commit a9b9b36

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,8 +1600,8 @@ ERROR(originally_definedin_topleve_decl,none,
16001600
ERROR(originally_definedin_need_available,none,
16011601
"need @available attribute for @%0", (StringRef))
16021602

1603-
ERROR(originally_definedin_must_after_available_version,none,
1604-
"moved version from @%0 must after introduced OS version", (StringRef))
1603+
ERROR(originally_definedin_must_not_before_available_version,none,
1604+
"symbols are moved to the current module before they were available in the OSs", (StringRef))
16051605

16061606
// Alignment attribute
16071607
ERROR(alignment_not_power_of_two,none,

lib/Sema/TypeCheckAttr.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3291,9 +3291,9 @@ void AttributeChecker::checkOriginalDefinedInAttrs(Decl *D,
32913291
AttrName);
32923292
return;
32933293
}
3294-
if (IntroVer.getValue() >= Attr->MovedVersion) {
3294+
if (IntroVer.getValue() > Attr->MovedVersion) {
32953295
diagnose(AtLoc,
3296-
diag::originally_definedin_must_after_available_version,
3296+
diag::originally_definedin_must_not_before_available_version,
32973297
AttrName);
32983298
return;
32993299
}

test/Sema/diag_originally_definedin.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@
66
public func foo() {}
77

88
@available(macOS 10.13, *)
9-
@_originallyDefinedIn(module: "original", OSX 10.12) // expected-error {{moved version from @_originallyDefinedIn must after introduced OS version}}
9+
@_originallyDefinedIn(module: "original", OSX 10.12) // expected-error {{symbols are moved to the current module before they were available in the OSs}}
1010
public class C {
1111
@_originallyDefinedIn(module: "original", OSX 10.13) // expected-error {{@_originallyDefinedIn is only applicable to top-level decl}}
1212
public func foo() {}
1313
}
1414

15+
@available(macOS 10.13, *)
16+
@_originallyDefinedIn(module: "original", OSX 10.13)
17+
public class D {}
18+
1519
@available(macOS 10.9, *)
1620
@_originallyDefinedIn(module: "original", _myProject 2.0) // expected-error {{expected at least one platform version in @_originallyDefinedIn}}
1721
// expected-error @-1 {{reference to undefined version '2.0' for availability macro '_myProject'}}

0 commit comments

Comments
 (0)