+++ /dev/null
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package regtest
-
-import (
- "encoding/json"
- "fmt"
-
- "golang.org/x/tools/internal/lsp/fake"
- "golang.org/x/tools/internal/lsp/protocol"
-)
-
-// expSymbolInformation and the types it references are pointer-based versions
-// of fake.SymbolInformation, used to make it easier to partially assert
-// against values of type fake.SymbolInformation
-
-// expSymbolInformation is a pointer-based version of fake.SymbolInformation
-type expSymbolInformation struct {
- Name *string
- Kind *protocol.SymbolKind
- Location *expLocation
-}
-
-func (e *expSymbolInformation) matchAgainst(sis []fake.SymbolInformation) bool {
- for _, si := range sis {
- if e.match(si) {
- return true
- }
- }
- return false
-}
-
-func (e *expSymbolInformation) match(si fake.SymbolInformation) bool {
- if e.Name != nil && *e.Name != si.Name {
- return false
- }
- if e.Kind != nil && *e.Kind != si.Kind {
- return false
- }
- if e.Location != nil && !e.Location.match(si.Location) {
- return false
- }
- return true
-}
-
-func (e *expSymbolInformation) String() string {
- byts, err := json.MarshalIndent(e, "", " ")
- if err != nil {
- panic(fmt.Errorf("failed to json.Marshal *expSymbolInformation: %v", err))
- }
- return string(byts)
-}
-
-// expLocation is a pointer-based version of fake.Location
-type expLocation struct {
- Path *string
- Range *expRange
-}
-
-func (e *expLocation) match(l fake.Location) bool {
- if e.Path != nil && *e.Path != l.Path {
- return false
- }
- if e.Range != nil && !e.Range.match(l.Range) {
- return false
- }
- return true
-}
-
-// expRange is a pointer-based version of fake.Range
-type expRange struct {
- Start *expPos
- End *expPos
-}
-
-func (e *expRange) match(l fake.Range) bool {
- if e.Start != nil && !e.Start.match(l.Start) {
- return false
- }
- if e.End != nil && !e.End.match(l.End) {
- return false
- }
- return true
-}
-
-// expPos is a pointer-based version of fake.Pos
-type expPos struct {
- Line *int
- Column *int
-}
-
-func (e *expPos) match(l fake.Pos) bool {
- if e.Line != nil && *e.Line != l.Line {
- return false
- }
- if e.Column != nil && *e.Column != l.Column {
- return false
- }
- return true
-}
-
-func pString(s string) *string {
- return &s
-}
-
-func pInt(i int) *int {
- return &i
-}
-
-func pKind(k protocol.SymbolKind) *protocol.SymbolKind {
- return &k
-}