diff options
| author | John Clements <clements@racket-lang.org> | 2013-09-05 14:15:00 -0700 |
|---|---|---|
| committer | John Clements <clements@racket-lang.org> | 2013-09-06 13:35:11 -0700 |
| commit | 0954e66442a169be40f1e65de68a85d7e3dacf3a (patch) | |
| tree | 51d8968d8eb83931f7be39c61ca130e91d128c06 /src/libsyntax/ast_util.rs | |
| parent | d9ba61c786f94ff86339fe83136061657a4c19f9 (diff) | |
| download | rust-0954e66442a169be40f1e65de68a85d7e3dacf3a.tar.gz rust-0954e66442a169be40f1e65de68a85d7e3dacf3a.zip | |
uncomment mtwt_resolve calls
Diffstat (limited to 'src/libsyntax/ast_util.rs')
| -rw-r--r-- | src/libsyntax/ast_util.rs | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index dfac782929d..321ac9428ea 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -991,20 +991,19 @@ pub fn getLast(arr: &~[Mrk]) -> uint { pub fn path_name_eq(a : &ast::Path, b : &ast::Path) -> bool { (a.span == b.span) && (a.global == b.global) - // NOTE: ident->name in lifetimes! - && (a.rp == b.rp) - // NOTE: can a type contain an ident? - && (a.types == b.types) - && (idents_name_eq(a.idents, b.idents)) + && (segments_name_eq(a.segments, b.segments)) } -// are two arrays of idents equal when compared unhygienically? -pub fn idents_name_eq(a : &[ast::ident], b : &[ast::ident]) -> bool { +// are two arrays of segments equal when compared unhygienically? +pub fn segments_name_eq(a : &[ast::PathSegment], b : &[ast::PathSegment]) -> bool { if (a.len() != b.len()) { false } else { - for a.iter().enumerate().advance |(idx,id)|{ - if (id.name != b[idx].name) { + for (idx,seg) in a.iter().enumerate() { + if (seg.identifier.name != b[idx].identifier.name) + // ident -> name problems in lifetime comparison? + || (seg.lifetime != b[idx].lifetime) + || (seg.types != b[idx].types) { return false; } } @@ -1017,16 +1016,21 @@ mod test { use ast::*; use super::*; use std::io; + use opt_vec; + + fn ident_to_segment(id : &ident) -> PathSegment { + PathSegment{identifier:id.clone(), lifetime: None, types: opt_vec::Empty} + } #[test] fn idents_name_eq_test() { - assert!(idents_name_eq(~[ident{name:3,ctxt:4}, - ident{name:78,ctxt:82}], - ~[ident{name:3,ctxt:104}, - ident{name:78,ctxt:182}])); - assert!(!idents_name_eq(~[ident{name:3,ctxt:4}, - ident{name:78,ctxt:82}], - ~[ident{name:3,ctxt:104}, - ident{name:77,ctxt:182}])); + assert!(segments_name_eq([ident{name:3,ctxt:4}, + ident{name:78,ctxt:82}].map(ident_to_segment), + [ident{name:3,ctxt:104}, + ident{name:78,ctxt:182}].map(ident_to_segment))); + assert!(!segments_name_eq([ident{name:3,ctxt:4}, + ident{name:78,ctxt:82}].map(ident_to_segment), + [ident{name:3,ctxt:104}, + ident{name:77,ctxt:182}].map(ident_to_segment))); } #[test] fn xorpush_test () { |
