Skip to content

Commit ddede20

Browse files
committed
Apply Doug's review comments
1 parent 2df25fc commit ddede20

File tree

17 files changed

+56
-37
lines changed

17 files changed

+56
-37
lines changed

include/swift/Basic/Features.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ EXPERIMENTAL_FEATURE(ParserSequenceFolding)
142142
/// Enables implicit some while also enabling existential `any`
143143
EXPERIMENTAL_FEATURE(ImplicitSome)
144144

145+
/// Parse using the Swift (swift-syntax) parser and use ASTGen.
146+
EXPERIMENTAL_FEATURE(SwiftParser)
147+
145148
#undef EXPERIMENTAL_FEATURE
146149
#undef UPCOMING_FEATURE
147150
#undef SUPPRESSIBLE_LANGUAGE_FEATURE

include/swift/Basic/LangOptions.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,6 @@ namespace swift {
275275
/// disabled because it is not complete.
276276
bool EnableCXXInterop = false;
277277

278-
bool EnableSwiftParser = false;
279-
280278
/// Imports getters and setters as computed properties.
281279
bool CxxInteropGettersSettersAsProperties = false;
282280

include/swift/Option/Options.td

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,6 @@ def enable_experimental_swift_parser :
640640
Flags<[FrontendOption, HelpHidden, ModuleInterfaceOption]>,
641641
HelpText<"Enable the new and expiremental Swift parser + AST generation.">;
642642

643-
644643
def experimental_cxx_stdlib :
645644
Separate<["-"], "experimental-cxx-stdlib">,
646645
Flags<[HelpHidden]>,

lib/AST/ASTPrinter.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3106,6 +3106,10 @@ static bool usesFeatureAdditiveArithmeticDerivedConformances(Decl *decl) {
31063106
return false;
31073107
}
31083108

3109+
static bool usesFeatureSwiftParser(Decl *decl) {
3110+
return false;
3111+
}
3112+
31093113
static void
31103114
suppressingFeatureNoAsyncAvailability(PrintOptions &options,
31113115
llvm::function_ref<void()> action) {

lib/AST/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ endif()
156156

157157
target_link_libraries(swiftAST
158158
PUBLIC swiftBasic
159-
PRIVATE legacySwiftSyntax)
159+
PRIVATE swiftSyntax)
160160
if(SWIFT_BUILD_ONLY_SYNTAXPARSERLIB)
161161
# Remove dependencies from clangBasic to avoid bringing along some llvm
162162
# libraries that we don't need to be building.

lib/ASTGen/CMakeLists.txt

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
1-
add_subdirectory(${SWIFT_SOURCE_DIR}/../swift-syntax ${CMAKE_CURRENT_BINARY_DIR}/swift-syntax)
1+
# TODO: why do we need these on Linux?
2+
set(CMAKE_Swift_ARCHIVE_CREATE "<CMAKE_AR> crs <TARGET> <OBJECTS>")
3+
set(CMAKE_Swift_ARCHIVE_FINISH "")
24

3-
add_library(ASTGen
4-
ASTGen.swift)
5+
if (SWIFT_SWIFT_PARSER)
6+
add_library(ASTGen
7+
ASTGen.swift)
58

6-
target_compile_options(ASTGen PUBLIC
7-
"-emit-module-interface")
9+
target_link_libraries(ASTGen PUBLIC
10+
SwiftSyntax
11+
SwiftParser
12+
SwiftDiagnostics)
13+
14+
target_link_directories(ASTGen PUBLIC
15+
"${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR}/lib")
816

9-
target_link_libraries(ASTGen PUBLIC
10-
SwiftSyntax
11-
SwiftParser
12-
SwiftDiagnostics)
13-
14-
target_include_directories(SwiftParser PUBLIC
15-
"${CMAKE_CURRENT_BINARY_DIR}/../Parser/swift-syntax/SwiftSyntax"
16-
"${CMAKE_CURRENT_BINARY_DIR}/../Parser/swift-syntax/SwiftDiagnostics"
17-
"${CMAKE_CURRENT_BINARY_DIR}/../Parser/swift-syntax/SwiftParser")
17+
target_include_directories(ASTGen PUBLIC
18+
"${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR}/swift")
19+
else()
20+
add_library(ASTGen
21+
DummyASTGen.swift)
22+
endif()
1823

19-
set_property(GLOBAL APPEND PROPERTY SWIFTSYNTAX_EXPORTS ASTGen)
24+
set_target_properties(ASTGen PROPERTIES LINKER_LANGUAGE Swift)
2025

21-
install(TARGETS ASTGen
22-
EXPORT SwiftSyntaxTargets
23-
ARCHIVE DESTINATION lib
24-
LIBRARY DESTINATION lib
25-
RUNTIME DESTINATION bin)
26+
target_compile_options(ASTGen PUBLIC
27+
"-emit-module-interface")
2628

2729
add_dependencies(ASTGen swiftAST)

lib/ASTGen/DummyASTGen.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@_cdecl("parseTopLevelSwift")
2+
public func parseTopLevelSwift(
3+
buffer: UnsafePointer<CChar>, declContext: UnsafeMutableRawPointer,
4+
ctx: UnsafeMutableRawPointer,
5+
outputContext: UnsafeMutableRawPointer,
6+
callback: @convention(c) (UnsafeMutableRawPointer, UnsafeMutableRawPointer) -> Void
7+
) {
8+
fatalError("Please run build script with --early-swiftsyntax to use ASTGen.")
9+
}

lib/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ list(APPEND LLVM_COMMON_DEPENDS swift-parse-syntax-generated-headers)
1717

1818
add_subdirectory(APIDigester)
1919
add_subdirectory(AST)
20-
add_subdirectory(ASTGen) # Must come before Parse
20+
add_subdirectory(ASTGen)
2121
add_subdirectory(ASTSectionImporter)
2222
add_subdirectory(Basic)
2323
add_subdirectory(ConstExtract)

lib/Frontend/CompilerInvocation.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -864,7 +864,6 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
864864
}
865865

