Merge pull request #84476 from kavon/manual-ownership/usability-fixes-1

Usability improvements for ManualOwnership (aka "explicit copies mode")
This commit is contained in:
Kavon Farvardin
2025-09-23 22:47:22 -07:00
committed by GitHub
6 changed files with 188 additions and 33 deletions

View File

@@ -2949,6 +2949,17 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
A->getAsString(Args));
}
}
// Have ManualOwnership imply MandatoryCopyPropagation.
// Once that pass becomes enabled by default, we don't need this.
if (LangOpts.hasFeature(ManualOwnership)) {
specifiedCopyPropagationOption = CopyPropagationOption::Always;
if (auto *Flag = Args.getLastArg(OPT_copy_propagation_state_EQ)) {
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_combination,
Flag->getAsString(Args),
"-enable-experimental-feature ManualOwnership");
}
}
if (Args.hasArg(OPT_enable_copy_propagation)) {
specifiedCopyPropagationOption = CopyPropagationOption::Always;
}