Improve the logic for analyzing casts between metatypes.
Improve the logic for analyzing casts between metatypes.

Do not fall through from the metatypes analysis code if the analysis could not decide whether the cast would succeed or fail. Make a more explicit decision instead based on the instance type of a metatype.

This fixes some logical errors in analysis of casts between bridged types. They were caused by falling through from the metatypes analysis.

Swift SVN r26120

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