Skip to content

Commit

Permalink
Rollup merge of rust-lang#33666 - xen0n:no-more-nest-levels, r=nikoma…
Browse files Browse the repository at this point in the history
…tsakis

syntax_ext: format: nest_level's are no more

Just noticed this while working on rust-lang#33642 and here's a quick fix, shouldn't touch anything else. It's some historic code indeed...
  • Loading branch information
Manishearth committed May 18, 2016
2 parents 7a759d7 + 2ea6c70 commit 83429f9
Showing 1 changed file with 5 additions and 21 deletions.
26 changes: 5 additions & 21 deletions src/libsyntax_ext/format.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ struct Context<'a, 'b:'a> {

name_positions: HashMap<String, usize>,

/// Updated as arguments are consumed or methods are entered
nest_level: usize,
/// Updated as arguments are consumed
next_arg: usize,
}

Expand Down Expand Up @@ -164,9 +163,7 @@ impl<'a, 'b> Context<'a, 'b> {
let pos = match arg.position {
parse::ArgumentNext => {
let i = self.next_arg;
if self.check_positional_ok() {
self.next_arg += 1;
}
self.next_arg += 1;
Exact(i)
}
parse::ArgumentIs(i) => Exact(i),
Expand All @@ -189,25 +186,13 @@ impl<'a, 'b> Context<'a, 'b> {
self.verify_arg_type(Named(s.to_string()), Unsigned);
}
parse::CountIsNextParam => {
if self.check_positional_ok() {
let next_arg = self.next_arg;
self.verify_arg_type(Exact(next_arg), Unsigned);
self.next_arg += 1;
}
let next_arg = self.next_arg;
self.verify_arg_type(Exact(next_arg), Unsigned);
self.next_arg += 1;
}
}
}

fn check_positional_ok(&mut self) -> bool {
if self.nest_level != 0 {
self.ecx.span_err(self.fmtsp, "cannot use implicit positional \
arguments nested inside methods");
false
} else {
true
}
}

fn describe_num_args(&self) -> String {
match self.args.len() {
0 => "no arguments given".to_string(),
Expand Down Expand Up @@ -655,7 +640,6 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt, sp: Span,
name_positions: HashMap::new(),
name_types: HashMap::new(),
name_ordering: name_ordering,
nest_level: 0,
next_arg: 0,
literal: String::new(),
pieces: Vec::new(),
Expand Down

0 comments on commit 83429f9

Please sign in to comment.