lib/opts: report invalid integer passed to an OptionInt
authorAlexis Laferrière <alexis.laf@xymus.net>
Wed, 20 Apr 2016 11:34:29 +0000 (07:34 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Wed, 20 Apr 2016 11:36:59 +0000 (07:36 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

lib/opts.nit
tests/sav/test_opts_args5.res

index da78780..30ea286 100644 (file)
@@ -236,7 +236,13 @@ class OptionInt
                super(help, default, names)
        end
 
-       redef fun convert(str) do return str.to_i
+       redef fun convert(str)
+       do
+               if str.is_int then return str.to_i
+
+               errors.add "Expected an integer for option {names.join(", ")}."
+               return 0
+       end
 end
 
 # An option with a Float as parameter
index 76da1d5..cd209be 100644 (file)
@@ -2,6 +2,8 @@ Arguments: 2
 -i
 one
 Rest: 0
+Errors: 1
+Expected an integer for option -i, --int.
 OptionBool: false
 OptionCount: 0
 OptionString: