https://github.com/golang/go/issues/16402

On Saturday, July 16, 2016 at 9:51:16 PM UTC-7, bradfitz wrote:
>
> Please file a bug. I lose emails.
>
>
> On Sat, Jul 16, 2016 at 1:29 PM, Vince Prignano <vincenzo...@gmail.com 
> <javascript:>> wrote:
>
>> I just noticed that import paths that start with an uppercase letter 
>> don't get imported automatically after the update.
>>
>> Looking at the code and  
>> https://github.com/golang/tools/blob/master/imports/fix.go#L651,
>> I tried to change the behavior, using strings.ToLower on 
>> `lastTwoComponents` like:
>>
>> for _, pkg := range dirScan {
>> if 
>> !strings.Contains(strings.ToLower(lastTwoComponents(pkg.importPathShort)), 
>> pkgName) {
>> // Speed optimization to minimize disk I/O:
>> // the last two components on disk must contain the
>> // package name somewhere.
>> //
>> // This permits mismatch naming like directory
>> // "go-foo" being package "foo", or "pkg.v3" being "pkg",
>> // or directory "google.golang.org/api/cloudbilling/v1"
>> // being package "cloudbilling", but doesn't
>> // permit a directory "foo" to be package
>> // "bar", which is strongly discouraged
>> // anyway. There's no reason goimports needs
>> // to be slow just to accomodate that.
>> continue
>> }
>> if !canUse(filename, pkg.dir) {
>> continue
>> }
>> candidates = append(candidates, pkg)
>> }
>>
>> and the imports work again like before.
>>
>>
>> This is the test case:
>>  
>> func TestFindImportGoPath(t *testing.T) {
>> goroot, err := ioutil.TempDir("", "goimports-")
>> if err != nil {
>> t.Fatal(err)
>> }
>> defer os.RemoveAll(goroot)
>>
>> origStdlib := stdlib
>> defer func() {
>> stdlib = origStdlib
>> }()
>> stdlib = nil
>>
>> withEmptyGoPath(func() {
>> // Test against imaginary bits/bytes package in std lib
>> bytesDir := filepath.Join(goroot, "src", "pkg", "bits", "Bytes")
>> for _, tag := range build.Default.ReleaseTags {
>> // Go 1.4 rearranged the GOROOT tree to remove the "pkg" path component.
>> if tag == "go1.4" {
>> bytesDir = filepath.Join(goroot, "src", "bits", "Bytes")
>> }
>> }
>> if err := os.MkdirAll(bytesDir, 0755); err != nil {
>> t.Fatal(err)
>> }
>> bytesSrcPath := filepath.Join(bytesDir, "bytes.go")
>> bytesPkgPath := "bits/Bytes"
>> bytesSrc := []byte(`package bytes
>>
>> type Buffer2 struct {}
>> `)
>> if err := ioutil.WriteFile(bytesSrcPath, bytesSrc, 0775); err != nil {
>> t.Fatal(err)
>> }
>> build.Default.GOROOT = goroot
>>
>> got, rename, err := findImportGoPath("bytes", map[string]bool{"Buffer2": 
>> true}, "x.go")
>> if err != nil {
>> t.Fatal(err)
>> }
>> if got != bytesPkgPath || !rename {
>> t.Errorf(`findImportGoPath("bytes", Buffer2 ...)=%q, %t, want "%s", 
>> false`, got, rename, bytesPkgPath)
>> }
>>
>> got, rename, err = findImportGoPath("bytes", map[string]bool{"Missing": 
>> true}, "x.go")
>> if err != nil {
>> t.Fatal(err)
>> }
>> if got != "" || rename {
>> t.Errorf(`findImportGoPath("bytes", Missing ...)=%q, %t, want "", false`, 
>> got, rename)
>> }
>> })
>> }
>>
>>
>>
>> -Vince
>>
>> On Thursday, July 14, 2016 at 10:34:36 PM UTC-7, bradfitz wrote:
>>
>>> goimports has been updated.
>>>
>>> If you've been frustrated by its speed lately, run:
>>>
>>>    $ go get -u golang.org/x/tools/cmd/goimports
>>>
>>> ... and things should be much nicer.
>>>
>>> Details at https://golang.org/cl/24941
>>>
>>> If I broke something, file a bug: https://golang.org/issues/new
>>>
>>> The general speed tracking bug is https://golang.org/issue/16367 (don't 
>>> use for new bugs, only for speed)
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to