# 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)
redef fun visit(n)
do
+ if n isa AAnnotation then return
+
if n isa AType then
- var mtype = modelbuilder.resolve_mtype(self.nclassdef, n)
+ var mclassdef = self.nclassdef.mclassdef.as(not null)
+ var mtype = modelbuilder.resolve_mtype(mclassdef, n)
if mtype != null then
self.typecount.inc(mtype)
end