| func foo() -> Int{ |
| var aaa = 1 + 2 |
| aaa = aaa + 3 |
| if aaa == 3 { aaa = 4 } |
| return aaa |
| } |
| |
| func foo1(a : Int) -> Int { |
| switch a { |
| case 1: |
| return 0 |
| case 2: |
| return 1 |
| default: |
| return a |
| } |
| } |
| |
| func foo8(a : [Int]) { |
| for v in a { |
| if v > 3 { |
| break |
| } |
| if v < 3 { |
| continue |
| } |
| } |
| } |
| |
| protocol P1 { |
| func foo() |
| func foo1() |
| } |
| class C1 : P1 { |
| func foo1() {} |
| } |
| class C2 : P1 { |
| func foo() {} |
| } |
| class C3 : P1 {} |
| |
| protocol P2 { |
| associatedtype T1 |
| associatedtype T2 |
| func foo1() |
| } |
| class C4 : P2 {} |
| class C5 : P2 { |
| typealias T1 = Int |
| func foo1() {} |
| } |
| class C6 : P2 { |
| typealias T1 = Int |
| typealias T2 = Int |
| } |
| class C7 : P2 { |
| typealias T2 = Int |
| func foo1() {} |
| } |
| class C8 : P2 { |
| typealias T1 = Int |
| typealias T2 = Int |
| func foo1() {} |
| } |
| |
| class C9 {} |
| extension C9 : P1 {} |
| extension C9 : P2 {} |
| class C10 {} |
| extension C10 : P1 { |
| func foo() {} |
| func foo1() {} |
| } |
| extension C10 : P2 { |
| typealias T1 = Int |
| typealias T2 = Int |
| func foo1() {} |
| } |
| class C11 {} |
| extension C11 : P1 { |
| func foo() {} |
| } |
| extension C11 : P2 { |
| typealias T1 = Int |
| typealias T2 = Int |
| } |
| class C12 {} |
| extension C12 : P1 { |
| func foo1() {} |
| } |
| extension C12 : P2 { |
| typealias T1 = Int |
| func foo1() {} |
| } |
| class C13 {} |
| extension C13 : P1 { |
| func foo() {} |
| func foo1() {} |
| } |
| extension C13 : P2 { |
| typealias T1 = Int |
| func foo1() {} |
| } |
| class C14 {} |
| extension C14 : P1 { |
| func foo() {} |
| } |
| extension C14 : P2 { |
| typealias T1 = Int |
| typealias T2 = Int |
| func foo1() {} |
| } |
| protocol P3 { |
| func foo3() |
| func foo4() |
| } |
| extension C14: P3 { |
| func foo3() |
| } |
| |
| enum E { |
| case e1 |
| case e2 |
| case e3 |
| } |
| |
| func foo2(_ e : E) -> Int{ |
| switch(e) { |
| case .e1: |
| case .e2: |
| return 0; |
| default: |
| return 1; |
| } |
| } |
| |
| func testInout(_ a : inout Int) { |
| var b = a + 1 + 1 |
| b = b + 1 |
| testInout(&b) |
| } |
| |
| func testBranch1(_ a : Bool) { |
| if a { |
| return |
| } else { |
| return |
| } |
| } |
| |
| func testBranch2(_ a : Bool) { |
| if a { |
| return |
| } |
| } |
| |
| func testBranch3(_ a : Bool) -> Int { |
| if a { |
| return 0 |
| } else { |
| return 1 |
| } |
| } |
| |
| func testBranch4(_ a : Bool) -> Int { |
| if a { |
| return 0 |
| } |
| } |
| |
| func testStringLiteral() -> String { |
| let name = "Jason" |
| print("Hello, \(name)!") |
| return "abc" |
| } |
| |
| func testCollapseNestedIf() { |
| let a = 3 |
| if a > 2 { |
| if a < 10 {} |
| } |
| } |
| |
| func testMultiConditionalNestedIf() { |
| let a = 3 |
| if a > 2, a != 4 { |
| if a < 10 {} |
| } |
| } |
| |
| func testExtraDeclNestedIf() { |
| let a = 3 |
| if a > 2 { |
| if a < 10 {} |
| let b = 0 |
| } |
| } |
| |
| func testExtraIfNestedIf() { |
| let a = 3 |
| if a > 2 { |
| if a < 10 {} |
| let b = 0 |
| } |
| } |
| |
| func testStringInterpolation() -> String { |
| let name = "Jason" |
| let one = "\(1)" |
| let _ = "aaa" + "bbb" |
| let _ = name + "Bourne" |
| let _ = name + one |
| } |
| |
| func testForceTry() { |
| func throwingFunc() throws -> Int { return 3 } |
| let _ = try! throwingFunc() |
| } |
| |
| func testSwitchExpand() { |
| enum AccountType { |
| case savings, checking |
| } |
| let account: AccountType = .savings |
| switch account { } |
| } |
| // RUN: %refactor -source-filename %s -pos=2:1 -end-pos=5:13 | %FileCheck %s -check-prefix=CHECK1 |
| // RUN: %refactor -source-filename %s -pos=3:1 -end-pos=5:13 | %FileCheck %s -check-prefix=CHECK1 |
| // RUN: %refactor -source-filename %s -pos=4:1 -end-pos=5:13 | %FileCheck %s -check-prefix=CHECK1 |
| // RUN: %refactor -source-filename %s -pos=5:1 -end-pos=5:13 | %FileCheck %s -check-prefix=CHECK1 |
| |
| // RUN: %refactor -source-filename %s -pos=2:1 -end-pos=2:18 | %FileCheck %s -check-prefix=CHECK2 |
| // RUN: %refactor -source-filename %s -pos=2:1 -end-pos=3:16 | %FileCheck %s -check-prefix=CHECK2 |
| // RUN: %refactor -source-filename %s -pos=2:1 -end-pos=4:26 | %FileCheck %s -check-prefix=CHECK2 |
| |
| // RUN: %refactor -source-filename %s -pos=2:13 -end-pos=2:18 | %FileCheck %s -check-prefix=CHECK3 |
| |
| // RUN: %refactor -source-filename %s -pos=10:1 -end-pos=13:13 | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -source-filename %s -pos=12:1 -end-pos=15:13 | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -source-filename %s -pos=21:1 -end-pos=23:6 | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -source-filename %s -pos=24:1 -end-pos=26:6 | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -source-filename %s -pos=21:1 -end-pos=26:6 | %FileCheck %s -check-prefix=CHECK-NONE |
| |
| // RUN: %refactor -source-filename %s -pos=34:8 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| // RUN: %refactor -source-filename %s -pos=37:8 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| // RUN: %refactor -source-filename %s -pos=40:8 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| |
| // RUN: %refactor -source-filename %s -pos=47:8 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| // RUN: %refactor -source-filename %s -pos=48:8 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| // RUN: %refactor -source-filename %s -pos=52:8 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| // RUN: %refactor -source-filename %s -pos=56:8 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| |
| // RUN: %refactor -source-filename %s -pos=60:8 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| |
| // RUN: %refactor -source-filename %s -pos=66:8 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=67:12 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| // RUN: %refactor -source-filename %s -pos=68:12 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| |
| // RUN: %refactor -source-filename %s -pos=69:8 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=70:12 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=74:12 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| |
| // RUN: %refactor -source-filename %s -pos=79:8 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=80:12 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| // RUN: %refactor -source-filename %s -pos=83:12 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| |
| // RUN: %refactor -source-filename %s -pos=87:8 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=88:12 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| // RUN: %refactor -source-filename %s -pos=91:12 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| |
| // RUN: %refactor -source-filename %s -pos=95:8 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=96:12 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=100:12 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| |
| // RUN: %refactor -source-filename %s -pos=104:8 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=105:12 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=108:12 | %FileCheck %s -check-prefix=CHECK-RENAME-ONLY |
| // RUN: %refactor -source-filename %s -pos=117:12 | %FileCheck %s -check-prefix=CHECK-RENAME-STUB |
| |
| // RUN: %refactor -source-filename %s -pos=132:6 | %FileCheck %s -check-prefix=CHECK-EXPAND-DEFAULT |
| |
| // RUN: %refactor -pos=138:11 -end-pos=138:12 -source-filename %s | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -pos=138:11 -end-pos=138:20 -source-filename %s | %FileCheck %s -check-prefix=CHECK3 |
| // RUN: %refactor -pos=139:7 -end-pos=139:8 -source-filename %s | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -pos=139:3 -end-pos=139:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -pos=140:13 -end-pos=140:15 -source-filename %s | %FileCheck %s -check-prefix=CHECK2 |
| |
| // RUN: %refactor -pos=144:1 -end-pos=148:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK-EXTRCT-METHOD |
| // RUN: %refactor -pos=158:1 -end-pos=162:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK-EXTRCT-METHOD |
| // RUN: %refactor -pos=152:1 -end-pos=154:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -pos=166:1 -end-pos=168:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK-NONE |
| |
| // RUN: %refactor -source-filename %s -pos=173:12 | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -source-filename %s -pos=174:12 | %FileCheck %s -check-prefix=CHECK-LOCALIZE-STRING |
| |
| // RUN: %refactor -source-filename %s -pos=173:3 -end-pos=173:27| %FileCheck %s -check-prefix=CHECK-EXTRCT-METHOD |
| |
| // RUN: %refactor -source-filename %s -pos=179:3 | %FileCheck %s -check-prefix=CHECK-COLLAPSE-NESTED-IF-EXPRESSION |
| // RUN: %refactor -source-filename %s -pos=186:3 | %FileCheck %s -check-prefix=CHECK-COLLAPSE-NESTED-IF-EXPRESSION |
| // RUN: %refactor -source-filename %s -pos=193:3 | %FileCheck %s -check-prefix=CHECK-NONE |
| // RUN: %refactor -source-filename %s -pos=201:3 | %FileCheck %s -check-prefix=CHECK-NONE |
| |
| // RUN: %refactor -source-filename %s -pos=210:11 -end-pos=210:24 | %FileCheck %s -check-prefix=CHECK-STRINGS-INTERPOLATION |
| // RUN: %refactor -source-filename %s -pos=211:11 -end-pos=211:26 | %FileCheck %s -check-prefix=CHECK-STRINGS-INTERPOLATION |
| // RUN: %refactor -source-filename %s -pos=212:11 -end-pos=212:21 | %FileCheck %s -check-prefix=CHECK-STRINGS-INTERPOLATION |
| |
| // RUN: %refactor -source-filename %s -pos=217:11 | %FileCheck %s -check-prefix=CHECK-TRY-CATCH |
| // RUN: %refactor -source-filename %s -pos=217:12 | %FileCheck %s -check-prefix=CHECK-TRY-CATCH |
| // RUN: %refactor -source-filename %s -pos=217:13 | %FileCheck %s -check-prefix=CHECK-TRY-CATCH |
| // RUN: %refactor -source-filename %s -pos=217:14 | %FileCheck %s -check-prefix=CHECK-TRY-CATCH |
| |
| // RUN: %refactor -source-filename %s -pos=225:3 | %FileCheck %s -check-prefix=CHECK-EXPAND-SWITCH |
| |
| |
| // CHECK1: Action begins |
| // CHECK1-NEXT: Extract Method |
| // CHECK1-NEXT: Action ends |
| |
| // CHECK2: Action begins |
| // CHECK2-NEXT: Action ends |
| |
| // CHECK3: Action begins |
| // CHECK3-NEXT: Extract Expression |
| // CHECK3-NEXT: Extract Method |
| // CHECK3-NEXT: Extract Repeated Expression |
| // CHECK3-NEXT: Action ends |
| |
| // CHECK-NONE: Action begins |
| // CHECK-NONE-NEXT: Action ends |
| |
| // CHECK-RENAME-STUB: Action begins |
| // CHECK-RENAME-STUB-NEXT: Rename |
| // CHECK-RENAME-STUB-NEXT: Add Missing Protocol Requirements |
| // CHECK-RENAME-STUB-NEXT: Action ends |
| |
| // CHECK-RENAME-ONLY: Action begins |
| // CHECK-RENAME-ONLY-NEXT: Rename |
| // CHECK-RENAME-ONLY-NEXT: Action ends |
| |
| // CHECK-EXPAND-DEFAULT: Action begins |
| // CHECK-EXPAND-DEFAULT-NEXT: Expand Default |
| // CHECK-EXPAND-DEFAULT-NEXT: Action ends |
| |
| // CHECK-EXTRCT-METHOD: Action begins |
| // CHECK-EXTRCT-METHOD-NEXT: Extract Method |
| // CHECK-EXTRCT-METHOD-NEXT: Action ends |
| |
| // CHECK-LOCALIZE-STRING: Localize String |
| |
| // CHECK-COLLAPSE-NESTED-IF-EXPRESSION: Collapse Nested If Expression |
| |
| // CHECK-STRINGS-INTERPOLATION: Convert to String Interpolation |
| |
| // CHECK-TRY-CATCH: Convert To Do/Catch |
| |
| // CHECK-EXPAND-SWITCH: Expand Switch Cases |