go-python / go-python/gopy

Type aliases points to the underlying type not the root one, this cause issues where the autogenerated go package does not build if it links to internal packages.

Open
#348 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
2.3k
Forks
136
Avg merge
14m
Merged PRs (30d)
2

Description

I have code like this:
```
.
├── a.go
├── b
│   ├── b.go
│   └── internal
│   └── internal.go
└── go.mod
```
```go
// a.go
package a

import "a/b"

type A = b.B
```
```go
// b.go
package b

import "a/b/internal"

type B = internal.I
```
```go
// internal.go
package internal

import "strconv"

type I uint

func (i I) String() string { return strconv.FormatUint(uint64(i), 10) }
```
`gopy pkg a` then creates a folder `a/a` and tries to import `a/b/internal` which does not work because it's not allowed to import an internal package.

My real world usecase is some existing librairy with type alias chains going through multiple modules.

I think this could be solved with the `GODEBUG=gotypesalias=1` https://pkg.go.dev/go/types#Alias but I'm not familiar with the gopy codebase.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.