| // Copyright 2014 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 structs |
| |
| type S struct { |
| X, Y float64 |
| unexported bool |
| } |
| |
| func (s *S) Sum() float64 { |
| return s.X + s.Y |
| } |
| |
| func (s *S) Identity() (*S, error) { |
| return s, nil |
| } |
| |
| func Identity(s *S) *S { |
| return s |
| } |
| |
| func IdentityWithError(s *S) (*S, error) { |
| return s, nil |
| } |
| |
| type ( |
| S2 struct{} |
| I interface { |
| M() |
| } |
| ) |
| |
| func (s *S2) M() { |
| } |
| |
| func (_ *S2) String() string { |
| return "" |
| } |
| |
| // Structs is a struct with the same name as its package. |
| type Structs struct{} |
| |
| func (_ *Structs) M() { |
| } |