Only permit checked downcasts of an existential to a subtype, not to an arbitrary type that's convertible to the existential. Arbitrary conversions aren't necessarily reversible.
Only permit checked downcasts of an existential to a subtype,
not to an arbitrary type that's convertible to the existential.
Arbitrary conversions aren't necessarily reversible.

The specific test case in rdar://16041990 involves a downcast
to String instead of NSString; that's supportable in principle,
but it's at the very least a significant feature, and clearly
there are non-reversible conversions out there.

Swift SVN r14028

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