Skip to content

Commit a8f456a

Browse files
committed
[Macros] Move checkMacroDefinition() to SwiftSyntaxMacroExpansion module
Macro deifnition checking is only meant to be used by something that expands macros (e.g. compiler). Not for macro implementation.
1 parent f85d6d9 commit a8f456a

File tree

8 files changed

+30
-9
lines changed

8 files changed

+30
-9
lines changed

Package.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,17 @@ let package = Package(
180180

181181
.target(
182182
name: "SwiftSyntaxMacroExpansion",
183-
dependencies: ["SwiftSyntax", "SwiftSyntaxMacros"],
183+
dependencies: ["SwiftSyntax", "SwiftSyntaxMacros", "SwiftDiagnostics"],
184184
exclude: ["CMakeLists.txt"]
185185
),
186186

187+
.testTarget(
188+
name: "SwiftSyntaxMacroExpansionTest",
189+
dependencies: [
190+
"SwiftSyntax", "_SwiftSyntaxTestSupport", "SwiftSyntaxMacroExpansion", "SwiftSyntaxBuilder",
191+
]
192+
),
193+
187194
// MARK: SwiftSyntaxMacrosTestSupport
188195

189196
.target(

Sources/SwiftCompilerPluginMessageHandling/Macros.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,9 @@ extension CompilerPluginMessageHandler {
125125
// Make a single element array by collapsing the results into a string.
126126
expandedSources = [
127127
SwiftSyntaxMacroExpansion.collapse(
128-
expansions: expansions, for: role, attachedTo: declarationNode
128+
expansions: expansions,
129+
for: role,
130+
attachedTo: declarationNode
129131
)
130132
]
131133
} else {

Sources/SwiftSyntaxMacroExpansion/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
add_swift_host_library(SwiftSyntaxMacroExpansion
2+
FunctionParameterUtils.swift
23
MacroExpansion.swift
4+
MacroReplacement.swift
35
)
46

57
target_link_libraries(SwiftSyntaxMacroExpansion PUBLIC

Sources/SwiftSyntaxMacroExpansion/MacroExpansion.swift

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2023 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
//
11+
//===----------------------------------------------------------------------===//
12+
113
import SwiftSyntax
214
@_spi(MacroExpansion) import SwiftSyntaxMacros
315

@@ -355,9 +367,10 @@ public func collapse<Node: SyntaxProtocol>(
355367
var separator: String = "\n\n"
356368

357369
if role == .accessor,
358-
let varDecl = declarationNode.as(VariableDeclSyntax.self),
359-
let binding = varDecl.bindings.first,
360-
binding.accessor == nil {
370+
let varDecl = declarationNode.as(VariableDeclSyntax.self),
371+
let binding = varDecl.bindings.first,
372+
binding.accessor == nil
373+
{
361374
let indentation = String(repeating: " ", count: 4)
362375

363376
expansions = expansions.map({ indent($0, with: indentation) })

Sources/SwiftSyntaxMacros/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ add_swift_host_library(SwiftSyntaxMacros
2222

2323
AbstractSourceLocation.swift
2424
BasicMacroExpansionContext.swift
25-
FunctionParameterUtils.swift
2625
MacroExpansionContext.swift
27-
MacroReplacement.swift
2826
MacroSystem.swift
2927
Syntax+MacroEvaluation.swift
3028
)

Tests/SwiftSyntaxMacrosTest/MacroReplacementTests.swift renamed to Tests/SwiftSyntaxMacroExpansionTest/MacroReplacementTests.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import SwiftDiagnostics
14-
import SwiftParser
1514
import SwiftSyntax
1615
import SwiftSyntaxBuilder
17-
import SwiftSyntaxMacros
16+
import SwiftSyntaxMacroExpansion
1817
import _SwiftSyntaxTestSupport
1918
import XCTest
2019

0 commit comments

Comments
 (0)