Peter Collingbourne | ad9841e | 2014-11-27 00:06:42 +0000 | [diff] [blame] | 1 | // RUN: llgo -o %t %s |
| 2 | // RUN: %t 2>&1 | FileCheck %s |
| 3 | |
| 4 | // CHECK: test( 46 ) |
| 5 | // CHECK-NEXT: . |
| 6 | // CHECK-NEXT: 46 |
| 7 | // CHECK-NEXT: 0 46 |
| 8 | // CHECK-NEXT: test( 169 ) |
| 9 | // CHECK-NEXT: © |
| 10 | // CHECK-NEXT: 194 |
| 11 | // CHECK-NEXT: 169 |
| 12 | // CHECK-NEXT: 0 169 |
| 13 | // CHECK-NEXT: test( 8364 ) |
| 14 | // CHECK-NEXT: € |
| 15 | // CHECK-NEXT: 226 |
| 16 | // CHECK-NEXT: 130 |
| 17 | // CHECK-NEXT: 172 |
| 18 | // CHECK-NEXT: 0 8364 |
| 19 | // CHECK-NEXT: test( 66560 ) |
| 20 | // CHECK-NEXT: 𐐀 |
| 21 | // CHECK-NEXT: 240 |
| 22 | // CHECK-NEXT: 144 |
| 23 | // CHECK-NEXT: 144 |
| 24 | // CHECK-NEXT: 128 |
| 25 | // CHECK-NEXT: 0 66560 |
| 26 | // CHECK-NEXT: .©€𐐀 |
| 27 | // CHECK-NEXT: 4 4 4 |
| 28 | // CHECK-NEXT: true |
| 29 | // CHECK-NEXT: true |
| 30 | // CHECK-NEXT: true |
| 31 | // CHECK-NEXT: true |
| 32 | // CHECK-NEXT: true |
| 33 | // CHECK-NEXT: true |
| 34 | // CHECK-NEXT: true |
| 35 | // CHECK-NEXT: true |
| 36 | |
| 37 | package main |
| 38 | |
| 39 | func test(r rune) { |
| 40 | println("test(", r, ")") |
| 41 | s := string(r) |
| 42 | println(s) |
| 43 | for i := 0; i < len(s); i++ { |
| 44 | println(s[i]) |
| 45 | } |
| 46 | for i, r := range s { |
| 47 | println(i, r) |
| 48 | } |
| 49 | } |
| 50 | |
| 51 | type namedRune rune |
| 52 | |
| 53 | func testslice(r1 []rune) { |
| 54 | s := string(r1) |
| 55 | println(s) |
| 56 | r2 := []rune(s) |
| 57 | r3 := []namedRune(s) |
| 58 | println(len(r1), len(r2), len(r3)) |
| 59 | if len(r2) == len(r1) && len(r3) == len(r1) { |
| 60 | for i := range r2 { |
| 61 | println(r1[i] == r2[i]) |
| 62 | println(r1[i] == rune(r3[i])) |
| 63 | } |
| 64 | } |
| 65 | } |
| 66 | |
| 67 | func main() { |
| 68 | var runes = []rune{'.', '©', '€', '𐐀'} |
| 69 | test(runes[0]) |
| 70 | test(runes[1]) |
| 71 | test(runes[2]) |
| 72 | test(runes[3]) |
| 73 | testslice(runes) |
| 74 | } |