Go: x / tools / cmd / gorename: gorename falla con archivos que usan cgo

Creado en 22 may. 2016  ·  3Comentarios  ·  Fuente: golang/go

Responda estas preguntas antes de enviar su problema. ¡Gracias!

1. ¿Qué versión de Go estás usando ( go version )?

go version go1.6 darwin/amd64

2. ¿Qué sistema operativo y arquitectura de procesador está utilizando ( 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é hiciste?

Dado este archivo de entrada demo.go :

package main

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

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

Ejecute este comando: gorename -offset demo.go:#78 -to bar

4. ¿Qué esperabas ver?

Cambia el nombre sin error: Renamed 2 occurrences in 1 file in 1 package.

5. ¿Qué vio en su lugar?

Recibí este error: gorename: -offset "demo.go:#78": no identifier at this position

Tools

Comentario más útil

Si tiene el mismo problema, ¿hay alguna solución al respecto?

Todos 3 comentarios

/ cc @alandonovan

Si tiene el mismo problema, ¿hay alguna solución al respecto?

No estoy seguro de cuándo (estoy en marcha 1.9.2) pero el error cambió a: "gorename: no se pueden cambiar el nombre de los identificadores en el archivo generado que contiene el marcador DO NOT EDIT"

Y me tomó un tiempo darme cuenta de que gorename no funciona en archivos cgo. Debería al menos cambiar el mensaje de error si no va a haber una solución pronto.

¿Fue útil esta página
0 / 5 - 0 calificaciones