SILGen: Handle abstraction differences involving single-element labeled tuples.
SILGen: Handle abstraction differences involving single-element labeled tuples.

In a case like:

protocol LabeledRequirement {
  func method(x: Loadable)
}

struct UnlabeledWitness : LabeledRequirement {
  func method(_: Loadable) {}
}

The original requirement type is represented as a labeled single-element TupleType, and the witness is represented as a scalar, but we want to disregard the label and consider the scalars in parallel. Do a pre-pass to strip single-element labels first before trying to destructure or indirect tuples.

Swift SVN r11580

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