forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Sema: Teach ExportContext to compute whether we're inside a deprecate…
…d declaration
- Loading branch information
1 parent
548b96a
commit d579b69
Showing
6 changed files
with
205 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
// RUN: %target-typecheck-verify-swift -parse-as-library | ||
|
||
struct DummyType {} | ||
|
||
@available(*, deprecated, renamed: "&-") | ||
func -(x: DummyType, y: DummyType) {} | ||
|
||
// We don't warn if a deprecated declaration is referenced from | ||
// within another deprecated declaration. | ||
|
||
@available(*, deprecated) | ||
func testDeprecatedReferencingDeprecated1(x: DummyType, y: DummyType) { | ||
x - y // no-warning | ||
} | ||
|
||
@available(*, deprecated) | ||
var testDeprecatedReferencingDeprecated2: () { | ||
let x = DummyType() | ||
let y = DummyType() | ||
x - y // no-warning | ||
} | ||
|
||
// FIXME: This doesn't work because the file is parsed in script mode. | ||
@available(*, deprecated) | ||
var testDeprecatedReferencingDeprecated3: () = DummyType() - DummyType() // no-warning | ||
|
||
struct HasDeprecatedMembers { | ||
@available(*, deprecated) | ||
func testDeprecatedReferencingDeprecated1(x: DummyType, y: DummyType) { | ||
x - y // no-warning | ||
} | ||
|
||
@available(*, deprecated) | ||
var testDeprecatedReferencingDeprecated2: () { | ||
let x = DummyType() | ||
let y = DummyType() | ||
x - y // no-warning | ||
} | ||
|
||
@available(*, deprecated) | ||
var testDeprecatedReferencingDeprecated3: () = DummyType() - DummyType() // no-warning | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
// RUN: %target-typecheck-verify-swift | ||
|
||
// We don't warn if a deprecated declaration is referenced from | ||
// within another deprecated declaration. | ||
|
||
struct DummyType {} | ||
|
||
@available(*, deprecated, renamed: "&-") | ||
func -(x: DummyType, y: DummyType) {} | ||
|
||
@available(*, deprecated) | ||
func testDeprecatedReferencingDeprecated1(x: DummyType, y: DummyType) { | ||
x - y // no-warning | ||
} | ||
|
||
@available(*, deprecated) | ||
var testDeprecatedReferencingDeprecated2: () { | ||
let x = DummyType() | ||
let y = DummyType() | ||
x - y // no-warning | ||
} | ||
|
||
// FIXME: This doesn't work because the file is parsed in script mode. | ||
@available(*, deprecated) | ||
var testDeprecatedReferencingDeprecated3: () = DummyType() - DummyType() | ||
// expected-warning@-1 {{'-' is deprecated}} | ||
// expected-note@-2 {{use '&-' instead}} | ||
|
||
struct HasDeprecatedMembers { | ||
@available(*, deprecated) | ||
func testDeprecatedReferencingDeprecated1(x: DummyType, y: DummyType) { | ||
x - y // no-warning | ||
} | ||
|
||
@available(*, deprecated) | ||
var testDeprecatedReferencingDeprecated2: () { | ||
let x = DummyType() | ||
let y = DummyType() | ||
x - y // no-warning | ||
} | ||
|
||
@available(*, deprecated) | ||
var testDeprecatedReferencingDeprecated3: () = DummyType() - DummyType() // no-warning | ||
} |