I am using a groovy AST to wrap all code in my function. This happens without the IDE knowing about it because it happens at runtime. Therefore when I setup my breakpoint, it thinks the breakpoint is at file Flow.groovy:23 but at runtime, because the closure is a separate class, the breakpoint really needs to be in another closure class at a different location. Per the IDE. The first image is before I started to debug. Notice that a closure in the script shows breakpoint info reflecting the same file name. But during debug, the breakpoint is actually in a diffferent class/location. How does Groovy achieve this? I possibly need to do something similar right?