cmd/guru: remove vestiges of -pos flag
It's a positional parameter now. Also, update -help message to address https://go-review.googlesource.com/#/c/19474 comments Change-Id: Ie5947aa3c37180961e780747ca02be54f7030c21 Reviewed-on: https://go-review.googlesource.com/19493 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
00b8b1eb95
commit
1d6b8698af
|
|
@ -247,8 +247,8 @@ func pkgContainsFile(bp *build.Package, filename string) byte {
|
||||||
// this is appropriate for queries that allow fairly arbitrary syntax,
|
// this is appropriate for queries that allow fairly arbitrary syntax,
|
||||||
// e.g. "describe".
|
// e.g. "describe".
|
||||||
//
|
//
|
||||||
func parseQueryPos(lprog *loader.Program, posFlag string, needExact bool) (*queryPos, error) {
|
func parseQueryPos(lprog *loader.Program, pos string, needExact bool) (*queryPos, error) {
|
||||||
filename, startOffset, endOffset, err := parsePosFlag(posFlag)
|
filename, startOffset, endOffset, err := parsePos(pos)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,9 @@ var updateFlag = flag.Bool("update", false, "Update the golden files.")
|
||||||
type query struct {
|
type query struct {
|
||||||
id string // unique id
|
id string // unique id
|
||||||
verb string // query mode, e.g. "callees"
|
verb string // query mode, e.g. "callees"
|
||||||
posn token.Position // position of of query
|
posn token.Position // query position
|
||||||
filename string
|
filename string
|
||||||
queryPos string // value of -pos flag
|
queryPos string // query position in command-line syntax
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseRegexp(text string) (*regexp.Regexp, error) {
|
func parseRegexp(text string) (*regexp.Regexp, error) {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import (
|
||||||
|
|
||||||
// flags
|
// flags
|
||||||
var (
|
var (
|
||||||
scopeFlag = flag.String("scope", "", "comma-separated list of `packages` to which the analysis should be limited (default=all)")
|
scopeFlag = flag.String("scope", "", "comma-separated list of `packages` the analysis should be limited to (default=all)")
|
||||||
ptalogFlag = flag.String("ptalog", "", "write points-to analysis log to `file`")
|
ptalogFlag = flag.String("ptalog", "", "write points-to analysis log to `file`")
|
||||||
formatFlag = flag.String("format", "plain", "output `format`; one of {plain,json,xml}")
|
formatFlag = flag.String("format", "plain", "output `format`; one of {plain,json,xml}")
|
||||||
reflectFlag = flag.Bool("reflect", false, "analyze reflection soundly (slow)")
|
reflectFlag = flag.Bool("reflect", false, "analyze reflection soundly (slow)")
|
||||||
|
|
@ -55,7 +55,7 @@ The mode argument determines the query to perform:
|
||||||
freevars show free variables of selection
|
freevars show free variables of selection
|
||||||
implements show 'implements' relation for selected type or method
|
implements show 'implements' relation for selected type or method
|
||||||
peers show send/receive corresponding to selected channel op
|
peers show send/receive corresponding to selected channel op
|
||||||
pointsto show variables to which the selected pointer may point
|
pointsto show variables the selected pointer may point to
|
||||||
referrers show all refs to entity denoted by selected identifier
|
referrers show all refs to entity denoted by selected identifier
|
||||||
what show basic information about the selected syntax node
|
what show basic information about the selected syntax node
|
||||||
whicherrs show possible values of the selected error variable
|
whicherrs show possible values of the selected error variable
|
||||||
|
|
|
||||||
|
|
@ -29,25 +29,25 @@ func parseOctothorpDecimal(s string) int {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
// parsePosFlag parses a string of the form "file:pos" or
|
// parsePos parses a string of the form "file:pos" or
|
||||||
// file:start,end" where pos, start, end match #%d and represent byte
|
// file:start,end" where pos, start, end match #%d and represent byte
|
||||||
// offsets, and returns its components.
|
// offsets, and returns its components.
|
||||||
//
|
//
|
||||||
// (Numbers without a '#' prefix are reserved for future use,
|
// (Numbers without a '#' prefix are reserved for future use,
|
||||||
// e.g. to indicate line/column positions.)
|
// e.g. to indicate line/column positions.)
|
||||||
//
|
//
|
||||||
func parsePosFlag(posFlag string) (filename string, startOffset, endOffset int, err error) {
|
func parsePos(pos string) (filename string, startOffset, endOffset int, err error) {
|
||||||
if posFlag == "" {
|
if pos == "" {
|
||||||
err = fmt.Errorf("no source position specified (-pos flag)")
|
err = fmt.Errorf("no source position specified")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
colon := strings.LastIndex(posFlag, ":")
|
colon := strings.LastIndex(pos, ":")
|
||||||
if colon < 0 {
|
if colon < 0 {
|
||||||
err = fmt.Errorf("invalid source position -pos=%q", posFlag)
|
err = fmt.Errorf("bad position syntax %q", pos)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
filename, offset := posFlag[:colon], posFlag[colon+1:]
|
filename, offset := pos[:colon], pos[colon+1:]
|
||||||
startOffset = -1
|
startOffset = -1
|
||||||
endOffset = -1
|
endOffset = -1
|
||||||
if hyphen := strings.Index(offset, ","); hyphen < 0 {
|
if hyphen := strings.Index(offset, ","); hyphen < 0 {
|
||||||
|
|
@ -60,7 +60,7 @@ func parsePosFlag(posFlag string) (filename string, startOffset, endOffset int,
|
||||||
endOffset = parseOctothorpDecimal(offset[hyphen+1:])
|
endOffset = parseOctothorpDecimal(offset[hyphen+1:])
|
||||||
}
|
}
|
||||||
if startOffset < 0 || endOffset < 0 {
|
if startOffset < 0 || endOffset < 0 {
|
||||||
err = fmt.Errorf("invalid -pos offset %q", offset)
|
err = fmt.Errorf("invalid offset %q in query position", offset)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
@ -119,10 +119,10 @@ func sameFile(x, y string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// fastQueryPos parses the -pos flag and returns a QueryPos.
|
// fastQueryPos parses the position string and returns a QueryPos.
|
||||||
// It parses only a single file, and does not run the type checker.
|
// It parses only a single file, and does not run the type checker.
|
||||||
func fastQueryPos(posFlag string) (*queryPos, error) {
|
func fastQueryPos(pos string) (*queryPos, error) {
|
||||||
filename, startOffset, endOffset, err := parsePosFlag(posFlag)
|
filename, startOffset, endOffset, err := parsePos(pos)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue