When adding imports to an existing import declaration, ensure that
the target declaration will be printed with parentheses. This allows
all of the imported packages to be printed, not just the first one.
Fixesgolang/go#17212
Change-Id: Ie5de5ec9bca6169650336ee2ea98334817e64e48
Reviewed-on: https://go-review.googlesource.com/29688
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
The "sort" package is no longer quite as low-level as it once was.
Change-Id: Ic62d780841ef1172f65d4c00ec500994f94cb4b7
Reviewed-on: https://go-review.googlesource.com/30931
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
If the parens of an ast.GenDecl are dropped, move the documentation
of the ImportSpec above the import statement, otherwise the the
code is invalid.
Fixesgolang/go#15432.
Change-Id: I715750b8f528380b96a6bc8b5f216043937976c2
Reviewed-on: https://go-review.googlesource.com/22415
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Previously, a trailing slash would cause "foo/" to be treated as the
name of a package, with comical results.
Fixedgolang/go#14584
Change-Id: I660f8a079bbd63d3645812e516a9264c8e080e61
Reviewed-on: https://go-review.googlesource.com/30452
Reviewed-by: Robert Griesemer <gri@golang.org>
When merging import declarations into a single block, AddNamedImport
modifies the list of declarations in the provided file while
iterating over the list. Take care to adjust the index into the list
so as to not skip entries or fall off the end.
Fixesgolang/go#17213
Change-Id: I807246f762c965ea1fc51eb57759f6088336db86
Reviewed-on: https://go-review.googlesource.com/29681
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
...to avoid executing the supportAVX2 assembly function.
Also, combine all no-op intrinsics into a single function.
Change-Id: Ic65a80d3a6df52c3850c34406f034781057a0991
Reviewed-on: https://go-review.googlesource.com/28711
Reviewed-by: Robert Griesemer <gri@golang.org>
Backport of https://go-review.googlesource.com/27814 changes to
bexport.go.
With this, the gcimporter15 is again up-to-date and in sync with both
the compiler's export code, and the compiler's and std lib gcimporter's
import code.
Change-Id: I8e229660eb78ddc1506b7b96a89c81ff083e0412
Reviewed-on: https://go-review.googlesource.com/27914
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Both functions had documentation referring to BuildAll when the
function is now called Build.
Change-Id: I59cce397a0a72bf7fa36f9798e2b07bb6b1da726
Reviewed-on: https://go-review.googlesource.com/25084
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Only unary CallExprs with no ellipsis, f(x), are ambiguous.
Change-Id: If4f17445ab0725dee916992db133eac5536133a7
Reviewed-on: https://go-review.googlesource.com/24552
Reviewed-by: Robert Griesemer <gri@golang.org>
Go is being proposed as an officially supported language for elements of
OpenStack:
https://review.openstack.org/#/c/312267/
As such, repos that exist in OpenStack's git infrastructure
are likely to become places from which people might want to go get
things. Allow optional .git suffixes to allow writing code that
depends on git.openstack.org repos that will work with older go versions
while we wait for this support to roll out.
Change-Id: I1f7be6b7aae63f9c554dbcdbfa46855bcff321df
Reviewed-on: https://go-review.googlesource.com/23362
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
BImportData now requires a token.FileSet.
Column numbers are not exported, and are always reported as 1.
Line numbers greater than the limit (currently 64K) are reported as 1.
+ Test that file/line info is correctly preserved for the entire
standard library.
Change-Id: I80cf370685320240dfb262d36fafd6cdf8569bfb
Reviewed-on: https://go-review.googlesource.com/22788
Reviewed-by: Robert Griesemer <gri@golang.org>
...now that gc's export data records fewer dependencies.
Change-Id: Ie0f68f1f7b0825f6d2c100dfe189be017383db60
Reviewed-on: https://go-review.googlesource.com/22584
Reviewed-by: Robert Griesemer <gri@golang.org>
...which is used by $GOROOT/test/goprint.go.
Change-Id: I4626b8fae3f87d9c8dd8cdcd8c05036955a36262
Reviewed-on: https://go-review.googlesource.com/22560
Reviewed-by: Robert Griesemer <gri@golang.org>
Don't export position info for now. Enabled/disabled with a flag.
The importer recognizes the chosen format automatically.
Change-Id: I055818eb9dba50cc97f40eb92220258a1ddbfbec
Reviewed-on: https://go-review.googlesource.com/22427
Reviewed-by: Alan Donovan <adonovan@google.com>
Read and write position info.
Change-Id: Ibe4a914ff51911bbda656b08f1397132e495ab8a
Reviewed-on: https://go-review.googlesource.com/22098
Reviewed-by: Alan Donovan <adonovan@google.com>
This extracts the overlay context and archive parsing from guru into
buildutil.
At least one tool (gogetdoc) has a vendored copy of this code already,
and more tools implementing the same functionality will follow.
The new code in buildutil is an almost identical copy of the code in
guru (names aside), except for the following changes:
- Instead of reading into a bytes.Buffer, we read directly into a []byte
of appropriate size
- sameFile first attempts a simple comparison of path.Clean'ed paths.
Change-Id: I97cd978ccc10722e3648e5e10625fa7f1407f202
Reviewed-on: https://go-review.googlesource.com/21805
Reviewed-by: Alan Donovan <adonovan@google.com>
Apply style improvements to TestFromDir from golang/go@b6cd6d7d32,
in order to keep them in sync.
Check for error when creating a directory, its successful existence is a
precondition for the test to run.
Helps golang/go#11490.
Change-Id: I87054114c84aead96977f603ca3bd9eccfcfbd5e
Reviewed-on: https://go-review.googlesource.com/21795
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Per https://groups.google.com/forum/#!topic/golang-announce/qu_rAphYdxY
this change deletes the packages
go/exact
go/gccgoimporter
go/gcimporter
go/importer
go/types
cmd/vet
from the x/tools repo and any files depending on those packages
building against Go 1.4.
x/tools packages depending on any of these libraries must use the
respective versions from the std lib or use vendored versions if
building against 1.4.
Remaining packages may or may not build against Go 1.4 anymore
and will not be supported against 1.4.
Change-Id: I1c655fc30aee49b6c7326ebd4eb1bb0836ac97e0
Reviewed-on: https://go-review.googlesource.com/20810
Reviewed-by: Alan Donovan <adonovan@google.com>
This is simply a copy of std lib's go/internal/gcimporter/bimport.go
with updated header comment and build tag. No semantic changes.
This will fix part of the x/tools build break at tip. The other part
is to adjust bexport.go (next CL).
Change-Id: Ibc37fae7e0d0447fdea9e3a733aa38589735c59a
Reviewed-on: https://go-review.googlesource.com/21543
Reviewed-by: Alan Donovan <adonovan@google.com>
Although these flags are harmless on linux, they
cause clang on darwin to issue an error about
unused flags (-lpthread). We only care about compilation
so we don't need them.
Change-Id: I0fc756e2f4d7a829d43b5aa912c4e4b24a802a1c
Reviewed-on: https://go-review.googlesource.com/21283
Reviewed-by: Robert Griesemer <gri@golang.org>
The os/user.lookup function no longer exists so instead we use
os/user.current. (This function also existed in go1.5.)
Change-Id: Ic66d80acc186289331f1023e0145370feab6a001
Reviewed-on: https://go-review.googlesource.com/21281
Reviewed-by: Robert Griesemer <gri@golang.org>
It has few interesting effects on aliasing and it contains a lot of
unsafe code that we can't analyze.
Change-Id: I66d3592ea7797802c6be36eb30fd17e2ee307e50
Reviewed-on: https://go-review.googlesource.com/21260
Reviewed-by: Robert Griesemer <gri@golang.org>
This fixes some print calls with wrong format directives. Additionally,
struct initialisers were changed to use keyed fields, purely to reduce
the amount of noise generated by go vet.
Change-Id: Ib9f6fd8f2dff7ce84826478de0ba83dda9746270
Reviewed-on: https://go-review.googlesource.com/21180
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Fix the following issue detected by golint:
import.go:9:1: package comment should be of the form "Package importer ..."
It makes the package comment more consistent with other packages.
Change-Id: I1415066c136ce249af19d70848a38203caf7c9c7
Reviewed-on: https://go-review.googlesource.com/21177
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
The previous CL added a duplicate InvalidType to the predecl table so
that it tracked the one used by gc, but this caused it to fail an
assertion of uniqueness, and I ran the wrong tests.
Change-Id: I56342046cea328e503d917127f5b12205df7999a
Reviewed-on: https://go-review.googlesource.com/20870
Reviewed-by: Robert Griesemer <gri@golang.org>
Although invalid types and unknown constant values should never appear
in .a files (since gc will stop with an error before writing export
data), they can now be faithfully encoded and decoded. This makes the
protocol robust for IDE-like applications that must deal with incomplete
or incorrect programs.
(Corresponding std lib CL: https://go-review.googlesource.com/20828)
Change-Id: I539ffd951b90f01705a7f23ec778c623c729d9a0
Reviewed-on: https://go-review.googlesource.com/20827
Reviewed-by: Robert Griesemer <gri@golang.org>