Bug fixes & module name cleanup.

Unify actionHasOutput w/ doesActionProduceOutput & correct both.
Do not set an output filename if there is no output.
Add test to ensure no output is created in immediate mode.

Restore NFC module name computation.
This commit is contained in:
David Ungar
2017-11-30 11:23:04 -08:00
parent 6de07d050c
commit ccb73783dc
4 changed files with 25 additions and 27 deletions

View File

@@ -640,7 +640,8 @@ bool FrontendArgsToOptionsConverter::computeModuleName() {
(Opts.ModuleName != STDLIB_NAME || Opts.ParseStdlib)) {
return false;
}
if (!Opts.actionHasOutput() || Opts.isCompilingExactlyOneSwiftFile()) {
if (FrontendOptions::doesActionImplyMainModule(Opts.RequestedAction) ||
Opts.isCompilingExactlyOneSwiftFile()) {
Opts.ModuleName = "main";
return false;
}
@@ -680,10 +681,10 @@ bool FrontendArgsToOptionsConverter::computeFallbackModuleName() {
}
bool FrontendArgsToOptionsConverter::computeOutputFilenames() {
assert(
FrontendOptions::doesActionProduceOutput(Opts.RequestedAction) ||
!FrontendOptions::doesActionProduceTextualOutput(Opts.RequestedAction));
if (!FrontendOptions::doesActionProduceOutput(Opts.RequestedAction)) {
Opts.OutputFilenames.clear();
return false;
}
ArrayRef<std::string> outputFilenamesFromCommandLineOrFilelist =
getOutputFilenamesFromCommandLineOrFilelist();