// 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
}

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

type prefixt int

const prefixc = 1

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

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