Go: x/tools/cmd/gorename: gorename échoue avec les fichiers utilisant cgo

Créé le 22 mai 2016  ·  3Commentaires  ·  Source: golang/go

Veuillez répondre à ces questions avant de soumettre votre problème. Merci!

1. Quelle version de Go utilisez-vous ( go version ) ?

go version go1.6 darwin/amd64

2. Quel système d'exploitation et architecture de processeur utilisez-vous ( 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. Qu'avez-vous fait ?

Étant donné ce fichier d'entrée demo.go :

package main

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

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

Exécutez cette commande : gorename -offset demo.go:#78 -to bar

4. Que vous attendiez-vous à voir ?

Il renomme sans erreur : Renamed 2 occurrences in 1 file in 1 package.

5. Qu'avez-vous vu à la place ?

J'ai cette erreur : gorename: -offset "demo.go:#78": no identifier at this position

Tools

Commentaire le plus utile

Ayant le même problème, existe-t-il une solution de contournement?

Tous les 3 commentaires

/cc @alandonovan

Ayant le même problème, existe-t-il une solution de contournement?

Je ne sais pas quand (je suis sur le point 1.9.2) mais l'erreur est devenue : "gorename : impossible de renommer les identifiants dans le fichier généré contenant le marqueur DO NOT EDIT"

Et il m'a fallu un certain temps pour comprendre que gorename ne fonctionne pas sur les fichiers cgo. Devrait au moins changer le message d'erreur s'il n'y aura pas de correctif de sitôt.

Cette page vous a été utile?
0 / 5 - 0 notes