Skip to content

Commit 496996c

Browse files
committed
Remove code in syntax::codemap.
1 parent 1979f96 commit 496996c

File tree

2 files changed

+0
-189
lines changed

2 files changed

+0
-189
lines changed

src/libsyntax/codemap.rs

-185
Original file line numberDiff line numberDiff line change
@@ -409,101 +409,6 @@ impl CodeMap {
409409
hi.col.to_usize() + 1)).to_string()
410410
}
411411

412-
// Returns true if two spans have the same callee
413-
// (Assumes the same ExpnFormat implies same callee)
414-
fn match_callees(&self, sp_a: &Span, sp_b: &Span) -> bool {
415-
let fmt_a = self
416-
.with_expn_info(sp_a.expn_id,
417-
|ei| ei.map(|ei| ei.callee.format.clone()));
418-
419-
let fmt_b = self
420-
.with_expn_info(sp_b.expn_id,
421-
|ei| ei.map(|ei| ei.callee.format.clone()));
422-
fmt_a == fmt_b
423-
}
424-
425-
/// Returns a formatted string showing the expansion chain of a span
426-
///
427-
/// Spans are printed in the following format:
428-
///
429-
/// filename:start_line:col: end_line:col
430-
/// snippet
431-
/// Callee:
432-
/// Callee span
433-
/// Callsite:
434-
/// Callsite span
435-
///
436-
/// Callees and callsites are printed recursively (if available, otherwise header
437-
/// and span is omitted), expanding into their own callee/callsite spans.
438-
/// Each layer of recursion has an increased indent, and snippets are truncated
439-
/// to at most 50 characters. Finally, recursive calls to the same macro are squashed,
440-
/// with '...' used to represent any number of recursive calls.
441-
pub fn span_to_expanded_string(&self, sp: Span) -> String {
442-
self.span_to_expanded_string_internal(sp, "")
443-
}
444-
445-
fn span_to_expanded_string_internal(&self, sp:Span, indent: &str) -> String {
446-
let mut indent = indent.to_owned();
447-
let mut output = "".to_owned();
448-
let span_str = self.span_to_string(sp);
449-
let mut span_snip = self.span_to_snippet(sp)
450-
.unwrap_or("Snippet unavailable".to_owned());
451-
452-
// Truncate by code points - in worst case this will be more than 50 characters,
453-
// but ensures at least 50 characters and respects byte boundaries.
454-
let char_vec: Vec<(usize, char)> = span_snip.char_indices().collect();
455-
if char_vec.len() > 50 {
456-
span_snip.truncate(char_vec[49].0);
457-
span_snip.push_str("...");
458-
}
459-
460-
output.push_str(&format!("{}{}\n{}`{}`\n", indent, span_str, indent, span_snip));
461-
462-
if sp.expn_id == NO_EXPANSION || sp.expn_id == COMMAND_LINE_EXPN {
463-
return output;
464-
}
465-
466-
let mut callee = self.with_expn_info(sp.expn_id,
467-
|ei| ei.and_then(|ei| ei.callee.span.clone()));
468-
let mut callsite = self.with_expn_info(sp.expn_id,
469-
|ei| ei.map(|ei| ei.call_site.clone()));
470-
471-
indent.push_str(" ");
472-
let mut is_recursive = false;
473-
474-
while callee.is_some() && self.match_callees(&sp, &callee.unwrap()) {
475-
callee = self.with_expn_info(callee.unwrap().expn_id,
476-
|ei| ei.and_then(|ei| ei.callee.span.clone()));
477-
is_recursive = true;
478-
}
479-
if let Some(span) = callee {
480-
output.push_str(&indent);
481-
output.push_str("Callee:\n");
482-
if is_recursive {
483-
output.push_str(&indent);
484-
output.push_str("...\n");
485-
}
486-
output.push_str(&(self.span_to_expanded_string_internal(span, &indent)));
487-
}
488-
489-
is_recursive = false;
490-
while callsite.is_some() && self.match_callees(&sp, &callsite.unwrap()) {
491-
callsite = self.with_expn_info(callsite.unwrap().expn_id,
492-
|ei| ei.map(|ei| ei.call_site.clone()));
493-
is_recursive = true;
494-
}
495-
if let Some(span) = callsite {
496-
output.push_str(&indent);
497-
output.push_str("Callsite:\n");
498-
if is_recursive {
499-
output.push_str(&indent);
500-
output.push_str("...\n");
501-
}
502-
output.push_str(&(self.span_to_expanded_string_internal(span, &indent)));
503-
}
504-
output
505-
}
506-
507412
/// Return the source span - this is either the supplied span, or the span for
508413
/// the macro callsite that expanded to it.
509414
pub fn source_callsite(&self, sp: Span) -> Span {
@@ -1069,59 +974,6 @@ mod tests {
1069974
assert_eq!(sstr, "blork.rs:2:1: 2:12");
1070975
}
1071976

1072-
#[test]
1073-
fn t10() {
1074-
// Test span_to_expanded_string works in base case (no expansion)
1075-
let cm = init_code_map();
1076-
let span = Span { lo: BytePos(0), hi: BytePos(11), expn_id: NO_EXPANSION };
1077-
let sstr = cm.span_to_expanded_string(span);
1078-
assert_eq!(sstr, "blork.rs:1:1: 1:12\n`first line.`\n");
1079-
1080-
let span = Span { lo: BytePos(12), hi: BytePos(23), expn_id: NO_EXPANSION };
1081-
let sstr = cm.span_to_expanded_string(span);
1082-
assert_eq!(sstr, "blork.rs:2:1: 2:12\n`second line`\n");
1083-
}
1084-
1085-
#[test]
1086-
fn t11() {
1087-
// Test span_to_expanded_string works with expansion
1088-
let cm = init_code_map();
1089-
let root = Span { lo: BytePos(0), hi: BytePos(11), expn_id: NO_EXPANSION };
1090-
let format = ExpnFormat::MacroBang(keywords::Invalid.name());
1091-
let callee = NameAndSpan { format: format,
1092-
allow_internal_unstable: false,
1093-
span: None };
1094-
1095-
let info = ExpnInfo { call_site: root, callee: callee };
1096-
let id = cm.record_expansion(info);
1097-
let sp = Span { lo: BytePos(12), hi: BytePos(23), expn_id: id };
1098-
1099-
let sstr = cm.span_to_expanded_string(sp);
1100-
assert_eq!(sstr,
1101-
"blork.rs:2:1: 2:12\n`second line`\n Callsite:\n \
1102-
blork.rs:1:1: 1:12\n `first line.`\n");
1103-
}
1104-
1105-
/// Test merging two spans on the same line
1106-
#[test]
1107-
fn span_merging() {
1108-
let cm = CodeMap::new();
1109-
let inputtext = "bbbb BB bb CCC\n";
1110-
let selection1 = " ~~ \n";
1111-
let selection2 = " ~~~\n";
1112-
cm.new_filemap_and_lines("blork.rs", None, inputtext);
1113-
let span1 = span_from_selection(inputtext, selection1);
1114-
let span2 = span_from_selection(inputtext, selection2);
1115-
1116-
if let Some(sp) = cm.merge_spans(span1, span2) {
1117-
let sstr = cm.span_to_expanded_string(sp);
1118-
assert_eq!(sstr, "blork.rs:1:6: 1:15\n`BB bb CCC`\n");
1119-
}
1120-
else {
1121-
assert!(false);
1122-
}
1123-
}
1124-
1125977
/// Test failing to merge two spans on different lines
1126978
#[test]
1127979
fn span_merging_fail() {
@@ -1221,41 +1073,4 @@ mod tests {
12211073
let id_end = cm.record_expansion(info_end);
12221074
Span { lo: BytePos(37), hi: BytePos(48), expn_id: id_end }
12231075
}
1224-
1225-
#[test]
1226-
fn t12() {
1227-
// Test span_to_expanded_string collapses recursive macros and handles
1228-
// recursive callsite and callee expansions
1229-
let cm = init_code_map();
1230-
let end = init_expansion_chain(&cm);
1231-
let sstr = cm.span_to_expanded_string(end);
1232-
let res_str =
1233-
r"blork2.rs:2:1: 2:12
1234-
`second line`
1235-
Callsite:
1236-
...
1237-
blork2.rs:1:1: 1:12
1238-
`first line.`
1239-
Callee:
1240-
blork.rs:2:1: 2:12
1241-
`second line`
1242-
Callee:
1243-
blork.rs:1:1: 1:12
1244-
`first line.`
1245-
Callsite:
1246-
blork.rs:1:1: 1:12
1247-
`first line.`
1248-
Callsite:
1249-
...
1250-
blork.rs:2:1: 2:12
1251-
`second line`
1252-
Callee:
1253-
blork.rs:1:1: 1:12
1254-
`first line.`
1255-
Callsite:
1256-
blork.rs:1:1: 1:12
1257-
`first line.`
1258-
";
1259-
assert_eq!(sstr, res_str);
1260-
}
12611076
}

src/libsyntax_pos/lib.rs

-4
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,6 @@ pub const NO_EXPANSION: ExpnId = ExpnId(!0);
263263
// For code appearing from the command line
264264
pub const COMMAND_LINE_EXPN: ExpnId = ExpnId(!1);
265265

266-
// For code generated by a procedural macro, without knowing which
267-
// Used in `qquote!`
268-
pub const PROC_EXPN: ExpnId = ExpnId(!2);
269-
270266
impl ExpnId {
271267
pub fn from_u32(id: u32) -> ExpnId {
272268
ExpnId(id)

0 commit comments

Comments
 (0)