go-python / go-python/gopy

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

Ouverte
#357 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
Langage dominant
Go
Étoiles
2.3k
Forks
136
Merge moyen
14 min
PR mergées (30 j)
2

Description

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
```

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.