// Copyright 2024 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 lookup import "math/big" // provides big.Float struct with unexported fields and methods func _() { var s struct { x, aBc int } _ = s.x _ = s /* ERROR "invalid operation: cannot call non-function s.x (variable of type int)" */ .x() _ = s.X // ERROR "s.X undefined (type struct{x int; aBc int} has no field or method X, but does have field x)" _ = s.X /* ERROR "s.X undefined (type struct{x int; aBc int} has no field or method X, but does have field x)" */ () _ = s.aBc _ = s.abc // ERROR "s.abc undefined (type struct{x int; aBc int} has no field or method abc, but does have field aBc)" _ = s.ABC // ERROR "s.ABC undefined (type struct{x int; aBc int} has no field or method ABC, but does have field aBc)" } func _() { type S struct { x int } var s S _ = s.x _ = s /* ERROR "invalid operation: cannot call non-function s.x (variable of type int)" */ .x() _ = s.X // ERROR "s.X undefined (type S has no field or method X, but does have field x)" _ = s.X /* ERROR "s.X undefined (type S has no field or method X, but does have field x)" */ () } type S struct { x int } func (S) m() {} func (S) aBc() {} func _() { var s S _ = s.m s.m() _ = s.M // ERROR "s.M undefined (type S has no field or method M, but does have method m)" s.M /* ERROR "s.M undefined (type S has no field or method M, but does have method m)" */ () _ = s.aBc _ = s.abc // ERROR "s.abc undefined (type S has no field or method abc, but does have method aBc)" _ = s.ABC // ERROR "s.ABC undefined (type S has no field or method ABC, but does have method aBc)" } func _() { type P *S var s P _ = s.m // ERROR "s.m undefined (type P has no field or method m)" _ = s.M // ERROR "s.M undefined (type P has no field or method M)" _ = s.x _ = s.X // ERROR "s.X undefined (type P has no field or method X, but does have field x)" } func _() { var x big.Float _ = x.neg // ERROR "x.neg undefined (type big.Float has no field or method neg, but does have method Neg)" _ = x.nEg // ERROR "x.nEg undefined (type big.Float has no field or method nEg)" _ = x.Neg _ = x.NEg // ERROR "x.NEg undefined (type big.Float has no field or method NEg, but does have method Neg)" _ = x.form // ERROR "x.form undefined (cannot refer to unexported field form)" _ = x.fOrm // ERROR "x.fOrm undefined (type big.Float has no field or method fOrm)" _ = x.Form // ERROR "x.Form undefined (type big.Float has no field or method Form, but does have unexported field form)" _ = x.FOrm // ERROR "x.FOrm undefined (type big.Float has no field or method FOrm)" }