func fixLoad(load *rule.Load, file string, kinds map[string]bool, knownKinds map[string]string) *rule.Load {
	if load == nil {
		if len(kinds) == 0 {
			return nil
		}
		load = rule.NewLoad(file)
	}

	for k := range kinds {
		load.Add(k)
	}
	for _, k := range load.Symbols() {
		if knownKinds[k] != "" && !kinds[k] {
			load.Remove(k)
		}
	}
	return load
}
func fixLoad(load *rule.Load, file string, kinds map[string]bool, knownKinds map[string]string) *rule.Load {
	if load == nil {
		if len(kinds) == 0 {
			return nil
		}
		load = rule.NewLoad(file)
	}

	for k := range kinds {
		load.Add(k)
	}
	for _, k := range load.Symbols() {
		if knownKinds[k] != "" && !kinds[k] {
			load.Remove(k)
		}
	}
	return load
}
func fixLoad ( load * rule . Load , file string , kinds map [ string ] bool , knownKinds map [ string ] string ) * rule . Load { if load == nil { if len ( kinds ) == 0 { return nil } load = rule . NewLoad ( file ) } for k := range kinds { load . Add ( k ) } for _ , k := range load . Symbols ( ) { if knownKinds [ k ] != " " && ! kinds [ k ] { load . Remove ( k ) } } return load }
// fixLoad updates a load statement with the given symbols. If load is nil,
// a new load may be created and returned. Symbols in kinds will be added
// to the load if they're not already present. Known symbols not in kinds
// will be removed if present. Other symbols will be preserved. If load is
// empty, nil is returned.
fixLoad updates a load statement with the given symbols . If load is nil a new load may be created and returned . Symbols in kinds will be added to the load if they re not already present . Known symbols not in kinds will be removed if present . Other symbols will be preserved . If load is empty nil is returned .