Skip to content

Commit 6598d33

Browse files
committed
Update parse::test::string_to_tts_1 test
1 parent 94d6eee commit 6598d33

File tree

1 file changed

+100
-113
lines changed

1 file changed

+100
-113
lines changed

src/libsyntax/parse/mod.rs

Lines changed: 100 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -793,54 +793,47 @@ mod test {
793793
let tts = string_to_tts("macro_rules! zip (($a)=>($a))".to_string());
794794
let tts: &[ast::TokenTree] = tts.as_slice();
795795
match tts {
796-
[ast::TtToken(_, _),
796+
[ast::TtToken(_, token::IDENT(name_macro_rules, false)),
797797
ast::TtToken(_, token::NOT),
798-
ast::TtToken(_, _),
799-
ast::TtDelimited(_, ast::TtToken(_, token::LPAREN),
800-
ref delim_elts,
801-
ast::TtToken(_, token::RPAREN))] => {
802-
let delim_elts: &[ast::TokenTree] = delim_elts.as_slice();
803-
match delim_elts {
804-
[ast::TtDelimited(_, ast::TtToken(_, token::LPAREN),
805-
ref first_set,
806-
ast::TtToken(_, token::RPAREN)),
807-
ast::TtToken(_, token::FAT_ARROW),
808-
ast::TtDelimited(_, ast::TtToken(_, token::LPAREN),
809-
ref second_set,
810-
ast::TtToken(_, token::RPAREN))] => {
811-
let first_set: &[ast::TokenTree] =
812-
first_set.as_slice();
813-
match first_set {
814-
[ast::TtToken(_, token::DOLLAR), ast::TtToken(_, _)] => {
815-
let second_set: &[ast::TokenTree] =
816-
second_set.as_slice();
817-
match second_set {
818-
[ast::TtToken(_, token::DOLLAR), ast::TtToken(_, _)] => {
819-
assert_eq!("correct","correct")
820-
}
821-
_ => assert_eq!("wrong 4","correct")
822-
}
823-
},
824-
_ => {
825-
error!("failing value 3: {}",first_set);
826-
assert_eq!("wrong 3","correct")
827-
}
798+
ast::TtToken(_, token::IDENT(name_zip, false)),
799+
ast::TtDelimited(_, ref macro_delimed)]
800+
if name_macro_rules.as_str() == "macro_rules"
801+
&& name_zip.as_str() == "zip" => {
802+
let (ref macro_open, ref macro_tts, ref macro_close) = **macro_delimed;
803+
match (macro_open, macro_tts.as_slice(), macro_close) {
804+
(&ast::Delimiter { token: token::LPAREN, .. },
805+
[ast::TtDelimited(_, ref first_delimed),
806+
ast::TtToken(_, token::FAT_ARROW),
807+
ast::TtDelimited(_, ref second_delimed)],
808+
&ast::Delimiter { token: token::RPAREN, .. }) => {
809+
let (ref first_open, ref first_tts, ref first_close) = **first_delimed;
810+
match (first_open, first_tts.as_slice(), first_close) {
811+
(&ast::Delimiter { token: token::LPAREN, .. },
812+
[ast::TtToken(_, token::DOLLAR),
813+
ast::TtToken(_, token::IDENT(name, false))],
814+
&ast::Delimiter { token: token::RPAREN, .. })
815+
if name.as_str() == "a" => {},
816+
_ => fail!("value 3: {}", **first_delimed),
817+
}
818+
let (ref second_open, ref second_tts, ref second_close) = **second_delimed;
819+
match (second_open, second_tts.as_slice(), second_close) {
820+
(&ast::Delimiter { token: token::LPAREN, .. },
821+
[ast::TtToken(_, token::DOLLAR),
822+
ast::TtToken(_, token::IDENT(name, false))],
823+
&ast::Delimiter { token: token::RPAREN, .. })
824+
if name.as_str() == "a" => {},
825+
_ => fail!("value 4: {}", **second_delimed),
828826
}
829827
},
830-
_ => {
831-
error!("failing value 2: {}",delim_elts);
832-
assert_eq!("wrong","correct");
833-
}
828+
_ => fail!("value 2: {}", **macro_delimed),
834829
}
835830
},
836-
_ => {
837-
error!("failing value: {}",tts);
838-
assert_eq!("wrong 1","correct");
839-
},
831+
_ => fail!("value: {}",tts),
840832
}
841833
}
842834

843-
#[test] fn string_to_tts_1 () {
835+
#[test]
836+
fn string_to_tts_1 () {
844837
let tts = string_to_tts("fn a (b : int) { b; }".to_string());
845838
assert_eq!(json::encode(&tts),
846839
"[\
@@ -873,94 +866,88 @@ mod test {
873866
{\
874867
\"variant\":\"TtDelimited\",\
875868
\"fields\":[\
869+
null,\
876870
[\
877871
{\
878-
\"variant\":\"TtToken\",\
879-
\"fields\":[\
880-
null,\
881-
\"LPAREN\"\
882-
]\
883-
},\
884-
{\
885-
\"variant\":\"TtToken\",\
886-
\"fields\":[\
887-
null,\
888-
{\
889-
\"variant\":\"IDENT\",\
890-
\"fields\":[\
891-
\"b\",\
892-
false\
893-
]\
894-
}\
895-
]\
896-
},\
897-
{\
898-
\"variant\":\"TtToken\",\
899-
\"fields\":[\
900-
null,\
901-
\"COLON\"\
902-
]\
903-
},\
904-
{\
905-
\"variant\":\"TtToken\",\
906-
\"fields\":[\
907-
null,\
908-
{\
909-
\"variant\":\"IDENT\",\
910-
\"fields\":[\
911-
\"int\",\
912-
false\
913-
]\
914-
}\
915-
]\
872+
\"span\":null,\
873+
\"token\":\"LPAREN\"\
916874
},\
875+
[\
876+
{\
877+
\"variant\":\"TtToken\",\
878+
\"fields\":[\
879+
null,\
880+
{\
881+
\"variant\":\"IDENT\",\
882+
\"fields\":[\
883+
\"b\",\
884+
false\
885+
]\
886+
}\
887+
]\
888+
},\
889+
{\
890+
\"variant\":\"TtToken\",\
891+
\"fields\":[\
892+
null,\
893+
\"COLON\"\
894+
]\
895+
},\
896+
{\
897+
\"variant\":\"TtToken\",\
898+
\"fields\":[\
899+
null,\
900+
{\
901+
\"variant\":\"IDENT\",\
902+
\"fields\":[\
903+
\"int\",\
904+
false\
905+
]\
906+
}\
907+
]\
908+
}\
909+
],\
917910
{\
918-
\"variant\":\"TtToken\",\
919-
\"fields\":[\
920-
null,\
921-
\"RPAREN\"\
922-
]\
911+
\"span\":null,\
912+
\"token\":\"RPAREN\"\
923913
}\
924914
]\
925915
]\
926916
},\
927917
{\
928918
\"variant\":\"TtDelimited\",\
929919
\"fields\":[\
920+
null,\
930921
[\
931922
{\
932-
\"variant\":\"TtToken\",\
933-
\"fields\":[\
934-
null,\
935-
\"LBRACE\"\
936-
]\
937-
},\
938-
{\
939-
\"variant\":\"TtToken\",\
940-
\"fields\":[\
941-
null,\
942-
{\
943-
\"variant\":\"IDENT\",\
944-
\"fields\":[\
945-
\"b\",\
946-
false\
947-
]\
948-
}\
949-
]\
950-
},\
951-
{\
952-
\"variant\":\"TtToken\",\
953-
\"fields\":[\
954-
null,\
955-
\"SEMI\"\
956-
]\
923+
\"span\":null,\
924+
\"token\":\"LBRACE\"\
957925
},\
926+
[\
927+
{\
928+
\"variant\":\"TtToken\",\
929+
\"fields\":[\
930+
null,\
931+
{\
932+
\"variant\":\"IDENT\",\
933+
\"fields\":[\
934+
\"b\",\
935+
false\
936+
]\
937+
}\
938+
]\
939+
},\
940+
{\
941+
\"variant\":\"TtToken\",\
942+
\"fields\":[\
943+
null,\
944+
\"SEMI\"\
945+
]\
946+
}\
947+
],\
958948
{\
959-
\"variant\":\"TtToken\",\
960-
\"fields\":[\
961-
null,\
962-
\"RBRACE\"\
963-
]\
949+
\"span\":null,\
950+
\"token\":\"RBRACE\"\
964951
}\
965952
]\
966953
]\

0 commit comments

Comments
 (0)