Skip to content

Commit 42c3e18

Browse files
committed
---
yaml --- r: 159770 b: refs/heads/auto c: 2293a04 h: refs/heads/master v: v3
1 parent 5f2689a commit 42c3e18

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1010
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1111
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1212
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
13-
refs/heads/auto: 7ef200774fbb8e5f4961f63a83cf5bbe27cd5f8f
13+
refs/heads/auto: 2293a04b4936a11fc3e09f3df8a8ab591e034f29
1414
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1515
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1616
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/src/libsyntax/parse/mod.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -730,10 +730,11 @@ mod test {
730730
use attr::AttrMetaMethods;
731731
use parse::parser::Parser;
732732
use parse::token::{str_to_ident};
733+
use print::pprust::view_item_to_string;
733734
use ptr::P;
734735
use util::parser_testing::{string_to_tts, string_to_parser};
735736
use util::parser_testing::{string_to_expr, string_to_item};
736-
use util::parser_testing::string_to_stmt;
737+
use util::parser_testing::{string_to_stmt, string_to_view_item};
737738

738739
// produce a codemap::span
739740
fn sp(a: u32, b: u32) -> Span {
@@ -1083,6 +1084,30 @@ mod test {
10831084
span: sp(0,21)})));
10841085
}
10851086

1087+
#[test] fn parse_use() {
1088+
let use_s = "use foo::bar::baz;";
1089+
let vitem = string_to_view_item(use_s.to_string());
1090+
let vitem_s = view_item_to_string(&vitem);
1091+
assert_eq!(vitem_s.as_slice(), use_s);
1092+
1093+
let use_s = "use foo::bar as baz;";
1094+
let vitem = string_to_view_item(use_s.to_string());
1095+
let vitem_s = view_item_to_string(&vitem);
1096+
assert_eq!(vitem_s.as_slice(), use_s);
1097+
}
1098+
1099+
#[test] fn parse_extern_crate() {
1100+
let ex_s = "extern crate foo;";
1101+
let vitem = string_to_view_item(ex_s.to_string());
1102+
let vitem_s = view_item_to_string(&vitem);
1103+
assert_eq!(vitem_s.as_slice(), ex_s);
1104+
1105+
let ex_s = "extern crate \"foo\" as bar;";
1106+
let vitem = string_to_view_item(ex_s.to_string());
1107+
let vitem_s = view_item_to_string(&vitem);
1108+
assert_eq!(vitem_s.as_slice(), ex_s);
1109+
}
1110+
10861111
fn get_spans_of_pat_idents(src: &str) -> Vec<Span> {
10871112
let item = string_to_item(src.to_string()).unwrap();
10881113

branches/auto/src/libsyntax/util/parser_testing.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,13 @@ pub fn string_to_stmt(source_str : String) -> P<ast::Stmt> {
6767
})
6868
}
6969

70+
/// Parse a string, return a view item
71+
pub fn string_to_view_item (source_str : String) -> ast::ViewItem {
72+
with_error_checking_parse(source_str, |p| {
73+
p.parse_view_item(Vec::new())
74+
})
75+
}
76+
7077
/// Parse a string, return a pat. Uses "irrefutable"... which doesn't
7178
/// (currently) affect parsing.
7279
pub fn string_to_pat(source_str: String) -> P<ast::Pat> {

0 commit comments

Comments
 (0)