Commit Graph

1101 Commits

Author SHA1 Message Date
Dmitri Shuralyov 36f37f8f5c go/packages: rename Illtyped to IllTyped in docs
Fix the field name in docs to have the correct case, as seen at
https://godoc.org/golang.org/x/tools/go/packages#Package.IllTyped.

Change-Id: I3184c2fc5f9c4641a61dbd2af6a11309e9f284ea
Reviewed-on: https://go-review.googlesource.com/c/157797
Reviewed-by: Michael Matloob <matloob@golang.org>
2019-01-14 16:46:48 +00:00
Agniva De Sarker 40c2d4768f go/analysis: fix typos and update documentation
Change-Id: I48187fcb1eedd5b94d7b6b2db1ae11009bab23a2
Reviewed-on: https://go-review.googlesource.com/c/157299
Reviewed-by: Alan Donovan <adonovan@google.com>
2019-01-11 18:03:38 +00:00
Daniel Martí 68c5ac90f5 go/packages: Load with no patterns should load "."
At least on the go list driver, which is the default fallback. Note that
we need to call 'go list' on Load("foo") and Load(), but not
Load("name=bar"). This is what the current logic was trying to
accomplish.

But it didn't take into account the case where there are zero initial
patterns, in which case we should still call 'go list'. Fix that, and
add a test.

Fixes #28767.

Change-Id: I40af9eb7f2407449c5683df1403928e2c57c86a4
Reviewed-on: https://go-review.googlesource.com/c/155898
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-01-10 21:10:28 +00:00
Michael Matloob 51295c7ec1 go/packages: update comment on when golist fallback triggers
It triggers for all go versions before 1.11. We thought we might
be able to backport some of the necessary changes to 1.10.4, but
it was infeasible, so no 1.10.x versions will support the non-fallback
behavior.

Change-Id: Ib22be2715bf504464e4bd09c14453e5d132776f3
Reviewed-on: https://go-review.googlesource.com/c/156898
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-01-10 16:31:46 +00:00
Agniva De Sarker 158f3dcaf6 go/ast/inspector: fix a small typo
Change-Id: Ifa677f0b0cd1cc345ce65eceacae4413a5644646
Reviewed-on: https://go-review.googlesource.com/c/157300
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-10 14:16:07 +00:00
Michael Matloob 421f03a57a Revert "go/packages: make tests pass with custom GOCACHE"
This reverts commit e7b5a6dfd8.

Reason for revert: merged by mistake

Change-Id: Ibf6ff4aa346b569aaa5e06b58770a93ca3eebdab
Reviewed-on: https://go-review.googlesource.com/c/156900
Reviewed-by: Ian Cottrell <iancottrell@google.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
2019-01-08 22:28:58 +00:00
fREW Schmidt e8d59ebc66 Remove warning stability warning
December 1, 2018 has come and gone.

If the timeframe should change that's fine; feel free to reject this and just update the date.

Change-Id: If6aaee30340ee0bfde7e578e054c5b8bc910a5b9
GitHub-Last-Rev: ec781ca1374a010168bc4a457d2ea5d0c023f8dc
GitHub-Pull-Request: golang/tools#64
Reviewed-on: https://go-review.googlesource.com/c/155237
Reviewed-by: Michael Matloob <matloob@golang.org>
2019-01-08 19:38:35 +00:00
Steven L 5e40c1c236 go/analysis/internal/checker: don't clobber error when packages.Load fails
Previously, if `packages.Load` failed, it would (sometimes? always?) return an error + no initial packages.
The moved `len(initial)` check was overriding the actual err with a much less useful one.

Example output before:
```
13:03:17.856866 load [./...]
13:03:28.403532 ./... matched no packages
```
And after:
```
13:03:30.942191 load [./...]
13:03:36.999506 go list repeated package [an internal package] with different values
```

