|  | // run | 
|  |  | 
|  | // Copyright 2009 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | package main | 
|  |  | 
|  | import "reflect" | 
|  |  | 
|  | type S1 struct{ i int } | 
|  | type S2 struct{ S1 } | 
|  |  | 
|  | func main() { | 
|  | typ := reflect.TypeOf(S2{}) | 
|  | f := typ.Field(0) | 
|  | if f.Name != "S1" || f.Anonymous != true { | 
|  | println("BUG: ", f.Name, f.Anonymous) | 
|  | return | 
|  | } | 
|  | f, ok := typ.FieldByName("S1") | 
|  | if !ok { | 
|  | println("BUG: missing S1") | 
|  | return | 
|  | } | 
|  | if !f.Anonymous { | 
|  | println("BUG: S1 is not anonymous") | 
|  | return | 
|  | } | 
|  | } |