// 
PACKAGE issue18063

IMPORTPATH
	testdata/issue18063

FILENAMES
	testdata/issue18063.go

FUNCTIONS
	// NewArray is not a factory function because arrays of type T are ...
	func NewArray() [1]T

	// NewPointerArray is not a factory function because arrays of ...
	func NewPointerArray() [1]*T

	// NewPointerSliceOfSlice is not a factory function because slices ...
	func NewPointerSliceOfSlice() [][]*T

	// NewSlice3 is not a factory function because 3 nested slices of ...
	func NewSlice3() [][][]T

	// NewSliceOfSlice is not a factory function because slices of a ...
	func NewSliceOfSlice() [][]T


TYPES
	// 
	type T struct{}

	// 
	func New() T

	// 
	func NewPointer() *T

	// 
	func NewPointerOfPointer() **T

	// 
	func NewPointerSlice() []*T

	// 
	func NewSlice() []T

