about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2016-03-16 05:57:03 -0400
committerNiko Matsakis <niko@alum.mit.edu>2016-03-25 14:07:19 -0400
commit2291abf313b1c619a34694e1756ddaf2a5cb34d9 (patch)
tree9705c3b38095d9691865a32dbcacd1464f6b8d80 /src/rustllvm/ExecutionEngineWrapper.cpp
parentcd5cf09635c41e3f9b6df79a50c1fb24ee855153 (diff)
downloadrust-2291abf313b1c619a34694e1756ddaf2a5cb34d9.tar.gz
rust-2291abf313b1c619a34694e1756ddaf2a5cb34d9.zip
refactor item-paths in diagnostics, symbol names
This change has a few parts. We introduce a new `item_path` module for
constructing item paths. The job of this module is basically to make
nice, user-readable paths -- but these paths are not necessarily 100%
unique. They meant to help a *human* find code, but not necessarily a
compute. These paths are used to drive `item_path_str` but also symbol
names.

Because the paths are not unique, we also modify the symbol name hash to
include the full `DefPath`, whereas before it included only those
aspects of the def-path that were not included in the "informative"
symbol name.

Eventually, I'd like to make the item-path infrastructure a bit more
declarative.  Right now it's based purely on strings. In particular, for
impls, we should supply the raw types to the `ItemPathBuffer`, so that
symbol names can be encoded using the C++ encoding scheme for better
integration with tooling.
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions