rustc: Generalize several parts of infer in preparation for using them for region bounds as well
rustc: Generalize several parts of infer in preparation for using them for region bounds as well

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