#863·expr

Avoid reflect.MethodByName

Author: vincentbernatCreated Nov 21, 2025Updated Mar 31, 2026
Labelsfeature

Hey!

When using reflect.Method() or reflect.MethodByName() with a non-constant argument, dead code elimination is disabled for public functions. This makes the final binary bigger than it should. See for example https://github.com/kubernetes/kubernetes/issues/132216 for an effort on the subject.

I am using the expr.Function() to declare function, so I think it should be possible to avoid calling reflect.MethodByName(). Would you consider a tag "exprdeclarative" or something like that to opt out reflect?

This would also disable some builtins, like get.