[frontend] Move InputKind from CompilerInvocation to FrontendOptions, and move handling of -parse-as-library to ParseFrontendArgs().

Swift SVN r12174
This commit is contained in:
Connor Wakamo
2014-01-11 00:33:30 +00:00
parent 044be74855
commit b0f27de6b8
3 changed files with 13 additions and 16 deletions

View File

@@ -62,10 +62,8 @@ void CompilerInvocation::setTargetTriple(StringRef Triple) {
updateRuntimeImportPath();
}
// TODO: remove InputKind param once we support storing it in FrontendOptions
static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
DiagnosticEngine &Diags,
SourceFileKind InputKind) {
DiagnosticEngine &Diags) {
using namespace options;
if (const Arg *A = Args.getLastArg(OPT_o)) {
@@ -115,6 +113,10 @@ static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
Opts.ParseStdlib = true;
}
if (Args.hasArg(OPT_parse_as_library)) {
Opts.InputKind = SourceFileKind::Library;
}
if (const Arg *A = Args.getLastArg(OPT_module_source_list)) {
Opts.ModuleSourceListPath = A->getValue();
}
@@ -197,7 +199,7 @@ static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
if (!Lexer::isIdentifier(ModuleName)) {
if (!Opts.actionHasOutput() ||
(InputKind == SourceFileKind::Main &&
(Opts.InputKind == SourceFileKind::Main &&
Opts.InputFilenames.size() == 1)) {
ModuleName = "main";
} else {
@@ -409,15 +411,7 @@ bool CompilerInvocation::parseArgs(ArrayRef<const char *> Args,
return true;
}
for (auto InputArg : *ParsedArgs) {
switch (InputArg->getOption().getID()) {
case OPT_parse_as_library:
setInputKind(SourceFileKind::Library);
break;
}
}
if (ParseFrontendArgs(FrontendOpts, *ParsedArgs, Diags, InputKind)) {
if (ParseFrontendArgs(FrontendOpts, *ParsedArgs, Diags)) {
return true;
}