github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/slices/cap.go (about) 1 // RUN: llgo -o %t %s 2 // RUN: %t 2>&1 | FileCheck %s 3 4 // CHECK: 0 0 5 // CHECK-NEXT: 0 0 6 // CHECK-NEXT: 0 0 7 // CHECK-NEXT: 1 1 8 // CHECK-NEXT: 1 1 9 // CHECK-NEXT: 1 2 10 // CHECK-NEXT: 2 9 11 // CHECK-NEXT: 3 9 12 // CHECK-NEXT: 999 13 // CHECK-NEXT: 999 14 // CHECK-NEXT: 1 2 15 16 package main 17 18 func test(l, c int) { 19 var s []int 20 if l != -1 { 21 if c == -1 { 22 s = make([]int, l) 23 } else { 24 s = make([]int, l, c) 25 } 26 } 27 println(len(s), cap(s)) 28 } 29 30 func main() { 31 test(-1, -1) 32 test(0, -1) 33 test(0, 0) 34 test(1, -1) 35 test(1, 1) 36 test(1, 2) 37 38 // make sure capacity is transferred to slice 39 s := make([]int, 5, 10) 40 s1 := s[1:3] 41 println(len(s1), cap(s1)) 42 43 s2 := append(s1, 999) 44 println(len(s2), cap(s2)) 45 println(s2[2]) 46 println(s[3]) 47 48 s3 := s1[0:1:2] 49 println(len(s3), cap(s3)) 50 }