X-Git-Url: http://nitlanguage.org diff --git a/src/metrics/static_types_metrics.nit b/src/metrics/static_types_metrics.nit index 29b3cfc..45c429b 100644 --- a/src/metrics/static_types_metrics.nit +++ b/src/metrics/static_types_metrics.nit @@ -17,18 +17,16 @@ # Metrics on the usage of explicit static types. module static_types_metrics -private import metrics_base -import modelbuilder -import modelize_class -import frontend +import metrics_base +import modelize redef class ToolContext - var static_types_metrics_phase = new StaticTypesMetricsPhase(self, null) + var static_types_metrics_phase: Phase = new StaticTypesMetricsPhase(self, null) end private class StaticTypesMetricsPhase super Phase - redef fun process_mainmodule(mainmodule) + redef fun process_mainmodule(mainmodule, given_mmodules) do if not toolcontext.opt_static_types.value and not toolcontext.opt_all.value then return compute_static_types_metrics(toolcontext.modelbuilder) @@ -53,8 +51,12 @@ private class ATypeCounterVisitor redef fun visit(n) do - if n isa AType then - var mtype = modelbuilder.resolve_mtype(self.nclassdef, n) + if n isa AAnnotation then return + + if n isa AType then do + var mclassdef = self.nclassdef.mclassdef + if mclassdef == null then break + var mtype = modelbuilder.resolve_mtype(mclassdef, n) if mtype != null then self.typecount.inc(mtype) end