blob: 3d32e8a506f969ee0c99bf653802d1537955f92d [file] [log] [blame]
class /*/*class-Foo:unknown*/Foo in comment*/ /*class-Foo:def*/Foo {}
protocol /*protocol-Proto:def*/Proto {
associatedtype /*associated-Item:def*/Item
}
class /*class-Bar:def*/Bar : /*class-Foo*/Foo, /*protocol-Proto*/Proto {
typealias /*associated-Item:def*/Item = Int
}
let x: /*class-Bar*/Bar = /*class-Bar*/Bar()
func foo(a: /*class-Foo*/Foo, b: /*class-Bar*/Bar, c: inout /*class-Bar*/Bar) -> /*class-Foo*/Foo {
return /*class-Bar*/Bar()
}
typealias /*alias-FuncType:def*/FuncType = (/*class-Foo*/Foo, /*class-Bar*/Bar) -> /*class-Bar*/Bar
var example: /*alias-FuncType*/FuncType = {a, b in x}
func bar<X:/*protocol-Proto*/Proto, Y>(a: X, b: Y) {}
class /*class-Animal:def*/Animal</*generic-T:def*/T, /*generic-U:def*/U> where /*generic-U*/U:/*protocol-Proto*/Proto, /*generic-U*/U . /*associated-Item*/Item == Int {}
var anAnimal: /*class-Animal*/Animal<Int, /*class-Bar*/Bar> = /*class-Animal*/Animal()
extension /*class-Animal:def*/Animal {
func boo(a: /*generic-T*/T, b: /*generic-U*/U) {}
}
enum /*enum-Barcode:def*/Barcode {
case upc(Int, Int, Int, Int)
case /*case-qrCode:def*/qrCode(code: String)
case /*case-other:def*/other(Int)
case /*case-another:def*/another
}
var barCode: /*enum-Barcode*/Barcode = /*enum-Barcode*/Barcode.upc(1, 1, 1, 1)
barCode = . /*case-qrCode:call*/qrCode(code: "ABCDEFG")
barCode = /*enum-Barcode*/Barcode . /*case-qrCode:call*/qrCode(code: "J")
barCode = . /*case-other:call*/other(2)
barCode = . /*case-another*/another
switch barCode {
case .upc(let a, let b, let c, let d):
print(a)
case . /*case-qrCode*/qrCode(let s):
print(s)
case . /*case-another*/another:
print(1)
case . /*case-other*/other(let x):
print(x)
}
enum /*enum-WithValue:def*/WithValue: Int {
case /*case-one:def*/one = 1
}
var _ = /*enum-WithValue*/WithValue . /*case-one*/one
// RUN: %empty-directory(%t.result)
// RUN: %refactor -syntactic-rename -source-filename %s -pos="class-Foo" -is-non-protocol-type -old-name "Foo" -new-name "MoreFoo" >> %t.result/types_class-Foo.swift
// RUN: diff -u %S/Outputs/types/class-Foo.swift.expected %t.result/types_class-Foo.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="protocol-Proto" -old-name "Proto" -new-name "NextProto" >> %t.result/types_protocol-Proto.swift
// RUN: diff -u %S/Outputs/types/protocol-Proto.swift.expected %t.result/types_protocol-Proto.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="class-Bar" -is-non-protocol-type -old-name "Bar" -new-name "MoreBar" >> %t.result/types_class-Bar.swift
// RUN: diff -u %S/Outputs/types/class-Bar.swift.expected %t.result/types_class-Bar.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="associated-Item" -old-name "Item" -new-name "Element" >> %t.result/types_associated-Item.swift
// RUN: diff -u %S/Outputs/types/associated-Item.swift.expected %t.result/types_associated-Item.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="alias-FuncType" -old-name "FuncType" -new-name "FuncType2" >> %t.result/types_alias-FuncType.swift
// RUN: diff -u %S/Outputs/types/alias-FuncType.swift.expected %t.result/types_alias-FuncType.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="class-Animal" -is-non-protocol-type -old-name "Animal" -new-name "Gonzo" >> %t.result/types_class-Animal.swift
// RUN: diff -u %S/Outputs/types/class-Animal.swift.expected %t.result/types_class-Animal.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="generic-T" -is-non-protocol-type -old-name "T" -new-name "Tee" >> %t.result/types_generic-T.swift
// RUN: diff -u %S/Outputs/types/generic-T.swift.expected %t.result/types_generic-T.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="generic-U" -is-non-protocol-type -old-name "U" -new-name "Ewe" >> %t.result/types_generic-U.swift
// RUN: diff -u %S/Outputs/types/generic-U.swift.expected %t.result/types_generic-U.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="enum-Barcode" -is-non-protocol-type -old-name "Barcode" -new-name "BetterBarcode" >> %t.result/types_enum-Barcode.swift
// RUN: diff -u %S/Outputs/types/enum-Barcode.swift.expected %t.result/types_enum-Barcode.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="case-qrCode" -is-function-like -old-name "qrCode(code:)" -new-name "QRCode(_:)" >> %t.result/types_case-qrCode.swift
// RUN: diff -u %S/Outputs/types/case-qrCode.swift.expected %t.result/types_case-qrCode.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="case-other" -is-function-like -old-name "other(_:)" -new-name "Other(x:)" >> %t.result/types_case-other.swift
// RUN: diff -u %S/Outputs/types/case-other.swift.expected %t.result/types_case-other.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="case-another" -old-name "another" -new-name "Another" >> %t.result/types_case-another.swift
// RUN: diff -u %S/Outputs/types/case-another.swift.expected %t.result/types_case-another.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="enum-WithValue" -is-non-protocol-type -old-name "WithValue" -new-name "NewName" >> %t.result/types_enum-WithValue.swift
// RUN: diff -u %S/Outputs/types/enum-WithValue.swift.expected %t.result/types_enum-WithValue.swift
// RUN: %refactor -syntactic-rename -source-filename %s -pos="case-one" -old-name "one" -new-name "two" >> %t.result/types_case-one.swift
// RUN: diff -u %S/Outputs/types/case-one.swift.expected %t.result/types_case-one.swift