From 0889c891dbb49f176e5f8f51c832a91dabfbd95d Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Tue, 8 Aug 2023 19:30:07 -0500 Subject: [PATCH] codeintel: Make codenav results more consistent (#54410) --- dev/ci/integration/code-intel/repos.json | 14 +- dev/codeintel-qa/README.md | 18 +- dev/codeintel-qa/cmd/clone-and-index/main.go | 198 +- dev/codeintel-qa/cmd/query/BUILD.bazel | 1 + dev/codeintel-qa/cmd/query/queries.go | 22 +- dev/codeintel-qa/cmd/query/query.go | 126 +- dev/codeintel-qa/cmd/query/query_types.go | 16 +- dev/codeintel-qa/cmd/query/state.go | 63 +- dev/codeintel-qa/cmd/query/test_cases.go | 2025 ++--------------- .../cmd/query/test_cases_utils.go | 110 + dev/codeintel-qa/cmd/upload/state.go | 6 +- dev/codeintel-qa/cmd/upload/upload.go | 26 +- dev/codeintel-qa/internal/indexes.go | 12 +- .../lsifstore/locations_by_position.go | 18 +- .../lsifstore/locations_by_position_test.go | 15 +- internal/codeintel/codenav/service_new.go | 11 +- .../codeintel/codenav/service_new_test.go | 4 +- .../codenav/transport/graphql/iface.go | 8 +- .../codenav/transport/graphql/mocks_test.go | 1066 ++++----- .../graphql/root_resolver_definitions.go | 5 +- .../graphql/root_resolver_implementations.go | 12 +- .../graphql/root_resolver_references.go | 29 +- .../transport/graphql/root_resolver_test.go | 28 +- testing/BUILD.bazel | 1 - 24 files changed, 1255 insertions(+), 2579 deletions(-) create mode 100644 dev/codeintel-qa/cmd/query/test_cases_utils.go diff --git a/dev/ci/integration/code-intel/repos.json b/dev/ci/integration/code-intel/repos.json index 0597d73748e..a344ff25f25 100644 --- a/dev/ci/integration/code-intel/repos.json +++ b/dev/ci/integration/code-intel/repos.json @@ -5,14 +5,12 @@ "Config": { "url": "https://github.com", "repos": [ - "sourcegraph-testing/etcd", - "sourcegraph-testing/tidb", - "sourcegraph-testing/titan", - "sourcegraph-testing/zap", - "sourcegraph-testing/nacelle", - "sourcegraph-testing/nacelle-config", - "sourcegraph-testing/nacelle-service", - "sourcegraph/code-intel-extensions" + "go-nacelle/config", + "go-nacelle/log", + "go-nacelle/nacelle", + "go-nacelle/process", + "go-nacelle/service", + "sourcegraph-testing/nav-test" ] } } diff --git a/dev/codeintel-qa/README.md b/dev/codeintel-qa/README.md index 993b104369e..409fd3f50bc 100644 --- a/dev/codeintel-qa/README.md +++ b/dev/codeintel-qa/README.md @@ -7,11 +7,9 @@ This package provides integration and load testing utilities for precise code in Ensure that the following tools are available on your path: - [`src`](https://github.com/sourcegraph/src-cli) -- [`lsif-go`](https://github.com/sourcegraph/lsif-go) - [`scip-go`](https://github.com/sourcegraph/scip-go) -- [`scip-typescript`](https://github.com/sourcegraph/scip-typescript) -You should have enviornment variables that authenticate you to the `sourcegraph-dev` GCS project if you plan to upload or download index files (as we do in CI). +You should have environment variables that authenticate you to the `sourcegraph-dev` GCS project if you plan to upload or download index files (as we do in CI). Set: @@ -26,14 +24,12 @@ SOURCEGRAPH_SUDO_TOKEN= ``` "repos": [ - "sourcegraph-testing/etcd", - "sourcegraph-testing/tidb", - "sourcegraph-testing/titan", - "sourcegraph-testing/zap", - "sourcegraph-testing/nacelle", - "sourcegraph-testing/nacelle-config", - "sourcegraph-testing/nacelle-service", - "sourcegraph/code-intel-extensions" + "go-nacelle/config", + "go-nacelle/log", + "go-nacelle/nacelle", + "go-nacelle/process", + "go-nacelle/service", + "sourcegraph-testing/nav-test", ], ``` diff --git a/dev/codeintel-qa/cmd/clone-and-index/main.go b/dev/codeintel-qa/cmd/clone-and-index/main.go index 3a4d89a8fd3..5be9c4a013f 100644 --- a/dev/codeintel-qa/cmd/clone-and-index/main.go +++ b/dev/codeintel-qa/cmd/clone-and-index/main.go @@ -5,6 +5,7 @@ import ( "fmt" "os" "path/filepath" + "strings" "github.com/sourcegraph/conc/pool" "github.com/sourcegraph/run" @@ -24,98 +25,30 @@ func main() { const ( relativeReposDir = "dev/codeintel-qa/testdata/repos" relativeIndexesDir = "dev/codeintel-qa/testdata/indexes" + numNavTestRoots = 100 ) +var navTestRoots = func() (roots []string) { + for p := 0; p < numNavTestRoots; p++ { + roots = append(roots, fmt.Sprintf("proj%d/", p+1)) + } + + return roots +}() + var repositoryMeta = []struct { - org string - name string - indexer string - revisions []string + org string + name string + indexer string + revision string + roots []string }{ - // This repository has not been changed from its upstream - { - org: "sourcegraph-testing", - name: "zap", - indexer: "lsif-go", - revisions: []string{ - "a6015e13fab9b744d96085308ce4e8f11bad1996", - "2aa9fa25da83bdfff756c36a91442edc9a84576c", - }, - }, - - // Each commit here is tagged as sg-test-1, sg-test-2, and sg-test-3, respectively. See CHANGES.md in the root of the - // repository's master branch to see a history of changes and which revisions were targeted. We specifically use replace - // directives in the project root's go.mod file to target sourcegraph-testing/zap, which has no changes of its own. This - // simulates how common forking works in the Go ecosystem (see our own use of zoekt). - // - // To ensure that the last commit in the list for each repository is visible at tip, the master branch's last commit is - // a merge commit between the true upstream tip and sg-test-3. - { - org: "sourcegraph-testing", - name: "etcd", - indexer: "lsif-go", - revisions: []string{ - "4397ceb9c11be0b3e9ee0111230235c868ba581d", - "bc588b7a2e9af4f903396cdcf66f56190b9e254f", - "ad7848014a051dbe3fcd6a4cff2c7befdd16d5a8", - }, - }, - { - org: "sourcegraph-testing", - name: "tidb", - indexer: "lsif-go", - revisions: []string{ - "8eaaa098b4e938b18485f7b1fa7d8e720b04c699", - "b5f100a179e20d5539e629bd0919d05774cb7c6a", - "9aab49176993f9dc0ed2fcb9ef7e5125518e8b98", - }, - }, - { - org: "sourcegraph-testing", - name: "titan", - indexer: "lsif-go", - revisions: []string{ - "fb38de395ba67f49978b218e099de1c45122fb50", - "415ffd5a3ba7a92a07cd96c7d9f4b734f61248f7", - "f8307e394c512b4263fc0cd67ccf9fd46f1ad9a5", - }, - }, - - // These repositories have their module names modified and new tags created to refer to each other - { - org: "sourcegraph-testing", - name: "nacelle", - indexer: "scip-go", - revisions: []string{ - "68d3125fb03d4aec540714577401f9f01adffa8a", - }, - }, - { - org: "sourcegraph-testing", - name: "nacelle-config", - indexer: "scip-go", - revisions: []string{ - "4d4864d3b5b046fe12154f3aae7a86a04690c4ae", - }, - }, - { - org: "sourcegraph-testing", - name: "nacelle-service", - indexer: "scip-go", - revisions: []string{ - "0652f3023c1bc7e7466a487f20bbe4b5e28fdcc7", - }, - }, - - // This repository is archived in-practice and as a good candidate for a low-effort scip-typescript test - { - org: "sourcegraph", - name: "code-intel-extensions", - indexer: "scip-typescript", - revisions: []string{ - "c66e756d3d68a1e19048c3f7515ba42a7e793767", - }, - }, + {org: "go-nacelle", name: "config", indexer: "scip-go", revision: "72304c5497e662dcf50af212695d2f232b4d32be", roots: []string{""}}, + {org: "go-nacelle", name: "log", indexer: "scip-go", revision: "b380f4731178f82639695e2a69ae6ec2b8b6dbed", roots: []string{""}}, + {org: "go-nacelle", name: "nacelle", indexer: "scip-go", revision: "05cf7092f82bddbbe0634fa8ca48067bd219a5b5", roots: []string{""}}, + {org: "go-nacelle", name: "process", indexer: "scip-go", revision: "ffadb09a02ca0a8aa6518cf6c118f85ccdc0306c", roots: []string{""}}, + {org: "go-nacelle", name: "service", indexer: "scip-go", revision: "ca413da53bba12c23bb73ecf3c7e781664d650e0", roots: []string{""}}, + {org: "sourcegraph-testing", name: "nav-test", indexer: "scip-go", revision: "9156747cf1787b8245f366f81145d565f22c6041", roots: navTestRoots}, } func mainErr(ctx context.Context) error { @@ -182,18 +115,24 @@ func indexAll(ctx context.Context) error { p := pool.New().WithErrors() for _, meta := range repositoryMeta { - org, name, indexer, revisions := meta.org, meta.name, meta.indexer, meta.revisions + org, name, indexer, revision, roots := meta.org, meta.name, meta.indexer, meta.revision, meta.roots pair, ok := indexFunMap[indexer] if !ok { panic(fmt.Sprintf("unknown language %q", indexer)) } p.Go(func() error { - for i, revision := range revisions { - revision := revision - targetFile := filepath.Join(indexesDir, fmt.Sprintf("%s.%s.%d.%s.%s", org, name, i, revision, pair.Extension)) + for _, root := range roots { + cleanRoot := root + if cleanRoot == "" { + cleanRoot = "/" + } + cleanRoot = strings.ReplaceAll(cleanRoot, "/", "_") - if err := pair.IndexFunc(ctx, reposDir, targetFile, name, revision); err != nil { + revision := revision + targetFile := filepath.Join(indexesDir, fmt.Sprintf("%s.%s.%s.%s.%s", org, name, revision, cleanRoot, pair.Extension)) + + if err := pair.IndexFunc(ctx, reposDir, targetFile, name, revision, root); err != nil { return errors.Wrapf(err, "failed to index %s@%s", name, revision) } } @@ -207,38 +146,45 @@ func indexAll(ctx context.Context) error { type IndexerPair struct { Extension string - IndexFunc func(context.Context, string, string, string, string) error + IndexFunc func(context.Context, string, string, string, string, string) error } var indexFunMap = map[string]IndexerPair{ - "lsif-go": {"dump", indexGoWithLSIF}, - "scip-go": {"scip", indexGoWithSCIP}, - "scip-typescript": {"scip", indexTypeScriptWithSCIP}, + // "lsif-go": {"dump", indexGoWithLSIF}, + "scip-go": {"scip", indexGoWithSCIP}, + // "scip-typescript": {"scip", indexTypeScriptWithSCIP}, } -func indexGoWithLSIF(ctx context.Context, reposDir, targetFile, name, revision string) error { +// func indexGoWithLSIF(ctx context.Context, reposDir, targetFile, name, revision, root string) error { +// return indexGeneric(ctx, reposDir, targetFile, name, revision, func(repoCopyDir string) error { +// if err := run.Bash(ctx, "go", "mod", "tidy").Dir(repoCopyDir).Run().Wait(); err != nil { +// return err +// } +// if err := run.Bash(ctx, "go", "mod", "vendor").Dir(repoCopyDir).Run().Wait(); err != nil { +// return err +// } +// // --repository-root=. is necessary here as the temp dir might be within a strange +// // nest of symlinks on MacOS, which confuses the repository root detection in lsif-go. +// if err := run.Bash(ctx, "lsif-go", "--repository-root=.", "-o", targetFile).Dir(repoCopyDir).Run().Wait(); err != nil { +// return err +// } + +// return nil +// }) +// } + +func indexGoWithSCIP(ctx context.Context, reposDir, targetFile, name, revision, root string) error { return indexGeneric(ctx, reposDir, targetFile, name, revision, func(repoCopyDir string) error { - if err := run.Bash(ctx, "go", "mod", "tidy").Dir(repoCopyDir).Run().Wait(); err != nil { - return err - } - if err := run.Bash(ctx, "go", "mod", "vendor").Dir(repoCopyDir).Run().Wait(); err != nil { - return err - } - // --repository-root=. is necessary here as the temp dir might be within a strange - // nest of symlinks on MacOS, which confuses the repository root detection in lsif-go. - if err := run.Bash(ctx, "lsif-go", "--repository-root=.", "-o", targetFile).Dir(repoCopyDir).Run().Wait(); err != nil { - return err + repoRoot := "." + if root != "" { + // If we're applying a root then we look _one back_ for the repository root + // NOTE: we make the assumption that roots are single-directory for integration suite + repoRoot = ".." } - return nil - }) -} - -func indexGoWithSCIP(ctx context.Context, reposDir, targetFile, name, revision string) error { - return indexGeneric(ctx, reposDir, targetFile, name, revision, func(repoCopyDir string) error { // --repository-root=. is necessary here as the temp dir might be within a strange // nest of symlinks on MacOS, which confuses the repository root detection in scip-go. - if err := run.Bash(ctx, "scip-go", "--repository-root=.", "-o", targetFile).Dir(repoCopyDir).Run().Wait(); err != nil { + if err := run.Bash(ctx, "scip-go", fmt.Sprintf("--repository-root=%s", repoRoot), "-o", targetFile).Dir(filepath.Join(repoCopyDir, root)).Run().Wait(); err != nil { return err } @@ -246,18 +192,18 @@ func indexGoWithSCIP(ctx context.Context, reposDir, targetFile, name, revision s }) } -func indexTypeScriptWithSCIP(ctx context.Context, reposDir, targetFile, name, revision string) error { - return indexGeneric(ctx, reposDir, targetFile, name, revision, func(repoCopyDir string) error { - if err := run.Bash(ctx, "yarn").Dir(repoCopyDir).Run().Wait(); err != nil { - return err - } - if err := run.Bash(ctx, "scip-typescript", "index", "--output", targetFile).Dir(repoCopyDir).Run().Wait(); err != nil { - return err - } +// func indexTypeScriptWithSCIP(ctx context.Context, reposDir, targetFile, name, revision, root string) error { +// return indexGeneric(ctx, reposDir, targetFile, name, revision, func(repoCopyDir string) error { +// if err := run.Bash(ctx, "yarn").Dir(repoCopyDir).Run().Wait(); err != nil { +// return err +// } +// if err := run.Bash(ctx, "scip-typescript", "index", "--output", targetFile).Dir(repoCopyDir).Run().Wait(); err != nil { +// return err +// } - return nil - }) -} +// return nil +// }) +// } func indexGeneric(ctx context.Context, reposDir, targetFile, name, revision string, index func(repoCopyDir string) error) error { if ok, err := internal.FileExists(targetFile); err != nil { diff --git a/dev/codeintel-qa/cmd/query/BUILD.bazel b/dev/codeintel-qa/cmd/query/BUILD.bazel index bae17c8a428..4f76319ef2a 100644 --- a/dev/codeintel-qa/cmd/query/BUILD.bazel +++ b/dev/codeintel-qa/cmd/query/BUILD.bazel @@ -10,6 +10,7 @@ go_library( "query_types.go", "state.go", "test_cases.go", + "test_cases_utils.go", ], importpath = "github.com/sourcegraph/sourcegraph/dev/codeintel-qa/cmd/query", visibility = ["//visibility:private"], diff --git a/dev/codeintel-qa/cmd/query/queries.go b/dev/codeintel-qa/cmd/query/queries.go index 8a1f47d7106..7a70387491e 100644 --- a/dev/codeintel-qa/cmd/query/queries.go +++ b/dev/codeintel-qa/cmd/query/queries.go @@ -18,24 +18,9 @@ func buildQueries() <-chan queryFunc { go func() { defer close(fns) - for _, testCase := range testCases { - // Definition returns definition - fns <- makeTestFunc("def -> def", queryDefinitions, testCase.Definition, []Location{testCase.Definition}) - - // References return definition - for _, reference := range testCase.References { - fns <- makeTestFunc("refs -> def", queryDefinitions, reference, []Location{testCase.Definition}) - } - - // Definition returns references (including definition) - fns <- makeTestFunc("def -> refs", queryReferences, testCase.Definition, testCase.References) - - // References return references - if queryReferencesOfReferences { - for _, reference := range testCase.References { - references := testCase.References - fns <- makeTestFunc("refs -> refs", queryReferences, reference, references) - } + for _, generator := range testCaseGenerators { + for _, testCase := range generator() { + fns <- testCase } } }() @@ -58,6 +43,7 @@ func makeTestFunc(name string, f testFunc, source Location, expectedLocations [] if checkQueryResult { sortLocations(locations) + sortLocations(expectedLocations) if allowDirtyInstance { // We allow other upload records to exist on the instance, so we might have diff --git a/dev/codeintel-qa/cmd/query/query.go b/dev/codeintel-qa/cmd/query/query.go index 42d60268ae0..d3c58143f89 100644 --- a/dev/codeintel-qa/cmd/query/query.go +++ b/dev/codeintel-qa/cmd/query/query.go @@ -8,8 +8,9 @@ import ( const preciseIndexesQuery = ` query PreciseIndexes { - preciseIndexes(states: [COMPLETED]) { + preciseIndexes(states: [COMPLETED], first: 1000) { nodes { + inputRoot projectRoot { repository { name @@ -23,11 +24,17 @@ const preciseIndexesQuery = ` } ` -func queryPreciseIndexes(ctx context.Context) (_ map[string][]string, err error) { +type CommitAndRoot struct { + Commit string + Root string +} + +func queryPreciseIndexes(ctx context.Context) (_ map[string][]CommitAndRoot, err error) { var payload struct { Data struct { PreciseIndexes struct { Nodes []struct { + InputRoot string `json:"inputRoot"` ProjectRoot struct { Repository struct { Name string `json:"name"` @@ -44,15 +51,16 @@ func queryPreciseIndexes(ctx context.Context) (_ map[string][]string, err error) return nil, err } - commitsByRepo := map[string][]string{} + rootsByCommitsByRepo := map[string][]CommitAndRoot{} for _, node := range payload.Data.PreciseIndexes.Nodes { + root := node.InputRoot projectRoot := node.ProjectRoot name := projectRoot.Repository.Name commit := projectRoot.Commit.OID - commitsByRepo[name] = append(commitsByRepo[name], commit) + rootsByCommitsByRepo[name] = append(rootsByCommitsByRepo[name], CommitAndRoot{commit, root}) } - return commitsByRepo, nil + return rootsByCommitsByRepo, nil } const definitionsQuery = ` @@ -99,7 +107,6 @@ pageInfo { } ` -// queryDefinitions returns all of the LSIF definitions for the given location. func queryDefinitions(ctx context.Context, location Location) (locations []Location, err error) { variables := map[string]any{ "repository": location.Repo, @@ -143,7 +150,6 @@ const referencesQuery = ` } ` -// queryReferences returns all of the LSIF references for the given location. func queryReferences(ctx context.Context, location Location) (locations []Location, err error) { endCursor := "" for { @@ -181,6 +187,112 @@ func queryReferences(ctx context.Context, location Location) (locations []Locati return locations, nil } +const implementationsQuery = ` + query Implementations($repository: String!, $commit: String!, $path: String!, $line: Int!, $character: Int!, $after: String) { + repository(name: $repository) { + commit(rev: $commit) { + blob(path: $path) { + lsif { + implementations(line: $line, character: $character, after: $after) { + ` + locationsFragment + ` + } + } + } + } + } + } +` + +func queryImplementations(ctx context.Context, location Location) (locations []Location, err error) { + endCursor := "" + for { + variables := map[string]any{ + "repository": location.Repo, + "commit": location.Rev, + "path": location.Path, + "line": location.Line, + "character": location.Character, + } + if endCursor != "" { + variables["after"] = endCursor + } + + var payload QueryResponse + if err := queryGraphQL(ctx, "CodeIntelQA_Query_Implementations", implementationsQuery, variables, &payload); err != nil { + return nil, err + } + + for _, node := range payload.Data.Repository.Commit.Blob.LSIF.Implementations.Nodes { + locations = append(locations, Location{ + Repo: node.Resource.Repository.Name, + Rev: node.Resource.Commit.Oid, + Path: node.Resource.Path, + Line: node.Range.Start.Line, + Character: node.Range.Start.Character, + }) + } + + if endCursor = payload.Data.Repository.Commit.Blob.LSIF.Implementations.PageInfo.EndCursor; endCursor == "" { + break + } + } + + return locations, nil +} + +const prototypesQuery = ` + query Prototypes($repository: String!, $commit: String!, $path: String!, $line: Int!, $character: Int!, $after: String) { + repository(name: $repository) { + commit(rev: $commit) { + blob(path: $path) { + lsif { + prototypes(line: $line, character: $character, after: $after) { + ` + locationsFragment + ` + } + } + } + } + } + } +` + +func queryPrototypes(ctx context.Context, location Location) (locations []Location, err error) { + endCursor := "" + for { + variables := map[string]any{ + "repository": location.Repo, + "commit": location.Rev, + "path": location.Path, + "line": location.Line, + "character": location.Character, + } + if endCursor != "" { + variables["after"] = endCursor + } + + var payload QueryResponse + if err := queryGraphQL(ctx, "CodeIntelQA_Query_Prototypes", prototypesQuery, variables, &payload); err != nil { + return nil, err + } + + for _, node := range payload.Data.Repository.Commit.Blob.LSIF.Prototypes.Nodes { + locations = append(locations, Location{ + Repo: node.Resource.Repository.Name, + Rev: node.Resource.Commit.Oid, + Path: node.Resource.Path, + Line: node.Range.Start.Line, + Character: node.Range.Start.Character, + }) + } + + if endCursor = payload.Data.Repository.Commit.Blob.LSIF.Prototypes.PageInfo.EndCursor; endCursor == "" { + break + } + } + + return locations, nil +} + // sortLocations sorts a slice of Locations by repo, rev, path, line, then character. func sortLocations(locations []Location) { sort.Slice(locations, func(i, j int) bool { diff --git a/dev/codeintel-qa/cmd/query/query_types.go b/dev/codeintel-qa/cmd/query/query_types.go index 3e6b35e185c..020e8c41f1a 100644 --- a/dev/codeintel-qa/cmd/query/query_types.go +++ b/dev/codeintel-qa/cmd/query/query_types.go @@ -6,8 +6,10 @@ type QueryResponse struct { Commit struct { Blob struct { LSIF struct { - Definitions Definitions `json:"definitions"` - References References `json:"references"` + Definitions Definitions `json:"definitions"` + References References `json:"references"` + Implementations Implementations `json:"implementations"` + Prototypes Prototypes `json:"prototypes"` } `json:"lsif"` } `json:"blob"` } `json:"commit"` @@ -24,6 +26,16 @@ type References struct { PageInfo PageInfo `json:"pageInfo"` } +type Implementations struct { + Nodes []Node `json:"nodes"` + PageInfo PageInfo `json:"pageInfo"` +} + +type Prototypes struct { + Nodes []Node `json:"nodes"` + PageInfo PageInfo `json:"pageInfo"` +} + type Node struct { Resource `json:"resource"` Range `json:"range"` diff --git a/dev/codeintel-qa/cmd/query/state.go b/dev/codeintel-qa/cmd/query/state.go index ee2ba665033..d7d040c8dfd 100644 --- a/dev/codeintel-qa/cmd/query/state.go +++ b/dev/codeintel-qa/cmd/query/state.go @@ -3,6 +3,7 @@ package main import ( "context" "sort" + "strings" "github.com/google/go-cmp/cmp" @@ -25,24 +26,33 @@ func instanceStateDiff(ctx context.Context) (string, error) { if err != nil { return "", err } - expectedCommitsByRepo := map[string][]string{} + expectedCommitAndRootsByRepo := map[string][]CommitAndRoot{} for repoName, extensionAndCommits := range extensionAndCommitsByRepo { - commits := make([]string, 0, len(extensionAndCommits)) + commitAndRoots := make([]CommitAndRoot, 0, len(extensionAndCommits)) for _, e := range extensionAndCommits { - commits = append(commits, e.Commit) + root := strings.ReplaceAll(e.Root, "_", "/") + if root == "/" { + root = "" + } + + commitAndRoots = append(commitAndRoots, CommitAndRoot{e.Commit, root}) } - sort.Strings(commits) - expectedCommitsByRepo[internal.MakeTestRepoName(repoName)] = commits + expectedCommitAndRootsByRepo[internal.MakeTestRepoName(repoName)] = commitAndRoots } - uploadedCommitsByRepo, err := queryPreciseIndexes(ctx) + uploadedCommitAndRootsByRepo, err := queryPreciseIndexes(ctx) if err != nil { return "", err } - for _, commits := range uploadedCommitsByRepo { - sort.Strings(commits) + + for _, commitAndRoots := range uploadedCommitAndRootsByRepo { + sortCommitAndRoots(commitAndRoots) } + for _, commitAndRoots := range expectedCommitAndRootsByRepo { + sortCommitAndRoots(commitAndRoots) + } + if allowDirtyInstance { // We allow other upload records to exist on the instance, but we still // need to ensure that the set of uploads we require for the tests remain @@ -50,21 +60,38 @@ func instanceStateDiff(ctx context.Context) (string, error) { // commits that don't exist in our expected list, and check only that we // have a superset of our expected state. - for repoName, commits := range uploadedCommitsByRepo { - if expectedCommits, ok := expectedCommitsByRepo[repoName]; !ok { - delete(uploadedCommitsByRepo, repoName) + for repoName, commitAndRoots := range uploadedCommitAndRootsByRepo { + if expectedCommits, ok := expectedCommitAndRootsByRepo[repoName]; !ok { + delete(uploadedCommitAndRootsByRepo, repoName) } else { - filtered := commits[:0] - for _, commit := range commits { - if i := sort.SearchStrings(expectedCommits, commit); i < len(expectedCommits) && expectedCommits[i] == commit { - filtered = append(filtered, commit) + filtered := commitAndRoots[:0] + for _, commitAndRoot := range commitAndRoots { + found := false + for _, ex := range expectedCommits { + if ex.Commit == commitAndRoot.Commit && ex.Root == commitAndRoot.Root { + found = true + break + } + } + if !found { + filtered = append(filtered, commitAndRoot) } - - uploadedCommitsByRepo[repoName] = filtered } + + uploadedCommitAndRootsByRepo[repoName] = filtered } } } - return cmp.Diff(expectedCommitsByRepo, uploadedCommitsByRepo), nil + return cmp.Diff(expectedCommitAndRootsByRepo, uploadedCommitAndRootsByRepo), nil +} + +func sortCommitAndRoots(commitAndRoots []CommitAndRoot) { + sort.Slice(commitAndRoots, func(i, j int) bool { + if commitAndRoots[i].Commit != commitAndRoots[j].Commit { + return commitAndRoots[i].Commit < commitAndRoots[j].Commit + } + + return commitAndRoots[i].Root < commitAndRoots[j].Root + }) } diff --git a/dev/codeintel-qa/cmd/query/test_cases.go b/dev/codeintel-qa/cmd/query/test_cases.go index 81c84565e0e..258de4f1474 100644 --- a/dev/codeintel-qa/cmd/query/test_cases.go +++ b/dev/codeintel-qa/cmd/query/test_cases.go @@ -1,1798 +1,239 @@ package main -// Location specifies the first position in a source range. -type Location struct { - Repo string - Rev string - Path string - Line int - Character int -} - -const ( - repo_etcd = "github.com/sourcegraph-testing/etcd" - repo_tidb = "github.com/sourcegraph-testing/tidb" - repo_titan = "github.com/sourcegraph-testing/titan" - repo_zap = "github.com/sourcegraph-testing/zap" - repo_nacelle = "github.com/sourcegraph-testing/nacelle" - repo_nacelle_config = "github.com/sourcegraph-testing/nacelle-config" - repo_nacelle_service = "github.com/sourcegraph-testing/nacelle-service" - repo_extensions = "github.com/sourcegraph/code-intel-extensions" - - commit_2aa9fa2 = "2aa9fa25da83bdfff756c36a91442edc9a84576c" - commit_4d4864d = "4d4864d3b5b046fe12154f3aae7a86a04690c4ae" - commit_9aab491 = "9aab49176993f9dc0ed2fcb9ef7e5125518e8b98" - commit_a6015e1 = "a6015e13fab9b744d96085308ce4e8f11bad1996" - commit_ad78480 = "ad7848014a051dbe3fcd6a4cff2c7befdd16d5a8" - commit_c66e756 = "c66e756d3d68a1e19048c3f7515ba42a7e793767" - commit_f8307e3 = "f8307e394c512b4263fc0cd67ccf9fd46f1ad9a5" +import ( + "fmt" ) -// TEST DATA NOTES (for x-repo expected behavior) -// -// Zap release tags: -// -`v1.14.1` at commit `2aa9fa2` and -// - v1.12.0` at commit `a6015e1`. -// -// Dependencies: -// - TiDB depends on zap v1.14.1 -// - etcd depends on zap v1.14.1 -// - titan depends on zap v1.12.0. -// -// All the test cases for those repos find definitions and references for -// the symbol `zap.String`, a global function defined in fields.go in both -// versions. -// -// go-nacelle release tags: -// - `v5.0.0` for `nacelle-config at commit `4d4864d`, and -// - `v5.0.0` for `nacelle-service` at commit `0652f30`. +const ( + configRepo = "github.com/go-nacelle/config" + logRepo = "github.com/go-nacelle/log" + nacelleRepo = "github.com/go-nacelle/nacelle" + navRepo = "github.com/sourcegraph-testing/nav-test" + processRepo = "github.com/go-nacelle/process" + serviceRepo = "github.com/go-nacelle/service" -var testCases = []struct { - Definition Location // Symbol definition - References []Location // All xrepo references of definition in test repository set -}{ - { - Definition: Location{ - Repo: repo_zap, - Rev: commit_2aa9fa2, - Path: "field.go", - Line: 215, - Character: 5, - }, - References: []Location{ - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/jwt.go", Line: 64, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/jwt.go", Line: 72, Character: 37}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/jwt.go", Line: 100, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/jwt.go", Line: 109, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/jwt.go", Line: 111, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/range_perm_cache.go", Line: 89, Character: 36}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/range_perm_cache.go", Line: 102, Character: 36}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/range_perm_cache.go", Line: 115, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/simple_token.go", Line: 131, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/simple_token.go", Line: 132, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/simple_token.go", Line: 159, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/simple_token.go", Line: 160, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 311, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 312, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 346, Character: 37}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 387, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 421, Character: 32}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 427, Character: 47}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 450, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 463, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 495, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 522, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 524, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 541, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 543, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 580, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 581, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 620, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 623, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 691, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 692, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 693, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 700, Character: 47}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 741, Character: 34}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 768, Character: 34}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 830, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 831, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 862, Character: 61}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 925, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 999, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1132, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1133, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1140, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1141, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1167, Character: 39}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1188, Character: 41}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1197, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1198, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1238, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1295, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "auth/store.go", Line: 1296, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 61, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 62, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 98, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 99, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 100, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 144, Character: 58}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 148, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 149, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 162, Character: 40}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 162, Character: 82}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 162, Character: 132}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 165, Character: 37}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 181, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 182, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 183, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 184, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 204, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 205, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 206, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 208, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 215, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 216, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 218, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 220, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 221, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 222, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 257, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 258, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 259, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 279, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 280, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/balancer.go", Line: 281, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/connectivity/connectivity.go", Line: 80, Character: 66}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/picker/roundrobin_balanced.go", Line: 71, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/picker/roundrobin_balanced.go", Line: 72, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/picker/roundrobin_balanced.go", Line: 81, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/balancer/picker/roundrobin_balanced.go", Line: 82, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/retry_interceptor.go", Line: 54, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/retry_interceptor.go", Line: 63, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/retry_interceptor.go", Line: 80, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/retry_interceptor.go", Line: 290, Character: 43}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 112, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 123, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 136, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 143, Character: 24}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 289, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 290, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 291, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 292, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 302, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 303, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 304, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "clientv3/snapshot/v3_snapshot.go", Line: 305, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 610, Character: 57}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 653, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 654, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 655, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 656, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 668, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 669, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 670, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config.go", Line: 671, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config_logging.go", Line: 178, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config_logging.go", Line: 179, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config_logging.go", Line: 187, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/config_logging.go", Line: 188, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 233, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 264, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 265, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 266, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 267, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 268, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 272, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 273, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 274, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 275, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 276, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 278, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 279, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 290, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 291, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 292, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 296, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 297, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 299, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 300, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 301, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 315, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 316, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 420, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 434, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 447, Character: 108}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 450, Character: 123}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 494, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 499, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 511, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 527, Character: 42}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 535, Character: 108}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 538, Character: 118}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 592, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 615, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/etcd.go", Line: 681, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/serve.go", Line: 140, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/serve.go", Line: 188, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/serve.go", Line: 250, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/serve.go", Line: 314, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "embed/serve.go", Line: 401, Character: 65}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/config.go", Line: 299, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/config.go", Line: 323, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/config.go", Line: 324, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 79, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 90, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 101, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 102, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 112, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 123, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 143, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 144, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 149, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 157, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 166, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 283, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 289, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 301, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 357, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 407, Character: 64}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 425, Character: 48}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 438, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/etcd.go", Line: 439, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/grpc_proxy.go", Line: 194, Character: 39}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/grpc_proxy.go", Line: 200, Character: 59}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/grpc_proxy.go", Line: 227, Character: 35}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/grpc_proxy.go", Line: 299, Character: 39}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/grpc_proxy.go", Line: 329, Character: 57}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/grpc_proxy.go", Line: 413, Character: 42}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/grpc_proxy.go", Line: 480, Character: 49}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/util.go", Line: 40, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/util.go", Line: 57, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/util.go", Line: 67, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdmain/util.go", Line: 76, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/capability.go", Line: 75, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/base.go", Line: 119, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/base.go", Line: 120, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/base.go", Line: 133, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/base.go", Line: 134, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/base.go", Line: 142, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/base.go", Line: 143, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/base.go", Line: 153, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/base.go", Line: 154, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/metrics.go", Line: 59, Character: 32}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/metrics.go", Line: 111, Character: 56}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/etcdhttp/peer.go", Line: 147, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 163, Character: 54}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 271, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 272, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 273, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 280, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 365, Character: 44}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 387, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 388, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 389, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 413, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 414, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 415, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 421, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 422, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 423, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 447, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 448, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 449, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 455, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 456, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 457, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 476, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 477, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 495, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 496, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 497, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 517, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 518, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 519, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 520, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 525, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 526, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 527, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 570, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 571, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 600, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 601, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 626, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 627, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 643, Character: 51}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 661, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 679, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 730, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 777, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 778, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 791, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 792, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 822, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/cluster.go", Line: 823, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/store.go", Line: 99, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/store.go", Line: 109, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/store.go", Line: 116, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/store.go", Line: 131, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/store.go", Line: 146, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/membership/store.go", Line: 156, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 114, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 126, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 143, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 223, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 224, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 239, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 240, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 241, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 255, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 256, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 259, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 268, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 269, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 282, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 283, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 286, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 299, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 300, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 365, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 366, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 367, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 378, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 379, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 380, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 389, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 390, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 391, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 408, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 409, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 410, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 411, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 421, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 422, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 423, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 424, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 425, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 481, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 482, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 483, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 484, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 485, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 486, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 487, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 495, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 496, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 497, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 498, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 499, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 500, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 501, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/http.go", Line: 502, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 127, Character: 44}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 131, Character: 44}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 251, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 252, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 253, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 254, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 255, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 263, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 264, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 265, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 266, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 267, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 293, Character: 41}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 324, Character: 40}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer.go", Line: 329, Character: 40}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer_status.go", Line: 52, Character: 38}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer_status.go", Line: 65, Character: 70}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/peer_status.go", Line: 75, Character: 43}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/pipeline.go", Line: 72, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/pipeline.go", Line: 73, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/pipeline.go", Line: 85, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/pipeline.go", Line: 86, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/probing_status.go", Line: 51, Character: 49}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/probing_status.go", Line: 69, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/probing_status.go", Line: 70, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/probing_status.go", Line: 83, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/probing_status.go", Line: 84, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/remote.go", Line: 61, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/remote.go", Line: 62, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/remote.go", Line: 63, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/remote.go", Line: 64, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/remote.go", Line: 72, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/remote.go", Line: 73, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/remote.go", Line: 74, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/remote.go", Line: 75, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/snapshot_sender.go", Line: 84, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/snapshot_sender.go", Line: 86, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/snapshot_sender.go", Line: 102, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/snapshot_sender.go", Line: 104, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/snapshot_sender.go", Line: 133, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/snapshot_sender.go", Line: 135, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 74, Character: 41}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 170, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 171, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 195, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 196, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 197, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 224, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 225, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 226, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 244, Character: 46}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 250, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 251, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 252, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 266, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 267, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 268, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 275, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 276, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 277, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 287, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 288, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 295, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 296, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 325, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 396, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 397, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 398, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 413, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 414, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 415, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 422, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 423, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 424, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 443, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 444, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 445, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 455, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 456, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 457, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 475, Character: 42}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 531, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 532, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 533, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 534, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 542, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 543, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 544, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 545, Character: 10}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 571, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 572, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 573, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 643, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 644, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 654, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 655, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 656, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 657, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 680, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/stream.go", Line: 681, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 203, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 204, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 287, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 288, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 318, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 319, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 345, Character: 67}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 356, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 357, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 385, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/transport.go", Line: 386, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/util.go", Line: 92, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/util.go", Line: 100, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/util.go", Line: 101, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/rafthttp/util.go", Line: 102, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/db.go", Line: 67, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/db.go", Line: 69, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/db.go", Line: 90, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 92, Character: 47}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 95, Character: 56}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 127, Character: 45}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 131, Character: 55}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 131, Character: 82}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 135, Character: 49}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 135, Character: 76}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 147, Character: 45}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 154, Character: 53}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 162, Character: 54}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 169, Character: 53}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 178, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 189, Character: 54}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 229, Character: 61}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/snap/snapshotter.go", Line: 242, Character: 66}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 211, Character: 34}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 250, Character: 33}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 274, Character: 34}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 313, Character: 38}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 331, Character: 37}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 358, Character: 38}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 378, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 383, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 437, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 438, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 448, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 449, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 549, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2auth/auth.go", Line: 560, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 115, Character: 45}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 235, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 236, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 238, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 256, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 257, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 259, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 298, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 299, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 337, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 338, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 343, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 344, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 353, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 362, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 364, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 372, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 373, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2discovery/discovery.go", Line: 379, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client.go", Line: 240, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client.go", Line: 267, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client.go", Line: 297, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client.go", Line: 574, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client.go", Line: 581, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 56, Character: 36}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 69, Character: 37}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 74, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 75, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 114, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 115, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 116, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 162, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 163, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 180, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 181, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 191, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 249, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 295, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 342, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 419, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 483, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 546, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/client_auth.go", Line: 584, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/http.go", Line: 44, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/http.go", Line: 45, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/http.go", Line: 74, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/http.go", Line: 75, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v2http/http.go", Line: 76, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v3rpc/interceptor.go", Line: 168, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v3rpc/interceptor.go", Line: 169, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/api/v3rpc/interceptor.go", Line: 174, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/apply.go", Line: 680, Character: 30}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/apply.go", Line: 680, Character: 69}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/apply.go", Line: 687, Character: 49}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/apply.go", Line: 703, Character: 33}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/apply.go", Line: 703, Character: 72}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/apply.go", Line: 706, Character: 51}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/apply_v2.go", Line: 82, Character: 42}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/backend.go", Line: 76, Character: 43}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/backend.go", Line: 82, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 77, Character: 50}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 85, Character: 59}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 92, Character: 56}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 101, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 102, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 153, Character: 40}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 177, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 178, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 186, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 187, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 188, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 231, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 232, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 240, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 241, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 242, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 249, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 250, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 251, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 277, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 278, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 289, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 290, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 299, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/cluster_util.go", Line: 300, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 47, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 61, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 65, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 89, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 93, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 100, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 104, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 117, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 131, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 214, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 225, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 238, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 290, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/corrupt.go", Line: 292, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/quota.go", Line: 82, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/quota.go", Line: 95, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/quota.go", Line: 97, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/quota.go", Line: 109, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/quota.go", Line: 111, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/quota.go", Line: 113, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/quota.go", Line: 118, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/quota.go", Line: 120, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/raft.go", Line: 347, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/raft.go", Line: 423, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/raft.go", Line: 424, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/raft.go", Line: 469, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/raft.go", Line: 470, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/raft.go", Line: 553, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/raft.go", Line: 554, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/raft.go", Line: 619, Character: 43}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 298, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 300, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 313, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 412, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 427, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 437, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 439, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 628, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 630, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 632, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 667, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 669, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 671, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 731, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 732, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 733, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 734, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 740, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 741, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 742, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 810, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 811, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 993, Character: 12}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1205, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1235, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1236, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1237, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1252, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1253, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1254, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1266, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1267, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1275, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1276, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1312, Character: 44}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1408, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1409, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1418, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1419, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1537, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1538, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1596, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1597, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1614, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1615, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1728, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1729, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1730, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1782, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1783, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1799, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1800, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1801, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1809, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1810, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1851, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1852, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1853, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1854, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1862, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1863, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1872, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1873, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1874, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1887, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1888, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1890, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 1954, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2036, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2071, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2072, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2110, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2111, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2272, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2277, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2278, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/server.go", Line: 2290, Character: 44}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/snapshot_merge.go", Line: 68, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/snapshot_merge.go", Line: 73, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/util.go", Line: 122, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/util.go", Line: 123, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/util.go", Line: 161, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/util.go", Line: 162, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/util.go", Line: 163, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "etcdserver/v3_server.go", Line: 431, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 40, Character: 38}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 93, Character: 42}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 109, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 111, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 112, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 134, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 140, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 166, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 167, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 193, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 194, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 218, Character: 54}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 228, Character: 54}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 242, Character: 52}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 252, Character: 52}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 273, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 274, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 293, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 294, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 333, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 334, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 335, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 368, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 369, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 370, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 385, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 386, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 411, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 413, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 426, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 427, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 452, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 454, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 475, Character: 43}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 571, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 572, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 655, Character: 34}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 665, Character: 51}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/handler.go", Line: 693, Character: 43}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/server.go", Line: 100, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/server.go", Line: 101, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/server.go", Line: 107, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/server.go", Line: 113, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/server.go", Line: 122, Character: 41}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/agent/server.go", Line: 124, Character: 40}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 278, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 280, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 312, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 314, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 315, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 316, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 320, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 338, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 340, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 358, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 360, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 361, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 362, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/rpcpb/member.go", Line: 366, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case.go", Line: 253, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case.go", Line: 296, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_delay.go", Line: 35, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_network_delay.go", Line: 37, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_no_fail.go", Line: 62, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_no_fail.go", Line: 70, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 44, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 61, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 62, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 68, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 69, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 93, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 94, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 95, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 102, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 103, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 104, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 120, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 138, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 139, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 152, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove.go", Line: 169, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 46, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 53, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 60, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 61, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 63, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 64, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 65, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 69, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 90, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 112, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 117, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 129, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 134, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 158, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 164, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 189, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 197, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 215, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/case_sigquit_remove_quorum.go", Line: 221, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_kv_hash.go", Line: 64, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_kv_hash.go", Line: 65, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 120, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 129, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 138, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 157, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 166, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 214, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 215, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 230, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/checker_lease_expire.go", Line: 231, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 92, Character: 32}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 98, Character: 37}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 139, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 144, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 297, Character: 45}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 301, Character: 45}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 350, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 356, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 367, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 459, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 460, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 471, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 472, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 474, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 480, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 481, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 527, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 541, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 554, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 577, Character: 49}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 584, Character: 48}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 602, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 610, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 678, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 689, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 696, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 708, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 735, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster.go", Line: 742, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_read_config.go", Line: 35, Character: 42}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 38, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 142, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 158, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 171, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 185, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 197, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 209, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 226, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 244, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/cluster_run.go", Line: 254, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser.go", Line: 57, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser.go", Line: 59, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_key.go", Line: 106, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_key.go", Line: 107, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_key.go", Line: 187, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_key.go", Line: 188, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_key.go", Line: 189, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_key.go", Line: 190, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_key.go", Line: 213, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_key.go", Line: 214, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 125, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 126, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 164, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 165, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 170, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 171, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 176, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 177, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 182, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 183, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 213, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 251, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 252, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 260, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 261, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 262, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 282, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 283, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 294, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 295, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 296, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 324, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 325, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 326, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 339, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 340, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 341, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 350, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 351, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 352, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 364, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 365, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 366, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 374, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 375, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 376, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 383, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 384, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 385, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 395, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 396, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 397, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 406, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 407, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 408, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 459, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 460, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 461, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 478, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_lease.go", Line: 479, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_runner.go", Line: 93, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "functional/tester/stresser_runner.go", Line: 104, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 794, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 797, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 951, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 954, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1052, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1055, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1061, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1064, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1086, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1089, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1111, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1114, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1124, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1127, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1137, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "integration/cluster.go", Line: 1140, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 156, Character: 51}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 248, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 385, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 387, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 389, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 418, Character: 44}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 437, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 440, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/backend.go", Line: 443, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/batch_tx.go", Line: 75, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/batch_tx.go", Line: 97, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/batch_tx.go", Line: 108, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/batch_tx.go", Line: 121, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/batch_tx.go", Line: 155, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/backend/batch_tx.go", Line: 162, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/key_index.go", Line: 122, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/key_index.go", Line: 140, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/key_index.go", Line: 163, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/key_index.go", Line: 207, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/kvstore.go", Line: 360, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/kvstore.go", Line: 361, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/kvstore.go", Line: 413, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/kvstore.go", Line: 428, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/kvstore.go", Line: 429, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "mvcc/kvstore_txn.go", Line: 268, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/fileutil/purge.go", Line: 72, Character: 43}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/fileutil/purge.go", Line: 76, Character: 26}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/flags/flag.go", Line: 76, Character: 54}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/flags/flag.go", Line: 86, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/flags/flag.go", Line: 92, Character: 53}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/flags/flag.go", Line: 114, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/flags/flag.go", Line: 115, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/flags/ignored.go", Line: 33, Character: 58}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 99, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 100, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 113, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 114, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 115, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 122, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 123, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 132, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/netutil/netutil.go", Line: 133, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/osutil/interrupt_unix.go", Line: 62, Character: 49}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 277, Character: 35}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 277, Character: 65}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 297, Character: 40}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 345, Character: 61}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 486, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 487, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 488, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 489, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 494, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 495, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 496, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 497, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 614, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 615, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 616, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 621, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 622, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 623, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 642, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 643, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 660, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 661, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 679, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 680, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 698, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 699, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 712, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 713, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 738, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 739, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 752, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 753, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 778, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 779, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 792, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 793, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 830, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 831, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 842, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 843, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 853, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 854, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 865, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 866, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 874, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 875, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 883, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 884, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 892, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 893, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 901, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 902, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 913, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 914, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 932, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 933, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 944, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 945, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 963, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 964, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/proxy/server.go", Line: 993, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/traceutil/trace.go", Line: 202, Character: 23}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 198, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 206, Character: 44}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 218, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 227, Character: 43}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 311, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 312, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 320, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 321, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 334, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 335, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 343, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "pkg/transport/listener.go", Line: 344, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/grpcproxy/cluster.go", Line: 86, Character: 46}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/grpcproxy/register.go", Line: 77, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/httpproxy/director.go", Line: 150, Character: 48}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/httpproxy/director.go", Line: 157, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/httpproxy/director.go", Line: 173, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/httpproxy/reverse.go", Line: 82, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/httpproxy/reverse.go", Line: 109, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/httpproxy/reverse.go", Line: 130, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/httpproxy/reverse.go", Line: 158, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/httpproxy/reverse.go", Line: 177, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/tcpproxy/userspace.go", Line: 177, Character: 46}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/tcpproxy/userspace.go", Line: 209, Character: 94}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "proxy/tcpproxy/userspace.go", Line: 213, Character: 39}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "tools/etcd-dump-metrics/main.go", Line: 182, Character: 34}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 39, Character: 26}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 62, Character: 27}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 68, Character: 48}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 74, Character: 39}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 79, Character: 34}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 79, Character: 74}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 84, Character: 38}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 90, Character: 35}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 95, Character: 27}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/repair.go", Line: 99, Character: 35}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/util.go", Line: 45, Character: 49}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/util.go", Line: 61, Character: 49}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/util.go", Line: 91, Character: 9}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 117, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 118, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 129, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 137, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 145, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 176, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 177, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 195, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 196, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 205, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 206, Character: 8}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 218, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 219, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 242, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 243, Character: 7}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 275, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 276, Character: 6}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 699, Character: 44}, - {Repo: repo_etcd, Rev: commit_ad78480, Path: "wal/wal.go", Line: 890, Character: 45}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "bindinfo/handle.go", Line: 600, Character: 52}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "bindinfo/handle.go", Line: 617, Character: 57}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "bindinfo/handle.go", Line: 634, Character: 58}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "cmd/benchdb/main.go", Line: 148, Character: 38}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "cmd/benchdb/main.go", Line: 154, Character: 38}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "cmd/explaintest/main.go", Line: 674, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "cmd/explaintest/main.go", Line: 676, Character: 30}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "cmd/importer/stats.go", Line: 79, Character: 47}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "cmd/importer/stats.go", Line: 79, Character: 75}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/callback_test.go", Line: 51, Character: 35}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/callback_test.go", Line: 65, Character: 32}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/column.go", Line: 187, Character: 58}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/column.go", Line: 316, Character: 60}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/db_change_test.go", Line: 1235, Character: 59}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/db_change_test.go", Line: 1248, Character: 59}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 207, Character: 100}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 236, Character: 66}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 300, Character: 47}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 320, Character: 48}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 331, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 355, Character: 72}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 371, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 406, Character: 49}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 499, Character: 52}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl.go", Line: 499, Character: 85}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_test.go", Line: 81, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_test.go", Line: 98, Character: 58}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_test.go", Line: 98, Character: 92}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 189, Character: 77}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 189, Character: 120}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 252, Character: 87}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 281, Character: 67}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 306, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 358, Character: 59}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 398, Character: 80}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 567, Character: 56}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/ddl_worker.go", Line: 763, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/delete_range.go", Line: 97, Character: 98}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 461, Character: 57}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 514, Character: 86}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 527, Character: 91}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 940, Character: 104}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 950, Character: 91}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1127, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1127, Character: 167}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1137, Character: 85}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1148, Character: 93}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1287, Character: 53}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1287, Character: 97}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1295, Character: 89}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1377, Character: 63}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/index.go", Line: 1377, Character: 96}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/reorg.go", Line: 219, Character: 71}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/reorg.go", Line: 379, Character: 80}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/rollingback.go", Line: 228, Character: 72}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/rollingback.go", Line: 369, Character: 66}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/rollingback.go", Line: 371, Character: 80}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 148, Character: 62}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 148, Character: 86}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 302, Character: 66}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 390, Character: 116}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 390, Character: 151}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 397, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 484, Character: 91}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 501, Character: 92}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "ddl/util/syncer.go", Line: 505, Character: 67}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "domain/domain.go", Line: 1179, Character: 58}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "domain/domain.go", Line: 1180, Character: 27}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "domain/infosync/info.go", Line: 247, Character: 84}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "domain/infosync/info.go", Line: 253, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "domain/infosync/info.go", Line: 253, Character: 44}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "domain/infosync/info.go", Line: 578, Character: 49}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "domain/infosync/info.go", Line: 588, Character: 50}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/adapter.go", Line: 122, Character: 53}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/adapter.go", Line: 294, Character: 53}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/adapter.go", Line: 606, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/adapter.go", Line: 684, Character: 121}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/admin.go", Line: 312, Character: 49}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/admin.go", Line: 313, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/admin.go", Line: 399, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/admin.go", Line: 526, Character: 60}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/admin.go", Line: 527, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/analyze.go", Line: 170, Character: 59}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/analyze.go", Line: 330, Character: 67}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/analyze.go", Line: 330, Character: 107}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/ddl.go", Line: 308, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/ddl.go", Line: 309, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/distsql.go", Line: 650, Character: 80}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/distsql.go", Line: 808, Character: 80}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/distsql.go", Line: 957, Character: 63}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/distsql.go", Line: 959, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/distsql.go", Line: 960, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/executor.go", Line: 1506, Character: 58}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/index_lookup_join.go", Line: 331, Character: 57}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/index_lookup_join.go", Line: 447, Character: 57}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/insert.go", Line: 229, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/insert.go", Line: 231, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/prepared.go", Line: 253, Character: 59}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/projection.go", Line: 442, Character: 62}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/projection.go", Line: 442, Character: 105}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/replace.go", Line: 65, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/replace.go", Line: 66, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/set.go", Line: 206, Character: 96}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/set.go", Line: 206, Character: 122}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/set.go", Line: 210, Character: 97}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/set.go", Line: 210, Character: 123}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/slow_query.go", Line: 534, Character: 65}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/split.go", Line: 101, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/split.go", Line: 102, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/split.go", Line: 373, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/split.go", Line: 410, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/split.go", Line: 415, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "executor/split.go", Line: 416, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/builtin_string.go", Line: 2370, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/builtin_string.go", Line: 2371, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/builtin_string_vec.go", Line: 2258, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/builtin_string_vec.go", Line: 2259, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/constant_fold.go", Line: 50, Character: 63}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/constant_fold.go", Line: 198, Character: 63}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/constant_fold.go", Line: 216, Character: 64}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/expr_to_pb.go", Line: 83, Character: 69}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/expr_to_pb.go", Line: 182, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/expr_to_pb.go", Line: 184, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/expr_to_pb.go", Line: 198, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "expression/util.go", Line: 836, Character: 59}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "owner/manager.go", Line: 169, Character: 64}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "owner/manager.go", Line: 223, Character: 49}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "owner/manager.go", Line: 223, Character: 102}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "owner/manager.go", Line: 315, Character: 46}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "planner/core/exhaust_physical_plans.go", Line: 761, Character: 121}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "planner/core/exhaust_physical_plans.go", Line: 884, Character: 121}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "planner/core/exhaust_physical_plans.go", Line: 899, Character: 121}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "planner/core/planbuilder.go", Line: 1173, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "planner/core/planbuilder.go", Line: 1173, Character: 83}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "planner/core/stats.go", Line: 513, Character: 87}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "plugin/plugin.go", Line: 168, Character: 66}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "plugin/plugin.go", Line: 179, Character: 68}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "plugin/plugin.go", Line: 193, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "plugin/plugin.go", Line: 228, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "plugin/plugin.go", Line: 273, Character: 69}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "plugin/plugin.go", Line: 282, Character: 69}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "plugin/plugin.go", Line: 375, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/cache.go", Line: 624, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/cache.go", Line: 624, Character: 42}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/cache.go", Line: 763, Character: 56}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 111, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 111, Character: 33}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 116, Character: 80}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 135, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 135, Character: 33}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 160, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 160, Character: 33}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 171, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 171, Character: 34}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 181, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 181, Character: 33}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 188, Character: 80}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 231, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 231, Character: 38}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 241, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 241, Character: 39}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 247, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 247, Character: 39}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 259, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 259, Character: 39}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 265, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 265, Character: 39}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 269, Character: 63}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 269, Character: 94}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 270, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 270, Character: 52}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 289, Character: 65}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 289, Character: 96}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 290, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 290, Character: 55}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 299, Character: 66}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 299, Character: 97}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 300, Character: 10}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 300, Character: 56}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 308, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "privilege/privileges/privileges.go", Line: 308, Character: 39}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/conn.go", Line: 663, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/conn.go", Line: 664, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/conn.go", Line: 730, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/conn.go", Line: 731, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/conn.go", Line: 732, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/conn.go", Line: 734, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/conn.go", Line: 735, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/conn.go", Line: 1399, Character: 108}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/http_handler.go", Line: 216, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/http_handler.go", Line: 1720, Character: 121}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/http_status.go", Line: 80, Character: 62}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 177, Character: 59}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 177, Character: 93}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 181, Character: 61}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 181, Character: 95}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 199, Character: 74}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 234, Character: 67}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 237, Character: 55}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 237, Character: 89}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 244, Character: 67}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 257, Character: 91}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 387, Character: 48}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 422, Character: 62}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "server/server.go", Line: 627, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 464, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 466, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 474, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 490, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 664, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 701, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 710, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 716, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 718, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 1045, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 1099, Character: 68}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 1147, Character: 70}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 1168, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 1194, Character: 68}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 1225, Character: 71}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 1700, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 2210, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 2216, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 2217, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 2235, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 2236, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/session.go", Line: 2237, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/tidb.go", Line: 71, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/tidb.go", Line: 160, Character: 43}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/tidb.go", Line: 171, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "session/txn.go", Line: 243, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/binloginfo/binloginfo.go", Line: 253, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/stmtctx/stmtctx.go", Line: 655, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/stmtctx/stmtctx.go", Line: 656, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/stmtctx/stmtctx.go", Line: 657, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/stmtctx/stmtctx.go", Line: 658, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/stmtctx/stmtctx.go", Line: 659, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/stmtctx/stmtctx.go", Line: 660, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/stmtctx/stmtctx.go", Line: 661, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "sessionctx/stmtctx/stmtctx.go", Line: 662, Character: 29}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/handle.go", Line: 189, Character: 72}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/handle.go", Line: 408, Character: 122}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/handle.go", Line: 496, Character: 121}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 721, Character: 64}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 721, Character: 88}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 728, Character: 70}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 742, Character: 62}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 797, Character: 40}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 797, Character: 78}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 805, Character: 40}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 805, Character: 78}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 825, Character: 40}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 826, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 827, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 832, Character: 41}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 833, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 834, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 839, Character: 41}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 840, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 883, Character: 39}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/handle/update.go", Line: 883, Character: 76}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/histogram.go", Line: 1052, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "statistics/histogram.go", Line: 1052, Character: 51}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/helper/helper.go", Line: 628, Character: 47}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/store.go", Line: 67, Character: 43}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/2pc.go", Line: 539, Character: 65}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/batch_coprocessor.go", Line: 336, Character: 56}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/batch_coprocessor.go", Line: 386, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 224, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 233, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 297, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 305, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 331, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 498, Character: 58}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 590, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 590, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 605, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 605, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/client_batch.go", Line: 628, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/coprocessor.go", Line: 956, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 163, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 190, Character: 52}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 233, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 248, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 255, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 262, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 397, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 409, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 415, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 423, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 443, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 494, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 509, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 517, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 535, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 545, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 556, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 564, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 573, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 583, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 592, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 615, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 624, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 636, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 644, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 667, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 676, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 688, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 696, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 708, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 896, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 916, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 932, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 942, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 956, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 963, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1044, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1068, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1139, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1148, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1178, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1188, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1217, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1247, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1256, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1420, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1426, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1459, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1460, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1510, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1526, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1536, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1561, Character: 56}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1588, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1700, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1705, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1706, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1719, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/gcworker/gc_worker.go", Line: 1720, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/lock_resolver.go", Line: 589, Character: 56}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/range_task.go", Line: 101, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/range_task.go", Line: 108, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/range_task.go", Line: 150, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/range_task.go", Line: 164, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/range_task.go", Line: 204, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/range_task.go", Line: 214, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/range_task.go", Line: 281, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 352, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 407, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 513, Character: 71}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 1366, Character: 39}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 1451, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 1496, Character: 73}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 1502, Character: 67}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 1509, Character: 78}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 1513, Character: 67}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_cache.go", Line: 1513, Character: 95}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_request.go", Line: 331, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_request.go", Line: 332, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/region_request.go", Line: 370, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/split_region.go", Line: 257, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "store/tikv/split_region.go", Line: 258, Character: 9}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "table/tables/partition.go", Line: 193, Character: 68}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "table/tables/partition.go", Line: 223, Character: 67}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "table/tables/partition.go", Line: 397, Character: 65}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "table/tables/tables.go", Line: 869, Character: 127}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "table/tables/tables.go", Line: 876, Character: 126}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "tidb-server/main.go", Line: 231, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "tidb-server/main.go", Line: 343, Character: 46}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "tidb-server/main.go", Line: 343, Character: 79}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "tidb-server/main.go", Line: 357, Character: 69}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "tidb-server/main.go", Line: 379, Character: 42}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "tidb-server/main.go", Line: 671, Character: 46}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "types/mydecimal.go", Line: 2296, Character: 53}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "types/mydecimal.go", Line: 2306, Character: 53}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/admin/admin.go", Line: 324, Character: 7}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/collate/collate.go", Line: 131, Character: 8}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 189, Character: 30}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 192, Character: 30}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 195, Character: 30}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 198, Character: 30}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 201, Character: 30}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 204, Character: 30}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 207, Character: 30}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 212, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 215, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 218, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 222, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 226, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 231, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/execdetails/execdetails.go", Line: 234, Character: 31}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/expensivequery/expensivequery.go", Line: 104, Character: 35}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/expensivequery/expensivequery.go", Line: 127, Character: 36}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/expensivequery/expensivequery.go", Line: 133, Character: 36}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/expensivequery/expensivequery.go", Line: 136, Character: 36}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/expensivequery/expensivequery.go", Line: 141, Character: 36}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/expensivequery/expensivequery.go", Line: 145, Character: 36}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/expensivequery/expensivequery.go", Line: 149, Character: 36}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/expensivequery/expensivequery.go", Line: 160, Character: 35}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/logutil/log.go", Line: 365, Character: 58}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/logutil/log_test.go", Line: 183, Character: 47}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/logutil/log_test.go", Line: 184, Character: 45}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/logutil/log_test.go", Line: 232, Character: 36}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/logutil/log_test.go", Line: 233, Character: 34}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/logutil/log_test.go", Line: 234, Character: 34}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/logutil/log_test.go", Line: 235, Character: 36}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/printer/printer.go", Line: 41, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/printer/printer.go", Line: 42, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/printer/printer.go", Line: 43, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/printer/printer.go", Line: 44, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/printer/printer.go", Line: 45, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/printer/printer.go", Line: 48, Character: 6}, - {Repo: repo_tidb, Rev: commit_9aab491, Path: "util/stmtsummary/statement_summary.go", Line: 743, Character: 74}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "example_test.go", Line: 57, Character: 6}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "example_test.go", Line: 264, Character: 7}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "example_test.go", Line: 265, Character: 7}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "field.go", Line: 225, Character: 8}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "field.go", Line: 362, Character: 8}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "field.go", Line: 462, Character: 9}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "field_test.go", Line: 106, Character: 71}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "field_test.go", Line: 146, Character: 32}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "field_test.go", Line: 210, Character: 43}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "field_test.go", Line: 212, Character: 42}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_bench_test.go", Line: 104, Character: 23}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 86, Character: 42}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 91, Character: 57}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 103, Character: 14}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 104, Character: 14}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 108, Character: 37}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 109, Character: 37}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 420, Character: 23}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 424, Character: 19}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "logger_test.go", Line: 439, Character: 22}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "sugar_test.go", Line: 76, Character: 37}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "sugar_test.go", Line: 106, Character: 21}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "sugar_test.go", Line: 106, Character: 63}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "sugar_test.go", Line: 118, Character: 59}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "sugar_test.go", Line: 173, Character: 27}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "sugar_test.go", Line: 205, Character: 27}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "sugar_test.go", Line: 241, Character: 27}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zapcore/field_test.go", Line: 176, Character: 13}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zapcore/field_test.go", Line: 177, Character: 13}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zapcore/field_test.go", Line: 181, Character: 13}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zapcore/field_test.go", Line: 182, Character: 13}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zapcore/field_test.go", Line: 186, Character: 13}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zapcore/field_test.go", Line: 187, Character: 13}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zapcore/json_encoder_test.go", Line: 85, Character: 8}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/logger_test.go", Line: 86, Character: 66}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/observer/logged_entry_test.go", Line: 45, Character: 8}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/observer/logged_entry_test.go", Line: 56, Character: 8}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/observer/logged_entry_test.go", Line: 57, Character: 8}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/observer/logged_entry_test.go", Line: 66, Character: 8}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/observer/logged_entry_test.go", Line: 68, Character: 8}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/observer/observer_test.go", Line: 125, Character: 32}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/observer/observer_test.go", Line: 129, Character: 32}, - {Repo: repo_zap, Rev: commit_2aa9fa2, Path: "zaptest/observer/observer_test.go", Line: 170, Character: 34}, - }, - }, - { - Definition: Location{ - Repo: repo_zap, - Rev: commit_a6015e1, - Path: "field.go", - Line: 119, - Character: 5, - }, - References: []Location{ - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 53, Character: 74}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 58, Character: 40}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 61, Character: 41}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 63, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 66, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 67, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 89, Character: 42}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 93, Character: 45}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 119, Character: 32}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 129, Character: 17}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 131, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "client.go", Line: 132, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 189, Character: 41}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 189, Character: 71}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 196, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 197, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 205, Character: 37}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 205, Character: 67}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 213, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 214, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 233, Character: 10}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 234, Character: 10}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 242, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 243, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 247, Character: 32}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 247, Character: 62}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 254, Character: 34}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 254, Character: 64}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/command.go", Line: 276, Character: 42}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 45, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 46, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 69, Character: 33}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 89, Character: 30}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 97, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 98, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 104, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 105, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 114, Character: 7}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 115, Character: 7}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 136, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "command/transactions.go", Line: 137, Character: 8}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "db/expire.go", Line: 167, Character: 21}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "db/kv.go", Line: 341, Character: 9}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "db/string.go", Line: 80, Character: 42}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "db/ztransfer.go", Line: 67, Character: 19}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 32, Character: 41}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 39, Character: 40}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 42, Character: 50}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 46, Character: 47}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 52, Character: 48}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 57, Character: 55}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 61, Character: 50}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 69, Character: 52}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "metrics/server.go", Line: 72, Character: 41}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "titan.go", Line: 27, Character: 40}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "titan.go", Line: 33, Character: 45}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "titan.go", Line: 43, Character: 38}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "titan.go", Line: 44, Character: 41}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "titan.go", Line: 49, Character: 43}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "titan.go", Line: 69, Character: 38}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "titan.go", Line: 75, Character: 42}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "tools/expire/main.go", Line: 30, Character: 26}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "tools/expire/main.go", Line: 75, Character: 27}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "tools/expire/main.go", Line: 102, Character: 6}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "tools/expire/main.go", Line: 124, Character: 6}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "tools/expire/main.go", Line: 139, Character: 35}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "util.go", Line: 14, Character: 33}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "util.go", Line: 15, Character: 33}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "util.go", Line: 16, Character: 33}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "util.go", Line: 17, Character: 33}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "util.go", Line: 18, Character: 33}, - {Repo: repo_titan, Rev: commit_f8307e3, Path: "util.go", Line: 19, Character: 33}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "example_test.go", Line: 57, Character: 6}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "example_test.go", Line: 264, Character: 7}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "example_test.go", Line: 265, Character: 7}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "field.go", Line: 194, Character: 8}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "field.go", Line: 265, Character: 9}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "field_test.go", Line: 83, Character: 71}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "field_test.go", Line: 122, Character: 32}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_bench_test.go", Line: 104, Character: 23}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 86, Character: 42}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 91, Character: 57}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 103, Character: 14}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 104, Character: 14}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 108, Character: 37}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 109, Character: 37}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 405, Character: 23}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 409, Character: 19}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "logger_test.go", Line: 424, Character: 22}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "sugar_test.go", Line: 76, Character: 37}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "sugar_test.go", Line: 106, Character: 21}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "sugar_test.go", Line: 106, Character: 63}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "sugar_test.go", Line: 118, Character: 59}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "sugar_test.go", Line: 177, Character: 27}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "sugar_test.go", Line: 209, Character: 27}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "sugar_test.go", Line: 245, Character: 27}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zapcore/field_test.go", Line: 176, Character: 13}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zapcore/field_test.go", Line: 177, Character: 13}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zapcore/field_test.go", Line: 181, Character: 13}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zapcore/field_test.go", Line: 182, Character: 13}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zapcore/field_test.go", Line: 186, Character: 13}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zapcore/field_test.go", Line: 187, Character: 13}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zapcore/json_encoder_test.go", Line: 83, Character: 8}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/logger_test.go", Line: 86, Character: 66}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/observer/logged_entry_test.go", Line: 45, Character: 8}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/observer/logged_entry_test.go", Line: 56, Character: 8}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/observer/logged_entry_test.go", Line: 57, Character: 8}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/observer/logged_entry_test.go", Line: 66, Character: 8}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/observer/logged_entry_test.go", Line: 68, Character: 8}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/observer/observer_test.go", Line: 125, Character: 32}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/observer/observer_test.go", Line: 129, Character: 32}, - {Repo: repo_zap, Rev: commit_a6015e1, Path: "zaptest/observer/observer_test.go", Line: 170, Character: 34}, - }, - }, - { - Definition: Location{ - Repo: repo_nacelle_config, - Rev: commit_4d4864d, - Path: "sourcer.go", - Line: 6, - Character: 5, - }, - References: []Location{ - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "config.go", Line: 31, Character: 12}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "config.go", Line: 37, Character: 23}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "directory_sourcer.go", Line: 11, Character: 10}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "directory_sourcer.go", Line: 14, Character: 6}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "directory_sourcer.go", Line: 19, Character: 107}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "directory_sourcer.go", Line: 33, Character: 99}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "directory_sourcer.go", Line: 55, Character: 41}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "directory_sourcer.go", Line: 72, Character: 15}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "env_sourcer.go", Line: 13, Character: 6}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "env_sourcer.go", Line: 23, Character: 34}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "file_sourcer.go", Line: 20, Character: 6}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "file_sourcer.go", Line: 33, Character: 98}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "file_sourcer.go", Line: 47, Character: 90}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "file_sourcer.go", Line: 113, Character: 41}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "file_sourcer.go", Line: 118, Character: 41}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "flag_sourcer.go", Line: 12, Character: 6}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "flag_sourcer.go", Line: 16, Character: 54}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "glob_sourcer.go", Line: 6, Character: 89}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "glob_sourcer.go", Line: 9, Character: 15}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "multi_sourcer.go", Line: 7, Character: 12}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "multi_sourcer.go", Line: 11, Character: 6}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "multi_sourcer.go", Line: 15, Character: 33}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "multi_sourcer.go", Line: 15, Character: 42}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "test_env_sourcer.go", Line: 10, Character: 6}, - {Repo: repo_nacelle_config, Rev: commit_4d4864d, Path: "test_env_sourcer.go", Line: 14, Character: 49}, - }, - }, - { - Definition: Location{ - Repo: repo_extensions, - Rev: commit_c66e756, - Path: "template/src/util/graphql.ts", - Line: 16, - Character: 12, - }, - References: []Location{ - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/api.ts", Character: 9}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/api.ts", Line: 23, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/definition-hover.test.ts", Line: 5, Character: 9}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/definition-hover.test.ts", Line: 13, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/definition-hover.test.ts", Line: 46, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/definition-hover.test.ts", Line: 68, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/definition-hover.test.ts", Line: 91, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/definition-hover.ts", Line: 4, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/definition-hover.ts", Line: 81, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/implementations.ts", Line: 3, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/implementations.ts", Line: 75, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/implementations.ts", Line: 92, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/locations.ts", Line: 2, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/locations.ts", Line: 43, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/locations.ts", Line: 54, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 5, Character: 9}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 33, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 76, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 113, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 126, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 175, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 205, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 221, Character: 27}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 222, Character: 27}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 224, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 270, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 303, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 334, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.test.ts", Line: 358, Character: 45}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.ts", Line: 7, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.ts", Line: 46, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.ts", Line: 108, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.ts", Line: 152, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.ts", Line: 207, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/providers.ts", Line: 262, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.test.ts", Line: 5, Character: 9}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.test.ts", Line: 33, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.test.ts", Line: 67, Character: 42}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.test.ts", Line: 78, Character: 42}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.test.ts", Line: 189, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.test.ts", Line: 249, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.ts", Line: 3, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.ts", Line: 63, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.ts", Line: 139, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.ts", Line: 268, Character: 44}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/ranges.ts", Line: 365, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.test.ts", Line: 5, Character: 9}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.test.ts", Line: 24, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.test.ts", Line: 47, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.test.ts", Line: 56, Character: 23}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.test.ts", Line: 57, Character: 23}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.test.ts", Line: 59, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.test.ts", Line: 102, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.ts", Line: 3, Character: 41}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.ts", Line: 75, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/references.ts", Line: 87, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/stencil.ts", Line: 4, Character: 9}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/stencil.ts", Line: 11, Character: 18}, - {Repo: repo_extensions, Rev: commit_c66e756, Path: "template/src/lsif/stencil.ts", Line: 47, Character: 18}, - }, - }, + configHash = "72304c5497e662dcf50af212695d2f232b4d32be" // v2.0.0 + logHash = "b380f4731178f82639695e2a69ae6ec2b8b6dbed" // v2.0.0 + nacelleHash = "05cf7092f82bddbbe0634fa8ca48067bd219a5b5" // v2.0.0 + navHash = "9156747cf1787b8245f366f81145d565f22c6041" // main + processHash = "ffadb09a02ca0a8aa6518cf6c118f85ccdc0306c" // v2.0.0 + serviceHash = "ca413da53bba12c23bb73ecf3c7e781664d650e0" // v2.0.0 + + // + // TODO - document this catastrophe :laff: + numProjects = 100 + numGroups = 6 + numLinesPerGroup = 10 + startingLine = 17 + numGapLines = 3 +) + +var testCaseGenerators = []func() []queryFunc{ + testDefsRefsUnexportedSymbol, + testDefsRefsCrossRepoUseOfFunction, + testDefsRefsCrossRepoUseOfMethod, + testDefsRefsMultiRepoUseOfType, + testDefsRefsMultiRepoUseOfMethod, + testDefsRefsPagination, + testProtoImplsCrossRepoInterface, + testProtoImplsCrossRepoMethod, + testProtosPagination, + testImplsPagination, +} + +func testDefsRefsUnexportedSymbol() []queryFunc { + return makeDefsRefsTests( + "nacelle/logAdapter#", + []Location{ + // type struct logAdapter { ... } + l(nacelleRepo, nacelleHash, "boot.go", 240, 5), + }, + []TaggedLocation{ + t(nacelleRepo, nacelleHash, "boot.go", 128, 75, false), // ...(&logAdapter{logger}) + t(nacelleRepo, nacelleHash, "boot.go", 244, 15, false), // func (adapter *logAdapter) ... + t(nacelleRepo, nacelleHash, "boot.go", 245, 9, false), // return &logAdapter ... + }, + ) +} + +func testDefsRefsCrossRepoUseOfFunction() []queryFunc { + return makeDefsRefsTests( + "process/NewContainerBuilder().", + []Location{ + l(processRepo, processHash, "container_builder.go", 19, 5), // func NewContainerBuilder() *ContainerBuilder { ... } }, + }, + []TaggedLocation{ + t(nacelleRepo, nacelleHash, "boot.go", 123, 36, false), // processContainerBuilder = process.NewContainerBuilder() + }, + ) +} + +func testDefsRefsCrossRepoUseOfMethod() []queryFunc { + return makeDefsRefsTests( + "log/Logger#Info().", + []Location{ + l(logRepo, logHash, "logger.go", 11, 2), // Info(string, ...interface{}) + }, + []TaggedLocation{ + t(nacelleRepo, nacelleHash, "boot.go", 114, 8, true), // logger.Info("Logging initialized") + t(nacelleRepo, nacelleHash, "boot.go", 160, 9, true), // ... logger.Info("Received signal") + t(nacelleRepo, nacelleHash, "boot.go", 176, 8, true), // logger.Info("All processes have stopped") + t(nacelleRepo, nacelleHash, "config.go", 53, 8, true), // logger.Info("Loading configuration") + t(nacelleRepo, nacelleHash, "config.go", 70, 8, true), // logger.Info("Validating configuration") + t(nacelleRepo, nacelleHash, "logging_config.go", 21, 11, true), // s.logger.Info(...) + }, + ) +} + +func testDefsRefsMultiRepoUseOfType() []queryFunc { + refs := []TaggedLocation{ + t(logRepo, logHash, "base_logger.go", 28, 77, false), // func newBaseLogger(...) Logger + t(logRepo, logHash, "base_logger.go", 40, 111, false), // func newTestLogger(...) Logger + t(logRepo, logHash, "emergency.go", 18, 23, false), // func EmergencyLogger() Logger + t(logRepo, logHash, "init.go", 10, 28, false), // func InitLogger(...) (Logger, error) + t(logRepo, logHash, "logger.go", 4, 33, false), // WithIndirectCaller(...) Logger + t(logRepo, logHash, "logger.go", 5, 24, false), // WithFields(...) Logger + t(logRepo, logHash, "minimal_logger.go", 22, 45, false), // func FromMinimalLogger(...) Logger + t(logRepo, logHash, "minimal_logger.go", 26, 50, false), // func ... WithIndirectCaller(...) Logger + t(logRepo, logHash, "minimal_logger.go", 34, 48, false), // func ... WithFields(...) Logger + t(logRepo, logHash, "nil_logger.go", 4, 20, false), // func NewNilLogger() Logger + t(logRepo, logHash, "replay_logger.go", 103, 38, false), // func ... record(logger Logger, ...) + t(logRepo, logHash, "replay_logger.go", 17, 2, false), // type ReplayLogger interface { ... Logger ... } + t(logRepo, logHash, "replay_logger.go", 26, 16, false), // type replayLoggerStruct { ... logger Logger ... } + t(logRepo, logHash, "replay_logger.go", 31, 2, true), // type replayLoggerAdapter struct { ... Logger ... } + t(logRepo, logHash, "replay_logger.go", 44, 10, false), // type journaledMessage struct { ... logger Logger ... } + t(logRepo, logHash, "replay_logger.go", 52, 28, false), // func NewReplayLogger(logger Logger, ...) + t(logRepo, logHash, "replay_logger.go", 60, 28, false), // func newReplayLogger(logger Logger, ...) + t(logRepo, logHash, "rollup_logger.go", 102, 8, false), // logger Logger, + t(logRepo, logHash, "rollup_logger.go", 148, 33, false), // func ... flush(logger Logger) + t(logRepo, logHash, "rollup_logger.go", 154, 39, false), // func ... flushLocked(logger Logger) + t(logRepo, logHash, "rollup_logger.go", 16, 17, false), // logger Logger + t(logRepo, logHash, "rollup_logger.go", 38, 28, false), // func NewRollupLogger(logger Logger, ...) + t(logRepo, logHash, "rollup_logger.go", 38, 66, false), // func NewRollupLogger(...) Logger + t(logRepo, logHash, "rollup_logger.go", 42, 28, false), // func newRollupLogger(logger Logger, ...) + t(nacelleRepo, nacelleHash, "boot.go", 241, 5, true), // type logAdapter struct { ... log.Logger ... } + t(nacelleRepo, nacelleHash, "log_imports.go", 6, 20, false), // log.Logger + } + + for p := 0; p < numProjects; p++ { + refs = append(refs, t(navRepo, navHash, fmt.Sprintf("proj%d/main.go", p+1), 7, 11, false)) + + line := (startingLine - 1) + + for g := 0; g < numGroups; g++ { + refs = append(refs, t(navRepo, navHash, fmt.Sprintf("proj%d/main.go", p+1), line, 16, false)) + line += numLinesPerGroup + numGapLines + } + } + + return makeDefsRefsTests( + "log/Logger#", + []Location{ + l(logRepo, logHash, "logger.go", 3, 1), // type Logger interface { ... } + }, + refs, + ) +} + +func testDefsRefsMultiRepoUseOfMethod() []queryFunc { + return makeDefsRefsTests( + "service/Container#Set().", + []Location{ + l(serviceRepo, serviceHash, "container.go", 52, 20), // func (c *Container) Set ... + }, + []TaggedLocation{ + t(nacelleRepo, nacelleHash, "boot.go", 118, 22, false), // _ = serviceContainer.Set("health", ...) + t(nacelleRepo, nacelleHash, "boot.go", 119, 22, false), // _ = serviceContainer.Set("logger", ...) + t(nacelleRepo, nacelleHash, "boot.go", 120, 22, false), // _ = serviceContainer.Set("services", ...) + t(nacelleRepo, nacelleHash, "boot.go", 121, 22, false), // _ = serviceContainer.Set("config", ...) + t(serviceRepo, serviceHash, "container.go", 71, 18, false), // return c.parent.Set(...) + t(serviceRepo, serviceHash, "container.go", 90, 15, false), // if err:= c2.Set(k, v); err != nil { ... } + }, + ) +} + +func testDefsRefsPagination() []queryFunc { + refs := []TaggedLocation{} + for p := 0; p < numProjects; p++ { + line := startingLine + + for g := 0; g < numGroups; g++ { + for l := 0; l < numLinesPerGroup; l++ { + refs = append(refs, t(navRepo, navHash, fmt.Sprintf("proj%d/main.go", p+1), line, 3, false)) + line++ + } + + line += numGapLines + } + } + + return makeDefsRefsTests( + "log/Logger#Warning().", + []Location{l(logRepo, logHash, "logger.go", 12, 2)}, + refs, + ) +} + +func testProtoImplsCrossRepoInterface() []queryFunc { + return makeProtoImplsTests( + "config/Logger#", + l(configRepo, configHash, "logging_config.go", 12, 5), // type Logger interface { ... } + []Location{ + l(configRepo, configHash, "logging_config.go", 17, 5), // type nilLogger struct{} + l(nacelleRepo, nacelleHash, "logging_config.go", 4, 5), // type logShim struct{ ... } + }, + ) +} + +func testProtoImplsCrossRepoMethod() []queryFunc { + return makeProtoImplsTests( + "log/Logger#Info().", + l(logRepo, logHash, "logger.go", 11, 2), // Info(string, ...interface{}) + []Location{ + l(logRepo, logHash, "logger.go", 11, 2), // Info(string, ...interface{}) + l(logRepo, logHash, "minimal_logger.go", 54, 19), // func (sa *adapter) Info(...) + }, + ) +} + +func testProtosPagination() (fns []queryFunc) { + var ( + symbolName = "nav-test/initializerRunnerAndStopper#" + impls []Location + protos = []Location{ + l(processRepo, processHash, "types.go", 11, 5), // type Initializer interface { + l(processRepo, processHash, "types.go", 17, 5), // type Runner interface { + l(processRepo, processHash, "types.go", 25, 5), // type Stopper interface { + } + ) + for p := 0; p < numProjects; p++ { + impls = append(impls, l(navRepo, navHash, fmt.Sprintf("proj%d/util.go", p+1), 31, 7)) // func (*initializerRunnerAndStopper) Run(...) + } + + for _, impl := range impls { + // N.B.: We have multiple prototypes here making the relationship non-symmetric, + // therefore we're only checking the impl -> proto relationship for this test. + fns = append(fns, makeProtosTest(symbolName, "implementation", impl, protos)) + } + return fns +} + +func testImplsPagination() (fns []queryFunc) { + var ( + symbolName = "process/Stopper#" + proto = l(processRepo, processHash, "types.go", 25, 5) // type Stopper interface { ... } + impls = []Location{l(processRepo, processHash, "meta.go", 15, 5)} // type Meta struct { ... } + ) + for p := 0; p < numProjects; p++ { + impls = append(impls, + l(navRepo, navHash, fmt.Sprintf("proj%d/util.go", p+1), 28, 5), // type initializerRunnerAndStopper struct {} + l(navRepo, navHash, fmt.Sprintf("proj%d/util.go", p+1), 41, 5), // type initializerRunnerStopperAndFinalizer struct {} + ) + } + + return append(fns, + // N.B.: These structs implement multiple prototypes making the relationship non-symmetric, + // therefore we're only checking the proto -> implementations relationship for this test. + makeImplsTest(symbolName, "prototype", proto, impls), + ) } diff --git a/dev/codeintel-qa/cmd/query/test_cases_utils.go b/dev/codeintel-qa/cmd/query/test_cases_utils.go new file mode 100644 index 00000000000..2b6e1d1a654 --- /dev/null +++ b/dev/codeintel-qa/cmd/query/test_cases_utils.go @@ -0,0 +1,110 @@ +package main + +import "fmt" + +// Location specifies the first position in a source range. +type Location struct { + Repo string + Rev string + Path string + Line int + Character int +} + +type TaggedLocation struct { + Location Location + IgnoreSiblingRelationships bool +} + +const maxRefToDefAssertionsPerFile = 10 + +// generate tests that asserts definition <> reference relationships on a particular set of +// locations all referring to the same SCIP symbol +func makeDefsRefsTests(symbolName string, defs []Location, refs []TaggedLocation) (fns []queryFunc) { + var untagagedRefs []Location + for _, taggedLocation := range refs { + untagagedRefs = append(untagagedRefs, taggedLocation.Location) + } + + for _, def := range defs { + fns = append(fns, + makeDefsTest(symbolName, "definition", def, defs), // "you are at definition" + makeRefsTest(symbolName, "definition", def, untagagedRefs), // def -> refs + ) + } + + sourceFiles := map[string]int{} + + for _, ref := range refs { + if ref.IgnoreSiblingRelationships { + continue + } + + sourceFiles[ref.Location.Path] = sourceFiles[ref.Location.Path] + 1 + if sourceFiles[ref.Location.Path] >= maxRefToDefAssertionsPerFile { + continue + } + + // ref -> def + fns = append(fns, makeDefsTest(symbolName, "reference", ref.Location, defs)) + + if queryReferencesOfReferences { + // global search for other refs + fns = append(fns, makeRefsTest(symbolName, "reference", ref.Location, untagagedRefs)) + } + } + + return fns +} + +// generate tests that asserts prototype <> implementation relationships on a particular set of +// locations all referring to the same SCIP symbol +func makeProtoImplsTests(symbolName string, prototype Location, implementations []Location) (fns []queryFunc) { + fns = append(fns, + // N.B.: unlike defs/refs tests, prototypes don't "implement" themselves so we do not + // assert that prototypes of a prototype is an identity function (unlike def -> def). + makeImplsTest(symbolName, "prototype", prototype, implementations), + ) + + for _, implementation := range implementations { + fns = append(fns, + // N.B.: unlike defs/refs tests, sibling implementations do not "implement" each other + // so we do not assert implementations can jump to siblings without first going to the + // prototype. + makeProtosTest(symbolName, "implementation", implementation, []Location{prototype}), + ) + } + + return fns +} + +// generate tests that asserts the definitions at the given source location +func makeDefsTest(symbolName, target string, source Location, expectedResults []Location) queryFunc { + return makeTestFunc(fmt.Sprintf("definitions of %s from %s", symbolName, target), queryDefinitions, source, expectedResults) +} + +// generate tests that asserts the references at the given source location +func makeRefsTest(symbolName, target string, source Location, expectedResults []Location) queryFunc { + return makeTestFunc(fmt.Sprintf("references of %s from %s", symbolName, target), queryReferences, source, expectedResults) +} + +// generate tests that asserts the prototypes at the given source location +func makeProtosTest(symbolName, target string, source Location, expectedResults []Location) queryFunc { + return makeTestFunc(fmt.Sprintf("prototypes of %s from %s", symbolName, target), queryPrototypes, source, expectedResults) +} + +// generate tests that asserts the implementations at the given source location +func makeImplsTest(symbolName, target string, source Location, expectedResults []Location) queryFunc { + return makeTestFunc(fmt.Sprintf("implementations of %s from %s", symbolName, target), queryImplementations, source, expectedResults) +} + +func l(repo, rev, path string, line, character int) Location { + return Location{Repo: repo, Rev: rev, Path: path, Line: line, Character: character} +} + +func t(repo, rev, path string, line, character int, embedsAnonymousInterface bool) TaggedLocation { + return TaggedLocation{ + Location: l(repo, rev, path, line, character), + IgnoreSiblingRelationships: embedsAnonymousInterface, + } +} diff --git a/dev/codeintel-qa/cmd/upload/state.go b/dev/codeintel-qa/cmd/upload/state.go index b7036197df1..6b1c57e81b9 100644 --- a/dev/codeintel-qa/cmd/upload/state.go +++ b/dev/codeintel-qa/cmd/upload/state.go @@ -76,7 +76,7 @@ func monitor(ctx context.Context, repoNames []string, uploads []uploadMeta) erro } if oldState != "COMPLETED" { - fmt.Printf("[%5s] %s Finished processing index %s for %s@%s\n", internal.TimeSince(start), internal.EmojiSuccess, uploadState.upload.id, repoName, uploadState.upload.commit[:7]) + fmt.Printf("[%5s] %s Finished processing index %s for %s@%s:%s\n", internal.TimeSince(start), internal.EmojiSuccess, uploadState.upload.id, repoName, uploadState.upload.commit[:7], uploadState.upload.root) } } else if uploadState.state != "QUEUED_FOR_PROCESSING" && uploadState.state != "PROCESSING" { var payload struct { @@ -91,7 +91,7 @@ func monitor(ctx context.Context, repoNames []string, uploads []uploadMeta) erro } if err := internal.GraphQLClient().GraphQL(internal.SourcegraphAccessToken, preciseIndexesQueryFragment, nil, &payload); err != nil { - return errors.Newf("unexpected state '%s' for %s@%s - ID %s\nAudit Logs:\n%s", uploadState.state, uploadState.upload.repoName, uploadState.upload.commit[:7], &uploadState.upload.id, errors.Wrap(err, "error getting audit logs")) + return errors.Newf("unexpected state '%s' for %s@%s:%s - ID %s\nAudit Logs:\n%s", uploadState.state, uploadState.upload.repoName, uploadState.upload.commit[:7], uploadState.upload.root, &uploadState.upload.id, errors.Wrap(err, "error getting audit logs")) } var dst bytes.Buffer @@ -126,7 +126,7 @@ func monitor(ctx context.Context, repoNames []string, uploads []uploadMeta) erro fmt.Printf("DUMP:\n\n%s\n\n\n", out) } - return errors.Newf("unexpected state '%s' for %s (%s@%s)\nAudit Logs:\n%s", uploadState.state, uploadState.upload.id, uploadState.upload.repoName, uploadState.upload.commit[:7], logs) + return errors.Newf("unexpected state '%s' for %s (%s@%s:%s)\nAudit Logs:\n%s", uploadState.state, uploadState.upload.id, uploadState.upload.repoName, uploadState.upload.commit[:7], uploadState.upload.root, logs) } } diff --git a/dev/codeintel-qa/cmd/upload/upload.go b/dev/codeintel-qa/cmd/upload/upload.go index 80b9b5d0ec2..889e94ddd41 100644 --- a/dev/codeintel-qa/cmd/upload/upload.go +++ b/dev/codeintel-qa/cmd/upload/upload.go @@ -19,13 +19,14 @@ type uploadMeta struct { id string repoName string commit string + root string } // uploadAll uploads the dumps for the commits present in the given commitsByRepo map. // Uploads are performed concurrently given the limiter instance as well as the set of // flags supplied by the user. This function returns a slice of uploadMeta containing // the graphql identifier of the uploaded resources. -func uploadAll(ctx context.Context, extensionAndCommitsByRepo map[string][]internal.ExtensionAndCommit, limiter *internal.Limiter) ([]uploadMeta, error) { +func uploadAll(ctx context.Context, extensionAndCommitsByRepo map[string][]internal.ExtensionCommitAndRoot, limiter *internal.Limiter) ([]uploadMeta, error) { n := 0 for _, commits := range extensionAndCommitsByRepo { n += len(commits) @@ -36,9 +37,10 @@ func uploadAll(ctx context.Context, extensionAndCommitsByRepo map[string][]inter uploadCh := make(chan uploadMeta, n) for repoName, extensionAndCommits := range extensionAndCommitsByRepo { - for i, extensionAndCommit := range extensionAndCommits { - commit := extensionAndCommit.Commit - extension := extensionAndCommit.Extension + for _, extensionCommitAndRoot := range extensionAndCommits { + commit := extensionCommitAndRoot.Commit + extension := extensionCommitAndRoot.Extension + root := extensionCommitAndRoot.Root wg.Add(1) @@ -51,22 +53,24 @@ func uploadAll(ctx context.Context, extensionAndCommitsByRepo map[string][]inter } defer limiter.Release() - fmt.Printf("[%5s] %s Uploading index for %s@%s\n", internal.TimeSince(start), internal.EmojiLightbulb, repoName, commit[:7]) + fmt.Printf("[%5s] %s Uploading index for %s@%s:%s\n", internal.TimeSince(start), internal.EmojiLightbulb, repoName, commit[:7], root) - graphqlID, err := upload(ctx, internal.MakeTestRepoName(repoName), commit, file) + cleanedRoot := strings.ReplaceAll(root, "_", "/") + graphqlID, err := upload(ctx, internal.MakeTestRepoName(repoName), commit, file, cleanedRoot) if err != nil { errCh <- err return } - fmt.Printf("[%5s] %s Finished uploading index %s for %s@%s\n", internal.TimeSince(start), internal.EmojiSuccess, graphqlID, repoName, commit[:7]) + fmt.Printf("[%5s] %s Finished uploading index %s for %s@%s:%s\n", internal.TimeSince(start), internal.EmojiSuccess, graphqlID, repoName, commit[:7], cleanedRoot) uploadCh <- uploadMeta{ id: graphqlID, repoName: repoName, commit: commit, + root: cleanedRoot, } - }(repoName, commit, fmt.Sprintf("%s.%d.%s.%s", strings.Replace(repoName, "/", ".", 1), i, commit, extension)) + }(repoName, commit, fmt.Sprintf("%s.%s.%s.%s", strings.Replace(repoName, "/", ".", 1), commit, root, extension)) } } @@ -90,9 +94,9 @@ func uploadAll(ctx context.Context, extensionAndCommitsByRepo map[string][]inter // upload invokes `src code-intel upload` on the host and returns the graphql identifier of // the uploaded resource. -func upload(ctx context.Context, repoName, commit, file string) (string, error) { +func upload(ctx context.Context, repoName, commit, file, root string) (string, error) { argMap := map[string]string{ - "root": "/", + "root": root, "repo": repoName, "commit": commit, "file": file, @@ -135,7 +139,7 @@ func upload(ctx context.Context, repoName, commit, file string) (string, error) output, err := cmd.CombinedOutput() if err != nil { - return "", errors.Wrap(err, fmt.Sprintf("failed to upload index for %s@%s: %s", repoName, commit, output)) + return "", errors.Wrap(err, fmt.Sprintf("failed to upload index for %s@%s:%s: %s", repoName, commit, root, output)) } resp := struct { diff --git a/dev/codeintel-qa/internal/indexes.go b/dev/codeintel-qa/internal/indexes.go index 626d281c978..4ee6dfadc24 100644 --- a/dev/codeintel-qa/internal/indexes.go +++ b/dev/codeintel-qa/internal/indexes.go @@ -7,28 +7,30 @@ import ( "github.com/grafana/regexp" ) -var indexFilenamePattern = regexp.MustCompile(`^([^.]+)\.([^.]+)\.\d+\.([0-9A-Fa-f]{40})\.(scip|dump)$`) +var indexFilenamePattern = regexp.MustCompile(`^([^.]+)\.([^.]+)\.([0-9A-Fa-f]{40})\.([^.]+)\.(scip|dump)$`) -type ExtensionAndCommit struct { +type ExtensionCommitAndRoot struct { Extension string Commit string + Root string } // ExtensionAndCommitsByRepo returns a map from org+repository name to a slice of commit and extension // pairs for that repository. The repositories and commits are read from the filesystem state of the // index directory supplied by the user. This method assumes that index files have been downloaded or // generated locally. -func ExtensionAndCommitsByRepo(indexDir string) (map[string][]ExtensionAndCommit, error) { +func ExtensionAndCommitsByRepo(indexDir string) (map[string][]ExtensionCommitAndRoot, error) { infos, err := os.ReadDir(indexDir) if err != nil { return nil, err } - commitsByRepo := map[string][]ExtensionAndCommit{} + commitsByRepo := map[string][]ExtensionCommitAndRoot{} for _, info := range infos { if matches := indexFilenamePattern.FindStringSubmatch(info.Name()); len(matches) > 0 { orgRepo := fmt.Sprintf("%s/%s", matches[1], matches[2]) - commitsByRepo[orgRepo] = append(commitsByRepo[orgRepo], ExtensionAndCommit{Extension: matches[4], Commit: matches[3]}) + root := matches[4] + commitsByRepo[orgRepo] = append(commitsByRepo[orgRepo], ExtensionCommitAndRoot{Extension: matches[5], Commit: matches[3], Root: root}) } } diff --git a/internal/codeintel/codenav/internal/lsifstore/locations_by_position.go b/internal/codeintel/codenav/internal/lsifstore/locations_by_position.go index d96507b81df..b559d50e224 100644 --- a/internal/codeintel/codenav/internal/lsifstore/locations_by_position.go +++ b/internal/codeintel/codenav/internal/lsifstore/locations_by_position.go @@ -302,7 +302,7 @@ func extractOccurrenceData(document *scip.Document, occurrence *scip.Occurrence) for _, rel := range sym.Relationships { if rel.IsImplementation { if rel.Symbol == occurrence.Symbol { - implementationsBySymbol[occurrence.Symbol] = struct{}{} + implementationsBySymbol[sym.Symbol] = struct{}{} } } } @@ -378,7 +378,7 @@ func (s *store) ExtractReferenceLocationsFromPosition(ctx context.Context, locat } func (s *store) ExtractImplementationLocationsFromPosition(ctx context.Context, locationKey LocationKey) (_ []shared.Location, _ []string, err error) { - return s.extractLocationsFromPosition(ctx, extractImplementationRanges, symbolExtractDefault, s.operations.getImplementationLocations, locationKey) + return s.extractLocationsFromPosition(ctx, extractImplementationRanges, symbolExtractImplementations, s.operations.getImplementationLocations, locationKey) } func (s *store) ExtractPrototypeLocationsFromPosition(ctx context.Context, locationKey LocationKey) (_ []shared.Location, _ []string, err error) { @@ -397,6 +397,20 @@ func symbolExtractDefault(document *scip.Document, symbolName string) (symbols [ return append(symbols, symbolName) } +func symbolExtractImplementations(document *scip.Document, symbolName string) (symbols []string) { + for _, sym := range document.Symbols { + for _, rel := range sym.Relationships { + if rel.IsImplementation { + if rel.Symbol == symbolName { + symbols = append(symbols, sym.Symbol) + } + } + } + } + + return append(symbols, symbolName) +} + func symbolExtractPrototype(document *scip.Document, symbolName string) (symbols []string) { if symbol := scip.FindSymbol(document, symbolName); symbol != nil { for _, rel := range symbol.Relationships { diff --git a/internal/codeintel/codenav/internal/lsifstore/locations_by_position_test.go b/internal/codeintel/codenav/internal/lsifstore/locations_by_position_test.go index de345ffb7a0..29220d08e74 100644 --- a/internal/codeintel/codenav/internal/lsifstore/locations_by_position_test.go +++ b/internal/codeintel/codenav/internal/lsifstore/locations_by_position_test.go @@ -574,28 +574,19 @@ func TestExtractOccurrenceData(t *testing.T) { }, }, Symbols: []*scip.SymbolInformation{ - { - Symbol: "react 17.1 main.go func1", - Relationships: []*scip.Relationship{ - { - Symbol: "react 17.1 main.go func1A", - IsImplementation: true, - }, - }, - }, { Symbol: "react 17.1 main.go func1A", Relationships: []*scip.Relationship{ { - Symbol: "react 17.1 main.go func1", - IsDefinition: true, + Symbol: "react 17.1 main.go func1", + IsImplementation: true, }, }, }, }, }, occurrence: &scip.Occurrence{ - Symbol: "react 17.1 main.go func1A", + Symbol: "react 17.1 main.go func1", SymbolRoles: 1, }, expectedRanges: []*scip.Range{ diff --git a/internal/codeintel/codenav/service_new.go b/internal/codeintel/codenav/service_new.go index d1b06f237a7..9b977ad0a17 100644 --- a/internal/codeintel/codenav/service_new.go +++ b/internal/codeintel/codenav/service_new.go @@ -578,9 +578,16 @@ func (s *Service) prepareCandidateUploads( if err != nil { return Cursor{}, false, err } - var ids []int + idMap := make(map[int]struct{}, len(uploads)+len(cursor.VisibleUploads)) + for _, upload := range cursor.VisibleUploads { + idMap[upload.DumpID] = struct{}{} + } for _, upload := range uploads { - ids = append(ids, upload.ID) + idMap[upload.ID] = struct{}{} + } + ids := make([]int, 0, len(idMap)) + for id := range idMap { + ids = append(ids, id) } sort.Ints(ids) diff --git a/internal/codeintel/codenav/service_new_test.go b/internal/codeintel/codenav/service_new_test.go index 755512bfab6..cf7fa4145ec 100644 --- a/internal/codeintel/codenav/service_new_test.go +++ b/internal/codeintel/codenav/service_new_test.go @@ -186,7 +186,7 @@ func TestNewGetDefinitions(t *testing.T) { if history := mockLsifStore.GetMinimalBulkMonikerLocationsFunc.History(); len(history) != 1 { t.Fatalf("unexpected call count for lsifstore.BulkMonikerResults. want=%d have=%d", 1, len(history)) } else { - if diff := cmp.Diff([]int{151, 152, 153}, history[0].Arg2); diff != "" { + if diff := cmp.Diff([]int{50, 51, 52, 53, 151, 152, 153}, history[0].Arg2); diff != "" { t.Errorf("unexpected ids (-want +got):\n%s", diff) } @@ -417,7 +417,7 @@ func TestNewGetReferences(t *testing.T) { if history := mockLsifStore.GetMinimalBulkMonikerLocationsFunc.History(); len(history) != 3 { t.Fatalf("unexpected call count for lsifstore.BulkMonikerResults. want=%d have=%d", 3, len(history)) } else { - if diff := cmp.Diff([]int{151, 152, 153}, history[0].Arg2); diff != "" { + if diff := cmp.Diff([]int{50, 51, 52, 53, 151, 152, 153}, history[0].Arg2); diff != "" { t.Errorf("unexpected ids (-want +got):\n%s", diff) } diff --git a/internal/codeintel/codenav/transport/graphql/iface.go b/internal/codeintel/codenav/transport/graphql/iface.go index 01cee81b85b..e77b493e0bc 100644 --- a/internal/codeintel/codenav/transport/graphql/iface.go +++ b/internal/codeintel/codenav/transport/graphql/iface.go @@ -10,10 +10,10 @@ import ( type CodeNavService interface { GetHover(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState) (_ string, _ shared.Range, _ bool, err error) - GetReferences(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState, cursor codenav.ReferencesCursor) (_ []shared.UploadLocation, nextCursor codenav.ReferencesCursor, err error) - GetImplementations(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState, cursor codenav.ImplementationsCursor) (_ []shared.UploadLocation, nextCursor codenav.ImplementationsCursor, err error) - GetPrototypes(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState, cursor codenav.ImplementationsCursor) (_ []shared.UploadLocation, nextCursor codenav.ImplementationsCursor, err error) - GetDefinitions(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState) (_ []shared.UploadLocation, err error) + NewGetReferences(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState, cursor codenav.Cursor) (_ []shared.UploadLocation, nextCursor codenav.Cursor, err error) + NewGetImplementations(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState, cursor codenav.Cursor) (_ []shared.UploadLocation, nextCursor codenav.Cursor, err error) + NewGetPrototypes(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState, cursor codenav.Cursor) (_ []shared.UploadLocation, nextCursor codenav.Cursor, err error) + NewGetDefinitions(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState) (_ []shared.UploadLocation, err error) GetDiagnostics(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState) (diagnosticsAtUploads []codenav.DiagnosticAtUpload, _ int, err error) GetRanges(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState, startLine, endLine int) (adjustedRanges []codenav.AdjustedCodeIntelligenceRange, err error) GetStencil(ctx context.Context, args codenav.PositionalRequestArgs, requestState codenav.RequestState) (adjustedRanges []shared.Range, err error) diff --git a/internal/codeintel/codenav/transport/graphql/mocks_test.go b/internal/codeintel/codenav/transport/graphql/mocks_test.go index af337dd5a24..ed03d23e48c 100644 --- a/internal/codeintel/codenav/transport/graphql/mocks_test.go +++ b/internal/codeintel/codenav/transport/graphql/mocks_test.go @@ -181,30 +181,30 @@ type MockCodeNavService struct { // GetClosestDumpsForBlobFunc is an instance of a mock function object // controlling the behavior of the method GetClosestDumpsForBlob. GetClosestDumpsForBlobFunc *CodeNavServiceGetClosestDumpsForBlobFunc - // GetDefinitionsFunc is an instance of a mock function object - // controlling the behavior of the method GetDefinitions. - GetDefinitionsFunc *CodeNavServiceGetDefinitionsFunc // GetDiagnosticsFunc is an instance of a mock function object // controlling the behavior of the method GetDiagnostics. GetDiagnosticsFunc *CodeNavServiceGetDiagnosticsFunc // GetHoverFunc is an instance of a mock function object controlling the // behavior of the method GetHover. GetHoverFunc *CodeNavServiceGetHoverFunc - // GetImplementationsFunc is an instance of a mock function object - // controlling the behavior of the method GetImplementations. - GetImplementationsFunc *CodeNavServiceGetImplementationsFunc - // GetPrototypesFunc is an instance of a mock function object - // controlling the behavior of the method GetPrototypes. - GetPrototypesFunc *CodeNavServiceGetPrototypesFunc // GetRangesFunc is an instance of a mock function object controlling // the behavior of the method GetRanges. GetRangesFunc *CodeNavServiceGetRangesFunc - // GetReferencesFunc is an instance of a mock function object - // controlling the behavior of the method GetReferences. - GetReferencesFunc *CodeNavServiceGetReferencesFunc // GetStencilFunc is an instance of a mock function object controlling // the behavior of the method GetStencil. GetStencilFunc *CodeNavServiceGetStencilFunc + // NewGetDefinitionsFunc is an instance of a mock function object + // controlling the behavior of the method NewGetDefinitions. + NewGetDefinitionsFunc *CodeNavServiceNewGetDefinitionsFunc + // NewGetImplementationsFunc is an instance of a mock function object + // controlling the behavior of the method NewGetImplementations. + NewGetImplementationsFunc *CodeNavServiceNewGetImplementationsFunc + // NewGetPrototypesFunc is an instance of a mock function object + // controlling the behavior of the method NewGetPrototypes. + NewGetPrototypesFunc *CodeNavServiceNewGetPrototypesFunc + // NewGetReferencesFunc is an instance of a mock function object + // controlling the behavior of the method NewGetReferences. + NewGetReferencesFunc *CodeNavServiceNewGetReferencesFunc // SnapshotForDocumentFunc is an instance of a mock function object // controlling the behavior of the method SnapshotForDocument. SnapshotForDocumentFunc *CodeNavServiceSnapshotForDocumentFunc @@ -222,11 +222,6 @@ func NewMockCodeNavService() *MockCodeNavService { return }, }, - GetDefinitionsFunc: &CodeNavServiceGetDefinitionsFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) (r0 []shared1.UploadLocation, r1 error) { - return - }, - }, GetDiagnosticsFunc: &CodeNavServiceGetDiagnosticsFunc{ defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) (r0 []codenav.DiagnosticAtUpload, r1 int, r2 error) { return @@ -237,28 +232,33 @@ func NewMockCodeNavService() *MockCodeNavService { return }, }, - GetImplementationsFunc: &CodeNavServiceGetImplementationsFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) (r0 []shared1.UploadLocation, r1 codenav.ImplementationsCursor, r2 error) { - return - }, - }, - GetPrototypesFunc: &CodeNavServiceGetPrototypesFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) (r0 []shared1.UploadLocation, r1 codenav.ImplementationsCursor, r2 error) { - return - }, - }, GetRangesFunc: &CodeNavServiceGetRangesFunc{ defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, int, int) (r0 []codenav.AdjustedCodeIntelligenceRange, r1 error) { return }, }, - GetReferencesFunc: &CodeNavServiceGetReferencesFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) (r0 []shared1.UploadLocation, r1 codenav.ReferencesCursor, r2 error) { + GetStencilFunc: &CodeNavServiceGetStencilFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) (r0 []shared1.Range, r1 error) { return }, }, - GetStencilFunc: &CodeNavServiceGetStencilFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) (r0 []shared1.Range, r1 error) { + NewGetDefinitionsFunc: &CodeNavServiceNewGetDefinitionsFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) (r0 []shared1.UploadLocation, r1 error) { + return + }, + }, + NewGetImplementationsFunc: &CodeNavServiceNewGetImplementationsFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) (r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { + return + }, + }, + NewGetPrototypesFunc: &CodeNavServiceNewGetPrototypesFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) (r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { + return + }, + }, + NewGetReferencesFunc: &CodeNavServiceNewGetReferencesFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) (r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { return }, }, @@ -284,11 +284,6 @@ func NewStrictMockCodeNavService() *MockCodeNavService { panic("unexpected invocation of MockCodeNavService.GetClosestDumpsForBlob") }, }, - GetDefinitionsFunc: &CodeNavServiceGetDefinitionsFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) { - panic("unexpected invocation of MockCodeNavService.GetDefinitions") - }, - }, GetDiagnosticsFunc: &CodeNavServiceGetDiagnosticsFunc{ defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]codenav.DiagnosticAtUpload, int, error) { panic("unexpected invocation of MockCodeNavService.GetDiagnostics") @@ -299,31 +294,36 @@ func NewStrictMockCodeNavService() *MockCodeNavService { panic("unexpected invocation of MockCodeNavService.GetHover") }, }, - GetImplementationsFunc: &CodeNavServiceGetImplementationsFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - panic("unexpected invocation of MockCodeNavService.GetImplementations") - }, - }, - GetPrototypesFunc: &CodeNavServiceGetPrototypesFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - panic("unexpected invocation of MockCodeNavService.GetPrototypes") - }, - }, GetRangesFunc: &CodeNavServiceGetRangesFunc{ defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, int, int) ([]codenav.AdjustedCodeIntelligenceRange, error) { panic("unexpected invocation of MockCodeNavService.GetRanges") }, }, - GetReferencesFunc: &CodeNavServiceGetReferencesFunc{ - defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error) { - panic("unexpected invocation of MockCodeNavService.GetReferences") - }, - }, GetStencilFunc: &CodeNavServiceGetStencilFunc{ defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.Range, error) { panic("unexpected invocation of MockCodeNavService.GetStencil") }, }, + NewGetDefinitionsFunc: &CodeNavServiceNewGetDefinitionsFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) { + panic("unexpected invocation of MockCodeNavService.NewGetDefinitions") + }, + }, + NewGetImplementationsFunc: &CodeNavServiceNewGetImplementationsFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + panic("unexpected invocation of MockCodeNavService.NewGetImplementations") + }, + }, + NewGetPrototypesFunc: &CodeNavServiceNewGetPrototypesFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + panic("unexpected invocation of MockCodeNavService.NewGetPrototypes") + }, + }, + NewGetReferencesFunc: &CodeNavServiceNewGetReferencesFunc{ + defaultHook: func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + panic("unexpected invocation of MockCodeNavService.NewGetReferences") + }, + }, SnapshotForDocumentFunc: &CodeNavServiceSnapshotForDocumentFunc{ defaultHook: func(context.Context, int, string, string, int) ([]shared1.SnapshotData, error) { panic("unexpected invocation of MockCodeNavService.SnapshotForDocument") @@ -345,30 +345,30 @@ func NewMockCodeNavServiceFrom(i CodeNavService) *MockCodeNavService { GetClosestDumpsForBlobFunc: &CodeNavServiceGetClosestDumpsForBlobFunc{ defaultHook: i.GetClosestDumpsForBlob, }, - GetDefinitionsFunc: &CodeNavServiceGetDefinitionsFunc{ - defaultHook: i.GetDefinitions, - }, GetDiagnosticsFunc: &CodeNavServiceGetDiagnosticsFunc{ defaultHook: i.GetDiagnostics, }, GetHoverFunc: &CodeNavServiceGetHoverFunc{ defaultHook: i.GetHover, }, - GetImplementationsFunc: &CodeNavServiceGetImplementationsFunc{ - defaultHook: i.GetImplementations, - }, - GetPrototypesFunc: &CodeNavServiceGetPrototypesFunc{ - defaultHook: i.GetPrototypes, - }, GetRangesFunc: &CodeNavServiceGetRangesFunc{ defaultHook: i.GetRanges, }, - GetReferencesFunc: &CodeNavServiceGetReferencesFunc{ - defaultHook: i.GetReferences, - }, GetStencilFunc: &CodeNavServiceGetStencilFunc{ defaultHook: i.GetStencil, }, + NewGetDefinitionsFunc: &CodeNavServiceNewGetDefinitionsFunc{ + defaultHook: i.NewGetDefinitions, + }, + NewGetImplementationsFunc: &CodeNavServiceNewGetImplementationsFunc{ + defaultHook: i.NewGetImplementations, + }, + NewGetPrototypesFunc: &CodeNavServiceNewGetPrototypesFunc{ + defaultHook: i.NewGetPrototypes, + }, + NewGetReferencesFunc: &CodeNavServiceNewGetReferencesFunc{ + defaultHook: i.NewGetReferences, + }, SnapshotForDocumentFunc: &CodeNavServiceSnapshotForDocumentFunc{ defaultHook: i.SnapshotForDocument, }, @@ -502,118 +502,6 @@ func (c CodeNavServiceGetClosestDumpsForBlobFuncCall) Results() []interface{} { return []interface{}{c.Result0, c.Result1} } -// CodeNavServiceGetDefinitionsFunc describes the behavior when the -// GetDefinitions method of the parent MockCodeNavService instance is -// invoked. -type CodeNavServiceGetDefinitionsFunc struct { - defaultHook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) - hooks []func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) - history []CodeNavServiceGetDefinitionsFuncCall - mutex sync.Mutex -} - -// GetDefinitions delegates to the next hook function in the queue and -// stores the parameter and result values of this invocation. -func (m *MockCodeNavService) GetDefinitions(v0 context.Context, v1 codenav.PositionalRequestArgs, v2 codenav.RequestState) ([]shared1.UploadLocation, error) { - r0, r1 := m.GetDefinitionsFunc.nextHook()(v0, v1, v2) - m.GetDefinitionsFunc.appendCall(CodeNavServiceGetDefinitionsFuncCall{v0, v1, v2, r0, r1}) - return r0, r1 -} - -// SetDefaultHook sets function that is called when the GetDefinitions -// method of the parent MockCodeNavService instance is invoked and the hook -// queue is empty. -func (f *CodeNavServiceGetDefinitionsFunc) SetDefaultHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error)) { - f.defaultHook = hook -} - -// PushHook adds a function to the end of hook queue. Each invocation of the -// GetDefinitions method of the parent MockCodeNavService instance invokes -// the hook at the front of the queue and discards it. After the queue is -// empty, the default hook function is invoked for any future action. -func (f *CodeNavServiceGetDefinitionsFunc) PushHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error)) { - f.mutex.Lock() - f.hooks = append(f.hooks, hook) - f.mutex.Unlock() -} - -// SetDefaultReturn calls SetDefaultHook with a function that returns the -// given values. -func (f *CodeNavServiceGetDefinitionsFunc) SetDefaultReturn(r0 []shared1.UploadLocation, r1 error) { - f.SetDefaultHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) { - return r0, r1 - }) -} - -// PushReturn calls PushHook with a function that returns the given values. -func (f *CodeNavServiceGetDefinitionsFunc) PushReturn(r0 []shared1.UploadLocation, r1 error) { - f.PushHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) { - return r0, r1 - }) -} - -func (f *CodeNavServiceGetDefinitionsFunc) nextHook() func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) { - f.mutex.Lock() - defer f.mutex.Unlock() - - if len(f.hooks) == 0 { - return f.defaultHook - } - - hook := f.hooks[0] - f.hooks = f.hooks[1:] - return hook -} - -func (f *CodeNavServiceGetDefinitionsFunc) appendCall(r0 CodeNavServiceGetDefinitionsFuncCall) { - f.mutex.Lock() - f.history = append(f.history, r0) - f.mutex.Unlock() -} - -// History returns a sequence of CodeNavServiceGetDefinitionsFuncCall -// objects describing the invocations of this function. -func (f *CodeNavServiceGetDefinitionsFunc) History() []CodeNavServiceGetDefinitionsFuncCall { - f.mutex.Lock() - history := make([]CodeNavServiceGetDefinitionsFuncCall, len(f.history)) - copy(history, f.history) - f.mutex.Unlock() - - return history -} - -// CodeNavServiceGetDefinitionsFuncCall is an object that describes an -// invocation of method GetDefinitions on an instance of MockCodeNavService. -type CodeNavServiceGetDefinitionsFuncCall struct { - // Arg0 is the value of the 1st argument passed to this method - // invocation. - Arg0 context.Context - // Arg1 is the value of the 2nd argument passed to this method - // invocation. - Arg1 codenav.PositionalRequestArgs - // Arg2 is the value of the 3rd argument passed to this method - // invocation. - Arg2 codenav.RequestState - // Result0 is the value of the 1st result returned from this method - // invocation. - Result0 []shared1.UploadLocation - // Result1 is the value of the 2nd result returned from this method - // invocation. - Result1 error -} - -// Args returns an interface slice containing the arguments of this -// invocation. -func (c CodeNavServiceGetDefinitionsFuncCall) Args() []interface{} { - return []interface{}{c.Arg0, c.Arg1, c.Arg2} -} - -// Results returns an interface slice containing the results of this -// invocation. -func (c CodeNavServiceGetDefinitionsFuncCall) Results() []interface{} { - return []interface{}{c.Result0, c.Result1} -} - // CodeNavServiceGetDiagnosticsFunc describes the behavior when the // GetDiagnostics method of the parent MockCodeNavService instance is // invoked. @@ -846,244 +734,6 @@ func (c CodeNavServiceGetHoverFuncCall) Results() []interface{} { return []interface{}{c.Result0, c.Result1, c.Result2, c.Result3} } -// CodeNavServiceGetImplementationsFunc describes the behavior when the -// GetImplementations method of the parent MockCodeNavService instance is -// invoked. -type CodeNavServiceGetImplementationsFunc struct { - defaultHook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) - hooks []func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) - history []CodeNavServiceGetImplementationsFuncCall - mutex sync.Mutex -} - -// GetImplementations delegates to the next hook function in the queue and -// stores the parameter and result values of this invocation. -func (m *MockCodeNavService) GetImplementations(v0 context.Context, v1 codenav.PositionalRequestArgs, v2 codenav.RequestState, v3 codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - r0, r1, r2 := m.GetImplementationsFunc.nextHook()(v0, v1, v2, v3) - m.GetImplementationsFunc.appendCall(CodeNavServiceGetImplementationsFuncCall{v0, v1, v2, v3, r0, r1, r2}) - return r0, r1, r2 -} - -// SetDefaultHook sets function that is called when the GetImplementations -// method of the parent MockCodeNavService instance is invoked and the hook -// queue is empty. -func (f *CodeNavServiceGetImplementationsFunc) SetDefaultHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error)) { - f.defaultHook = hook -} - -// PushHook adds a function to the end of hook queue. Each invocation of the -// GetImplementations method of the parent MockCodeNavService instance -// invokes the hook at the front of the queue and discards it. After the -// queue is empty, the default hook function is invoked for any future -// action. -func (f *CodeNavServiceGetImplementationsFunc) PushHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error)) { - f.mutex.Lock() - f.hooks = append(f.hooks, hook) - f.mutex.Unlock() -} - -// SetDefaultReturn calls SetDefaultHook with a function that returns the -// given values. -func (f *CodeNavServiceGetImplementationsFunc) SetDefaultReturn(r0 []shared1.UploadLocation, r1 codenav.ImplementationsCursor, r2 error) { - f.SetDefaultHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - return r0, r1, r2 - }) -} - -// PushReturn calls PushHook with a function that returns the given values. -func (f *CodeNavServiceGetImplementationsFunc) PushReturn(r0 []shared1.UploadLocation, r1 codenav.ImplementationsCursor, r2 error) { - f.PushHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - return r0, r1, r2 - }) -} - -func (f *CodeNavServiceGetImplementationsFunc) nextHook() func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - f.mutex.Lock() - defer f.mutex.Unlock() - - if len(f.hooks) == 0 { - return f.defaultHook - } - - hook := f.hooks[0] - f.hooks = f.hooks[1:] - return hook -} - -func (f *CodeNavServiceGetImplementationsFunc) appendCall(r0 CodeNavServiceGetImplementationsFuncCall) { - f.mutex.Lock() - f.history = append(f.history, r0) - f.mutex.Unlock() -} - -// History returns a sequence of CodeNavServiceGetImplementationsFuncCall -// objects describing the invocations of this function. -func (f *CodeNavServiceGetImplementationsFunc) History() []CodeNavServiceGetImplementationsFuncCall { - f.mutex.Lock() - history := make([]CodeNavServiceGetImplementationsFuncCall, len(f.history)) - copy(history, f.history) - f.mutex.Unlock() - - return history -} - -// CodeNavServiceGetImplementationsFuncCall is an object that describes an -// invocation of method GetImplementations on an instance of -// MockCodeNavService. -type CodeNavServiceGetImplementationsFuncCall struct { - // Arg0 is the value of the 1st argument passed to this method - // invocation. - Arg0 context.Context - // Arg1 is the value of the 2nd argument passed to this method - // invocation. - Arg1 codenav.PositionalRequestArgs - // Arg2 is the value of the 3rd argument passed to this method - // invocation. - Arg2 codenav.RequestState - // Arg3 is the value of the 4th argument passed to this method - // invocation. - Arg3 codenav.ImplementationsCursor - // Result0 is the value of the 1st result returned from this method - // invocation. - Result0 []shared1.UploadLocation - // Result1 is the value of the 2nd result returned from this method - // invocation. - Result1 codenav.ImplementationsCursor - // Result2 is the value of the 3rd result returned from this method - // invocation. - Result2 error -} - -// Args returns an interface slice containing the arguments of this -// invocation. -func (c CodeNavServiceGetImplementationsFuncCall) Args() []interface{} { - return []interface{}{c.Arg0, c.Arg1, c.Arg2, c.Arg3} -} - -// Results returns an interface slice containing the results of this -// invocation. -func (c CodeNavServiceGetImplementationsFuncCall) Results() []interface{} { - return []interface{}{c.Result0, c.Result1, c.Result2} -} - -// CodeNavServiceGetPrototypesFunc describes the behavior when the -// GetPrototypes method of the parent MockCodeNavService instance is -// invoked. -type CodeNavServiceGetPrototypesFunc struct { - defaultHook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) - hooks []func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) - history []CodeNavServiceGetPrototypesFuncCall - mutex sync.Mutex -} - -// GetPrototypes delegates to the next hook function in the queue and stores -// the parameter and result values of this invocation. -func (m *MockCodeNavService) GetPrototypes(v0 context.Context, v1 codenav.PositionalRequestArgs, v2 codenav.RequestState, v3 codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - r0, r1, r2 := m.GetPrototypesFunc.nextHook()(v0, v1, v2, v3) - m.GetPrototypesFunc.appendCall(CodeNavServiceGetPrototypesFuncCall{v0, v1, v2, v3, r0, r1, r2}) - return r0, r1, r2 -} - -// SetDefaultHook sets function that is called when the GetPrototypes method -// of the parent MockCodeNavService instance is invoked and the hook queue -// is empty. -func (f *CodeNavServiceGetPrototypesFunc) SetDefaultHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error)) { - f.defaultHook = hook -} - -// PushHook adds a function to the end of hook queue. Each invocation of the -// GetPrototypes method of the parent MockCodeNavService instance invokes -// the hook at the front of the queue and discards it. After the queue is -// empty, the default hook function is invoked for any future action. -func (f *CodeNavServiceGetPrototypesFunc) PushHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error)) { - f.mutex.Lock() - f.hooks = append(f.hooks, hook) - f.mutex.Unlock() -} - -// SetDefaultReturn calls SetDefaultHook with a function that returns the -// given values. -func (f *CodeNavServiceGetPrototypesFunc) SetDefaultReturn(r0 []shared1.UploadLocation, r1 codenav.ImplementationsCursor, r2 error) { - f.SetDefaultHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - return r0, r1, r2 - }) -} - -// PushReturn calls PushHook with a function that returns the given values. -func (f *CodeNavServiceGetPrototypesFunc) PushReturn(r0 []shared1.UploadLocation, r1 codenav.ImplementationsCursor, r2 error) { - f.PushHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - return r0, r1, r2 - }) -} - -func (f *CodeNavServiceGetPrototypesFunc) nextHook() func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ImplementationsCursor) ([]shared1.UploadLocation, codenav.ImplementationsCursor, error) { - f.mutex.Lock() - defer f.mutex.Unlock() - - if len(f.hooks) == 0 { - return f.defaultHook - } - - hook := f.hooks[0] - f.hooks = f.hooks[1:] - return hook -} - -func (f *CodeNavServiceGetPrototypesFunc) appendCall(r0 CodeNavServiceGetPrototypesFuncCall) { - f.mutex.Lock() - f.history = append(f.history, r0) - f.mutex.Unlock() -} - -// History returns a sequence of CodeNavServiceGetPrototypesFuncCall objects -// describing the invocations of this function. -func (f *CodeNavServiceGetPrototypesFunc) History() []CodeNavServiceGetPrototypesFuncCall { - f.mutex.Lock() - history := make([]CodeNavServiceGetPrototypesFuncCall, len(f.history)) - copy(history, f.history) - f.mutex.Unlock() - - return history -} - -// CodeNavServiceGetPrototypesFuncCall is an object that describes an -// invocation of method GetPrototypes on an instance of MockCodeNavService. -type CodeNavServiceGetPrototypesFuncCall struct { - // Arg0 is the value of the 1st argument passed to this method - // invocation. - Arg0 context.Context - // Arg1 is the value of the 2nd argument passed to this method - // invocation. - Arg1 codenav.PositionalRequestArgs - // Arg2 is the value of the 3rd argument passed to this method - // invocation. - Arg2 codenav.RequestState - // Arg3 is the value of the 4th argument passed to this method - // invocation. - Arg3 codenav.ImplementationsCursor - // Result0 is the value of the 1st result returned from this method - // invocation. - Result0 []shared1.UploadLocation - // Result1 is the value of the 2nd result returned from this method - // invocation. - Result1 codenav.ImplementationsCursor - // Result2 is the value of the 3rd result returned from this method - // invocation. - Result2 error -} - -// Args returns an interface slice containing the arguments of this -// invocation. -func (c CodeNavServiceGetPrototypesFuncCall) Args() []interface{} { - return []interface{}{c.Arg0, c.Arg1, c.Arg2, c.Arg3} -} - -// Results returns an interface slice containing the results of this -// invocation. -func (c CodeNavServiceGetPrototypesFuncCall) Results() []interface{} { - return []interface{}{c.Result0, c.Result1, c.Result2} -} - // CodeNavServiceGetRangesFunc describes the behavior when the GetRanges // method of the parent MockCodeNavService instance is invoked. type CodeNavServiceGetRangesFunc struct { @@ -1201,124 +851,6 @@ func (c CodeNavServiceGetRangesFuncCall) Results() []interface{} { return []interface{}{c.Result0, c.Result1} } -// CodeNavServiceGetReferencesFunc describes the behavior when the -// GetReferences method of the parent MockCodeNavService instance is -// invoked. -type CodeNavServiceGetReferencesFunc struct { - defaultHook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error) - hooks []func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error) - history []CodeNavServiceGetReferencesFuncCall - mutex sync.Mutex -} - -// GetReferences delegates to the next hook function in the queue and stores -// the parameter and result values of this invocation. -func (m *MockCodeNavService) GetReferences(v0 context.Context, v1 codenav.PositionalRequestArgs, v2 codenav.RequestState, v3 codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error) { - r0, r1, r2 := m.GetReferencesFunc.nextHook()(v0, v1, v2, v3) - m.GetReferencesFunc.appendCall(CodeNavServiceGetReferencesFuncCall{v0, v1, v2, v3, r0, r1, r2}) - return r0, r1, r2 -} - -// SetDefaultHook sets function that is called when the GetReferences method -// of the parent MockCodeNavService instance is invoked and the hook queue -// is empty. -func (f *CodeNavServiceGetReferencesFunc) SetDefaultHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error)) { - f.defaultHook = hook -} - -// PushHook adds a function to the end of hook queue. Each invocation of the -// GetReferences method of the parent MockCodeNavService instance invokes -// the hook at the front of the queue and discards it. After the queue is -// empty, the default hook function is invoked for any future action. -func (f *CodeNavServiceGetReferencesFunc) PushHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error)) { - f.mutex.Lock() - f.hooks = append(f.hooks, hook) - f.mutex.Unlock() -} - -// SetDefaultReturn calls SetDefaultHook with a function that returns the -// given values. -func (f *CodeNavServiceGetReferencesFunc) SetDefaultReturn(r0 []shared1.UploadLocation, r1 codenav.ReferencesCursor, r2 error) { - f.SetDefaultHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error) { - return r0, r1, r2 - }) -} - -// PushReturn calls PushHook with a function that returns the given values. -func (f *CodeNavServiceGetReferencesFunc) PushReturn(r0 []shared1.UploadLocation, r1 codenav.ReferencesCursor, r2 error) { - f.PushHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error) { - return r0, r1, r2 - }) -} - -func (f *CodeNavServiceGetReferencesFunc) nextHook() func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.ReferencesCursor) ([]shared1.UploadLocation, codenav.ReferencesCursor, error) { - f.mutex.Lock() - defer f.mutex.Unlock() - - if len(f.hooks) == 0 { - return f.defaultHook - } - - hook := f.hooks[0] - f.hooks = f.hooks[1:] - return hook -} - -func (f *CodeNavServiceGetReferencesFunc) appendCall(r0 CodeNavServiceGetReferencesFuncCall) { - f.mutex.Lock() - f.history = append(f.history, r0) - f.mutex.Unlock() -} - -// History returns a sequence of CodeNavServiceGetReferencesFuncCall objects -// describing the invocations of this function. -func (f *CodeNavServiceGetReferencesFunc) History() []CodeNavServiceGetReferencesFuncCall { - f.mutex.Lock() - history := make([]CodeNavServiceGetReferencesFuncCall, len(f.history)) - copy(history, f.history) - f.mutex.Unlock() - - return history -} - -// CodeNavServiceGetReferencesFuncCall is an object that describes an -// invocation of method GetReferences on an instance of MockCodeNavService. -type CodeNavServiceGetReferencesFuncCall struct { - // Arg0 is the value of the 1st argument passed to this method - // invocation. - Arg0 context.Context - // Arg1 is the value of the 2nd argument passed to this method - // invocation. - Arg1 codenav.PositionalRequestArgs - // Arg2 is the value of the 3rd argument passed to this method - // invocation. - Arg2 codenav.RequestState - // Arg3 is the value of the 4th argument passed to this method - // invocation. - Arg3 codenav.ReferencesCursor - // Result0 is the value of the 1st result returned from this method - // invocation. - Result0 []shared1.UploadLocation - // Result1 is the value of the 2nd result returned from this method - // invocation. - Result1 codenav.ReferencesCursor - // Result2 is the value of the 3rd result returned from this method - // invocation. - Result2 error -} - -// Args returns an interface slice containing the arguments of this -// invocation. -func (c CodeNavServiceGetReferencesFuncCall) Args() []interface{} { - return []interface{}{c.Arg0, c.Arg1, c.Arg2, c.Arg3} -} - -// Results returns an interface slice containing the results of this -// invocation. -func (c CodeNavServiceGetReferencesFuncCall) Results() []interface{} { - return []interface{}{c.Result0, c.Result1, c.Result2} -} - // CodeNavServiceGetStencilFunc describes the behavior when the GetStencil // method of the parent MockCodeNavService instance is invoked. type CodeNavServiceGetStencilFunc struct { @@ -1430,6 +962,478 @@ func (c CodeNavServiceGetStencilFuncCall) Results() []interface{} { return []interface{}{c.Result0, c.Result1} } +// CodeNavServiceNewGetDefinitionsFunc describes the behavior when the +// NewGetDefinitions method of the parent MockCodeNavService instance is +// invoked. +type CodeNavServiceNewGetDefinitionsFunc struct { + defaultHook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) + hooks []func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) + history []CodeNavServiceNewGetDefinitionsFuncCall + mutex sync.Mutex +} + +// NewGetDefinitions delegates to the next hook function in the queue and +// stores the parameter and result values of this invocation. +func (m *MockCodeNavService) NewGetDefinitions(v0 context.Context, v1 codenav.PositionalRequestArgs, v2 codenav.RequestState) ([]shared1.UploadLocation, error) { + r0, r1 := m.NewGetDefinitionsFunc.nextHook()(v0, v1, v2) + m.NewGetDefinitionsFunc.appendCall(CodeNavServiceNewGetDefinitionsFuncCall{v0, v1, v2, r0, r1}) + return r0, r1 +} + +// SetDefaultHook sets function that is called when the NewGetDefinitions +// method of the parent MockCodeNavService instance is invoked and the hook +// queue is empty. +func (f *CodeNavServiceNewGetDefinitionsFunc) SetDefaultHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error)) { + f.defaultHook = hook +} + +// PushHook adds a function to the end of hook queue. Each invocation of the +// NewGetDefinitions method of the parent MockCodeNavService instance +// invokes the hook at the front of the queue and discards it. After the +// queue is empty, the default hook function is invoked for any future +// action. +func (f *CodeNavServiceNewGetDefinitionsFunc) PushHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error)) { + f.mutex.Lock() + f.hooks = append(f.hooks, hook) + f.mutex.Unlock() +} + +// SetDefaultReturn calls SetDefaultHook with a function that returns the +// given values. +func (f *CodeNavServiceNewGetDefinitionsFunc) SetDefaultReturn(r0 []shared1.UploadLocation, r1 error) { + f.SetDefaultHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) { + return r0, r1 + }) +} + +// PushReturn calls PushHook with a function that returns the given values. +func (f *CodeNavServiceNewGetDefinitionsFunc) PushReturn(r0 []shared1.UploadLocation, r1 error) { + f.PushHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) { + return r0, r1 + }) +} + +func (f *CodeNavServiceNewGetDefinitionsFunc) nextHook() func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState) ([]shared1.UploadLocation, error) { + f.mutex.Lock() + defer f.mutex.Unlock() + + if len(f.hooks) == 0 { + return f.defaultHook + } + + hook := f.hooks[0] + f.hooks = f.hooks[1:] + return hook +} + +func (f *CodeNavServiceNewGetDefinitionsFunc) appendCall(r0 CodeNavServiceNewGetDefinitionsFuncCall) { + f.mutex.Lock() + f.history = append(f.history, r0) + f.mutex.Unlock() +} + +// History returns a sequence of CodeNavServiceNewGetDefinitionsFuncCall +// objects describing the invocations of this function. +func (f *CodeNavServiceNewGetDefinitionsFunc) History() []CodeNavServiceNewGetDefinitionsFuncCall { + f.mutex.Lock() + history := make([]CodeNavServiceNewGetDefinitionsFuncCall, len(f.history)) + copy(history, f.history) + f.mutex.Unlock() + + return history +} + +// CodeNavServiceNewGetDefinitionsFuncCall is an object that describes an +// invocation of method NewGetDefinitions on an instance of +// MockCodeNavService. +type CodeNavServiceNewGetDefinitionsFuncCall struct { + // Arg0 is the value of the 1st argument passed to this method + // invocation. + Arg0 context.Context + // Arg1 is the value of the 2nd argument passed to this method + // invocation. + Arg1 codenav.PositionalRequestArgs + // Arg2 is the value of the 3rd argument passed to this method + // invocation. + Arg2 codenav.RequestState + // Result0 is the value of the 1st result returned from this method + // invocation. + Result0 []shared1.UploadLocation + // Result1 is the value of the 2nd result returned from this method + // invocation. + Result1 error +} + +// Args returns an interface slice containing the arguments of this +// invocation. +func (c CodeNavServiceNewGetDefinitionsFuncCall) Args() []interface{} { + return []interface{}{c.Arg0, c.Arg1, c.Arg2} +} + +// Results returns an interface slice containing the results of this +// invocation. +func (c CodeNavServiceNewGetDefinitionsFuncCall) Results() []interface{} { + return []interface{}{c.Result0, c.Result1} +} + +// CodeNavServiceNewGetImplementationsFunc describes the behavior when the +// NewGetImplementations method of the parent MockCodeNavService instance is +// invoked. +type CodeNavServiceNewGetImplementationsFunc struct { + defaultHook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) + hooks []func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) + history []CodeNavServiceNewGetImplementationsFuncCall + mutex sync.Mutex +} + +// NewGetImplementations delegates to the next hook function in the queue +// and stores the parameter and result values of this invocation. +func (m *MockCodeNavService) NewGetImplementations(v0 context.Context, v1 codenav.PositionalRequestArgs, v2 codenav.RequestState, v3 codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + r0, r1, r2 := m.NewGetImplementationsFunc.nextHook()(v0, v1, v2, v3) + m.NewGetImplementationsFunc.appendCall(CodeNavServiceNewGetImplementationsFuncCall{v0, v1, v2, v3, r0, r1, r2}) + return r0, r1, r2 +} + +// SetDefaultHook sets function that is called when the +// NewGetImplementations method of the parent MockCodeNavService instance is +// invoked and the hook queue is empty. +func (f *CodeNavServiceNewGetImplementationsFunc) SetDefaultHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error)) { + f.defaultHook = hook +} + +// PushHook adds a function to the end of hook queue. Each invocation of the +// NewGetImplementations method of the parent MockCodeNavService instance +// invokes the hook at the front of the queue and discards it. After the +// queue is empty, the default hook function is invoked for any future +// action. +func (f *CodeNavServiceNewGetImplementationsFunc) PushHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error)) { + f.mutex.Lock() + f.hooks = append(f.hooks, hook) + f.mutex.Unlock() +} + +// SetDefaultReturn calls SetDefaultHook with a function that returns the +// given values. +func (f *CodeNavServiceNewGetImplementationsFunc) SetDefaultReturn(r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { + f.SetDefaultHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + return r0, r1, r2 + }) +} + +// PushReturn calls PushHook with a function that returns the given values. +func (f *CodeNavServiceNewGetImplementationsFunc) PushReturn(r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { + f.PushHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + return r0, r1, r2 + }) +} + +func (f *CodeNavServiceNewGetImplementationsFunc) nextHook() func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + f.mutex.Lock() + defer f.mutex.Unlock() + + if len(f.hooks) == 0 { + return f.defaultHook + } + + hook := f.hooks[0] + f.hooks = f.hooks[1:] + return hook +} + +func (f *CodeNavServiceNewGetImplementationsFunc) appendCall(r0 CodeNavServiceNewGetImplementationsFuncCall) { + f.mutex.Lock() + f.history = append(f.history, r0) + f.mutex.Unlock() +} + +// History returns a sequence of CodeNavServiceNewGetImplementationsFuncCall +// objects describing the invocations of this function. +func (f *CodeNavServiceNewGetImplementationsFunc) History() []CodeNavServiceNewGetImplementationsFuncCall { + f.mutex.Lock() + history := make([]CodeNavServiceNewGetImplementationsFuncCall, len(f.history)) + copy(history, f.history) + f.mutex.Unlock() + + return history +} + +// CodeNavServiceNewGetImplementationsFuncCall is an object that describes +// an invocation of method NewGetImplementations on an instance of +// MockCodeNavService. +type CodeNavServiceNewGetImplementationsFuncCall struct { + // Arg0 is the value of the 1st argument passed to this method + // invocation. + Arg0 context.Context + // Arg1 is the value of the 2nd argument passed to this method + // invocation. + Arg1 codenav.PositionalRequestArgs + // Arg2 is the value of the 3rd argument passed to this method + // invocation. + Arg2 codenav.RequestState + // Arg3 is the value of the 4th argument passed to this method + // invocation. + Arg3 codenav.Cursor + // Result0 is the value of the 1st result returned from this method + // invocation. + Result0 []shared1.UploadLocation + // Result1 is the value of the 2nd result returned from this method + // invocation. + Result1 codenav.Cursor + // Result2 is the value of the 3rd result returned from this method + // invocation. + Result2 error +} + +// Args returns an interface slice containing the arguments of this +// invocation. +func (c CodeNavServiceNewGetImplementationsFuncCall) Args() []interface{} { + return []interface{}{c.Arg0, c.Arg1, c.Arg2, c.Arg3} +} + +// Results returns an interface slice containing the results of this +// invocation. +func (c CodeNavServiceNewGetImplementationsFuncCall) Results() []interface{} { + return []interface{}{c.Result0, c.Result1, c.Result2} +} + +// CodeNavServiceNewGetPrototypesFunc describes the behavior when the +// NewGetPrototypes method of the parent MockCodeNavService instance is +// invoked. +type CodeNavServiceNewGetPrototypesFunc struct { + defaultHook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) + hooks []func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) + history []CodeNavServiceNewGetPrototypesFuncCall + mutex sync.Mutex +} + +// NewGetPrototypes delegates to the next hook function in the queue and +// stores the parameter and result values of this invocation. +func (m *MockCodeNavService) NewGetPrototypes(v0 context.Context, v1 codenav.PositionalRequestArgs, v2 codenav.RequestState, v3 codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + r0, r1, r2 := m.NewGetPrototypesFunc.nextHook()(v0, v1, v2, v3) + m.NewGetPrototypesFunc.appendCall(CodeNavServiceNewGetPrototypesFuncCall{v0, v1, v2, v3, r0, r1, r2}) + return r0, r1, r2 +} + +// SetDefaultHook sets function that is called when the NewGetPrototypes +// method of the parent MockCodeNavService instance is invoked and the hook +// queue is empty. +func (f *CodeNavServiceNewGetPrototypesFunc) SetDefaultHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error)) { + f.defaultHook = hook +} + +// PushHook adds a function to the end of hook queue. Each invocation of the +// NewGetPrototypes method of the parent MockCodeNavService instance invokes +// the hook at the front of the queue and discards it. After the queue is +// empty, the default hook function is invoked for any future action. +func (f *CodeNavServiceNewGetPrototypesFunc) PushHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error)) { + f.mutex.Lock() + f.hooks = append(f.hooks, hook) + f.mutex.Unlock() +} + +// SetDefaultReturn calls SetDefaultHook with a function that returns the +// given values. +func (f *CodeNavServiceNewGetPrototypesFunc) SetDefaultReturn(r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { + f.SetDefaultHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + return r0, r1, r2 + }) +} + +// PushReturn calls PushHook with a function that returns the given values. +func (f *CodeNavServiceNewGetPrototypesFunc) PushReturn(r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { + f.PushHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + return r0, r1, r2 + }) +} + +func (f *CodeNavServiceNewGetPrototypesFunc) nextHook() func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + f.mutex.Lock() + defer f.mutex.Unlock() + + if len(f.hooks) == 0 { + return f.defaultHook + } + + hook := f.hooks[0] + f.hooks = f.hooks[1:] + return hook +} + +func (f *CodeNavServiceNewGetPrototypesFunc) appendCall(r0 CodeNavServiceNewGetPrototypesFuncCall) { + f.mutex.Lock() + f.history = append(f.history, r0) + f.mutex.Unlock() +} + +// History returns a sequence of CodeNavServiceNewGetPrototypesFuncCall +// objects describing the invocations of this function. +func (f *CodeNavServiceNewGetPrototypesFunc) History() []CodeNavServiceNewGetPrototypesFuncCall { + f.mutex.Lock() + history := make([]CodeNavServiceNewGetPrototypesFuncCall, len(f.history)) + copy(history, f.history) + f.mutex.Unlock() + + return history +} + +// CodeNavServiceNewGetPrototypesFuncCall is an object that describes an +// invocation of method NewGetPrototypes on an instance of +// MockCodeNavService. +type CodeNavServiceNewGetPrototypesFuncCall struct { + // Arg0 is the value of the 1st argument passed to this method + // invocation. + Arg0 context.Context + // Arg1 is the value of the 2nd argument passed to this method + // invocation. + Arg1 codenav.PositionalRequestArgs + // Arg2 is the value of the 3rd argument passed to this method + // invocation. + Arg2 codenav.RequestState + // Arg3 is the value of the 4th argument passed to this method + // invocation. + Arg3 codenav.Cursor + // Result0 is the value of the 1st result returned from this method + // invocation. + Result0 []shared1.UploadLocation + // Result1 is the value of the 2nd result returned from this method + // invocation. + Result1 codenav.Cursor + // Result2 is the value of the 3rd result returned from this method + // invocation. + Result2 error +} + +// Args returns an interface slice containing the arguments of this +// invocation. +func (c CodeNavServiceNewGetPrototypesFuncCall) Args() []interface{} { + return []interface{}{c.Arg0, c.Arg1, c.Arg2, c.Arg3} +} + +// Results returns an interface slice containing the results of this +// invocation. +func (c CodeNavServiceNewGetPrototypesFuncCall) Results() []interface{} { + return []interface{}{c.Result0, c.Result1, c.Result2} +} + +// CodeNavServiceNewGetReferencesFunc describes the behavior when the +// NewGetReferences method of the parent MockCodeNavService instance is +// invoked. +type CodeNavServiceNewGetReferencesFunc struct { + defaultHook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) + hooks []func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) + history []CodeNavServiceNewGetReferencesFuncCall + mutex sync.Mutex +} + +// NewGetReferences delegates to the next hook function in the queue and +// stores the parameter and result values of this invocation. +func (m *MockCodeNavService) NewGetReferences(v0 context.Context, v1 codenav.PositionalRequestArgs, v2 codenav.RequestState, v3 codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + r0, r1, r2 := m.NewGetReferencesFunc.nextHook()(v0, v1, v2, v3) + m.NewGetReferencesFunc.appendCall(CodeNavServiceNewGetReferencesFuncCall{v0, v1, v2, v3, r0, r1, r2}) + return r0, r1, r2 +} + +// SetDefaultHook sets function that is called when the NewGetReferences +// method of the parent MockCodeNavService instance is invoked and the hook +// queue is empty. +func (f *CodeNavServiceNewGetReferencesFunc) SetDefaultHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error)) { + f.defaultHook = hook +} + +// PushHook adds a function to the end of hook queue. Each invocation of the +// NewGetReferences method of the parent MockCodeNavService instance invokes +// the hook at the front of the queue and discards it. After the queue is +// empty, the default hook function is invoked for any future action. +func (f *CodeNavServiceNewGetReferencesFunc) PushHook(hook func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error)) { + f.mutex.Lock() + f.hooks = append(f.hooks, hook) + f.mutex.Unlock() +} + +// SetDefaultReturn calls SetDefaultHook with a function that returns the +// given values. +func (f *CodeNavServiceNewGetReferencesFunc) SetDefaultReturn(r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { + f.SetDefaultHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + return r0, r1, r2 + }) +} + +// PushReturn calls PushHook with a function that returns the given values. +func (f *CodeNavServiceNewGetReferencesFunc) PushReturn(r0 []shared1.UploadLocation, r1 codenav.Cursor, r2 error) { + f.PushHook(func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + return r0, r1, r2 + }) +} + +func (f *CodeNavServiceNewGetReferencesFunc) nextHook() func(context.Context, codenav.PositionalRequestArgs, codenav.RequestState, codenav.Cursor) ([]shared1.UploadLocation, codenav.Cursor, error) { + f.mutex.Lock() + defer f.mutex.Unlock() + + if len(f.hooks) == 0 { + return f.defaultHook + } + + hook := f.hooks[0] + f.hooks = f.hooks[1:] + return hook +} + +func (f *CodeNavServiceNewGetReferencesFunc) appendCall(r0 CodeNavServiceNewGetReferencesFuncCall) { + f.mutex.Lock() + f.history = append(f.history, r0) + f.mutex.Unlock() +} + +// History returns a sequence of CodeNavServiceNewGetReferencesFuncCall +// objects describing the invocations of this function. +func (f *CodeNavServiceNewGetReferencesFunc) History() []CodeNavServiceNewGetReferencesFuncCall { + f.mutex.Lock() + history := make([]CodeNavServiceNewGetReferencesFuncCall, len(f.history)) + copy(history, f.history) + f.mutex.Unlock() + + return history +} + +// CodeNavServiceNewGetReferencesFuncCall is an object that describes an +// invocation of method NewGetReferences on an instance of +// MockCodeNavService. +type CodeNavServiceNewGetReferencesFuncCall struct { + // Arg0 is the value of the 1st argument passed to this method + // invocation. + Arg0 context.Context + // Arg1 is the value of the 2nd argument passed to this method + // invocation. + Arg1 codenav.PositionalRequestArgs + // Arg2 is the value of the 3rd argument passed to this method + // invocation. + Arg2 codenav.RequestState + // Arg3 is the value of the 4th argument passed to this method + // invocation. + Arg3 codenav.Cursor + // Result0 is the value of the 1st result returned from this method + // invocation. + Result0 []shared1.UploadLocation + // Result1 is the value of the 2nd result returned from this method + // invocation. + Result1 codenav.Cursor + // Result2 is the value of the 3rd result returned from this method + // invocation. + Result2 error +} + +// Args returns an interface slice containing the arguments of this +// invocation. +func (c CodeNavServiceNewGetReferencesFuncCall) Args() []interface{} { + return []interface{}{c.Arg0, c.Arg1, c.Arg2, c.Arg3} +} + +// Results returns an interface slice containing the results of this +// invocation. +func (c CodeNavServiceNewGetReferencesFuncCall) Results() []interface{} { + return []interface{}{c.Result0, c.Result1, c.Result2} +} + // CodeNavServiceSnapshotForDocumentFunc describes the behavior when the // SnapshotForDocument method of the parent MockCodeNavService instance is // invoked. diff --git a/internal/codeintel/codenav/transport/graphql/root_resolver_definitions.go b/internal/codeintel/codenav/transport/graphql/root_resolver_definitions.go index fddda6c56d5..a2e4884a0e0 100644 --- a/internal/codeintel/codenav/transport/graphql/root_resolver_definitions.go +++ b/internal/codeintel/codenav/transport/graphql/root_resolver_definitions.go @@ -13,12 +13,15 @@ import ( "github.com/sourcegraph/sourcegraph/lib/errors" ) +const DefaultDefinitionsPageSize = 100 + // Definitions returns the list of source locations that define the symbol at the given position. func (r *gitBlobLSIFDataResolver) Definitions(ctx context.Context, args *resolverstubs.LSIFQueryPositionArgs) (_ resolverstubs.LocationConnectionResolver, err error) { requestArgs := codenav.PositionalRequestArgs{ RequestArgs: codenav.RequestArgs{ RepositoryID: r.requestState.RepositoryID, Commit: r.requestState.Commit, + Limit: DefaultDefinitionsPageSize, }, Path: r.requestState.Path, Line: int(args.Line), @@ -34,7 +37,7 @@ func (r *gitBlobLSIFDataResolver) Definitions(ctx context.Context, args *resolve }}) defer endObservation() - def, err := r.codeNavSvc.GetDefinitions(ctx, requestArgs, r.requestState) + def, err := r.codeNavSvc.NewGetDefinitions(ctx, requestArgs, r.requestState) if err != nil { return nil, errors.Wrap(err, "codeNavSvc.GetDefinitions") } diff --git a/internal/codeintel/codenav/transport/graphql/root_resolver_implementations.go b/internal/codeintel/codenav/transport/graphql/root_resolver_implementations.go index d9f6c433239..e1281f0fc6e 100644 --- a/internal/codeintel/codenav/transport/graphql/root_resolver_implementations.go +++ b/internal/codeintel/codenav/transport/graphql/root_resolver_implementations.go @@ -50,18 +50,18 @@ func (r *gitBlobLSIFDataResolver) Implementations(ctx context.Context, args *res // is used to resolve each page. This cursor will be modified in-place to become the // cursor used to fetch the subsequent page of results in this result set. var nextCursor string - cursor, err := decodeImplementationsCursor(rawCursor) + cursor, err := decodeTraversalCursor(rawCursor) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("invalid cursor: %q", rawCursor)) } - impls, implsCursor, err := r.codeNavSvc.GetImplementations(ctx, requestArgs, r.requestState, cursor) + impls, implsCursor, err := r.codeNavSvc.NewGetImplementations(ctx, requestArgs, r.requestState, cursor) if err != nil { return nil, errors.Wrap(err, "codeNavSvc.GetImplementations") } if implsCursor.Phase != "done" { - nextCursor = encodeImplementationsCursor(implsCursor) + nextCursor = encodeTraversalCursor(implsCursor) } if args.Filter != nil && *args.Filter != "" { @@ -107,18 +107,18 @@ func (r *gitBlobLSIFDataResolver) Prototypes(ctx context.Context, args *resolver // is used to resolve each page. This cursor will be modified in-place to become the // cursor used to fetch the subsequent page of results in this result set. var nextCursor string - cursor, err := decodeImplementationsCursor(rawCursor) + cursor, err := decodeTraversalCursor(rawCursor) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("invalid cursor: %q", rawCursor)) } - prototypes, protoCursor, err := r.codeNavSvc.GetPrototypes(ctx, requestArgs, r.requestState, cursor) + prototypes, protoCursor, err := r.codeNavSvc.NewGetPrototypes(ctx, requestArgs, r.requestState, cursor) if err != nil { return nil, errors.Wrap(err, "codeNavSvc.GetPrototypes") } if protoCursor.Phase != "done" { - nextCursor = encodeImplementationsCursor(protoCursor) + nextCursor = encodeTraversalCursor(protoCursor) } if args.Filter != nil && *args.Filter != "" { diff --git a/internal/codeintel/codenav/transport/graphql/root_resolver_references.go b/internal/codeintel/codenav/transport/graphql/root_resolver_references.go index a65c81253e6..5a8a7fa3571 100644 --- a/internal/codeintel/codenav/transport/graphql/root_resolver_references.go +++ b/internal/codeintel/codenav/transport/graphql/root_resolver_references.go @@ -47,18 +47,18 @@ func (r *gitBlobLSIFDataResolver) References(ctx context.Context, args *resolver // is used to resolve each page. This cursor will be modified in-place to become the // cursor used to fetch the subsequent page of results in this result set. var nextCursor string - cursor, err := decodeReferencesCursor(requestArgs.RawCursor) + cursor, err := decodeTraversalCursor(requestArgs.RawCursor) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("invalid cursor: %q", rawCursor)) } - refs, refCursor, err := r.codeNavSvc.GetReferences(ctx, requestArgs, r.requestState, cursor) + refs, refCursor, err := r.codeNavSvc.NewGetReferences(ctx, requestArgs, r.requestState, cursor) if err != nil { return nil, errors.Wrap(err, "svc.GetReferences") } if refCursor.Phase != "done" { - nextCursor = encodeReferencesCursor(refCursor) + nextCursor = encodeTraversalCursor(refCursor) } if args.Filter != nil && *args.Filter != "" { @@ -77,6 +77,29 @@ func (r *gitBlobLSIFDataResolver) References(ctx context.Context, args *resolver // // +func decodeTraversalCursor(rawEncoded string) (codenav.Cursor, error) { + if rawEncoded == "" { + return codenav.Cursor{}, nil + } + + raw, err := base64.RawURLEncoding.DecodeString(rawEncoded) + if err != nil { + return codenav.Cursor{}, err + } + + var cursor codenav.Cursor + err = json.Unmarshal(raw, &cursor) + return cursor, err +} + +func encodeTraversalCursor(cursor codenav.Cursor) string { + rawEncoded, _ := json.Marshal(cursor) + return base64.RawURLEncoding.EncodeToString(rawEncoded) +} + +// +// + // decodeReferencesCursor is the inverse of encodeCursor. If the given encoded string is empty, then // a fresh cursor is returned. func decodeReferencesCursor(rawEncoded string) (codenav.ReferencesCursor, error) { diff --git a/internal/codeintel/codenav/transport/graphql/root_resolver_test.go b/internal/codeintel/codenav/transport/graphql/root_resolver_test.go index c716907fbea..a86af36f080 100644 --- a/internal/codeintel/codenav/transport/graphql/root_resolver_test.go +++ b/internal/codeintel/codenav/transport/graphql/root_resolver_test.go @@ -81,13 +81,13 @@ func TestDefinitions(t *testing.T) { t.Fatalf("unexpected error: %s", err) } - if len(mockCodeNavService.GetDefinitionsFunc.History()) != 1 { - t.Fatalf("unexpected call count. want=%d have=%d", 1, len(mockCodeNavService.GetDefinitionsFunc.History())) + if len(mockCodeNavService.NewGetDefinitionsFunc.History()) != 1 { + t.Fatalf("unexpected call count. want=%d have=%d", 1, len(mockCodeNavService.NewGetDefinitionsFunc.History())) } - if val := mockCodeNavService.GetDefinitionsFunc.History()[0].Arg1; val.Line != 10 { + if val := mockCodeNavService.NewGetDefinitionsFunc.History()[0].Arg1; val.Line != 10 { t.Fatalf("unexpected line. want=%v have=%v", 10, val) } - if val := mockCodeNavService.GetDefinitionsFunc.History()[0].Arg1; val.Character != 15 { + if val := mockCodeNavService.NewGetDefinitionsFunc.History()[0].Arg1; val.Character != 15 { t.Fatalf("unexpected character. want=%d have=%v", 15, val) } } @@ -112,8 +112,8 @@ func TestReferences(t *testing.T) { ) offset := int32(25) - mockRefCursor := codenav.ReferencesCursor{Phase: "local"} - encodedCursor := encodeReferencesCursor(mockRefCursor) + mockRefCursor := codenav.Cursor{Phase: "local"} + encodedCursor := encodeTraversalCursor(mockRefCursor) mockCursor := base64.StdEncoding.EncodeToString([]byte(encodedCursor)) args := &resolverstubs.LSIFPagedQueryPositionArgs{ @@ -128,19 +128,19 @@ func TestReferences(t *testing.T) { t.Fatalf("unexpected error: %s", err) } - if len(mockCodeNavService.GetReferencesFunc.History()) != 1 { - t.Fatalf("unexpected call count. want=%d have=%d", 1, len(mockCodeNavService.GetReferencesFunc.History())) + if len(mockCodeNavService.NewGetReferencesFunc.History()) != 1 { + t.Fatalf("unexpected call count. want=%d have=%d", 1, len(mockCodeNavService.NewGetReferencesFunc.History())) } - if val := mockCodeNavService.GetReferencesFunc.History()[0].Arg1; val.Line != 10 { + if val := mockCodeNavService.NewGetReferencesFunc.History()[0].Arg1; val.Line != 10 { t.Fatalf("unexpected line. want=%v have=%v", 10, val) } - if val := mockCodeNavService.GetReferencesFunc.History()[0].Arg1; val.Character != 15 { + if val := mockCodeNavService.NewGetReferencesFunc.History()[0].Arg1; val.Character != 15 { t.Fatalf("unexpected character. want=%v have=%v", 15, val) } - if val := mockCodeNavService.GetReferencesFunc.History()[0].Arg1; val.Limit != 25 { + if val := mockCodeNavService.NewGetReferencesFunc.History()[0].Arg1; val.Limit != 25 { t.Fatalf("unexpected character. want=%v have=%v", 25, val) } - if val := mockCodeNavService.GetReferencesFunc.History()[0].Arg1; val.RawCursor != encodedCursor { + if val := mockCodeNavService.NewGetReferencesFunc.History()[0].Arg1; val.RawCursor != encodedCursor { t.Fatalf("unexpected character. want=%v have=%v", "test-cursor", val) } } @@ -176,10 +176,10 @@ func TestReferencesDefaultLimit(t *testing.T) { t.Fatalf("unexpected error: %s", err) } - if len(mockCodeNavService.GetReferencesFunc.History()) != 1 { + if len(mockCodeNavService.NewGetReferencesFunc.History()) != 1 { t.Fatalf("unexpected call count. want=%d have=%d", 1, len(mockCodeNavService.GetDiagnosticsFunc.History())) } - if val := mockCodeNavService.GetReferencesFunc.History()[0].Arg1; val.Limit != DefaultReferencesPageSize { + if val := mockCodeNavService.NewGetReferencesFunc.History()[0].Arg1; val.Limit != DefaultReferencesPageSize { t.Fatalf("unexpected limit. want=%v have=%v", DefaultReferencesPageSize, val) } } diff --git a/testing/BUILD.bazel b/testing/BUILD.bazel index e60c00a1a5d..00cda736638 100644 --- a/testing/BUILD.bazel +++ b/testing/BUILD.bazel @@ -154,7 +154,6 @@ server_integration_test( "SOURCEGRAPH_LICENSE_GENERATION_KEY", "SOURCEGRAPH_LICENSE_KEY", ], - flaky = True, port = "7083", runner_src = ":codeintel_integration_test.sh", tags = [