-- suggestedfix_a3_17_13 --
package fillstruct

import (
	"go/ast"
	"go/token"
)

type Foo struct {
	A int
}

type Bar struct {
	X *Foo
	Y *Foo
}

var _ = Bar{
	X: &Foo{},
	Y: &Foo{},
} //@suggestedfix("}", "refactor.rewrite", "Fill")

type importedStruct struct {
	m  map[*ast.CompositeLit]ast.Field
	s  []ast.BadExpr
	a  [3]token.Token
	c  chan ast.EmptyStmt
	fn func(ast_decl ast.DeclStmt) ast.Ellipsis
	st ast.CompositeLit
}

var _ = importedStruct{} //@suggestedfix("}", "refactor.rewrite", "Fill")

type pointerBuiltinStruct struct {
	b *bool
	s *string
	i *int
}

var _ = pointerBuiltinStruct{} //@suggestedfix("}", "refactor.rewrite", "Fill")

var _ = []ast.BasicLit{
	{}, //@suggestedfix("}", "refactor.rewrite", "Fill")
}

var _ = []ast.BasicLit{{}} //@suggestedfix("}", "refactor.rewrite", "Fill")

-- suggestedfix_a3_28_24 --
package fillstruct

import (
	"go/ast"
	"go/token"
)

type Foo struct {
	A int
}

type Bar struct {
	X *Foo
	Y *Foo
}

var _ = Bar{} //@suggestedfix("}", "refactor.rewrite", "Fill")

type importedStruct struct {
	m  map[*ast.CompositeLit]ast.Field
	s  []ast.BadExpr
	a  [3]token.Token
	c  chan ast.EmptyStmt
	fn func(ast_decl ast.DeclStmt) ast.Ellipsis
	st ast.CompositeLit
}

var _ = importedStruct{
	m: map[*ast.CompositeLit]ast.Field{},
	s: []ast.BadExpr{},
	a: [3]token.Token{},
	c: make(chan ast.EmptyStmt),
	fn: func(ast_decl ast.DeclStmt) ast.Ellipsis {
	},
	st: ast.CompositeLit{},
} //@suggestedfix("}", "refactor.rewrite", "Fill")

type pointerBuiltinStruct struct {
	b *bool
	s *string
	i *int
}

var _ = pointerBuiltinStruct{} //@suggestedfix("}", "refactor.rewrite", "Fill")

var _ = []ast.BasicLit{
	{}, //@suggestedfix("}", "refactor.rewrite", "Fill")
}

var _ = []ast.BasicLit{{}} //@suggestedfix("}", "refactor.rewrite", "Fill")

-- suggestedfix_a3_36_30 --
package fillstruct

import (
	"go/ast"
	"go/token"
)

type Foo struct {
	A int
}

type Bar struct {
	X *Foo
	Y *Foo
}

var _ = Bar{} //@suggestedfix("}", "refactor.rewrite", "Fill")

type importedStruct struct {
	m  map[*ast.CompositeLit]ast.Field
	s  []ast.BadExpr
	a  [3]token.Token
	c  chan ast.EmptyStmt
	fn func(ast_decl ast.DeclStmt) ast.Ellipsis
	st ast.CompositeLit
}

var _ = importedStruct{} //@suggestedfix("}", "refactor.rewrite", "Fill")

type pointerBuiltinStruct struct {
	b *bool
	s *string
	i *int
}

var _ = pointerBuiltinStruct{
	b: new(bool),
	s: new(string),
	i: new(int),
} //@suggestedfix("}", "refactor.rewrite", "Fill")

var _ = []ast.BasicLit{
	{}, //@suggestedfix("}", "refactor.rewrite", "Fill")
}

var _ = []ast.BasicLit{{}} //@suggestedfix("}", "refactor.rewrite", "Fill")

-- suggestedfix_a3_39_3 --
package fillstruct

import (
	"go/ast"
	"go/token"
)

type Foo struct {
	A int
}

type Bar struct {
	X *Foo
	Y *Foo
}

var _ = Bar{} //@suggestedfix("}", "refactor.rewrite", "Fill")

type importedStruct struct {
	m  map[*ast.CompositeLit]ast.Field
	s  []ast.BadExpr
	a  [3]token.Token
	c  chan ast.EmptyStmt
	fn func(ast_decl ast.DeclStmt) ast.Ellipsis
	st ast.CompositeLit
}

var _ = importedStruct{} //@suggestedfix("}", "refactor.rewrite", "Fill")

type pointerBuiltinStruct struct {
	b *bool
	s *string
	i *int
}

var _ = pointerBuiltinStruct{} //@suggestedfix("}", "refactor.rewrite", "Fill")

var _ = []ast.BasicLit{
	{
		ValuePos: 0,
		Kind:     0,
		Value:    "",
	}, //@suggestedfix("}", "refactor.rewrite", "Fill")
}

var _ = []ast.BasicLit{{}} //@suggestedfix("}", "refactor.rewrite", "Fill")

-- suggestedfix_a3_42_25 --
package fillstruct

import (
	"go/ast"
	"go/token"
)

type Foo struct {
	A int
}

type Bar struct {
	X *Foo
	Y *Foo
}

var _ = Bar{} //@suggestedfix("}", "refactor.rewrite", "Fill")

type importedStruct struct {
	m  map[*ast.CompositeLit]ast.Field
	s  []ast.BadExpr
	a  [3]token.Token
	c  chan ast.EmptyStmt
	fn func(ast_decl ast.DeclStmt) ast.Ellipsis
	st ast.CompositeLit
}

var _ = importedStruct{} //@suggestedfix("}", "refactor.rewrite", "Fill")

type pointerBuiltinStruct struct {
	b *bool
	s *string
	i *int
}

var _ = pointerBuiltinStruct{} //@suggestedfix("}", "refactor.rewrite", "Fill")

var _ = []ast.BasicLit{
	{}, //@suggestedfix("}", "refactor.rewrite", "Fill")
}

var _ = []ast.BasicLit{{
	ValuePos: 0,
	Kind:     0,
	Value:    "",
}} //@suggestedfix("}", "refactor.rewrite", "Fill")

