Factor out a visitor for walking a function body and tracking interesting things about error handling.  NFC.
Factor out a visitor for walking a function body and
tracking interesting things about error handling.  NFC.

Swift SVN r28300

zisko/swift,airspeedswift/swift,deyton/swift,MukeshKumarS/Swift,alblue/swift,slavapestov/swift,apple/swift,stephentyrone/swift,hooman/swift,kstaring/swift,rudkx/swift,airspeedswift/swift,gregomni/swift,airspeedswift/swift,natecook1000/swift,tinysun212/swift-windows,apple/swift,MukeshKumarS/Swift,emilstahl/swift,djwbrown/swift,mightydeveloper/swift,karwa/swift,jckarter/swift,hughbe/swift,jckarter/swift,devincoughlin/swift,roambotics/swift,ben-ng/swift,karwa/swift,kentya6/swift,airspeedswift/swift,LeoShimonaka/swift,russbishop/swift,hughbe/swift,kentya6/swift,danielmartin/swift,gregomni/swift,allevato/swift,amraboelela/swift,nathawes/swift,swiftix/swift,atrick/swift,ahoppen/swift,manavgabhawala/swift,benlangmuir/swift,ben-ng/swift,calebd/swift,swiftix/swift,natecook1000/swift,benlangmuir/swift,alblue/swift,karwa/swift,calebd/swift,huonw/swift,xwu/swift,CodaFi/swift,milseman/swift,cbrentharris/swift,hooman/swift,tjw/swift,atrick/swift,gribozavr/swift,sschiau/swift,jmgc/swift,mightydeveloper/swift,practicalswift/swift,roambotics/swift,deyton/swift,adrfer/swift,kentya6/swift,parkera/swift,apple/swift,kentya6/swift,aschwaighofer/swift,devincoughlin/swift,slavapestov/swift,sdulal/swift,emilstahl/swift,frootloops/swift,alblue/swift,russbishop/swift,harlanhaskins/swift,huonw/swift,shahmishal/swift,jckarter/swift,tkremenek/swift,ahoppen/swift,parkera/swift,glessard/swift,amraboelela/swift,kentya6/swift,Jnosh/swift,JaSpa/swift,airspeedswift/swift,uasys/swift,slavapestov/swift,austinzheng/swift,mightydeveloper/swift,roambotics/swift,airspeedswift/swift,jckarter/swift,gmilos/swift,huonw/swift,felix91gr/swift,slavapestov/swift,xedin/swift,kentya6/swift,therealbnut/swift,tkremenek/swift,therealbnut/swift,ben-ng/swift,alblue/swift,return/swift,practicalswift/swift,hooman/swift,shahmishal/swift,hughbe/swift,frootloops/swift,jopamer/swift,therealbnut/swift,kperryua/swift,shajrawi/swift,swiftix/swift.old,therealbnut/swift,kperryua/swift,shajrawi/swift,natecook1000/swift,parkera/swift,Ivacker/swift,xedin/swift,jopamer/swift,ken0nek/swift,OscarSwanros/swift,ken0nek/swift,return/swift,kstaring/swift,johnno1962d/swift,devincoughlin/swift,deyton/swift,glessard/swift,jckarter/swift,johnno1962d/swift,mightydeveloper/swift,tinysun212/swift-windows,amraboelela/swift,jopamer/swift,jtbandes/swift,lorentey/swift,nathawes/swift,gregomni/swift,brentdax/swift,tjw/swift,tardieu/swift,karwa/swift,atrick/swift,KrishMunot/swift,hughbe/swift,shajrawi/swift,jtbandes/swift,ken0nek/swift,jckarter/swift,dreamsxin/swift,glessard/swift,KrishMunot/swift,nathawes/swift,sdulal/swift,sdulal/swift,bitjammer/swift,khizkhiz/swift,huonw/swift,kperryua/swift,JGiola/swift,ken0nek/swift,austinzheng/swift,swiftix/swift.old,bitjammer/swift,sschiau/swift,nathawes/swift,adrfer/swift,nathawes/swift,gottesmm/swift,russbishop/swift,shajrawi/swift,felix91gr/swift,tardieu/swift,Jnosh/swift,Jnosh/swift,MukeshKumarS/Swift,nathawes/swift,khizkhiz/swift,practicalswift/swift,ken0nek/swift,JGiola/swift,devincoughlin/swift,CodaFi/swift,huonw/swift,jmgc/swift,therealbnut/swift,gottesmm/swift,hooman/swift,milseman/swift,johnno1962d/swift,natecook1000/swift,apple/swift,kperryua/swift,harlanhaskins/swift,tardieu/swift,xedin/swift,sschiau/swift,uasys/swift,MukeshKumarS/Swift,xwu/swift,ahoppen/swift,rudkx/swift,LeoShimonaka/swift,kusl/swift,apple/swift,johnno1962d/swift,brentdax/swift,kusl/swift,uasys/swift,OscarSwanros/swift,khizkhiz/swift,bitjammer/swift,nathawes/swift,SwiftAndroid/swift,gottesmm/swift,swiftix/swift.old,benlangmuir/swift,OscarSwanros/swift,tkremenek/swift,felix91gr/swift,Ivacker/swift,johnno1962d/swift,jtbandes/swift,gribozavr/swift,hooman/swift,xedin/swift,deyton/swift,austinzheng/swift,shahmishal/swift,practicalswift/swift,glessard/swift,atrick/swift,ben-ng/swift,amraboelela/swift,gmilos/swift,hughbe/swift,swiftix/swift,sschiau/swift,arvedviehweger/swift,austinzheng/swift,LeoShimonaka/swift,dduan/swift,IngmarStein/swift,lorentey/swift,ahoppen/swift,LeoShimonaka/swift,emilstahl/swift,russbishop/swift,kusl/swift,brentdax/swift,gregomni/swift,ken0nek/swift,austinzheng/swift,arvedviehweger/swift,kusl/swift,therealbnut/swift,JaSpa/swift,SwiftAndroid/swift,modocache/swift,OscarSwanros/swift,milseman/swift,arvedviehweger/swift,benlangmuir/swift,lorentey/swift,alblue/swift,cbrentharris/swift,tinysun212/swift-windows,swiftix/swift.old,felix91gr/swift,MukeshKumarS/Swift,tinysun212/swift-windows,jopamer/swift,dduan/swift,amraboelela/swift,modocache/swift,jopamer/swift,zisko/swift,shahmishal/swift,gmilos/swift,jmgc/swift,calebd/swift,huonw/swift,emilstahl/swift,sschiau/swift,karwa/swift,sschiau/swift,allevato/swift,gottesmm/swift,devincoughlin/swift,kperryua/swift,apple/swift,amraboelela/swift,lorentey/swift,sschiau/swift,arvedviehweger/swift,russbishop/swift,brentdax/swift,IngmarStein/swift,LeoShimonaka/swift,sschiau/swift,adrfer/swift,djwbrown/swift,xwu/swift,deyton/swift,parkera/swift,natecook1000/swift,xedin/swift,gregomni/swift,stephentyrone/swift,hooman/swift,ben-ng/swift,danielmartin/swift,gottesmm/swift,milseman/swift,modocache/swift,djwbrown/swift,tjw/swift,MukeshKumarS/Swift,stephentyrone/swift,KrishMunot/swift,kstaring/swift,SwiftAndroid/swift,zisko/swift,cbrentharris/swift,parkera/swift,swiftix/swift,aschwaighofer/swift,dduan/swift,Jnosh/swift,uasys/swift,gribozavr/swift,CodaFi/swift,dduan/swift,tinysun212/swift-windows,shajrawi/swift,xwu/swift,tkremenek/swift,codestergit/swift,adrfer/swift,gregomni/swift,swiftix/swift,gribozavr/swift,calebd/swift,roambotics/swift,kusl/swift,frootloops/swift,emilstahl/swift,felix91gr/swift,allevato/swift,Jnosh/swift,swiftix/swift.old,slavapestov/swift,calebd/swift,frootloops/swift,modocache/swift,benlangmuir/swift,johnno1962d/swift,modocache/swift,JaSpa/swift,devincoughlin/swift,SwiftAndroid/swift,jmgc/swift,frootloops/swift,modocache/swift,gribozavr/swift,gottesmm/swift,felix91gr/swift,xwu/swift,sdulal/swift,dreamsxin/swift,khizkhiz/swift,sdulal/swift,therealbnut/swift,tardieu/swift,hughbe/swift,IngmarStein/swift,arvedviehweger/swift,swiftix/swift.old,shajrawi/swift,JGiola/swift,SwiftAndroid/swift,djwbrown/swift,SwiftAndroid/swift,KrishMunot/swift,ahoppen/swift,manavgabhawala/swift,tardieu/swift,codestergit/swift,aschwaighofer/swift,airspeedswift/swift,CodaFi/swift,JGiola/swift,kstaring/swift,roambotics/swift,gmilos/swift,danielmartin/swift,lorentey/swift,swiftix/swift.old,Ivacker/swift,kentya6/swift,cbrentharris/swift,xedin/swift,ben-ng/swift,mightydeveloper/swift,Ivacker/swift,manavgabhawala/swift,swiftix/swift,OscarSwanros/swift,khizkhiz/swift,gmilos/swift,tardieu/swift,bitjammer/swift,tkremenek/swift,lorentey/swift,brentdax/swift,jopamer/swift,adrfer/swift,emilstahl/swift,codestergit/swift,aschwaighofer/swift,dduan/swift,rudkx/swift,djwbrown/swift,jmgc/swift,manavgabhawala/swift,mightydeveloper/swift,uasys/swift,cbrentharris/swift,adrfer/swift,milseman/swift,Ivacker/swift,return/swift,gmilos/swift,huonw/swift,OscarSwanros/swift,practicalswift/swift,jtbandes/swift,tjw/swift,natecook1000/swift,kstaring/swift,MukeshKumarS/Swift,kperryua/swift,gribozavr/swift,rudkx/swift,danielmartin/swift,codestergit/swift,KrishMunot/swift,bitjammer/swift,JGiola/swift,zisko/swift,tjw/swift,JaSpa/swift,glessard/swift,practicalswift/swift,manavgabhawala/swift,uasys/swift,mightydeveloper/swift,roambotics/swift,harlanhaskins/swift,cbrentharris/swift,danielmartin/swift,lorentey/swift,alblue/swift,sdulal/swift,mightydeveloper/swift,emilstahl/swift,shahmishal/swift,Ivacker/swift,shahmishal/swift,jtbandes/swift,xwu/swift,kstaring/swift,zisko/swift,return/swift,return/swift,karwa/swift,alblue/swift,CodaFi/swift,tkremenek/swift,IngmarStein/swift,manavgabhawala/swift,calebd/swift,felix91gr/swift,jtbandes/swift,bitjammer/swift,allevato/swift,manavgabhawala/swift,kusl/swift,benlangmuir/swift,allevato/swift,JaSpa/swift,gribozavr/swift,sdulal/swift,harlanhaskins/swift,devincoughlin/swift,dduan/swift,johnno1962d/swift,tjw/swift,milseman/swift,rudkx/swift,frootloops/swift,atrick/swift,jopamer/swift,adrfer/swift,atrick/swift,Jnosh/swift,khizkhiz/swift,ahoppen/swift,ken0nek/swift,tardieu/swift,return/swift,kstaring/swift,shajrawi/swift,return/swift,JaSpa/swift,JaSpa/swift,practicalswift/swift,jmgc/swift,slavapestov/swift,khizkhiz/swift,codestergit/swift,dduan/swift,KrishMunot/swift,jtbandes/swift,shajrawi/swift,OscarSwanros/swift,danielmartin/swift,IngmarStein/swift,codestergit/swift,SwiftAndroid/swift,tinysun212/swift-windows,deyton/swift,IngmarStein/swift,allevato/swift,aschwaighofer/swift,gottesmm/swift,jmgc/swift,cbrentharris/swift,zisko/swift,natecook1000/swift,jckarter/swift,frootloops/swift,Ivacker/swift,stephentyrone/swift,karwa/swift,aschwaighofer/swift,xedin/swift,Jnosh/swift,karwa/swift,tkremenek/swift,gribozavr/swift,CodaFi/swift,xwu/swift,arvedviehweger/swift,practicalswift/swift,shahmishal/swift,zisko/swift,kperryua/swift,harlanhaskins/swift,codestergit/swift,uasys/swift,austinzheng/swift,bitjammer/swift,JGiola/swift,lorentey/swift,harlanhaskins/swift,milseman/swift,brentdax/swift,parkera/swift,LeoShimonaka/swift,tjw/swift,emilstahl/swift,harlanhaskins/swift,slavapestov/swift,parkera/swift,djwbrown/swift,aschwaighofer/swift,devincoughlin/swift,glessard/swift,deyton/swift,austinzheng/swift,hooman/swift,IngmarStein/swift,swiftix/swift,kusl/swift,parkera/swift,calebd/swift,stephentyrone/swift,Ivacker/swift,stephentyrone/swift,hughbe/swift,arvedviehweger/swift,amraboelela/swift,tinysun212/swift-windows,stephentyrone/swift,kentya6/swift,ben-ng/swift,sdulal/swift,CodaFi/swift,russbishop/swift,modocache/swift,allevato/swift,swiftix/swift.old,KrishMunot/swift,LeoShimonaka/swift,gmilos/swift,LeoShimonaka/swift,xedin/swift,brentdax/swift,rudkx/swift,kusl/swift,danielmartin/swift,cbrentharris/swift,shahmishal/swift,djwbrown/swift,russbishop/swift