mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Do not print package-name in non-package interface by default.
Having package-name printed in public or private interface led to strange dependency errors in the past. For example, an SPI module is a dependency within a package, but due to the package-name being printed in public or private interface, dependency scanner tries to find it even for an external client of the package, causing a `no such module found` error. The -disable-print-package-name-for-non-package flag helps with such case, but to enforce the correct behavior, we should make it a default to not print package-name in public or private interface. Resolves rdar://135260270
This commit is contained in:
@@ -525,7 +525,6 @@ static void ParseModuleInterfaceArgs(ModuleInterfaceOptions &Opts,
|
||||
Args.hasArg(OPT_debug_emit_invalid_swiftinterface_syntax);
|
||||
Opts.PrintMissingImports =
|
||||
!Args.hasArg(OPT_disable_print_missing_imports_in_module_interface);
|
||||
Opts.DisablePackageNameForNonPackageInterface |= Args.hasArg(OPT_disable_print_package_name_for_non_package_interface);
|
||||
|
||||
if (const Arg *A = Args.getLastArg(OPT_library_level)) {
|
||||
StringRef contents = A->getValue();
|
||||
@@ -557,8 +556,8 @@ static bool ShouldIncludeModuleInterfaceArg(const Arg *A) {
|
||||
|
||||
static bool IsPackageInterfaceFlag(const Arg *A, ArgList &Args) {
|
||||
return A->getOption().matches(options::OPT_package_name) &&
|
||||
Args.hasArg(
|
||||
options::OPT_disable_print_package_name_for_non_package_interface);
|
||||
!Args.hasArg(
|
||||
options::OPT_print_package_name_in_non_package_interface);
|
||||
}
|
||||
|
||||
static bool IsPrivateInterfaceFlag(const Arg *A, ArgList &Args) {
|
||||
|
||||
Reference in New Issue
Block a user