about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2015-03-04 15:19:27 -0500
committerNiko Matsakis <niko@alum.mit.edu>2015-03-06 18:27:50 -0500
commitdbec033e29417ab01bae5749b58f8866b300f005 (patch)
tree8725f72a452dbfe0830e3eefb27d677d0386ab70 /src/rustllvm/ExecutionEngineWrapper.cpp
parent4d716decb5d9944bc0d79cdc51b03e3af69bc59c (diff)
downloadrust-dbec033e29417ab01bae5749b58f8866b300f005.tar.gz
rust-dbec033e29417ab01bae5749b58f8866b300f005.zip
Change the data structures for tracking defaulted traits. In the tcx, we
now have a simple set of trait def-ids. During coherence, we use a
separate table to track the default impls for any given trait so that we
can report a nice error. This fixes various bugs in the metadata
encoding that led to `ty::trait_has_default_impl` yielding the wrong
values in the cross-crate case. (In particular, default impl def-ids
were not included in the list of all impl def-ids; I debated fixing just
that, but this approach seemed cleaner overall, since we usually treat
the "defaulted" bit on traits as being a property of the trait, and now
iterating over a list of impls doesn't intermingle default impls with
normal impls.)
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions