// Only defer function body if the compilation unit is from an actual AS
// file, and the compilation unit is not "invisible" (currently not
// open in IDE). "isInvisible" means the compilation unit is invisible
// to semantic analyzer. It, however, is "visible" to the user in the
// IDE.
final DeferFunctionBody deferFunctionBody;
if(!isInvisible() && specification instanceof FileSpecification)
deferFunctionBody = DeferFunctionBody.ENABLED;
else
deferFunctionBody = DeferFunctionBody.DISABLED;