| // Test that we can define and use basic functions/expressions in the REPL. |
| // Note: All of this should work on all supported platforms. |
| |
| // RUN: %lldb --repl < %s | FileCheck %s |
| |
| type(of: 1) |
| // CHECK: $R0: Int.Type = Int |
| |
| func foo_concat(_ name: String) -> String { |
| let c = name + "::" + name |
| return c |
| } |
| foo_concat("foo") |
| // CHECK-NEXT: $R1: String = "foo::foo" |
| |
| 3 + 2 |
| // CHECK-NEXT: $R2: Int = 5 |
| |
| $R2 + 5 |
| // CHECK-NEXT: $R3: Int = 10 |
| |
| var names = [ "Chris", "Alex", "Ewa", "Barry", "Daniella" ] |
| // CHECK: names: [String] = 5 values { |
| // CHECK-NEXT: [0] = "Chris" |
| // CHECK-NEXT: [1] = "Alex" |
| // CHECK-NEXT: [2] = "Ewa" |
| // CHECK-NEXT: [3] = "Barry" |
| // CHECK-NEXT: [4] = "Daniella" |
| // CHECK-NEXT: } |
| |
| names.sort {$0 < $1} |
| names |
| // CHECK: $R4: [String] = 5 values { |
| // CHECK-NEXT: [0] = "Alex" |
| // CHECK-NEXT: [1] = "Barry" |
| // CHECK-NEXT: [2] = "Chris" |
| // CHECK-NEXT: [3] = "Daniella" |
| // CHECK-NEXT: [4] = "Ewa" |
| // CHECK-NEXT: } |
| |
| Array(names.lazy.reversed()) |
| // CHECK: $R5: [String] = 5 values { |
| // CHECK-NEXT: [0] = "Ewa" |
| // CHECK-NEXT: [1] = "Daniella" |
| // CHECK-NEXT: [2] = "Chris" |
| // CHECK-NEXT: [3] = "Barry" |
| // CHECK-NEXT: [4] = "Alex" |
| // CHECK-NEXT: } |
| |
| [[1,2,3,4],[1,2,3],[1,2],[],[1]] |
| // CHECK: $R6: {{\[\[Int\]\]}} = 5 values { |
| // CHECK-NEXT: [0] = 4 values { |
| // CHECK-NEXT: [0] = 1 |
| // CHECK-NEXT: [1] = 2 |
| // CHECK-NEXT: [2] = 3 |
| // CHECK-NEXT: [3] = 4 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: [1] = 3 values { |
| // CHECK-NEXT: [0] = 1 |
| // CHECK-NEXT: [1] = 2 |
| // CHECK-NEXT: [2] = 3 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: [2] = 2 values { |
| // CHECK-NEXT: [0] = 1 |
| // CHECK-NEXT: [1] = 2 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: [3] = 0 values |
| // CHECK-NEXT: [4] = 1 value { |
| // CHECK-NEXT: [0] = 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: } |
| |
| let some_int = 1 |
| some_int |
| // CHECK: $R7: Int = 1 |
| |
| let some_str = "Hello" |
| some_str |
| // CHECK: $R8: String = "Hello" |