X-Git-Url: http://nitlanguage.org diff --git a/src/metrics/tables_metrics.nit b/src/metrics/tables_metrics.nit index 1c3ce7c..eac5853 100644 --- a/src/metrics/tables_metrics.nit +++ b/src/metrics/tables_metrics.nit @@ -17,14 +17,24 @@ # Metrics on table generation module tables_metrics -import model -private import metrics_base +import metrics_base -# Print class tables statistics for the classes of the program main +redef class ToolContext + var tables_metrics_phase: Phase = new TablesMetricsPhase(self, null) +end + +private class TablesMetricsPhase + super Phase + redef fun process_mainmodule(mainmodule, given_mmodules) + do + if not toolcontext.opt_tables.value and not toolcontext.opt_all.value then return + compute_tables_metrics(mainmodule) + end +end + +# Print class tables metrics for the classes of the program main fun compute_tables_metrics(main: MModule) do - var model = main.model - var nc = 0 # Number of runtime classes var nl = 0 # Number of usages of class definitions (a class definition can be used more than once) var nhp = 0 # Number of usages of properties (a property can be used more than once) @@ -52,7 +62,7 @@ do if p.mpropdefs.length == 1 then npas += 1 else - var sels = p.lookup_definitions(main, c.mclassdefs.first.bound_mtype) + var sels = p.lookup_definitions(main, c.intro.bound_mtype) if sels.length > 1 then print "conflict for {p.full_name} in class {c.full_name}: {sels.join(", ")}" else if sels.is_empty then