From: Didier Spezia Date: Wed, 7 Oct 2015 22:25:25 +0000 (+0000) Subject: cmd/compile: fix some C to Go translation leftovers X-Git-Tag: go1.6beta1~886 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cb0e98b833fc2a5a346912ae725854d96ac79f78;p=gostls13.git cmd/compile: fix some C to Go translation leftovers Following the C to Go translation, some useless variables were left in the code. In fmt.go, this was harmless. In lex.go, it broke the error message related to non-canonical import paths. Fix it, and remove the useless variables. The added test case is ignored in the go/types tests, since the behavior of the non-canonical import path check seems to be different. Fixes #11362 Change-Id: Ic9129139ede90357dc79ebf167af638cf44536fa Reviewed-on: https://go-review.googlesource.com/15580 Reviewed-by: Marvin Stenger Reviewed-by: Minux Ma Run-TryBot: Minux Ma TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/compile/internal/gc/fmt.go b/src/cmd/compile/internal/gc/fmt.go index e5ddf9f50a..b6d44d5fc3 100644 --- a/src/cmd/compile/internal/gc/fmt.go +++ b/src/cmd/compile/internal/gc/fmt.go @@ -1595,8 +1595,6 @@ func Sconv(s *Sym, flag int) string { sf := flag sm := setfmode(&flag) - var r int - _ = r str := symfmt(s, flag) flag = sf fmtmode = sm @@ -1631,8 +1629,6 @@ func Tconv(t *Type, flag int) string { flag |= obj.FmtUnsigned } - var r int - _ = r str := typefmt(t, flag) if fmtmode == FTypeId && (sf&obj.FmtUnsigned != 0) { @@ -1659,8 +1655,6 @@ func Nconv(n *Node, flag int) string { sf := flag sm := setfmode(&flag) - var r int - _ = r var str string switch fmtmode { case FErr, FExp: @@ -1693,8 +1687,6 @@ func Hconv(l *NodeList, flag int) string { sf := flag sm := setfmode(&flag) - var r int - _ = r sep := "; " if fmtmode == FDbg { sep = "\n" diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 1fafdf453c..340e37fc6b 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -595,9 +595,7 @@ func findpkg(name string) (file string, ok bool) { // local imports should be canonicalized already. // don't want to see "encoding/../encoding/base64" // as different from "encoding/base64". - var q string - _ = q - if path.Clean(name) != name { + if q := path.Clean(name); q != name { Yyerror("non-canonical import path %q (should be %q)", name, q) return "", false } diff --git a/src/go/types/stdlib_test.go b/src/go/types/stdlib_test.go index c6c946e976..8fc2ee1451 100644 --- a/src/go/types/stdlib_test.go +++ b/src/go/types/stdlib_test.go @@ -150,6 +150,7 @@ func TestStdFixed(t *testing.T) { "issue7746.go", // large constants - consumes too much memory "issue11326.go", // large constants "issue11326b.go", // large constants + "issue11362.go", // canonical import path check ) } diff --git a/test/fixedbugs/issue11362.go b/test/fixedbugs/issue11362.go new file mode 100644 index 0000000000..680b0e540f --- /dev/null +++ b/test/fixedbugs/issue11362.go @@ -0,0 +1,15 @@ +// errorcheck + +// Copyright 2015 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. + +// Issue 11362: prints empty canonical import path + +package main + +import _ "unicode//utf8" // ERROR "non-canonical import path .unicode//utf8. \(should be .unicode/utf8.\)" "can't find import: .unicode//utf8." + +func main() { +} +