// getFile assumes that each filename occurs at most once func getFile(fset *token.FileSet, filename string) (file *token.File) { fset.Iterate(func(f *token.File) bool { if f.Name() == filename { if file != nil { panic(filename + " used multiple times") } file = f } return true }) return file }