auto merge of #10523 : huonw/rust/10522, r=cmr
auto merge of #10523 : huonw/rust/10522, r=cmr

If any of the digits was one past the maximum (e.g. 10**9 for base 10),
then this wasn't detected correctly and so the length of the digit was
one more than expected, causing a very large allocation.

Fixes #10522.
Fixes #10288.

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