TryAddFinal - a walker that attempts to add 'final' when to decls.
TryAddFinal - a walker that attempts to add 'final' when to decls.

TryAddFinal will recursively walk declarations (unless the class is
objc), attempting to add 'final' when appropriate. It can add final to
members that are not overridden, and are either private or internal
and in whole-compilation mode.

Currently does not add 'final' to classes, only properties and
methods. Should be invoked after normal type checking, so that we have
seen overridding definitions and established accessibility.

Swift SVN r20337

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