Skip to content

Commit 229433e

Browse files
committed
Apply Doug's review comments
1 parent 3cb223a commit 229433e

File tree

19 files changed

+56
-43
lines changed

19 files changed

+56
-43
lines changed

include/swift/Basic/Features.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ EXPERIMENTAL_FEATURE(OpaqueTypeErasure)
126126
/// wrapped type.
127127
EXPERIMENTAL_FEATURE(TypeWrappers)
128128

129+
/// Parse using the Swift (swift-syntax) parser and use ASTGen.
130+
EXPERIMENTAL_FEATURE(SwiftParser)
131+
129132
#undef EXPERIMENTAL_FEATURE
130133
#undef UPCOMING_FEATURE
131134
#undef SUPPRESSIBLE_LANGUAGE_FEATURE

include/swift/Basic/LangOptions.h

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

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

include/swift/Option/Options.td

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -621,11 +621,6 @@ def enable_experimental_cxx_interop :
621621
Flags<[FrontendOption, HelpHidden, ModuleInterfaceOption]>,
622622
HelpText<"Enable experimental C++ interop code generation and config directives">;
623623

624-
def enable_experimental_swift_parser :
625-
Flag<["-"], "enable-experimental-swift-parser">,
626-
Flags<[FrontendOption, HelpHidden, ModuleInterfaceOption]>,
627-
HelpText<"Enable the new and expiremental Swift parser + AST generation.">;
628-
629624
def experimental_cxx_stdlib :
630625
Separate<["-"], "experimental-cxx-stdlib">,
631626
Flags<[HelpHidden]>,

lib/AST/ASTPrinter.cpp

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

3086+
static bool usesFeatureSwiftParser(Decl *decl) {
3087+
return false;
3088+
}
3089+
30863090
static void
30873091
suppressingFeatureNoAsyncAvailability(PrintOptions &options,
30883092
llvm::function_ref<void()> action) {

lib/AST/CMakeLists.txt

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

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

lib/ASTGen/CMakeLists.txt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
add_subdirectory(${SWIFT_SOURCE_DIR}/../swift-syntax ${CMAKE_CURRENT_BINARY_DIR}/swift-syntax)
1+
# add_subdirectory(${SWIFT_SOURCE_DIR}/../swift-syntax ${CMAKE_CURRENT_BINARY_DIR}/swift-syntax)
22

3-
add_library(ASTGen
4-
ASTGen.swift)
3+
if (SWIFT_SWIFT_PARSER)
4+
add_library(ASTGen
5+
ASTGen.swift)
56

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

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")
15+
target_include_directories(ASTGen PUBLIC
16+
"${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR}/swift")
17+
else()
18+
add_library(ASTGen
19+
DummyASTGen.swift)
20+
endif()
1821

19-
set_property(GLOBAL APPEND PROPERTY SWIFTSYNTAX_EXPORTS ASTGen)
22+
set_target_properties(ASTGen PROPERTIES LINKER_LANGUAGE Swift)
2023

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

2727
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
@@ -16,7 +16,7 @@ list(APPEND LLVM_COMMON_DEPENDS swift-parse-syntax-generated-headers)
1616

1717
add_subdirectory(APIDigester)
1818
add_subdirectory(AST)
19-
add_subdirectory(ASTGen) # Must come before Parse
19+
add_subdirectory(ASTGen)
2020
add_subdirectory(ASTSectionImporter)
2121
add_subdirectory(Basic)
2222
add_subdirectory(ConstExtract)

lib/Frontend/CompilerInvocation.cpp

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

844844
Opts.EnableCXXInterop |= Args.hasArg(OPT_enable_experimental_cxx_interop);
845-
Opts.EnableSwiftParser |= Args.hasArg(OPT_enable_experimental_swift_parser);
846845
Opts.EnableObjCInterop =
847846
Args.hasFlag(OPT_enable_objc_interop, OPT_disable_objc_interop,
848847
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
@@ -31,7 +31,7 @@ _swift_gyb_target_sources(swiftParse PRIVATE
3131
ParsedSyntaxRecorder.cpp.gyb)
3232
target_link_libraries(swiftParse PRIVATE
3333
swiftAST
34-
legacySwiftSyntax
34+
swiftSyntax
3535
swiftSyntaxParse
3636
)
3737

lib/Parse/ParseDecl.cpp

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

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

190190
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)

unittests/Syntax/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ add_swift_unittest(SwiftSyntaxTests
1010

1111
target_link_libraries(SwiftSyntaxTests
1212
PRIVATE
13-
legacySwiftSyntax)
13+
swiftSyntax)

unittests/SyntaxParser/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ endif()
1111
target_link_libraries(SwiftSyntaxParserTests
1212
PRIVATE
1313
libSwiftSyntaxParser
14-
legacySwiftSyntax)
14+
swiftSyntax)
1515

1616
if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
1717
set_target_properties(SwiftSyntaxParserTests PROPERTIES

0 commit comments

Comments
 (0)