blob: 47c2884c3869444e344579f286c5ae83fa7c70cd [file] [log] [blame] [edit]
package directive
// Functions.
func f() {
One()
new(T).Two()
}
type T struct{}
//go:fix inline
func One() int { return one } // want One:`goFixInline directive.One`
const one = 1
//go:fix inline
func (T) Two() int { return 2 } // want Two:`goFixInline \(directive.T\).Two`
// Constants.
const Uno = 1
//go:fix inline
const In1 = Uno // want In1: `goFixInline const "directive".Uno`
const (
no1 = one
//go:fix inline
In2 = one // want In2: `goFixInline const "directive".one`
)
//go:fix inline
const bad1 = 1 // want `invalid //go:fix inline directive: const value is not the name of another constant`
//go:fix inline
const in5,
in6,
bad2 = one, one,
one + 1 // want `invalid //go:fix inline directive: const value is not the name of another constant`
// Make sure we don't crash on iota consts, but still process the whole decl.
//
//go:fix inline
const (
a = iota // want `invalid //go:fix inline directive: const value is iota`
b
in7 = one
)
const (
x = 1
//go:fix inline
in8 = x
)
//go:fix inline
const in9 = iota // want `invalid //go:fix inline directive: const value is iota`
//go:fix inline
type E = map[[Uno]string][]*T // want `invalid //go:fix inline directive: array types not supported`