rustc: Use coherence for operator overloading.
The only use of the old-style impls is now placement new.
This commit is contained in:
parent
e6d2e49852
commit
93c2f5e0e4
23 changed files with 348 additions and 295 deletions
|
|
@ -31,23 +31,6 @@ fn empty_span() -> span {
|
|||
{lo: 0, hi: 0, expn_info: none}
|
||||
}
|
||||
|
||||
trait path_concat {
|
||||
fn +(id: ident) -> @ast::path;
|
||||
}
|
||||
|
||||
impl methods of path_concat for ident {
|
||||
fn +(id: ident) -> @ast::path {
|
||||
path(self, empty_span()) + id
|
||||
}
|
||||
}
|
||||
|
||||
impl methods of path_concat for @ast::path {
|
||||
fn +(id: ident) -> @ast::path {
|
||||
@{idents: vec::append_one(self.idents, id)
|
||||
with *self}
|
||||
}
|
||||
}
|
||||
|
||||
trait append_types {
|
||||
fn add_ty(ty: @ast::ty) -> @ast::path;
|
||||
fn add_tys(+tys: ~[@ast::ty]) -> @ast::path;
|
||||
|
|
|
|||
|
|
@ -16,12 +16,12 @@ import ext::base::{mk_ctxt, ext_ctxt};
|
|||
import parse;
|
||||
import parse::*;
|
||||
import proto::*;
|
||||
import ast::methods;
|
||||
|
||||
import ast_builder::append_types;
|
||||
import ast_builder::ast_builder;
|
||||
import ast_builder::methods;
|
||||
import ast_builder::path;
|
||||
import ast_builder::path_concat;
|
||||
|
||||
// Transitional reexports so qquote can find the paths it is looking for
|
||||
mod syntax {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue