| // RUN: llgo -o %t %s |
| // RUN: %t 2>&1 | FileCheck %s |
| |
| // CHECK: test( 46 ) |
| // CHECK-NEXT: . |
| // CHECK-NEXT: 46 |
| // CHECK-NEXT: 0 46 |
| // CHECK-NEXT: test( 169 ) |
| // CHECK-NEXT: © |
| // CHECK-NEXT: 194 |
| // CHECK-NEXT: 169 |
| // CHECK-NEXT: 0 169 |
| // CHECK-NEXT: test( 8364 ) |
| // CHECK-NEXT: € |
| // CHECK-NEXT: 226 |
| // CHECK-NEXT: 130 |
| // CHECK-NEXT: 172 |
| // CHECK-NEXT: 0 8364 |
| // CHECK-NEXT: test( 66560 ) |
| // CHECK-NEXT: 𐐀 |
| // CHECK-NEXT: 240 |
| // CHECK-NEXT: 144 |
| // CHECK-NEXT: 144 |
| // CHECK-NEXT: 128 |
| // CHECK-NEXT: 0 66560 |
| // CHECK-NEXT: .©€𐐀 |
| // CHECK-NEXT: 4 4 4 |
| // CHECK-NEXT: true |
| // CHECK-NEXT: true |
| // CHECK-NEXT: true |
| // CHECK-NEXT: true |
| // CHECK-NEXT: true |
| // CHECK-NEXT: true |
| // CHECK-NEXT: true |
| // CHECK-NEXT: true |
| |
| package main |
| |
| func test(r rune) { |
| println("test(", r, ")") |
| s := string(r) |
| println(s) |
| for i := 0; i < len(s); i++ { |
| println(s[i]) |
| } |
| for i, r := range s { |
| println(i, r) |
| } |
| } |
| |
| type namedRune rune |
| |
| func testslice(r1 []rune) { |
| s := string(r1) |
| println(s) |
| r2 := []rune(s) |
| r3 := []namedRune(s) |
| println(len(r1), len(r2), len(r3)) |
| if len(r2) == len(r1) && len(r3) == len(r1) { |
| for i := range r2 { |
| println(r1[i] == r2[i]) |
| println(r1[i] == rune(r3[i])) |
| } |
| } |
| } |
| |
| func main() { |
| var runes = []rune{'.', '©', '€', '𐐀'} |
| test(runes[0]) |
| test(runes[1]) |
| test(runes[2]) |
| test(runes[3]) |
| testslice(runes) |
| } |