I'm curious why we need to support forward declared types. It seems really brittle. Have you looked into this much? If not, I can. http://reviews.llvm.org/D6768 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/