1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2023 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
import SwiftRefactor
import SwiftSyntax
import SwiftSyntaxBuilder
import XCTest
import _SwiftSyntaxTestSupport
final class MigrateToNewIfLetSyntaxTest: XCTestCase {
func testRefactoring() throws {
let baselineSyntax: ExprSyntax = """
if let x = x {}
"""
let expectedSyntax: ExprSyntax = """
if let x {}
"""
try assertRefactor(baselineSyntax, context: (), provider: MigrateToNewIfLetSyntax.self, expected: expectedSyntax)
}
func testIdempotence() throws {
let baselineSyntax: ExprSyntax = """
if let x = x {}
"""
let expectedSyntax: ExprSyntax = """
if let x {}
"""
try assertRefactor(baselineSyntax, context: (), provider: MigrateToNewIfLetSyntax.self, expected: expectedSyntax)
}
func testMultiBinding() throws {
let baselineSyntax: ExprSyntax = """
if let x = x, var y = y, let z = z {}
"""
let expectedSyntax: ExprSyntax = """
if let x, var y, let z {}
"""
try assertRefactor(baselineSyntax, context: (), provider: MigrateToNewIfLetSyntax.self, expected: expectedSyntax)
}
func testMixedBinding() throws {
let baselineSyntax: ExprSyntax = """
if let x = x, var y = x, let z = y.w {}
"""
let expectedSyntax: ExprSyntax = """
if let x, var y = x, let z = y.w {}
"""
try assertRefactor(baselineSyntax, context: (), provider: MigrateToNewIfLetSyntax.self, expected: expectedSyntax)
}
func testConditions() throws {
let baselineSyntax: ExprSyntax = """
if let x = x + 1, x == x, !x {}
"""
let expectedSyntax: ExprSyntax = """
if let x = x + 1, x == x, !x {}
"""
try assertRefactor(baselineSyntax, context: (), provider: MigrateToNewIfLetSyntax.self, expected: expectedSyntax)
}
func testWhitespaceNormalization() throws {
let baselineSyntax: ExprSyntax = """
if let x = x , let y = y {}
"""
let expectedSyntax: ExprSyntax = """
if let x, let y {}
"""
try assertRefactor(baselineSyntax, context: (), provider: MigrateToNewIfLetSyntax.self, expected: expectedSyntax)
}
func testIfStmt() throws {
let baselineSyntax: StmtSyntax = """
if let x = x {}
"""
let expectedSyntax: ExprSyntax = """
if let x {}
"""
let exprStmt = try XCTUnwrap(baselineSyntax.as(ExpressionStmtSyntax.self))
try assertRefactor(
exprStmt.expression,
context: (),
provider: MigrateToNewIfLetSyntax.self,
expected: expectedSyntax
)
}
}
|