traefik / yaegi

Yaegi is Another Elegant Go Interpreter
https://pkg.go.dev/github.com/traefik/yaegi
Apache License 2.0
7.02k stars 349 forks source link

Constant definition loop with grpc package #1584

Open alexeyvale opened 1 year ago

alexeyvale commented 1 year ago

The following program triggers an unexpected result

package main

// yaegi:tags purego appengine

import "google.golang.org/grpc"

func main() {
}

Expected result

Nothing happens with no errors.

Got

6:9: import "google.golang.org/grpc" error: src\vendor\google.golang.org\grpc\balancer_conn_wrappers.go:27:2: import "google.golang.org/grpc/balancer" error: src\vendor\google.golang.org\grpc\balancer\balancer.go:30:2: import "google.golang.org/grpc/channelz" error: src\vendor\google.golang.org\grpc\channelz\channelz.go:32:8: import "google.golang.org/grpc/internal/channelz" error: src\vendor\google.golang.org\grpc\internal\channelz\types.go:28:2: import "google.golang.org/grpc/credentials" error: src\vendor\google.golang.org\grpc\credentials\credentials.go:31:2: import "github.com/golang/protobuf/proto" error: src\vendor\github.com\golang\protobuf\proto\buffer.go:11:2: import "google.golang.org/protobuf/encoding/prototext" error: src\vendor\google.golang.org\protobuf\encoding\prototext\decode.go:19:2: import "google.golang.org/protobuf/proto" error: src\vendor\google.golang.org\protobuf\proto\proto_methods.go:18:1: constant definition loop

Yaegi Version

v0.15.1

Additional Notes

I saw similar issue, but it is closed, and the problem still persists. The program was run with Eval method of interp.Interpreter.