Change-Id: I1a821e3855cbbbee904bcec9c29877e091c3e3a0
GitHub-Last-Rev: d1235fc2eceb0d4e947f47be99edc5ac96da5f84
GitHub-Pull-Request: golang/tools#65
Reviewed-on: https://go-review.googlesource.com/c/155745
Reviewed-by: Michael Matloob <matloob@golang.org>
2019-01-08 19:37:22 +00:00
Daniel Martí e7b5a6dfd8 go/packages: make tests pass with custom GOCACHE
Before this change, a test would fail:

	$ GOCACHE=$HOME/go/cache go test
	--- FAIL: TestLoadImportsGraph (0.36s)
	    --- FAIL: TestLoadImportsGraph/GOPATH (0.19s)
		packages_test.go:191: golang.org/fake/subdir/d.test.Srcs = [4302876da86a8aae0c1669924daa223cafca60ef49ccaa060ae37e778d18f218-d], want [0.go]
	    --- FAIL: TestLoadImportsGraph/Modules (0.17s)
		packages_test.go:191: golang.org/fake/subdir/d.test.Srcs = [4302876da86a8aae0c1669924daa223cafca60ef49ccaa060ae37e778d18f218-d], want [0.go]
	FAIL

This is because it assumed that the user hadn't set their own GOCACHE,
and thus that all source files in the cache would be under the default
"go-build" cache directory.

We could fix this via os.Getenv("GOCACHE"), but a simpler mechanism is
to see if the source file has an extension. Source files don't have an
extension in GOCACHE, so that's much simpler to detect.

After this change:

	$ GOCACHE=$HOME/go/cache go test
	PASS

While at it, gofmt.

Fixes #29445.

Change-Id: I83c0afc20a527bb50a03f9946e555db36cc85efd
Reviewed-on: https://go-review.googlesource.com/c/155897
Reviewed-by: Michael Matloob <matloob@golang.org>
2019-01-08 19:35:00 +00:00
Zac Bergquist 1bc491975c go/packages: update doc for name= queries
Change-Id: I2ba387703ae1f31e7dff271007607f377701f7dd
Reviewed-on: https://go-review.googlesource.com/c/155941
Reviewed-by: Alan Donovan <adonovan@google.com>
2019-01-08 19:25:35 +00:00
Ian Cottrell 7cb465e007 go/package/gopackages: update gopackages to use the new tool library for its main function
Change-Id: I06f13024c021d14e4a759ca9ec24aa54f9d1b97f
Reviewed-on: https://go-review.googlesource.com/c/154558
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-01-08 19:17:02 +00:00
Daniel Martí e063def13b go/analysis: fix package doc copy-paste typo
Change-Id: I17495106c76bbf270f621abe2eca367ed818a79b
Reviewed-on: https://go-review.googlesource.com/c/156500
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-07 15:52:54 +00:00
Daniel Martí 3ef6863234 go/analysis: fix ambiguous paths in structtag pass
Now that we support checking for duplicate struct field tags across
anonymous struct fields, we must deal with the fact that the files
involved in such a warning may not be in the same package or directory.

This could lead to errors where a file was mentioned in a package where
it didn't exist. Or even worse, point at a location within an existing
file that doesn't contain the field we want, causing even further
confusion to the user.

To fix this, always make the "also at" positions relative to the current
warning, if possible.

Fixes #29130.

Change-Id: Iaa29b406978f1671bdfb2ddddb7058eeffec92a9
Reviewed-on: https://go-review.googlesource.com/c/155899
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
2019-01-06 17:17:56 +00:00
Heschi Kreinick 498d954934 go/packages/packagestest: make temp directory writeable
In module mode, the temp dir will contain a mod cache, which needs to be
made writeable before it can be deleted.

Change-Id: Ia979a8b06d1b4db47d25ffdfdf925ba8a0ac67de
Reviewed-on: https://go-review.googlesource.com/c/156078
Run-TryBot: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2019-01-04 18:20:27 +00:00
Steven L 52ae6dee23 go/analysis/internal/checker: fix debug flag docs
The list of recognized values for the `-debug` flag was old / incorrect.

Change-Id: Ic5f260e650e73512cca2f4db8155bb70bc6b6d17
GitHub-Last-Rev: af642385b81da00169ab9700abb26bed54bdf8ac
GitHub-Pull-Request: golang/tools#66
Reviewed-on: https://go-review.googlesource.com/c/155938
Reviewed-by: Alan Donovan <adonovan@google.com>
2019-01-02 20:01:30 +00:00
Yasuhiro Matsumoto 79186431cf go/internal/packagesdriver: fix crash when GOARCH and Go compiler can't be determined
When run "go list" outside GOPATH, result should be empty

