Have the prechecker pass of the type checker fold T[] and T? expressions when T is a TypeExpr, forming a larger typeexpr.  We only form TypeExprs in narrow cases, but this handles the archetype cases in the tests.
Have the prechecker pass of the type checker fold T[] and T? expressions when
T is a TypeExpr, forming a larger typeexpr.  We only form TypeExprs in narrow
cases, but this handles the archetype cases in the tests.

This is progress towards:
<rdar://problem/15588967> Array type sugar default construction syntax doesn't work
<rdar://problem/15295763> default constructing an optional fails to typecheck



Swift SVN r16959

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