github.com/ks888/tgo@v0.0.0-20190130135156-80bf89407292/testutils/testdata/typeprint.go (about) 1 package main 2 3 //go:noinline 4 func printBool(v bool) { 5 } 6 7 //go:noinline 8 func printInt8(v int8) { 9 } 10 11 //go:noinline 12 func printInt16(v int16) { 13 } 14 15 //go:noinline 16 func printInt32(v int32) { 17 } 18 19 //go:noinline 20 func printInt64(v int64) { 21 } 22 23 //go:noinline 24 func printUint8(v uint8) { 25 } 26 27 //go:noinline 28 func printUint16(v uint16) { 29 } 30 31 //go:noinline 32 func printUint32(v uint32) { 33 } 34 35 //go:noinline 36 func printUint64(v uint64) { 37 } 38 39 //go:noinline 40 func printFloat32(v float32) { 41 } 42 43 //go:noinline 44 func printFloat64(v float64) { 45 } 46 47 //go:noinline 48 func printComplex64(v complex64) { 49 } 50 51 //go:noinline 52 func printComplex128(v complex128) { 53 } 54 55 //go:noinline 56 func printString(v string) { 57 } 58 59 //go:noinline 60 func printArray(v [2]int) { 61 } 62 63 //go:noinline 64 func printSlice(v []int) { 65 } 66 67 //go:noinline 68 func printNilSlice(v []int) { 69 } 70 71 type S struct { 72 a int 73 b, c int 74 T 75 } 76 77 func (s S) M() { 78 } 79 80 type S2 string 81 82 func (s *S2) M() { 83 } 84 85 type T struct { 86 d int 87 } 88 89 //go:noinline 90 func printStruct(v S) { 91 } 92 93 //go:noinline 94 func printPtr(v *int) { 95 } 96 97 //go:noinline 98 func printFunc(v func(int)) { 99 } 100 101 type I interface { 102 M() 103 } 104 105 //go:noinline 106 func printInterface(v I) { 107 } 108 109 //go:noinline 110 func printPtrInterface(v I) { 111 } 112 113 //go:noinline 114 func printNilInterface(v I) { 115 } 116 117 //go:noinline 118 func printEmptyInterface(v interface{}) { 119 } 120 121 //go:noinline 122 func printNilEmptyInterface(v interface{}) { 123 } 124 125 //go:noinline 126 func printMap(v map[int]int) { 127 } 128 129 //go:noinline 130 func printNilMap(v map[int]int) { 131 } 132 133 //go:noinline 134 func printChan(v chan int) { 135 } 136 137 func main() { 138 printBool(true) 139 printInt8(-1) 140 printInt16(-2) 141 printInt32(-3) 142 printInt64(-4) 143 printUint8(^uint8(0)) 144 printUint16(^uint16(0)) 145 printUint32(^uint32(0)) 146 printUint64(^uint64(0)) 147 printFloat32(0.123456789) 148 printFloat64(0.1234567890123456789) 149 printComplex64(complex(1, 2)) 150 printComplex128(complex(3, 4)) 151 printString("hello\n") 152 printArray([2]int{1, 2}) 153 printSlice([]int{3, 4}) 154 printNilSlice(nil) 155 printStruct(S{a: 1, b: 2, c: 3, T: T{d: 4}}) 156 v := 1 157 printPtr(&v) 158 printFunc(func(v int) {}) 159 printInterface(S{a: 5, b: 6, c: 7, T: T{d: 8}}) 160 printPtrInterface(&S{a: 9}) 161 printNilInterface(nil) 162 printEmptyInterface(S{a: 9}) 163 printNilEmptyInterface(nil) 164 printMap(map[int]int{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15, 16: 16, 17: 17, 18: 18, 19: 19, 20: 20}) 165 printNilMap(nil) 166 printChan(make(chan int)) 167 }