-
Notifications
You must be signed in to change notification settings - Fork 396
Open
Description
The following program sample.go triggers an unexpected result
package main
import (
"fmt"
"github.com/traefik/yaegi/interp"
"github.com/traefik/yaegi/stdlib"
)
func main() {
i := interp.New(interp.Options{})
i.Use(stdlib.Symbols)
_, err := i.Eval(`package main`)
if err != nil {
fmt.Println(err)
}
_, err = i.Eval(`import "fmt"`)
if err != nil {
fmt.Println(err)
}
_, err = i.Eval(`
type Person struct {
Name string
Age int
}
`)
if err != nil {
fmt.Println(err)
}
_, err = i.Eval(`
func Z(args ...any) []string {
typs := []string{}
for _, v := range args {
typs = append(typs, fmt.Sprintf("%T", v))
}
return typs
}
`)
if err != nil {
fmt.Println(err)
}
_, err = i.Eval(`
func personDetails() (name string, age int) {
return "Peter", 9
}
`)
if err != nil {
fmt.Println(err)
}
_, err = i.Eval(`
var ZZ = Person{}
`)
if err != nil {
fmt.Println(err)
}
_, err = i.Eval("fmt.Println(Z(personDetails()))")
if err != nil {
panic(err)
}
_, err = i.Eval("fmt.Println(Z(Person{}))")
if err != nil {
panic(err)
}
}Expected result
[string int]
[main.Person]
as per: https://go.dev/play/p/nFe42FDiksgGot
[string int]
[struct { Name string; Age int }]Yaegi Version
v0.16.1
Additional Notes
Metadata
Metadata
Assignees
Labels
No labels