Change-Id: If832c46d3e4c32a2a87338cca95e3169ea3be055
Reviewed-on: https://go-review.googlesource.com/c/155557
Reviewed-by: Michael Matloob <matloob@golang.org>
2019-01-02 18:37:24 +00:00
Rebecca Stambler d00ac6d273 internal/lsp: remove unnecessary packagestest.RangePosition type
Some cleanup of lsp_test.

Change-Id: I0cf4eb73f223845374c7f7f4939a461ff676bde8
Reviewed-on: https://go-review.googlesource.com/c/155579
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
Reviewed-by: Libor K <aschrak1978@gmail.com>
2018-12-21 23:52:34 +00:00
Zac Bergquist c446015edc go/packages/packagestest: fix Expect doc
The type is expect.Note, not expect.Comment.

Change-Id: I04338fee3b20a7507bbe2a6a15ea36cf1066fe88
Reviewed-on: https://go-review.googlesource.com/c/154580
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-12-21 20:46:27 +00:00
Heschi Kreinick d12035dfdc go/packages: use -find, add GOPACKAGESDEBUG env var
Pass -find whenever possible to speed up go list calls. Add an
environment variable, GOPACKAGESDEBUG, that controls debug logging
so that we don't have to tell users to recompile goimports to debug it.

Change-Id: If39ff7829279dafa4e066e74a024c27a8235154b
Reviewed-on: https://go-review.googlesource.com/c/155477
Run-TryBot: Heschi Kreinick <heschi@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
2018-12-20 22:10:20 +00:00
Rebecca Stambler f344c7530c internal/lsp: add ranges to some diagnostics messages
Added a View interface to the source package, which allows for reading
of other files (in the same package or in other packages). We were
already reading files in jump to definition (to handle the lack of
column information in export data), but now we can also read files in
diagnostics, which allows us to determine the end of an identifier so
that we can report ranges in diagnostic messages.

Updates golang/go#29150

Change-Id: I7958d860dea8f41f2df88a467b5e2946bba4d1c5
Reviewed-on: https://go-review.googlesource.com/c/154742
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-12-20 19:13:07 +00:00
Heschi Kreinick 3571f65a7b go/packages: deduplicate roots
refine needs to match packages back to roots, and it gets confused if
the same root appears twice. Deduplicate roots the same way we
deduplicate packages.

Introduce a new wrapper around driverResponse to make this easier, and
pass that around instead of the addPackage callback.

Fixes golang/go#29297

Change-Id: I49ea37155c507af136391b9eb55a83b6dedfcc14
Reviewed-on: https://go-review.googlesource.com/c/155020
Run-TryBot: Heschi Kreinick <heschi@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
2018-12-20 18:52:03 +00:00
Ian Lance Taylor 2240b23956 go/packages: use packagesdriver to fetch sizes for "go list"
Also fix packagesdriver to use "go list" if the gopackagesdriver
program is not available, rather than returning nil with no error.

Also fix some comments.

Change-Id: I0457cfa4eab4294760af71c780c62c05ad841c85
Reviewed-on: https://go-review.googlesource.com/c/154757
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
2018-12-19 20:36:29 +00:00
Michael McLoughlin bbbd9518e8 go/analysis/passes/asmdecl: fix array offsets
Array offsets in recursive structures do not include the accumulated
offset. This diff fixes the mistake and adds a test.

Fixes golang/go#29318

Change-Id: Iaa2a2f9404e4ed0e38b87e5e041709c1a8e25809
Reviewed-on: https://go-review.googlesource.com/c/154665
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
2018-12-18 19:42:33 +00:00
David Symonds 13ba8ad772 go/vcs: use Bitbucket v2 REST API
This ports the change made to cmd/go in
https://go-review.googlesource.com/36219 (Feb 2017).

