mirror of
https://github.com/golang/go
synced 2024-11-26 19:31:17 -07:00
cc95d85fe4
In an attempt to address issue #65790 (confusing error messages), quoting of names was introduced for some (but not all) names used in error messages. That CL solved the issue at hand at the cost of extra punctuation (the quotes) plus some inconsistency (not all names were quoted). This CL removes the quoting again in favor or adding a qualifying noun (such as "name", "label", "package", "built-in" etc.) before a user- specified name where needed. For instance, instead of invalid argument to `max' we now say invalid argument to built-in max There's still a chance for confusion. For instance, before an error might have been `sadly' not exported by package X and now it would be name sadly not exported by package X but adverbs (such as "sadly") seem unlikely names in programs. This change touches a lot of files but only affects error messages. Fixes #67685. Change-Id: I95435b388f92cade316e2844d59ecf6953b178bc Reviewed-on: https://go-review.googlesource.com/c/go/+/589118 Auto-Submit: Robert Griesemer <gri@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Robert Findley <rfindley@google.com> Reviewed-by: Robert Griesemer <gri@google.com>
58 lines
1.1 KiB
Go
58 lines
1.1 KiB
Go
// run
|
|
|
|
//go:build !js && !wasip1 && gc
|
|
|
|
// Copyright 2017 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.
|
|
|
|
// As of "Mon 6 Nov 2017", run.go doesn't yet have proper
|
|
// column matching so instead match the output manually
|
|
// by exec-ing
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
f, err := ioutil.TempFile("", "issue21317.go")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
fmt.Fprintf(f, `
|
|
package main
|
|
|
|
import "fmt"
|
|
|
|
func main() {
|
|
n, err := fmt.Println(1)
|
|
}
|
|
`)
|
|
f.Close()
|
|
defer os.RemoveAll(f.Name())
|
|
|
|
// compile and test output
|
|
cmd := exec.Command("go", "tool", "compile", "-p=main", "-importcfg="+os.Getenv("STDLIB_IMPORTCFG"), f.Name())
|
|
out, err := cmd.CombinedOutput()
|
|
if err == nil {
|
|
log.Fatalf("expected cmd/compile to fail")
|
|
}
|
|
wantErrs := []string{
|
|
"7:9: declared and not used: n",
|
|
"7:12: declared and not used: err",
|
|
}
|
|
outStr := string(out)
|
|
for _, want := range wantErrs {
|
|
if !strings.Contains(outStr, want) {
|
|
log.Fatalf("failed to match %q\noutput: %q", want, outStr)
|
|
}
|
|
}
|
|
}
|