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  }