Change-Id: I04e55749b187e21d140500b8878866bd3ceea174
Reviewed-on: https://go-review.googlesource.com/c/154677
Reviewed-by: Andrew Gerrand <adg@golang.org>
2018-12-18 02:00:41 +00:00
Michael Matloob ae5b881676 go/packages: suppress go list errors when ad-hoc package doesn't exist
Updates golang/go#29280

Change-Id: Ie5a5dc1fef8f3d989b3a5fffb6c2ca66e97c143a
Reviewed-on: https://go-review.googlesource.com/c/154517
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-12-17 22:06:04 +00:00
Than McIntosh fe2443f7b9 go/internal/gccgoimporter: test fix for older gccgo versions
Import test fix https://golang.org/cl/153831 from std lib
version (skips issue29198.go test for older versions of gccgo).

Updates golang/go#29198.

Change-Id: Iddd903068a73a307b1d19d93a7c03b1d00365022
Reviewed-on: https://go-review.googlesource.com/c/153870
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-12-13 21:01:26 +00:00
Ian Cottrell c779628d65 go/ssa: convert the objlookup tests to the new marker syntax
Change-Id: I5df3a3cc3d3ab236a6ad964914393a2ccb29803b
Reviewed-on: https://go-review.googlesource.com/c/145637
Run-TryBot: Ian Cottrell <iancottrell@google.com>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
2018-12-13 15:12:02 +00:00
Than McIntosh 7529026f5b go/internal/gccgoimporter: update package to match std lib version
Import changes from std lib version, specifically

    https://golang.org/cl/153821

