Tags: switchupcb/yaegi
Tags
stdlib: remove wrapper of runtime/cgo Temporarily removing this wrapper which causes a failure on freebsd system at build. Fixes traefik#1221.
interp: fix interface wrapper generation Add early detection of cases where no wrapper is necessary because the value type already implements the target interface. It should both increase performances by avoiding the wrapper overhead, and fix errors due to replacing valid values by incomplete wrappers, caused by the presence of private methods in the interface definition, as in traefik#1191. Fixes traefik#1191.
interp: fix append of values to an array of interface objects Interface wrappers were not properly generated. Fixes traefik#1185
interp: improve handling of interface values In selector resolution, struct field matching now precedes method matching. Before struct field matching could be skipped in case of a matching method, which is incorrect, as demontrated by _test/issue-1156.go. Field lookup has been fixed to operate on recursive structures. Concrete type values are derived when filling a receiver for interface methods. LookupBinField has been fixed to skip non struct values. LookupMethod has been fixed to iterate on interface values as well as concrete type values. Fixes traefik#1156.
interp: fix assign of function call with implicit type assert. De-optimize a use case to avoid skipping an assign operation with an implicit type assertion at function call return. Fixes traefik#1122.
interp: improve handling of aliased types Avoid to test directly for a type category, as it may give wrong results for aliased types, where the interesting category remains masked. Instead, use some property helpers, such as isFuncSrc, isPtrSrc and isInterfaceSrc to check if a type is of source function, source pointer or source interface respectively (versus runtime defined function, pointer or interface). Fixes traefik#1068.
PreviousNext