[Sema] Enable require explicit availability by default for public modules

rdar://99929744
This commit is contained in:
Alexis Laferrière
2022-09-13 19:15:27 -07:00
parent 1640db8ea8
commit 7a7f3ac52f
2 changed files with 13 additions and 1 deletions

View File

@@ -729,7 +729,8 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
diagLevel);
}
} else if (Args.getLastArg(OPT_require_explicit_availability,
OPT_require_explicit_availability_target)) {
OPT_require_explicit_availability_target) ||
Opts.LibraryLevel == LibraryLevel::API) {
Opts.RequireExplicitAvailability = DiagnosticBehavior::Warning;
}

View File

@@ -10,6 +10,17 @@
// RUN: -target %target-cpu-apple-macosx10.10 -require-explicit-availability=warn \
// RUN: -require-explicit-availability-target "macOS 10.10"
/// Using -library-level api defaults to enabling warnings, without fixits.
// RUN: sed -e "s/}} {{.*/}}/" < %s > %t/NoFixits.swift
// RUN: %target-swift-frontend -typecheck -parse-as-library -verify %t/NoFixits.swift \
// RUN: -target %target-cpu-apple-macosx10.10 -library-level api
/// Explicitly disable the diagnostic.
// RUN: sed -e 's/xpected-warning/not-something-expected/' < %s > %t/None.swift
// RUN: %target-swift-frontend -typecheck -parse-as-library -verify %t/None.swift \
// RUN: -target %target-cpu-apple-macosx10.10 -require-explicit-availability=ignore \
// RUN: -require-explicit-availability-target "macOS 10.10" -library-level api
/// Upgrade the diagnostic to an error.
// RUN: sed -e "s/xpected-warning/xpected-error/" < %s > %t/Errors.swift
// RUN: %target-swift-frontend -typecheck -parse-as-library -verify %t/Errors.swift \