which fixes a bug (#29198) in reading of import data.

Change-Id: I26d4da015b88bbc8f4f7775b0850bef5dffadbec
Reviewed-on: https://go-review.googlesource.com/c/153868
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-12-13 13:10:58 +00:00
Michael Matloob 59cd96f77e go/packages: add doc for the current state of overlays
Change-Id: Iba4ea587d7a14a1b930df122c925d1bc2f39eda8
Reviewed-on: https://go-review.googlesource.com/c/153678
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-12-11 22:18:32 +00:00
Michael Matloob e00c0697c2 go/internal/packagesdriver: expose function to return sizes
Change-Id: Ifc26abd280607401c8995b6b41fc0fd8ca29e7eb
Reviewed-on: https://go-review.googlesource.com/c/153199
Reviewed-by: Ian Cottrell <iancottrell@google.com>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-12-10 15:05:41 +00:00
Ian Cottrell 4c874b978a go/packages/packagestest: allow tests to also specify overlay contents
This is needed to write the more advanced test cases for editor integrated
tools.
The expectation system also uses the overlay rather than the file if it is
supplied.

Change-Id: I8fd21f4efe5ac5869fa6e25d3cd0d5096051e5e5
Reviewed-on: https://go-review.googlesource.com/c/153240
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2018-12-07 22:22:22 +00:00
Ian Cottrell 8bc39b9880 go/packages: an empty overlay does not force source mode
we check length of the map, and a non empty map forces source mode.

Change-Id: Id314ad87b96d9154198122586fd8672a70c5ca95
Reviewed-on: https://go-review.googlesource.com/c/153198
Run-TryBot: Ian Cottrell <iancottrell@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-12-07 18:38:36 +00:00
Michael Matloob bcd4e47d02 go/packages: check for containing files after overlay is processed
files specified in file= queries will now also be checked for in overlay
packages.

Fixes golang/go#29048

Change-Id: I096d02c3777e6c7decedfcb97c0d011ce9b47b28
Reviewed-on: https://go-review.googlesource.com/c/152797
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-12-06 19:48:17 +00:00
Alan Donovan 22934f0fdb go/...: use recommended issue tracker URLs
Change-Id: I249de6aad723f4c2c49dc028995f4f6d1fcc54fd
Reviewed-on: https://go-review.googlesource.com/c/152598
Run-TryBot: Alan Donovan <adonovan@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-12-05 01:41:16 +00:00
Than McIntosh 555fafe5a2 go/internal/gccgoimporter: update package to match std lib version
This CL updates the importer to match the original code in the std lib
but for the necessary changes to make the code work in x/tools and
with older versions of the std lib.

Notably, it brings over changes from:

       https://go-review.googlesource.com/c/152378

Change-Id: Icaa05303a05a226c710b5923d8574f255651fe47
Reviewed-on: https://go-review.googlesource.com/c/152577
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-12-05 00:58:08 +00:00
Alan Donovan 65c3061cc9 go/analysis: remove "experimental" warning
The interface is now stable.

Change-Id: I7dc3feb70131cddb003f9320272a0fbd9b314048
Reviewed-on: https://go-review.googlesource.com/c/152597
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-12-04 18:38:27 +00:00
Alan Donovan 47a17e0312 go/analysis/unitchecker: use importer.ForCompiler under go1.12
importer.For does not populate the caller's token.FileSet
leading to spurious position information in diagnostics.

This change is the upstream fix for
https://go-review.googlesource.com/c/go/+/152258.

Fixes golang/go#28995

Change-Id: I9307d4f1f25c2b0877558426d4d71b3f1df99505
Reviewed-on: https://go-review.googlesource.com/c/152578
Reviewed-by: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-12-04 18:22:59 +00:00
Daniel Martí e5f3ab76ea go/analysis: fix more printf pointer bugs
The first issue is that %b and %o can print pointers, but printVerbs
didn't reflect that:

	The %b, %d, %o, %x and %X verbs also work with pointers,
	formatting the value exactly as if it were an integer.

The second issue is that arrays can never be printed as pointers. This
was previously reported as part of #27672.

The third issue is that only %p can print all slices, maps, and
functions as if they were pointers. This differs from verbs like %b or
%o, which can't print these types as pointers.

Fix all of the issues above, and add extensive test cases covering all
the combinations. Verified all of them with an executed program. The
amount of test cases is perhaps overkill, but this is not the first time
we've gotten the printf pointer logic wrong.

Updates #27672.
Fixes #28858.

Change-Id: I62eb79d505fd1e250a16b90bda3c68b702f35a29
Reviewed-on: https://go-review.googlesource.com/c/149979
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
2018-12-03 21:00:56 +00:00
Ian Lance Taylor 99b2a93e1f go/analysis/unitchecker: improve error message for go tool vet
Previously running "go tool vet" said

vet: invalid command: want .cfg file (this reduced version of vet is
intended to be run only by the 'go vet' command)

With this change it says:

vet: invoking "go tool vet" directly is unsupported; use "go vet"

Updates golang/go#28869

Change-Id: I603ab2f75bb52d860e5cd7466e89d051dfbf3f08
Reviewed-on: https://go-review.googlesource.com/c/152217
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
2018-12-03 20:10:58 +00:00
Than McIntosh e51e3523bf go/internal/gccgoimporter: update package to match std lib version
This CL updates the importer to match the original code in the std lib
but for the necessary changes to make the code work in x/tools and
with older versions of the std lib.

Notably, it brings over changes from:

   https://go-review.googlesource.com/c/152078
   https://go-review.googlesource.com/c/152077
   https://golang.org/cl/151997
   https://golang.org/cl/151557
   https://golang.org/cl/149957

including test fixes (we want tests to run when gccgo is available,
not just when all go tools are gccgo-based), bug fixes (primarily
related to aliases), performance enhancements, and new code to read
the V3 export data emitted by the most recent gccgo.

Change-Id: I2d34bace23769e62795599b93db8295169076594
Reviewed-on: https://go-review.googlesource.com/c/151717
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
2018-11-30 22:34:53 +00:00
Michael Matloob 34bb05f9d8 go/packages: add support to overlays for unwritten files to existing packages
This support is not perfect, but should produce more accurate results than
the previous behavior, which is to silently drop those files.

Change-Id: Ia00c042bf303e9ec0fb1cbd579c0fccb29073de0
Reviewed-on: https://go-review.googlesource.com/c/151999
Run-TryBot: Michael Matloob <matloob@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-11-30 21:54:54 +00:00
Ian Cottrell 895048a75e go/expect: rewrite the expectation parser
The expectation langauge is LL(1) but the scanner does not support true
lookahead
This change adds a true LL(1) token stream and rewrites the parser in terms of
it.
Also clean up the error handling and use the behaviour to fix all the broken
edge cases, and then change the tests to cover the now correct behaviour.

Change-Id: If3d602cda490ed2f4732efce400eb8eabce8a8ec
Reviewed-on: https://go-review.googlesource.com/c/151998
Run-TryBot: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2018-11-30 19:57:46 +00:00
Ian Cottrell e015b91f26 go/expect: allow multi-line expectations
This allows for multi-line comments where a new line is allowed between
expectations.
It also allows trailing new lines and commas in expectation lists.

Change-Id: I714f8ad483a0238281f26ceb74ce9e73d922af69
Reviewed-on: https://go-review.googlesource.com/c/151718
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2018-11-29 22:11:41 +00:00
Michael Matloob c5b00d9557 go/packages: fix build breakage caused by math/bits to unsafe dep
Our tests compare import graphs from go/packages to expected graphs,
and one of the test cases imports math/bits. But in tip math/bits
picked up a dependency on unsafe, which means the expected graph
is different when run against a Go version >= go1.11. Remove that edge
before comparing against the expected graph to work around the breakage.

Change-Id: Ic586a75ba530741d251df9f87d0817a8e37d92ea
Reviewed-on: https://go-review.googlesource.com/c/151657
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-11-28 22:57:27 +00:00
Ian Cottrell e782529d0d go/packages/packagestest: allow expectations to have *regexp.Regexp and interface{} parameters
Change-Id: I86312ae2f30ba04290e9b7a001e0284439f4bfe6
Reviewed-on: https://go-review.googlesource.com/c/151346
Run-TryBot: Ian Cottrell <iancottrell@google.com>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2018-11-27 23:25:45 +00:00
Michael Matloob 91f80e683c go/packages: use absolute path of dir in call to go list for file= query
When running go list for a file= query, the go/packages code previously ran "go list ." command in the directory of the provided file. This was necessary for compatibility with the fallback, but caused problems when running file= queries for files in the module cache. We now use absolute directory paths (supported in Go >=1.11) in the non-fallback case and retain the previous behavior in the fallback case.

Change-Id: I3a9feaaeda12e068ec3d510b5f78437482c65b4c
Reviewed-on: https://go-review.googlesource.com/c/148199
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-11-21 19:39:51 +00:00
Ian Cottrell 72292f0c83 go/packages/packagestest: adds a benchmark version of TestAll
This is needed because testing.TB does not have a "Run" method for sub
tests, and the signature of the function it takes needs to match the
testing parameter.

Change-Id: I9201dd75891ed1bda300a4247fe7eac1e25bd30d
Reviewed-on: https://go-review.googlesource.com/c/150857
Run-TryBot: Ian Cottrell <iancottrell@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-11-21 19:29:16 +00:00
Michael Matloob ff0519d4cf go/packages: change driver communication mechanism
Pass in parameters to the driver in stdin rather than through argv.
This allows us to more easily route parameters to the driver and add
more parameters without breaking users. The driver doesn't need to
have the same interface as go list, because it's unlikely the driver interface
will converge with the go list interface.

We still pass in the query "words" to the driver in the argv, because
that's as good a place as any, but there's no "list" command.

Question: should we add a "command" option to the driverRequest struct?

Change-Id: Ifdbb3f84b6bfd04259f5ab63e756341d7f69de9b
Reviewed-on: https://go-review.googlesource.com/c/150337
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-11-21 18:20:56 +00:00
Rebecca Stambler fc4f04983f internal/lsp: add more testdata for completion and diagnostics
Change-Id: I2a73e51b60f76a2af0f8ff4d34220b551e0cd378
Reviewed-on: https://go-review.googlesource.com/c/150041
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
2018-11-20 06:06:34 +00:00
Ian Cottrell 89e258047f go/ssa: convert tests to new annotation system
Change-Id: I4f44da4fa6a4976b790b6707300cd4facf99c9a5
Reviewed-on: https://go-review.googlesource.com/c/144738
Reviewed-by: Alan Donovan <adonovan@google.com>
2018-11-19 18:26:14 +00:00