Remove support for multiple traits in a single impl

There was half-working support for them, but they were never fully
implemented or even approved. Remove them altogether.

Closes #3410
This commit is contained in:
Tim Chevalier 2012-09-07 15:11:26 -07:00
parent 62ab9d70f4
commit f5093dff7b
9 changed files with 44 additions and 35 deletions

View file

@ -3532,7 +3532,7 @@ struct Resolver {
fn resolve_implementation(id: node_id,
span: span,
type_parameters: ~[ty_param],
trait_references: ~[@trait_ref],
opt_trait_reference: Option<@trait_ref>,
self_type: @ty,
methods: ~[@method],
visitor: ResolveVisitor) {
@ -3549,10 +3549,10 @@ struct Resolver {
// Resolve the trait reference, if necessary.
let original_trait_refs = self.current_trait_refs;
if trait_references.len() >= 1 {
let mut new_trait_refs = @DVec();
for trait_references.each |trait_reference| {
match self.resolve_path(
match opt_trait_reference {
Some(trait_reference) => {
let new_trait_refs = @DVec();
match self.resolve_path(
trait_reference.path, TypeNS, true, visitor) {
None => {
self.session.span_err(span,
@ -3566,11 +3566,11 @@ struct Resolver {
(*new_trait_refs).push(def_id_of_def(def));
}
}
}
// Record the current set of trait references.
self.current_trait_refs = Some(new_trait_refs);
}
None => ()
}
// Resolve the self type.
self.resolve_type(self_type, visitor);