diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2015-03-04 15:19:27 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2015-03-06 18:27:50 -0500 |
| commit | dbec033e29417ab01bae5749b58f8866b300f005 (patch) | |
| tree | 8725f72a452dbfe0830e3eefb27d677d0386ab70 /src/rustllvm/ExecutionEngineWrapper.cpp | |
| parent | 4d716decb5d9944bc0d79cdc51b03e3af69bc59c (diff) | |
| download | rust-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
