forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
// 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)
 | 
						|
}
 |