// GCOptimizationDetails invokes the Go compiler on the specified // package and reports its log of optimizations decisions as a set of // diagnostics. // // TODO(adonovan): this feature needs more consistent and informative naming. // Now that the compiler is cmd/compile, "GC" now means only "garbage collection". // I propose "(Toggle|Display) Go compiler optimization details" in the UI, // and CompilerOptimizationDetails for this function and compileropts.go for the file. func GCOptimizationDetails(ctx context.Context, snapshot *cache.Snapshot, mp *metadata.Package) (map[protocol.DocumentURI][]*cache.Diagnostic, error) { … } func parseDetailsFile(filename string, options *settings.Options) (protocol.DocumentURI, []*cache.Diagnostic, error) { … } // showDiagnostic reports whether a given diagnostic should be shown to the end // user, given the current options. func showDiagnostic(msg, source string, o *settings.Options) bool { … } // The range produced by the compiler is 1-indexed, so subtract range by 1. func zeroIndexedRange(rng protocol.Range) protocol.Range { … } func findJSONFiles(dir string) ([]string, error) { … }