Skip to content

Commit a794bdb

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 0663a53 commit a794bdb

17 files changed

+56
-6
lines changed

Package.swift

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ let package = Package(
116116
),
117117
.target(
118118
name: "SwiftParser",
119-
dependencies: ["SwiftBasicFormat", "SwiftDiagnostics", "SwiftSyntax"],
119+
dependencies: ["SwiftDiagnostics", "SwiftSyntax"],
120120
exclude: [
121121
"CMakeLists.txt",
122122
"README.md",
@@ -125,6 +125,13 @@ let package = Package(
125125
"DeclarationAttribute.swift.gyb",
126126
]
127127
),
128+
.target(
129+
name: "SwiftParserDiagnostics",
130+
dependencies: ["SwiftBasicFormat", "SwiftDiagnostics", "SwiftSyntax"],
131+
exclude: [
132+
"CMakeLists.txt",
133+
]
134+
),
128135
.target(
129136
name: "SwiftOperators",
130137
dependencies: ["SwiftSyntax", "SwiftParser", "SwiftDiagnostics"],
@@ -134,8 +141,8 @@ let package = Package(
134141
),
135142
.target(
136143
name: "SwiftCompilerSupport",
137-
dependencies: [
138-
"SwiftSyntax", "SwiftParser", "SwiftDiagnostics", "SwiftOperators"],
144+
dependencies: ["SwiftSyntax", "SwiftParser", "SwiftParserDiagnostics",
145+
"SwiftDiagnostics", "SwiftOperators"],
139146
exclude: [
140147
"CMakeLists.txt",
141148
"SwiftCompilerSupport.h"
@@ -155,7 +162,7 @@ let package = Package(
155162
),
156163
.executableTarget(
157164
name: "swift-parser-cli",
158-
dependencies: ["SwiftDiagnostics", "SwiftSyntax", "SwiftParser", "SwiftOperators", "_SwiftSyntaxMacros",
165+
dependencies: ["SwiftDiagnostics", "SwiftSyntax", "SwiftParser", "SwiftParserDiagnostics", "SwiftOperators", "_SwiftSyntaxMacros",
159166
.product(name: "ArgumentParser", package: "swift-argument-parser")]
160167
),
161168
.testTarget(
@@ -191,6 +198,10 @@ let package = Package(
191198
dependencies: ["SwiftDiagnostics", "SwiftOperators", "SwiftParser",
192199
"_SwiftSyntaxTestSupport", "SwiftSyntaxBuilder"]
193200
),
201+
.testTarget(
202+
name: "SwiftParserDiagnosticsTest",
203+
dependencies: ["SwiftDiagnostics", "SwiftParserDiagnostics"]
204+
),
194205
.testTarget(
195206
name: "SwiftOperatorsTest",
196207
dependencies: ["SwiftOperators", "_SwiftSyntaxTestSupport",

Sources/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ 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(SwiftSyntaxBuilder)
1516
add_subdirectory(_SwiftSyntaxMacros)

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: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ add_library(SwiftParser STATIC
4343
gyb_generated/TypeAttribute.swift)
4444

4545
target_link_libraries(SwiftParser PUBLIC
46-
SwiftBasicFormat
4746
SwiftSyntax
4847
SwiftDiagnostics)
4948

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-cli/swift-parser-cli.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import SwiftDiagnostics
1414
import SwiftSyntax
1515
@_spi(Testing) import _SwiftSyntaxMacros
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
@@ -3,6 +3,7 @@ import Dispatch
33
import XCTest
44
import SwiftSyntax
55
import SwiftParser
6+
import SwiftParserDiagnostics
67

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

0 commit comments

Comments
 (0)