Skip to content

Commit a2ff7f3

Browse files
authored
Merge pull request #13144 from aschwaighofer/revert_move-in-to-next
2 parents a3b1308 + 1a04430 commit a2ff7f3

File tree

9 files changed

+623
-869
lines changed

9 files changed

+623
-869
lines changed

include/swift/Frontend/FrontendOptions.h

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121

2222
namespace llvm {
2323
class MemoryBuffer;
24+
namespace opt {
25+
class ArgList;
26+
class Arg;
27+
} // namespace opt
2428
}
2529

2630
namespace swift {
@@ -84,17 +88,17 @@ class FrontendInputs {
8488

8589
// Input filename readers
8690
ArrayRef<std::string> getInputFilenames() const { return InputFilenames; }
87-
bool hasInputFilenames() const { return !getInputFilenames().empty(); }
91+
bool haveInputFilenames() const { return !getInputFilenames().empty(); }
8892
unsigned inputFilenameCount() const { return getInputFilenames().size(); }
8993

90-
bool hasUniqueInputFilename() const { return inputFilenameCount() == 1; }
94+
bool haveUniqueInputFilename() const { return inputFilenameCount() == 1; }
9195
const std::string &getFilenameOfFirstInput() const {
92-
assert(hasInputFilenames());
96+
assert(haveInputFilenames());
9397
return getInputFilenames()[0];
9498
}
9599

96100
bool isReadingFromStdin() const {
97-
return hasUniqueInputFilename() && getFilenameOfFirstInput() == "-";
101+
return haveUniqueInputFilename() && getFilenameOfFirstInput() == "-";
98102
}
99103

100104
// If we have exactly one input filename, and its extension is "bc" or "ll",
@@ -123,32 +127,32 @@ class FrontendInputs {
123127

124128
// Primary count readers:
125129

126-
bool hasUniquePrimaryInput() const { return primaryInputCount() == 1; }
130+
bool haveUniquePrimaryInput() const { return primaryInputCount() == 1; }
127131

128-
bool hasPrimaryInputs() const { return primaryInputCount() > 0; }
132+
bool havePrimaryInputs() const { return primaryInputCount() > 0; }
129133

130-
bool isWholeModule() const { return !hasPrimaryInputs(); }
134+
bool isWholeModule() const { return !havePrimaryInputs(); }
131135

132136
// Count-dependend readers:
133137

134138
Optional<SelectedInput> getOptionalPrimaryInput() const {
135-
return hasPrimaryInputs() ? Optional<SelectedInput>(getPrimaryInputs()[0])
136-
: Optional<SelectedInput>();
139+
return havePrimaryInputs() ? Optional<SelectedInput>(getPrimaryInputs()[0])
140+
: Optional<SelectedInput>();
137141
}
138142

139143
SelectedInput getRequiredUniquePrimaryInput() const {
140-
assert(hasUniquePrimaryInput());
144+
assert(haveUniquePrimaryInput());
141145
return getPrimaryInputs()[0];
142146
}
143147

144148
Optional<SelectedInput> getOptionalUniquePrimaryInput() const {
145-
return hasUniquePrimaryInput()
149+
return haveUniquePrimaryInput()
146150
? Optional<SelectedInput>(getPrimaryInputs()[0])
147151
: Optional<SelectedInput>();
148152
}
149153

150-
bool hasAPrimaryInputFile() const {
151-
return hasPrimaryInputs() && getOptionalPrimaryInput()->isFilename();
154+
bool haveAPrimaryInputFile() const {
155+
return havePrimaryInputs() && getOptionalPrimaryInput()->isFilename();
152156
}
153157

154158
Optional<StringRef> getOptionalUniquePrimaryInputFilename() const {
@@ -158,15 +162,15 @@ class FrontendInputs {
158162
: Optional<StringRef>();
159163
}
160164

161-
bool isInputPrimary(unsigned i) const {
165+
bool isPrimaryInputAFileAt(unsigned i) const {
162166
assertMustNotBeMoreThanOnePrimaryInput();
163167
if (Optional<SelectedInput> primaryInput = getOptionalPrimaryInput())
164168
return primaryInput->isFilename() && primaryInput->Index == i;
165169
return false;
166170
}
167171

168172
Optional<unsigned> primaryInputFileIndex() const {
169-
return hasAPrimaryInputFile()
173+
return haveAPrimaryInputFile()
170174
? Optional<unsigned>(getOptionalPrimaryInput()->Index)
171175
: None;
172176
}
@@ -180,10 +184,13 @@ class FrontendInputs {
180184

181185
public:
182186
// Multi-facet readers
187+
StringRef baseNameOfOutput(const llvm::opt::ArgList &Args,
188+
StringRef ModuleName) const;
189+
183190
bool shouldTreatAsSIL() const;
184191

185192
/// Return true for error
186-
bool verifyInputs(DiagnosticEngine &diags, bool treatAsSIL,
193+
bool verifyInputs(DiagnosticEngine &Diags, bool TreatAsSIL,
187194
bool isREPLRequested, bool isNoneRequested) const;
188195

189196
// Input filename writers
@@ -243,8 +250,6 @@ class FrontendInputs {
243250

244251
/// Options for controlling the behavior of the frontend.
245252
class FrontendOptions {
246-
friend class FrontendArgsToOptionsConverter;
247-
248253
public:
249254
FrontendInputs Inputs;
250255

@@ -274,9 +279,12 @@ class FrontendOptions {
274279
return getSingleOutputFilename() == "-";
275280
}
276281
bool isOutputFileDirectory() const;
277-
bool hasNamedOutputFile() const {
282+
bool isOutputFilePlainFile() const;
283+
bool haveNamedOutputFile() const {
278284
return !OutputFilenames.empty() && !isOutputFilenameStdout();
279285
}
286+
void setOutputFileList(DiagnosticEngine &Diags,
287+
const llvm::opt::ArgList &Args);
280288

281289
/// A list of arbitrary modules to import and make implicitly visible.
282290
std::vector<std::string> ImplicitImportModuleNames;
@@ -532,25 +540,10 @@ class FrontendOptions {
532540

533541
bool isCompilingExactlyOneSwiftFile() const {
534542
return InputKind == InputFileKind::IFK_Swift &&
535-
Inputs.hasUniqueInputFilename();
543+
Inputs.haveUniqueInputFilename();
536544
}
537545

538-
private:
539-
static const char *suffixForPrincipalOutputFileForAction(ActionType);
540-
541-
bool hasUnusedDependenciesFilePath() const;
542-
static bool canActionEmitDependencies(ActionType);
543-
bool hasUnusedObjCHeaderOutputPath() const;
544-
static bool canActionEmitHeader(ActionType);
545-
bool hasUnusedLoadedModuleTracePath() const;
546-
static bool canActionEmitLoadedModuleTrace(ActionType);
547-
bool hasUnusedModuleOutputPath() const;
548-
static bool canActionEmitModule(ActionType);
549-
bool hasUnusedModuleDocOutputPath() const;
550-
static bool canActionEmitModuleDoc(ActionType);
551-
552-
static bool doesActionProduceOutput(ActionType);
553-
static bool doesActionProduceTextualOutput(ActionType);
546+
void setModuleName(DiagnosticEngine &Diags, const llvm::opt::ArgList &Args);
554547
};
555548

556549
}

0 commit comments

Comments
 (0)