866866
Opts.EnableCXXInterop |= Args.hasArg(OPT_enable_experimental_cxx_interop);
867-
Opts.EnableSwiftParser |= Args.hasArg(OPT_enable_experimental_swift_parser);
868867
Opts.EnableObjCInterop =
869868
Args.hasFlag(OPT_enable_objc_interop, OPT_disable_objc_interop,
870869
Target.isOSDarwin());

lib/Migrator/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ add_swift_host_library(swiftMigrator STATIC
5757
RewriteBufferEditsReceiver.cpp)
5858
target_link_libraries(swiftMigrator PRIVATE
5959
swiftIDE
60-
legacySwiftSyntax)
60+
swiftSyntax)
6161

6262
add_dependencies(swiftMigrator
6363
"symlink_migrator_data")

lib/Parse/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ _swift_gyb_target_sources(swiftParse PRIVATE
3232
ParsedSyntaxRecorder.cpp.gyb)
3333
target_link_libraries(swiftParse PRIVATE
3434
swiftAST
35-
legacySwiftSyntax
35+
swiftSyntax
3636
swiftSyntaxParse
3737
)
3838

lib/Parse/ParseDecl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ void Parser::parseTopLevel(SmallVectorImpl<Decl *> &decls) {
185185
StringRef contents =
186186
SourceMgr.extractText(SourceMgr.getRangeForBuffer(L->getBufferID()));
187187

188-
if (Context.LangOpts.EnableSwiftParser) {
188+
if (Context.LangOpts.hasFeature(Feature::SwiftParser)) {
189189
parseTopLevelSwift(contents.data(), CurDeclContext, &Context, &decls, appendToVector);
190190

191191
for (auto decl : decls) {

lib/Syntax/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ else()
44
set(SWIFT_GYB_FLAGS --line-directive "\'#line" "%(line)d" "\"%(file)s\"\'")
55
endif()
66

7-
add_swift_host_library(legacySwiftSyntax STATIC
7+
add_swift_host_library(swiftSyntax STATIC
88
AbsoluteRawSyntax.cpp
99
RawSyntax.cpp
1010
Syntax.cpp
1111
SyntaxData.cpp
1212
UnknownSyntax.cpp)
13-
_swift_gyb_target_sources(legacySwiftSyntax PRIVATE
13+
_swift_gyb_target_sources(swiftSyntax PRIVATE
1414
SyntaxNodes.cpp.gyb
1515
SyntaxBuilders.cpp.gyb
1616
SyntaxKind.cpp.gyb
1717
SyntaxFactory.cpp.gyb
1818
SyntaxVisitor.cpp.gyb
1919
Trivia.cpp.gyb
2020
SyntaxSerialization.cpp.gyb)
21-
target_link_libraries(legacySwiftSyntax PRIVATE
21+
target_link_libraries(swiftSyntax PRIVATE
2222
swiftParse)

lib/SyntaxParse/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ add_swift_host_library(swiftSyntaxParse STATIC
33
SyntaxTreeCreator.cpp)
44
target_link_libraries(swiftSyntaxParse PRIVATE
55
swiftParse
6-
legacySwiftSyntax)
6+
swiftSyntax)
77

88
set_swift_llvm_is_available(swiftSyntaxParse)

tools/SourceKit/lib/SwiftLang/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ target_link_libraries(SourceKitSwiftLang PRIVATE
4141
swiftSema
4242
swiftBasic
4343
swiftSerialization
44-
legacySwiftSyntax
44+
swiftSyntax
4545
swiftOption
4646
swiftSymbolGraphGen
4747
libcmark-gfm_static

tools/driver/CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ if(${BOOTSTRAPPING_MODE} MATCHES "BOOTSTRAPPING.*")
1414
)
1515
target_link_libraries(swift-frontend-bootstrapping0
1616
PRIVATE
17+
ASTGen
18+
swiftCore
1719
swiftDriverTool
1820
swiftCompilerStub)
1921

@@ -33,6 +35,8 @@ if(${BOOTSTRAPPING_MODE} MATCHES "BOOTSTRAPPING.*")
3335
)
3436
target_link_libraries(swift-frontend-bootstrapping1
3537
PRIVATE
38+
ASTGen
39+
swiftCore
3640
swiftDriverTool
3741
swiftCompilerModules-bootstrapping1)
3842

@@ -50,11 +54,12 @@ add_swift_host_tool(swift-frontend
5054
target_link_libraries(swift-frontend
5155
PUBLIC
5256
ASTGen
53-
SwiftParser
54-
SwiftSyntax
57+
swiftCore
5558
swiftDriverTool
5659
swiftCompilerModules)
5760

61+
_add_swift_runtime_link_flags(swift-frontend "../../lib" "")
62+
5863
# Create a `swift-driver` executable adjacent to the `swift-frontend` executable
5964
# to ensure that `swiftc` forwards to the standalone driver when invoked.
6065
swift_create_early_driver_copies(swift-frontend)

tools/swift-syntax-test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ target_link_libraries(swift-syntax-test
1111
swiftDriver
1212
swiftFrontend
1313
swiftSema
14-
legacySwiftSyntax
14+
swiftSyntax
1515
swiftCompilerModules_SwiftSyntax)

0 commit comments

Comments
 (0)