diff options
| author | Jonas Hietala <tradet.h@gmail.com> | 2014-07-18 20:39:38 +0200 |
|---|---|---|
| committer | Jonas Hietala <tradet.h@gmail.com> | 2014-07-18 20:39:38 +0200 |
| commit | 820a55857a132a14f5a69960f7cfbeec39b5360f (patch) | |
| tree | 56f9aaf634a35365acb680d55cdeeeb66321c353 | |
| parent | 18717fcf6886b803e04bbe21689fd61becab1015 (diff) | |
| download | rust-820a55857a132a14f5a69960f7cfbeec39b5360f.tar.gz rust-820a55857a132a14f5a69960f7cfbeec39b5360f.zip | |
Special case for 0 arguments given in format!
| -rw-r--r-- | src/libsyntax/ext/format.rs | 8 | ||||
| -rw-r--r-- | src/test/compile-fail/ifmt-bad-arg.rs | 10 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index d629bafe2b1..4b245f2c9fd 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -216,10 +216,10 @@ impl<'a, 'b> Context<'a, 'b> { } fn describe_num_args(&self) -> String { - if self.args.len() == 1 { - "there is 1 argument".to_string() - } else { - format!("there are {} arguments", self.args.len()) + match self.args.len() { + 0 => "no arguments given".to_string(), + 1 => "there is 1 argument".to_string(), + x => format!("there are {} arguments", x), } } diff --git a/src/test/compile-fail/ifmt-bad-arg.rs b/src/test/compile-fail/ifmt-bad-arg.rs index 08df96d74e6..6829b1e2721 100644 --- a/src/test/compile-fail/ifmt-bad-arg.rs +++ b/src/test/compile-fail/ifmt-bad-arg.rs @@ -32,13 +32,17 @@ fn main() { // bad number of arguments, see #15780 format!("{0}"); - //^~ ERROR invalid reference to argument `0` (there are 0 arguments) + //~^ ERROR invalid reference to argument `0` (no arguments given) format!("{0} {1}", 1); - //^~ ERROR invalid reference to argument `1` (there is 1 argument) + //~^ ERROR invalid reference to argument `1` (there is 1 argument) format!("{0} {1} {2}", 1, 2); - //^~ ERROR invalid reference to argument `2` (there are 2 arguments) + //~^ ERROR invalid reference to argument `2` (there are 2 arguments) + + format!("{0} {1}"); + //~^ ERROR invalid reference to argument `0` (no arguments given) + //~^^ ERROR invalid reference to argument `1` (no arguments given) // bad syntax of the format string |
