// RUN: llgo -o %t %s
// RUN: %t 2>&1 | FileCheck %s

// CHECK: 0
// CHECK-NEXT: 1
// CHECK-NEXT: 2
// CHECK-NEXT: 3
// CHECK-NEXT: 4
// CHECK-NEXT: 5
// CHECK-NEXT: 6
// CHECK-NEXT: 7
// CHECK-NEXT: 8
// CHECK-NEXT: 9
// CHECK-NEXT: 10
// CHECK-NEXT: 11
// CHECK-NEXT: 12
// CHECK-NEXT: 13
// CHECK-NEXT: 14
// CHECK-NEXT: 15
// CHECK-NEXT: 16
// CHECK-NEXT: 17
// CHECK-NEXT: 18
// CHECK-NEXT: 19
// CHECK-NEXT: 20
// CHECK-NEXT: 21
// CHECK-NEXT: 22
// CHECK-NEXT: 23
// CHECK-NEXT: 24
// CHECK-NEXT: 25
// CHECK-NEXT: 26
// CHECK-NEXT: 27
// CHECK-NEXT: 28
// CHECK-NEXT: 29
// CHECK-NEXT: 30
// CHECK-NEXT: 31
// CHECK-NEXT: 32
// CHECK-NEXT: 33
// CHECK-NEXT: 34
// CHECK-NEXT: 35
// CHECK-NEXT: 36
// CHECK-NEXT: 37
// CHECK-NEXT: 38
// CHECK-NEXT: 39
// CHECK-NEXT: 40
// CHECK-NEXT: 41
// CHECK-NEXT: 42
// CHECK-NEXT: 43
// CHECK-NEXT: 44
// CHECK-NEXT: 45
// CHECK-NEXT: 46
// CHECK-NEXT: 47
// CHECK-NEXT: 48
// CHECK-NEXT: 49
// CHECK-NEXT: 50
// CHECK-NEXT: 51
// CHECK-NEXT: 52
// CHECK-NEXT: 53
// CHECK-NEXT: 54
// CHECK-NEXT: 55
// CHECK-NEXT: 56
// CHECK-NEXT: 57
// CHECK-NEXT: 58
// CHECK-NEXT: 59
// CHECK-NEXT: 60
// CHECK-NEXT: 61
// CHECK-NEXT: 62
// CHECK-NEXT: 63
// CHECK-NEXT: 64
// CHECK-NEXT: 65
// CHECK-NEXT: 66
// CHECK-NEXT: 67
// CHECK-NEXT: 68
// CHECK-NEXT: 69
// CHECK-NEXT: 70
// CHECK-NEXT: 71
// CHECK-NEXT: 72
// CHECK-NEXT: 73
// CHECK-NEXT: 74
// CHECK-NEXT: 75
// CHECK-NEXT: 76
// CHECK-NEXT: 77
// CHECK-NEXT: 78
// CHECK-NEXT: 79
// CHECK-NEXT: 80
// CHECK-NEXT: 81
// CHECK-NEXT: 82
// CHECK-NEXT: 83
// CHECK-NEXT: 84
// CHECK-NEXT: 85
// CHECK-NEXT: 86
// CHECK-NEXT: 87
// CHECK-NEXT: 88
// CHECK-NEXT: 89
// CHECK-NEXT: 90
// CHECK-NEXT: 91
// CHECK-NEXT: 92
// CHECK-NEXT: 93
// CHECK-NEXT: 94
// CHECK-NEXT: 95
// CHECK-NEXT: 96
// CHECK-NEXT: 97
// CHECK-NEXT: 98
// CHECK-NEXT: 99
// CHECK-NEXT: 0
// CHECK-NEXT: 1
// CHECK-NEXT: 2
// CHECK-NEXT: 3
// CHECK-NEXT: 4
// CHECK-NEXT: 5
// CHECK-NEXT: 6
// CHECK-NEXT: 7
// CHECK-NEXT: 8
// CHECK-NEXT: 9
// CHECK-NEXT: 10
// CHECK-NEXT: 11
// CHECK-NEXT: 12
// CHECK-NEXT: 13
// CHECK-NEXT: 14
// CHECK-NEXT: 15
// CHECK-NEXT: 16
// CHECK-NEXT: 17
// CHECK-NEXT: 18
// CHECK-NEXT: 19
// CHECK-NEXT: 20
// CHECK-NEXT: 21
// CHECK-NEXT: 22
// CHECK-NEXT: 23
// CHECK-NEXT: 24
// CHECK-NEXT: 25
// CHECK-NEXT: 26
// CHECK-NEXT: 27
// CHECK-NEXT: 28
// CHECK-NEXT: 29
// CHECK-NEXT: 30
// CHECK-NEXT: 31
// CHECK-NEXT: 32
// CHECK-NEXT: 33
// CHECK-NEXT: 34
// CHECK-NEXT: 35
// CHECK-NEXT: 36
// CHECK-NEXT: 37
// CHECK-NEXT: 38
// CHECK-NEXT: 39
// CHECK-NEXT: 40
// CHECK-NEXT: 41
// CHECK-NEXT: 42
// CHECK-NEXT: 43
// CHECK-NEXT: 44
// CHECK-NEXT: 45
// CHECK-NEXT: 46
// CHECK-NEXT: 47
// CHECK-NEXT: 48
// CHECK-NEXT: 49
// CHECK-NEXT: 50
// CHECK-NEXT: 51
// CHECK-NEXT: 52
// CHECK-NEXT: 53
// CHECK-NEXT: 54
// CHECK-NEXT: 55
// CHECK-NEXT: 56
// CHECK-NEXT: 57
// CHECK-NEXT: 58
// CHECK-NEXT: 59
// CHECK-NEXT: 60
// CHECK-NEXT: 61
// CHECK-NEXT: 62
// CHECK-NEXT: 63
// CHECK-NEXT: 64
// CHECK-NEXT: 65
// CHECK-NEXT: 66
// CHECK-NEXT: 67
// CHECK-NEXT: 68
// CHECK-NEXT: 69
// CHECK-NEXT: 70
// CHECK-NEXT: 71
// CHECK-NEXT: 72
// CHECK-NEXT: 73
// CHECK-NEXT: 74
// CHECK-NEXT: 75
// CHECK-NEXT: 76
// CHECK-NEXT: 77
// CHECK-NEXT: 78
// CHECK-NEXT: 79
// CHECK-NEXT: 80
// CHECK-NEXT: 81
// CHECK-NEXT: 82
// CHECK-NEXT: 83
// CHECK-NEXT: 84
// CHECK-NEXT: 85
// CHECK-NEXT: 86
// CHECK-NEXT: 87
// CHECK-NEXT: 88
// CHECK-NEXT: 89
// CHECK-NEXT: 90
// CHECK-NEXT: 91
// CHECK-NEXT: 92
// CHECK-NEXT: 93
// CHECK-NEXT: 94
// CHECK-NEXT: 95
// CHECK-NEXT: 96
// CHECK-NEXT: 97
// CHECK-NEXT: 98
// CHECK-NEXT: 99
// CHECK-NEXT: 1
// CHECK-NEXT: 2
// CHECK-NEXT: 3
// CHECK-NEXT: abcdef
// CHECK-NEXT: true
// CHECK-NEXT: true
// CHECK-NEXT: false false
// CHECK-NEXT: true true
// CHECK-NEXT: false false

package main

func stringtobytes() {
	var b []byte
	b = append(b, "abc"...)
	b = append(b, "def"...)
	println(string(b))
}

func appendnothing() {
	var x []string
	println(append(x) == nil)
	x = append(x, "!")
	println(len(append(x)) == 1)
}

func appendmulti() {
	a := append([]bool{}, []bool{false, true, false}...)
	b := append([]bool{}, false, true, false)
	for i := range a {
		println(a[i], b[i])
	}
}

func main() {
	x := []int{}
	for i := 0; i < 100; i++ {
		x = append(x, i)
	}
	for i := 0; i < len(x); i++ {
		println(x[i])
	}
	y := []int{1, 2, 3}
	x = append(x, y...)
	for i := 0; i < len(x); i++ {
		println(x[i])
	}
	stringtobytes()
	appendnothing()
	appendmulti()
}
