Is there a way to get the expression object for a function?

Quick followup in case anyone knows. I suppose this is more related to how exactly the broadcast function works, but it appears to create an anonymous function with a bunch of temporary variables. For example,

julia> import Base.broadcast

julia> @generated function broadcast(f,args::Symbol...)
           Base.uncompressed_ast(f.name.mt.defs.func)
       end
broadcast (generic function with 99 methods)

julia> :a .+ :b .* :c
CodeInfo(:(begin 
        #temp#@_5 = #temp#@_3 * #temp#@_4
        return #temp#@_2 + #temp#@_5
    end))

Does there perhaps already exist a function in Julia to return this form back into a single expression such as is returned by just defining the function ourselves:

julia> Base.uncompressed_ast(first(methods((a,b,c)->a+b*c)))
CodeInfo(:(begin 
        nothing
        return a + b * c
    end))