// RUN: llgo -o %t %s | |
// RUN: %t 2>&1 | FileCheck %s | |
// CHECK: 1 2 | |
// CHECK-NEXT: 1 2 | |
// CHECK-NEXT: 0 1 2 | |
// CHECK-NEXT: 1 2 | |
// CHECK-NEXT: 3 4 | |
package main | |
type E struct { | |
e *E | |
} | |
type S struct { | |
*E | |
a, b int | |
} | |
type File struct { | |
} | |
type Reader struct { | |
} | |
type Response struct { | |
} | |
type reader struct { | |
*Reader | |
fd *File | |
resp *Response | |
} | |
type Range32 struct { | |
Lo uint32 | |
Hi uint32 | |
Stride uint32 | |
} | |
func main() { | |
s := &S{nil, 1, 2} | |
println(s.a, s.b) | |
s = &S{a: 1, b: 2} | |
println(s.a, s.b) | |
_ = &reader{} | |
r := Range32{ | |
Lo: 0, | |
Stride: 2, | |
Hi: 1, | |
} | |
println(r.Lo, r.Hi, r.Stride) | |
// slice of structs | |
ss := []S{{nil, 1, 2}, {nil, 3, 4}} | |
for _, s := range ss { | |
println(s.a, s.b) | |
} | |
} |