Not sure where you got this impression - commands run by go generate have only the OS environment. They are just ordinary commands, as might be run by any shell script, just the calls to them are integrated into the Go tooling.
Tools that seem to access go syntax trees and the like? They are simply using the parser and AST tools made available by Go to parse go code, and that can be done at any time, not just during go generate. Howard On Friday, December 14, 2018 at 3:40:40 AM UTC-6, rog wrote: > > To answer your original question, yes, it is possible to do > metaprogramming in Go, although not at compile time. > > That's essentially what the go generate command is about - a command run > by go generate has access to parsed syntax trees, type information and > anything else it likes (bar actual compiler internals), and can generate > whatever code it likes. > > For example, I think it's pretty clear that what the Wire project does > (see https://github.com/google/wire/blob/master/docs/guide.md) is > metaprogramming, to some degree or other. > > cheers, > rog. > >> -- >> >> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.