For a complicated set of reasons, protocol methods will be modeled as taking the "self" receiver as @inout in the requirement funcdecls, whether they are @mutating or not.  This will allow us to generate better code, eliminate MaterializeExpr, and have immutable arguments someday.
For a complicated set of reasons, protocol methods will be modeled
as taking the "self" receiver as @inout in the requirement funcdecls,
whether they are @mutating or not.  This will allow us to generate better
code, eliminate MaterializeExpr, and have immutable arguments someday.

As such, I think I'm done hacking on this function.  Clean it up and document
its behavior, NFC.


Swift SVN r12117

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