From: Jean Privat Date: Fri, 3 Apr 2015 02:47:05 +0000 (+0700) Subject: toolcontext: call only `errors_info` once at the end X-Git-Tag: v0.7.4~40^2~1 X-Git-Url: http://nitlanguage.org toolcontext: call only `errors_info` once at the end Thus only display one total of errors/warnings, not one per call of `check_errors` Signed-off-by: Jean Privat --- diff --git a/src/modelbuilder.nit b/src/modelbuilder.nit index 38db14a..23f7d49 100644 --- a/src/modelbuilder.nit +++ b/src/modelbuilder.nit @@ -59,6 +59,9 @@ redef class ToolContext phase.process_mainmodule(mainmodule, mmodules) end end + + check_errors + errors_info end end diff --git a/src/phase.nit b/src/phase.nit index bdec532..502d817 100644 --- a/src/phase.nit +++ b/src/phase.nit @@ -147,7 +147,7 @@ redef class ToolContext var time1 = get_time self.info("*** END SEMANTIC ANALYSIS: {time1-time0} ***", 2) - errors_info + self.check_errors end # Process the given `phase` on the `npropdef` diff --git a/src/toolcontext.nit b/src/toolcontext.nit index 62c184a..92a4824 100644 --- a/src/toolcontext.nit +++ b/src/toolcontext.nit @@ -134,13 +134,13 @@ class ToolContext return tags.has("all") or tags.has(tag) end - # Output all current stacked messages and display total error informations + # Output all current stacked messages # # Return true if no errors occurred. # # If some errors occurred, the behavior depends on the value of `keep_going`. - # If `keep_going` is false, then the program exits. - # Else, the error count and the warning count are reset and false is returned. + # If `keep_going` is false, then the total error informations is displayed and the program exits. + # Else, false is returned. fun check_errors: Bool do if messages.length > 0 then @@ -158,21 +158,21 @@ class ToolContext end if error_count > 0 then - errors_info - if not keep_going then exit(1) + if not keep_going then + errors_info + exit(1) + end return false end return true end - # Display (and reset) total error informations + # Display total error informations fun errors_info do if error_count == 0 and warning_count == 0 then return if opt_no_color.value then return sys.stderr.write "Errors: {error_count}. Warnings: {warning_count}.\n" - error_count = 0 - warning_count = 0 end # Display an error