Go: x/tools/cmd/gorename: gorename schlägt fehl mit cgo-verwendenden Dateien

Erstellt am 22. Mai 2016  ·  3Kommentare  ·  Quelle: golang/go

Bitte beantworten Sie diese Fragen, bevor Sie Ihr Problem absenden. Vielen Dank!

1. Welche Go-Version verwenden Sie ( go version )?

go version go1.6 darwin/amd64

2. Welches Betriebssystem und welche Prozessorarchitektur verwenden Sie ( go env )?

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/ash/code/go"
GORACE=""
GOROOT="/Users/ash/.homebrew/Cellar/go/1.6/libexec"
GOTOOLDIR="/Users/ash/.homebrew/Cellar/go/1.6/libexec/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

3. Was hast du gemacht?

Angesichts dieser Eingabedatei demo.go :

package main

// #include <unistd.h>
import "C"
import "fmt"

func main() {
    foo := 1
    C.close(2)
    fmt.Println(foo)
}

Führen Sie diesen Befehl aus: gorename -offset demo.go:#78 -to bar

4. Was haben Sie erwartet?

Ohne Fehler umbenennen: Renamed 2 occurrences in 1 file in 1 package.

5. Was hast du stattdessen gesehen?

Ich habe diesen Fehler erhalten: gorename: -offset "demo.go:#78": no identifier at this position

Tools

Hilfreichster Kommentar

Habe das selbe Problem, gibt es da einen Workaround?

Alle 3 Kommentare

/cc @alandonovan

Habe das selbe Problem, gibt es da einen Workaround?

Ich bin mir nicht sicher, wann (ich bin unterwegs 1.9.2), aber der Fehler wurde geändert in: "gorename: Bezeichner in generierter Datei mit Marker NICHT BEARBEITEN können nicht umbenannt werden"

Und ich habe eine Weile gebraucht, um herauszufinden, dass Gorename bei cgo-Dateien nicht funktioniert. Sollte zumindest die Fehlermeldung ändern, wenn es nicht bald eine Lösung geben wird.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen