code: func dropEmptyImportDeclarations(decl ast.Decl) bool {
  	switch t := decl.(type) {
  	case *ast.GenDecl:
  		if t.Tok != token.IMPORT {
  			return false
  		}
  		specs := []ast.Spec{}
  		for _, s := range t.Specs {
  			switch spec := s.(type) {
  			case *ast.ImportSpec:
  				if spec.Name != nil && spec.Name.Name == "_" {
  					continue
  				}
  				specs = append(specs, spec)
  			}
  		}
  		if len(specs) == 0 {
  			return true
  		}
  		t.Specs = specs
  	}
  	return false
  }
docs: // dropEmptyImportDeclarations strips any generated but no-op imports from the generated code
  // to prevent generation from being able to define side-effects.  The function returns true
  // if the entire declaration should be dropped.