-
Notifications
You must be signed in to change notification settings - Fork 18.7k
Closed
Labels
Description
I just try to build my project with GO15VENDOREXPERIMENT support with glide.
But I found there is something wrong when build it.
Code Tree:
# tree
.
├── main.go
└── vendor
├── a
│ └── a.go
└── b
├── b.go
└── vendor
└── a
└── a.go
# find .
.
./vendor
./vendor/b
./vendor/b/b.go
./vendor/b/vendor
./vendor/b/vendor/a
./vendor/b/vendor/a/a.go
./vendor/a
./vendor/a/a.go
./main.go
vendor/a and vendor/b/vendor/a are same package.
vendor/a/a.go
package a
type T struct {
Name string
}
func Test() *T {
return &T{"a"}
}vendor/b/b.go
package b
import (
"a"
)
func Test() *a.T {
return &a.T{"b"}
}main.go
package main
import (
"a"
"b"
"fmt"
)
func main() {
var t1, t2 *a.T
t1 = a.Test()
t2 = b.Test()
fmt.Println(t1, t2)
}When run go build, error occur:
# go build
# c
./main.go:12: cannot use b.Test() (type *"c/vendor/b/vendor/a".T) as type *"c/vendor/a".T in assignment
Is there other goodway to manage those relationships between packages?
Will go build deal vendor/ specially to meet the use?