Construct const fns based on the type, not the definition.
Construct const fns based on the type, not the definition.

Otherwise we can add a null environment when we shouldn't.

Fixes #5210.

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