Skip to content

Commit e594622

Browse files
committed
Always mark the initial REPL file as typechecked
We were previously doing this for the REPL, but not for swift-ide-test. Move the assignment into the frontend to make sure its always applied, and inline `createREPLFile` while we're here.
1 parent 8037f2f commit e594622

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

include/swift/Frontend/Frontend.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -653,8 +653,6 @@ class CompilerInstance {
653653
};
654654

655655
private:
656-
void createREPLFile(const ImplicitImports &implicitImports);
657-
658656
void addMainFileToModule(const ImplicitImports &implicitImports);
659657

660658
void performSemaUpTo(SourceFile::ASTStage_t LimitStage);

lib/Frontend/Frontend.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -727,7 +727,15 @@ void CompilerInstance::performSemaUpTo(SourceFile::ASTStage_t LimitStage) {
727727
const ImplicitImports implicitImports(*this);
728728

729729
if (Invocation.getInputKind() == InputFileKind::SwiftREPL) {
730-
createREPLFile(implicitImports);
730+
// Create the initial empty REPL file. This only exists to feed in the
731+
// implicit imports such as the standard library.
732+
auto *replFile = createSourceFileForMainModule(
733+
SourceFileKind::REPL, implicitImports.kind, /*BufferID*/ None);
734+
addAdditionalInitialImportsTo(replFile, implicitImports);
735+
736+
// Given this file is empty, we can go ahead and just mark it as having been
737+
// type checked.
738+
replFile->ASTStage = SourceFile::TypeChecked;
731739
return;
732740
}
733741

@@ -824,12 +832,6 @@ void CompilerInstance::getImplicitlyImportedModules(
824832
}
825833
}
826834

827-
void CompilerInstance::createREPLFile(const ImplicitImports &implicitImports) {
828-
auto *SingleInputFile = createSourceFileForMainModule(
829-
Invocation.getSourceFileKind(), implicitImports.kind, None);
830-
addAdditionalInitialImportsTo(SingleInputFile, implicitImports);
831-
}
832-
833835
void CompilerInstance::addMainFileToModule(
834836
const ImplicitImports &implicitImports) {
835837
auto *MainFile = createSourceFileForMainModule(

lib/Immediate/REPL.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -997,10 +997,6 @@ class REPLEnvironment {
997997
IRGenOpts.DebugInfoLevel = IRGenDebugInfoLevel::None;
998998
IRGenOpts.DebugInfoFormat = IRGenDebugInfoFormat::None;
999999

1000-
// The very first module is a dummy.
1001-
CI.getMainModule()->getMainSourceFile(SourceFileKind::REPL).ASTStage =
1002-
SourceFile::TypeChecked;
1003-
10041000
if (!ParseStdlib) {
10051001
// Force standard library to be loaded immediately. This forces any
10061002
// errors to appear upfront, and helps eliminate some nasty lag after the

0 commit comments

Comments
 (0)