mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[frontend] Move InputKind from CompilerInvocation to FrontendOptions, and move handling of -parse-as-library to ParseFrontendArgs().
Swift SVN r12174
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user