Bootstrapped and tested on x86_64-linux with no regressions. Hopefully this patch is legible enough for reviewing purposes, I've not been feeling the greatest so it was a task to get this finished. Tomorrow I will look at putting the diagnostics in start_preparsed_function and also fixing up anything else. To reiterate in case it wasn't abundantly clear by the barren changelog and commit message, this version is not intended as the final revision. Handling re-declarations was kind of nightmarish, so the comments in there are lengthy, but I am fairly certain I implemented them correctly. I am going to get some sleep now, hopefully I will feel better tomorrow and be ready to polish off the patch. Thanks for the patience. Alex