Skip to content

Commit 63bdd59

Browse files
authored
Merge pull request #235 from ahoppen/ahoppen/5.9/cherry-pick-2
[5.9] Companion of cherry-picking multiple SwiftSyntax PRs to `release/5.9`
2 parents 3f56ab9 + 1d155b5 commit 63bdd59

File tree

10 files changed

+30
-29
lines changed

10 files changed

+30
-29
lines changed

SourceKitStressTester/Sources/StressTester/ActionGenerators.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,9 @@ private struct ActionToken {
495495
case .functionCallExpr: fallthrough
496496
case .subscriptExpr: fallthrough
497497
case .expressionSegment:
498-
guard tupleElem.indexInParent != 0 else { return nil }
498+
if tupleElem.parent?.as(TupleExprElementListSyntax.self)?.first == tupleElem {
499+
return nil
500+
}
499501
return ExpectedResult(name: SwiftName(base: token.textWithoutBackticks + ":", labels: []), kind: .reference)
500502
default:
501503
return nil

SwiftEvolve/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ let package = Package(
4141
),
4242
.target(
4343
name: "SwiftEvolve",
44-
dependencies: ["SwiftToolsSupport-auto", "SwiftSyntax", "SwiftSyntaxParser"],
44+
dependencies: ["SwiftToolsSupport-auto", "SwiftSyntax", "SwiftParser"],
4545
linkerSettings: [.unsafeFlags(["-Xlinker", "-rpath", "-Xlinker", sourcekitSearchPath])]
4646
),
4747
.testTarget(

SwiftEvolve/Sources/SwiftEvolve/DeclContext.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ public extension Decl {
171171

172172
public extension Decl where Self: DeclWithMembers {
173173
func lookupDirect(_ name: String) -> Decl? {
174-
for item in members.members {
174+
for item in memberBlock.members {
175175
guard let member = item.decl.as(Decl.self) else { continue }
176176
if member.name == name {
177177
return member

SwiftEvolve/Sources/SwiftEvolve/Evolver.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ import Foundation
1818
import SwiftSyntax
1919

2020
struct Context {
21-
var syntaxPath: [Int] = []
21+
var syntaxPath: [String] = []
2222
var declContext = DeclContext()
2323

2424
@discardableResult
2525
mutating func enter(_ node: Syntax) -> Bool {
26-
syntaxPath.append(node.indexInParent)
26+
syntaxPath.append(String(describing: node.keyPathInParent!))
2727
if let node = node.as(Decl.self) {
2828
declContext.append(node)
2929
return true
@@ -43,7 +43,7 @@ struct Context {
4343
}
4444

4545
public class Evolver: SyntaxRewriter {
46-
var plan: [URL: [[Int]: [PlannedEvolution]]]
46+
var plan: [URL: [[String]: [PlannedEvolution]]]
4747
var url: URL!
4848

4949
var context = Context()

SwiftEvolve/Sources/SwiftEvolve/Planner.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import SwiftSyntax
2121
public struct PlannedEvolution: Codable {
2222
var sourceLocation: String
2323
var file: URL
24-
var syntaxPath: [Int]
24+
var syntaxPath: [String]
2525
var evolution: AnyEvolution
2626
}
2727

SwiftEvolve/Sources/SwiftEvolve/SwiftEvolveTool.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import Foundation
1818
import SwiftSyntax
19-
import SwiftSyntaxParser
19+
import SwiftParser
2020
import TSCBasic
2121

2222
public class SwiftEvolveTool {
@@ -184,7 +184,7 @@ extension SwiftEvolveTool {
184184
return preparsed
185185
}
186186

187-
let parsed = try SyntaxParser.parse(URL(path))
187+
let parsed = Parser.parse(source: try String(contentsOf: URL(path)))
188188
parsedSourceFiles[path] = parsed
189189
return parsed
190190
}

SwiftEvolve/Sources/SwiftEvolve/SyntaxExtensions.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import SwiftSyntax
1919
import Foundation
2020

2121
public protocol DeclWithMembers: DeclSyntaxProtocol {
22-
var members: MemberDeclBlockSyntax { get set }
22+
var memberBlock: MemberDeclBlockSyntax { get set }
2323
}
2424

2525
extension ClassDeclSyntax: DeclWithMembers {}
@@ -185,9 +185,8 @@ extension TypeSyntax {
185185

186186
extension TokenKind {
187187
var needsSpace: Bool {
188-
if isLexerClassifiedKeyword { return true }
189188
switch self {
190-
case .identifier, .dollarIdentifier, .integerLiteral, .floatingLiteral, .keyword(.yield):
189+
case .identifier, .dollarIdentifier, .integerLiteral, .floatingLiteral, .keyword:
191190
return true
192191
default:
193192
return false

SwiftEvolve/Tests/SwiftEvolveTests/RegressionTests.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import XCTest
22
import SwiftSyntax
3-
import SwiftSyntaxParser
3+
import SwiftParser
44
import SwiftEvolve
55

66
class RegressionTests: XCTestCase {
77
var unusedRNG = UnusedGenerator()
88

9-
func testUnshuffledDeclsStayInOrder() throws {
9+
func testUnshuffledDeclsStayInOrder() {
1010
// Checks that we don't mess up the order of declarations we're not trying
1111
// to shuffle. In particular, if we store the properties in a Set or other
1212
// unordered collection, we could screw this up.
13-
let code = try SyntaxParser.parse(source:
13+
let code = Parser.parse(source:
1414
"""
1515
@_fixed_layout struct X {
1616
var p0: Int
@@ -44,12 +44,12 @@ class RegressionTests: XCTestCase {
4444
}
4545
}
4646

47-
func testStoredIfConfigBlocksMemberwiseInitSynthesis() throws {
47+
func testStoredIfConfigBlocksMemberwiseInitSynthesis() {
4848
do {
4949
// FIXME: Crashes when run in Xcode because of a version mismatch between
5050
// SwiftSyntax and the compiler it uses (specifically, how they represent
5151
// accessor blocks). Should pass in "env PATH=... swift build".
52-
let code = try SyntaxParser.parse(source:
52+
let code = Parser.parse(source:
5353
"""
5454
struct A {
5555
#if os(iOS)
@@ -64,7 +64,7 @@ class RegressionTests: XCTestCase {
6464

6565
XCTAssertThrowsError(
6666
try SynthesizeMemberwiseInitializerEvolution(
67-
for: Syntax(decl.members.members), in: dc, using: &unusedRNG
67+
for: Syntax(decl.memberBlock.members), in: dc, using: &unusedRNG
6868
),
6969
"Should throw when a stored property is in a #if block"
7070
)
@@ -84,7 +84,7 @@ class RegressionTests: XCTestCase {
8484
}
8585

8686
do {
87-
let code = try SyntaxParser.parse(source:
87+
let code = Parser.parse(source:
8888
"""
8989
struct B {
9090
var b1: Int
@@ -99,7 +99,7 @@ class RegressionTests: XCTestCase {
9999

100100
XCTAssertNoThrow(
101101
try SynthesizeMemberwiseInitializerEvolution(
102-
for: Syntax(decl.members.members), in: dc, using: &unusedRNG
102+
for: Syntax(decl.memberBlock.members), in: dc, using: &unusedRNG
103103
),
104104
"Should not throw when properties are only non-stored"
105105
)
@@ -119,7 +119,7 @@ class RegressionTests: XCTestCase {
119119
}
120120

121121
do {
122-
let code = try SyntaxParser.parse(source:
122+
let code = Parser.parse(source:
123123
"""
124124
struct C {
125125
#if os(iOS)
@@ -135,7 +135,7 @@ class RegressionTests: XCTestCase {
135135

136136
XCTAssertNoThrow(
137137
try SynthesizeMemberwiseInitializerEvolution(
138-
for: Syntax(decl.members.members), in: dc, using: &unusedRNG
138+
for: Syntax(decl.memberBlock.members), in: dc, using: &unusedRNG
139139
),
140140
"Should not throw when there's an explicit init"
141141
)

SwiftEvolve/Tests/SwiftEvolveTests/ShuffleGenericRequirementsEvolutionTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import XCTest
22
import SwiftSyntax
3-
import SwiftSyntaxParser
3+
import SwiftParser
44
import SwiftEvolve
55

66
class ShuffleGenericRequirementsEvolutionTests: XCTestCase {
77
var predictableRNG = PredictableGenerator(values: 1..<16)
88

99
func testEvolution() throws {
10-
let code = try SyntaxParser.parse(source:
10+
let code = Parser.parse(source:
1111
"""
1212
func foo<T>(_: T) where T: Hashable, T == Comparable {}
1313
"""
@@ -27,8 +27,8 @@ class ShuffleGenericRequirementsEvolutionTests: XCTestCase {
2727
// "T == Comparable , T: Hashable")
2828
}
2929

30-
func testBypass() throws {
31-
let code = try SyntaxParser.parse(source:
30+
func testBypass() {
31+
let code = Parser.parse(source:
3232
"""
3333
func foo<T>(_: T) where T: Hashable, T == Comparable {}
3434
"""

SwiftEvolve/Tests/SwiftEvolveTests/ShuffleMembersEvolutionTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import XCTest
22
import SwiftSyntax
3-
import SwiftSyntaxParser
3+
import SwiftParser
44
import SwiftEvolve
55

66
class ShuffleMembersEvolutionTests: XCTestCase {
77
var predictableRNG = PredictableGenerator(values: 0..<16)
88

99
func testEnumCases() throws {
10-
let code = try SyntaxParser.parse(source:
10+
let code = Parser.parse(source:
1111
"""
1212
enum Foo {
1313
case a
@@ -19,7 +19,7 @@ class ShuffleMembersEvolutionTests: XCTestCase {
1919
let decl = code.filter(whereIs: EnumDeclSyntax.self).first!
2020
let dc = DeclContext(declarationChain: [code, decl])
2121
let evo = try ShuffleMembersEvolution(
22-
for: Syntax(decl.members.members), in: dc, using: &predictableRNG
22+
for: Syntax(decl.memberBlock.members), in: dc, using: &predictableRNG
2323
)
2424

2525
XCTAssertEqual(evo?.mapping.count, 3)

0 commit comments

Comments
 (0)