Skip to content

Commit 42916b4

Browse files
authored
Merge pull request #29183 from slavapestov/require-explicit-availability-fix
Fix driver to pass -require-explicit-availability flag to frontend jobs
2 parents b9dfd40 + b73adbe commit 42916b4

File tree

3 files changed

+21
-17
lines changed

3 files changed

+21
-17
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4446,21 +4446,23 @@ NOTE(availability_protocol_requirement_here, none,
44464446
"protocol requirement here", ())
44474447

44484448
WARNING(public_decl_needs_availability, none,
4449-
"public declarations should have an availability attribute with -require-explicit-availability", ())
4449+
"public declarations should have an availability attribute when building "
4450+
"with -require-explicit-availability", ())
44504451

44514452
// This doesn't display as an availability diagnostic, but it's
44524453
// implemented there and fires when these subscripts are marked
44534454
// unavailable, so it seems appropriate to put it here.
44544455
ERROR(availabilty_string_subscript_migration, none,
4455-
"subscripts returning String were obsoleted in Swift 4; explicitly construct a String from subscripted result", ())
4456+
"subscripts returning String were obsoleted in Swift 4; explicitly "
4457+
"construct a String from subscripted result", ())
44564458

44574459
//------------------------------------------------------------------------------
44584460
// MARK: @discardableResult
44594461
//------------------------------------------------------------------------------
44604462

44614463
WARNING(discardable_result_on_void_never_function, none,
4462-
"@discardableResult declared on a function returning %select{Never|Void}0 is unnecessary",
4463-
(bool))
4464+
"@discardableResult declared on a function returning %select{Never|Void}0 "
4465+
"is unnecessary", (bool))
44644466

44654467
//------------------------------------------------------------------------------
44664468
// MARK: Resilience diagnostics

lib/Driver/ToolChains.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,8 @@ static void addCommonFrontendArgs(const ToolChain &TC, const OutputInfo &OI,
192192
inputArgs.AddLastArg(arguments, options::OPT_typo_correction_limit);
193193
inputArgs.AddLastArg(arguments, options::OPT_enable_app_extension);
194194
inputArgs.AddLastArg(arguments, options::OPT_enable_library_evolution);
195+
inputArgs.AddLastArg(arguments, options::OPT_require_explicit_availability);
196+
inputArgs.AddLastArg(arguments, options::OPT_require_explicit_availability_target);
195197
inputArgs.AddLastArg(arguments, options::OPT_enable_testing);
196198
inputArgs.AddLastArg(arguments, options::OPT_enable_private_imports);
197199
inputArgs.AddLastArg(arguments, options::OPT_enable_cxx_interop);

test/attr/require_explicit_availability.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
// RUN: %swift -typecheck -parse-stdlib -target x86_64-apple-macosx10.10 -verify -require-explicit-availability -require-explicit-availability-target "macOS 10.10" %s
2-
// RUN: %swift -typecheck -parse-stdlib -target x86_64-apple-macosx10.10 -warnings-as-errors %s
1+
// RUN: %swiftc_driver -typecheck -parse-stdlib -target x86_64-apple-macosx10.10 -Xfrontend -verify -require-explicit-availability -require-explicit-availability-target "macOS 10.10" %s
2+
// RUN: %swiftc_driver -typecheck -parse-stdlib -target x86_64-apple-macosx10.10 -warnings-as-errors %s
33

4-
public struct S { // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}}
4+
public struct S { // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}}
55
public func method() { }
66
}
77

8-
public func foo() { bar() } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
8+
public func foo() { bar() } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
99

1010
@usableFromInline
11-
func bar() { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
11+
func bar() { } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
1212

1313
@available(macOS 10.1, *)
1414
public func ok() { }
@@ -17,10 +17,10 @@ public func ok() { }
1717
public func unavailableOk() { }
1818

1919
@available(macOS, deprecated: 10.10)
20-
public func missingIntro() { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
20+
public func missingIntro() { } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
2121

2222
@available(iOS 9.0, *)
23-
public func missingTargetPlatform() { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
23+
public func missingTargetPlatform() { } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
2424

2525
func privateFunc() { }
2626

@@ -35,19 +35,19 @@ struct SOk {
3535
precedencegroup MediumPrecedence {}
3636
infix operator + : MediumPrecedence
3737

38-
public func +(lhs: S, rhs: S) -> S { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
38+
public func +(lhs: S, rhs: S) -> S { } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
3939

40-
public enum E { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
40+
public enum E { } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
4141

42-
public class C { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
42+
public class C { } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
4343

44-
public protocol P { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
44+
public protocol P { } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
4545

46-
extension S { // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
46+
extension S { // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
4747
func ok() { }
4848
}
4949

50-
open class OpenClass { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
50+
open class OpenClass { } // expected-warning {{public declarations should have an availability attribute when building with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
5151

5252
private class PrivateClass { }
5353

0 commit comments

Comments
 (0)