about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-08-30 00:47:10 -0700
committerAlex Crichton <alex@alexcrichton.com>2013-09-02 23:12:41 -0700
commit36a4af49e0d66026e8ee7d156b2631208c4de2e5 (patch)
tree669d42fe25c44bcfb30d7a1b1b723556c661967e /src/rustllvm/RustWrapper.cpp
parent4600212a385b41f0c718b6b07dbb6c2c4531314a (diff)
downloadrust-36a4af49e0d66026e8ee7d156b2631208c4de2e5.tar.gz
rust-36a4af49e0d66026e8ee7d156b2631208c4de2e5.zip
Remove __extensions__ in names for a "pretty name"
As with the previous commit, this is targeted at removing the possibility of
collisions between statics. The main use case here is when there's a
type-parametric function with an inner static that's compiled as a library.
Before this commit, any impl would generate a path item of "__extensions__".
This changes this identifier to be a "pretty name", which is either the last
element of the path of the trait implemented or the last element of the type's
path that's being implemented.  That doesn't quite cut it though, so the (trait,
type) pair is hashed and again used to append information to the symbol.

Essentially, __extensions__ was removed for something nicer for debugging, and
then some more information was added to symbol name by including a hash of the
trait being implemented and type it's being implemented for. This should prevent
colliding names for inner statics in regular functions with similar names.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions