Fix nested patterns in rustboot
Fix nested patterns in rustboot

The code for taking pattern-bound variables was being interspersed
with pattern code, so that if a nested pattern failed partway through,
a variable would be taken but never dropped (because the drop code
is inside the block representing the action for the pattern). For
example, in the pattern foo(?i, bar(some[t](_)), _), if the scrutinee
was foo(x, bar(none[t]), y), the variable i would be taken but never
dropped. The patch fixes this bug.

mahkoh/rust,GBGamer/rust,GBGamer/rust,sarojaba/rust-doc-korean,graydon/rust,jashank/rust,robertg/rust,jbclements/rust,shepmaster/rand,ruud-v-a/rust,P1start/rust,jroesch/rust,pshc/rust,pczarn/rust,kmcallister/rust,aepsil0n/rust,LeoTestard/rust,defuz/rust,jashank/rust,richo/rust,philyoon/rust,ebfull/rust,LeoTestard/rust,cllns/rust,miniupnp/rust,nham/rust,omasanori/rust,reem/rust,j16r/rust,l0kod/rust,GBGamer/rust,philyoon/rust,untitaker/rust,gifnksm/rust,jbclements/rust,nwin/rust,pythonesque/rust,rprichard/rust,emk/rust,vhbit/rust,bombless/rust-docs-chinese,rprichard/rust,pythonesque/rust,aidancully/rust,mitsuhiko/rust,erickt/rust,victorvde/rust,avdi/rust,dinfuehr/rust,rohitjoshi/rust,zubron/rust,zachwick/rust,ktossell/rust,erickt/rust,carols10cents/rust,mitsuhiko/rust,aturon/rust,jashank/rust,nwin/rust,kwantam/rust,pelmers/rust,zubron/rust,TheNeikos/rust,GBGamer/rust,reem/rust,AerialX/rust,emk/rust,aneeshusa/rust,AerialX/rust,carols10cents/rust,TheNeikos/rust,richo/rust,Ryman/rust,untitaker/rust,erickt/rust,dwillmer/rust,graydon/rust,zaeleus/rust,TheNeikos/rust,kmcallister/rust,carols10cents/rust,ejjeong/rust,victorvde/rust,richo/rust,mdinger/rust,erickt/rust,aneeshusa/rust,stepancheg/rust-ide-rust,michaelballantyne/rust-gpu,servo/rust,miniupnp/rust,aepsil0n/rust,sarojaba/rust-doc-korean,P1start/rust,rohitjoshi/rust,stepancheg/rust-ide-rust,robertg/rust,XMPPwocky/rust,servo/rust,servo/rust,seanrivera/rust,kimroen/rust,jroesch/rust,ebfull/rust,P1start/rust,mitsuhiko/rust,quornian/rust,defuz/rust,pythonesque/rust,XMPPwocky/rust,dinfuehr/rust,stepancheg/rust-ide-rust,SiegeLord/rust,reem/rust,retep998/rand,kwantam/rust,dinfuehr/rust,SiegeLord/rust,bombless/rust,gifnksm/rust,pshc/rust,P1start/rust,kwantam/rust,rohitjoshi/rust,victorvde/rust,zaeleus/rust,aepsil0n/rust,gifnksm/rust,l0kod/rust,servo/rust,fabricedesre/rust,kimroen/rust,omasanori/rust,andars/rust,AerialX/rust-rt-minimal,ebfull/rust,achanda/rand,victorvde/rust,sae-bom/rust,KokaKiwi/rust,KokaKiwi/rust,stepancheg/rust-ide-rust,dwillmer/rust,zubron/rust,kimroen/rust,huonw/rand,j16r/rust,vhbit/rust,jbclements/rust,jroesch/rust,Ryman/rust,hauleth/rust,ktossell/rust,quornian/rust,miniupnp/rust,jbclements/rust,l0kod/rust,AerialX/rust-rt-minimal,krzysz00/rust,cllns/rust,seanrivera/rust,untitaker/rust,aturon/rust,mvdnes/rust,sarojaba/rust-doc-korean,0x73/rust,Ryman/rust,l0kod/rust,j16r/rust,untitaker/rust,pczarn/rust,jroesch/rust,hauleth/rust,LeoTestard/rust,dwillmer/rust,mvdnes/rust,KokaKiwi/rust,P1start/rust,AerialX/rust,SiegeLord/rust,GBGamer/rust,kwantam/rust,Ryman/rust,ruud-v-a/rust,SiegeLord/rust,graydon/rust,ktossell/rust,michaelballantyne/rust-gpu,zaeleus/rust,dinfuehr/rust,miniupnp/rust,andars/rust,victorvde/rust,erickt/rust,stepancheg/rust-ide-rust,defuz/rust,robertg/rust,pelmers/rust,cllns/rust,jroesch/rust,pshc/rust,zachwick/rust,jashank/rust,SiegeLord/rust,omasanori/rust,sae-bom/rust,victorvde/rust,ejjeong/rust,vhbit/rust,mvdnes/rust,mitsuhiko/rust,aneeshusa/rust,emk/rust,bombless/rust,krzysz00/rust,KokaKiwi/rust,sarojaba/rust-doc-korean,servo/rust,zubron/rust,ebfull/rust,Ryman/rust,mahkoh/rust,kimroen/rust,Ryman/rust,ejjeong/rust,mvdnes/rust,zaeleus/rust,ktossell/rust,mvdnes/rust,michaelballantyne/rust-gpu,pczarn/rust,mdinger/rust,reem/rust,pshc/rust,fabricedesre/rust,0x73/rust,avdi/rust,mdinger/rust,defuz/rust,mitsuhiko/rust,nham/rust,mahkoh/rust,XMPPwocky/rust,LeoTestard/rust,mihneadb/rust,hauleth/rust,jroesch/rust,jashank/rust,kimroen/rust,fabricedesre/rust,dinfuehr/rust,carols10cents/rust,sarojaba/rust-doc-korean,j16r/rust,rprichard/rust,avdi/rust,0x73/rust,dwillmer/rust,aturon/rust,seanrivera/rust,andars/rust,graydon/rust,bombless/rust,mitsuhiko/rust,ebfull/rand,AerialX/rust,mihneadb/rust,mdinger/rust,l0kod/rust,barosl/rust,mahkoh/rust,XMPPwocky/rust,jbclements/rust,ruud-v-a/rust,fabricedesre/rust,dwillmer/rust,nham/rust,dwillmer/rust,andars/rust,reem/rust,aidancully/rust,nwin/rust,pythonesque/rust,aepsil0n/rust,michaelballantyne/rust-gpu,avdi/rust,kmcallister/rust,ejjeong/rust,emk/rust,rohitjoshi/rust,philyoon/rust,philyoon/rust,j16r/rust,kimroen/rust,philyoon/rust,omasanori/rust,0x73/rust,aturon/rust,AerialX/rust-rt-minimal,GBGamer/rust,quornian/rust,XMPPwocky/rust,michaelballantyne/rust-gpu,untitaker/rust,jroesch/rust,zaeleus/rust,rohitjoshi/rust,j16r/rust,pelmers/rust,pshc/rust,michaelballantyne/rust-gpu,P1start/rust,aidancully/rust,0x73/rust,kmcallister/rust,defuz/rust,sarojaba/rust-doc-korean,zaeleus/rust,kwantam/rust,robertg/rust,quornian/rust,mahkoh/rust,emk/rust,bluss/rand,philyoon/rust,omasanori/rust,dwillmer/rust,pelmers/rust,pczarn/rust,emk/rust,andars/rust,nwin/rust,ebfull/rust,pelmers/rust,dinfuehr/rust,stepancheg/rust-ide-rust,quornian/rust,zubron/rust,barosl/rust,hauleth/rust,sarojaba/rust-doc-korean,XMPPwocky/rust,vhbit/rust,LeoTestard/rust,AerialX/rust,KokaKiwi/rust,mahkoh/rust,rprichard/rust,bhickey/rand,carols10cents/rust,zachwick/rust,GBGamer/rust,aidancully/rust,aturon/rust,barosl/rust,waynenilsen/rand,barosl/rust,ktossell/rust,aepsil0n/rust,pczarn/rust,omasanori/rust,krzysz00/rust,sae-bom/rust,reem/rust,seanrivera/rust,servo/rust,sae-bom/rust,zachwick/rust,jashank/rust,vhbit/rust,nwin/rust,defuz/rust,servo/rust,cllns/rust,kmcallister/rust,hauleth/rust,jashank/rust,zubron/rust,pelmers/rust,TheNeikos/rust,robertg/rust,bombless/rust,avdi/rust,AerialX/rust,aepsil0n/rust,gifnksm/rust,miniupnp/rust,pczarn/rust,pshc/rust,ejjeong/rust,ejjeong/rust,untitaker/rust,nwin/rust,mitsuhiko/rust,quornian/rust,mihneadb/rust,emk/rust,richo/rust,miniupnp/rust,arthurprs/rand,zachwick/rust,pythonesque/rust,aidancully/rust,stepancheg/rust-ide-rust,nham/rust,GrahamDennis/rand,zubron/rust,carols10cents/rust,nham/rust,quornian/rust,l0kod/rust,mvdnes/rust,AerialX/rust-rt-minimal,0x73/rust,kwantam/rust,aneeshusa/rust,nwin/rust,vhbit/rust,SiegeLord/rust,dwillmer/rust,miniupnp/rust,aturon/rust,rprichard/rust,nham/rust,fabricedesre/rust,TheNeikos/rust,krzysz00/rust,rohitjoshi/rust,nwin/rust,andars/rust,sae-bom/rust,fabricedesre/rust,fabricedesre/rust,aidancully/rust,jroesch/rust,ruud-v-a/rust,GBGamer/rust,SiegeLord/rust,cllns/rust,pshc/rust,TheNeikos/rust,aneeshusa/rust,jbclements/rust,l0kod/rust,P1start/rust,bombless/rust,graydon/rust,jashank/rust,miniupnp/rust,jbclements/rust,michaelballantyne/rust-gpu,aturon/rust,aneeshusa/rust,mdinger/rust,richo/rust,jbclements/rust,ktossell/rust,barosl/rust,gifnksm/rust,bombless/rust,krzysz00/rust,j16r/rust,barosl/rust,mihneadb/rust,ruud-v-a/rust,hauleth/rust,richo/rust,ebfull/rust,zachwick/rust,sae-bom/rust,avdi/rust,pythonesque/rust,vhbit/rust,zubron/rust,pshc/rust,LeoTestard/rust,barosl/rust,graydon/rust,mihneadb/rust,AerialX/rust-rt-minimal,jbclements/rust,ktossell/rust,seanrivera/rust,cllns/rust,kimroen/rust,0x73/rust,krzysz00/rust,pczarn/rust,robertg/rust,l0kod/rust,KokaKiwi/rust,erickt/rust,mihneadb/rust,vhbit/rust,kmcallister/rust,rprichard/rust,pythonesque/rust,erickt/rust,nham/rust,AerialX/rust-rt-minimal,kmcallister/rust,LeoTestard/rust,seanrivera/rust,mdinger/rust,ruud-v-a/rust,gifnksm/rust,Ryman/rust