Skip to content

Commit 3730f1e

Browse files
committed
Move SwiftParser/Diagnostics to its own module
Just a bit of cleanup I wanted to do to keep the modules small and focused. The idea is that SwiftParser just creates a SwiftSyntax tree and SwiftParserDiagnositcs produces nice error messages for such a tree.
1 parent 84af4c8 commit 3730f1e

17 files changed

+59
-10
lines changed

Package.swift

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ let package = Package(
115115
),
116116
.target(
117117
name: "SwiftParser",
118-
dependencies: ["SwiftBasicFormat", "SwiftDiagnostics", "SwiftSyntax"],
118+
dependencies: ["SwiftSyntax"],
119119
exclude: [
120120
"CMakeLists.txt",
121121
"README.md",
@@ -124,14 +124,21 @@ let package = Package(
124124
"DeclarationAttribute.swift.gyb",
125125
]
126126
),
127+
.target(
128+
name: "SwiftParserDiagnostics",
129+
dependencies: ["SwiftBasicFormat", "SwiftDiagnostics", "SwiftSyntax"],
130+
exclude: [
131+
"CMakeLists.txt",
132+
]
133+
),
127134
.target(
128135
name: "SwiftOperators",
129136
dependencies: ["SwiftSyntax", "SwiftParser", "SwiftDiagnostics"]
130137
),
131138
.target(
132139
name: "SwiftCompilerSupport",
133-
dependencies: [
134-
"SwiftSyntax", "SwiftParser", "SwiftDiagnostics", "SwiftOperators"],
140+
dependencies: ["SwiftSyntax", "SwiftParser", "SwiftParserDiagnostics",
141+
"SwiftDiagnostics", "SwiftOperators"],
135142
exclude: [
136143
"CMakeLists.txt",
137144
"SwiftCompilerSupport.h"
@@ -144,7 +151,7 @@ let package = Package(
144151
.executableTarget(
145152
name: "swift-parser-test",
146153
dependencies: ["SwiftDiagnostics", "SwiftSyntax", "SwiftParser",
147-
"SwiftOperators",
154+
"SwiftParserDiagnostics", "SwiftOperators",
148155
.product(name: "ArgumentParser", package: "swift-argument-parser")]
149156
),
150157
.testTarget(
@@ -171,8 +178,12 @@ let package = Package(
171178
),
172179
.testTarget(
173180
name: "SwiftParserTest",
174-
dependencies: ["SwiftDiagnostics", "SwiftOperators", "SwiftParser",
175-
"_SwiftSyntaxTestSupport"]
181+
dependencies: ["SwiftDiagnostics", "SwiftParserDiagnostics",
182+
"SwiftOperators", "SwiftParser", "_SwiftSyntaxTestSupport"]
183+
),
184+
.testTarget(
185+
name: "SwiftParserDiagnosticsTest",
186+
dependencies: ["SwiftDiagnostics", "SwiftParserDiagnostics"]
176187
),
177188
.testTarget(
178189
name: "SwiftOperatorsTest",

Sources/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ add_subdirectory(SwiftBasicFormat)
1010
add_subdirectory(SwiftSyntax)
1111
add_subdirectory(SwiftDiagnostics)
1212
add_subdirectory(SwiftParser)
13+
add_subdirectory(SwiftParserDiagnostics)
1314
add_subdirectory(SwiftOperators)
1415
add_subdirectory(SwiftCompilerSupport)

Sources/SwiftCompilerSupport/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ target_link_libraries(SwiftCompilerSupport PUBLIC
1414
SwiftSyntax
1515
SwiftDiagnostics
1616
SwiftParser
17+
SwiftParserDiagnostics
1718
SwiftOperators
1819
)
1920

Sources/SwiftCompilerSupport/ConsistencyCheck.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import SwiftOperators
1414
@_spi(Testing) @_spi(RawSyntax) import SwiftParser
15+
import SwiftParserDiagnostics
1516
@_spi(RawSyntax) import SwiftSyntax
1617

1718
extension Syntax {

Sources/SwiftParser/CMakeLists.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ add_library(SwiftParser STATIC
4343
gyb_generated/TypeAttribute.swift)
4444

4545
target_link_libraries(SwiftParser PUBLIC
46-
SwiftBasicFormat
47-
SwiftSyntax
48-
SwiftDiagnostics)
46+
SwiftSyntax)
4947

5048
set_property(GLOBAL APPEND PROPERTY SWIFTSYNTAX_EXPORTS SwiftParser)
5149

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# This source file is part of the Swift.org open source project
2+
#
3+
# Copyright (c) 2014 - 2022 Apple Inc. and the Swift project authors
4+
# Licensed under Apache License v2.0 with Runtime Library Exception
5+
#
6+
# See http://swift.org/LICENSE.txt for license information
7+
# See http://swift.org/CONTRIBUTORS.txt for Swift project authors
8+
9+
add_library(SwiftParserDiagnostics STATIC
10+
DiagnosticExtensions.swift
11+
MissingNodesError.swift
12+
ParserDiagnosticMessages.swift
13+
ParseDiagnosticsGenerator.swift
14+
PresenceUtils.swift
15+
SyntaxExtensions.swift
16+
Utils.swift)
17+
18+
target_link_libraries(SwiftParserDiagnostics PUBLIC
19+
SwiftBasicFormat
20+
SwiftSyntax
21+
SwiftDiagnostics)
22+
23+
set_property(GLOBAL APPEND PROPERTY SWIFTSYNTAX_EXPORTS SwiftParserDiagnostics)
24+
25+
# NOTE: workaround for CMake not setting up include flags yet
26+
set_target_properties(SwiftParserDiagnostics PROPERTIES
27+
INTERFACE_INCLUDE_DIRECTORIES
28+
"${CMAKE_Swift_MODULE_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}")
29+
30+
install(TARGETS SwiftParserDiagnostics
31+
EXPORT SwiftSyntaxTargets
32+
ARCHIVE DESTINATION lib
33+
LIBRARY DESTINATION lib
34+
RUNTIME DESTINATION bin)

Sources/swift-parser-test/swift-parser-test.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import SwiftDiagnostics
1515
import SwiftSyntax
1616
import SwiftParser
17+
import SwiftParserDiagnostics
1718
import SwiftOperators
1819
import Foundation
1920
import ArgumentParser

Tests/SwiftParserTest/DiagnosticInfrastructureTests.swift renamed to Tests/SwiftParserDiagnosticsTest/DiagnosticInfrastructureTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import XCTest
22
import SwiftDiagnostics
3-
import SwiftParser
3+
import SwiftParserDiagnostics
44

55
public class DiagnosticInfrastructureTests: XCTestCase {
66
public func testDiagnosticID() throws {

Tests/SwiftParserTest/Assertions.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import XCTest
22
@_spi(RawSyntax) import SwiftSyntax
33
@_spi(Testing) @_spi(RawSyntax) import SwiftParser
4+
import SwiftParserDiagnostics
45
import SwiftDiagnostics
56
import _SwiftSyntaxTestSupport
67

Tests/SwiftParserTest/ParserTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Dispatch
22
import XCTest
33
import SwiftSyntax
44
import SwiftParser
5+
import SwiftParserDiagnostics
56

67
public class ParserTests: XCTestCase {
78
/// Run a single parse test.

0 commit comments

Comments
 (0)