//go:build tag

// Code generated by golang.org/x/tools/cmd/bundle. DO NOT EDIT.
//   $ bundle

// The package doc comment
//

package dest

import (
	"fmt"
	. "fmt"
	_ "fmt"
	renamedfmt "fmt"
	renamedfmt2 "fmt"

	"domain.name/importdecl"
)

// init functions are not renamed
func init() { prefixfoo() }

// Type S.
type prefixS struct {
	prefixt
	u int
} /* multi-line
comment
*/

// non-associated comment

/*
	non-associated comment2
*/

// Function bar.
func prefixbar(s *prefixS) {
	fmt.Println(s.prefixt, s.u) // comment inside function
}

// file-end comment

type prefixt int // type1

// const1
const prefixc = 1 // const2

func prefixfoo() {
	fmt.Println(importdecl.F())
}

// zinit
const (
	prefixz1 = iota // z1
	prefixz2        // z2
) // zend

func prefixbaz() {
	renamedfmt.Println()
	renamedfmt2.Println()
	Println()
}
