go-python / go-python/gopy

Cannot use interface methods when returned through function returning `[]Interface` type

Đang mở
#357 0 bình luận 1 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Go
Star
2.3k
Fork
136
Merge trung bình
14 phút
Pull request đã merge (30 ngày)
2

Mô tả

Reproduction steps:
1. Run commands:
```
mkdir dum
cd dum
go mod init dummy.com/dum
mkdir hello
```
2. Create file named `hello/hello.go` with following contents:
```go
package hello

type Example interface {
Sample() int
}

type ExampleImpl struct {
sample int
}

func (example *ExampleImpl) Sample() int {
return example.sample
}

func Hello() []Example {
return []Example{&ExampleImpl{sample: 123}, &ExampleImpl{sample: 321}}
}
```
3. Build with `gopy`:
```
gopy build -output=out dummy.com/dum/hello
```
4. Run the following Python code:
```pycon
>>> from out import hello
>>> output = hello.Hello()
>>> output[0].Sample()
panic: interface conversion: *hello.Example is not hello.Example: missing method Sample

goroutine 17 [running, locked to thread]:
main.hello_Example_Sample(0x2)
/tmp/dum/out/hello.go:1230 +0xf9
zsh: IOT instruction (core dumped) python
```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.