var doc … var Analyzer … var stringType … type position … const key … const value … const unknown … func run(pass *analysis.Pass) (any, error) { … } func isAttr(t types.Type) bool { … } // shortName returns a name for the function that is shorter than FullName. // Examples: // // "slog.Info" (instead of "log/slog.Info") // "slog.Logger.With" (instead of "(*log/slog.Logger).With") func shortName(fn *types.Func) string { … } // If fn is a slog function that has a ...any parameter for key-value pairs, // kvFuncSkipArgs returns the number of arguments to skip over to reach the // corresponding arguments, and true. // Otherwise it returns (0, false). func kvFuncSkipArgs(fn *types.Func) (int, bool) { … } var kvFuncs … // isMethodExpr reports whether a call is to a MethodExpr. func isMethodExpr(info *types.Info, c *ast.CallExpr) bool { … }