nitunit: set more environment variables NIT_TESTING_ID and SRAND
[nit.git] / src / metrics / rta_metrics.nit
index 40408f3..46d319a 100644 (file)
 # Metrics from RTA
 module rta_metrics
 
-import modelbuilder
 private import rapid_type_analysis
-private import metrics_base
+import metrics_base
 import mmodules_metrics
 import mclasses_metrics
-import frontend
 
 redef class ToolContext
        var rta_metrics_phase: Phase = new RTAMetricsPhase(self, null)
@@ -50,7 +48,7 @@ private class RTAMetricsPhase
                mmetrics.register(new MNLDD(toolcontext.modelbuilder))
                mmetrics.collect(new HashSet[MModule].from([mainmodule]))
                mmetrics.to_console(1, not toolcontext.opt_nocolors.value)
-               if csv then mmetrics.to_csv.save("{out}/{mainmodule}.csv")
+               if csv then mmetrics.to_csv.write_to_file("{out}/{mainmodule}.csv")
 
                var mtypes = new HashSet[MType]
                var analysis = new RapidTypeAnalysis(toolcontext.modelbuilder, mainmodule)
@@ -63,14 +61,14 @@ private class RTAMetricsPhase
                cmetrics.register(analysis.cnli)
                cmetrics.register(analysis.cnlc)
                cmetrics.to_console(1, not toolcontext.opt_nocolors.value)
-               if csv then cmetrics.to_csv.save("{out}/mclasses.csv")
+               if csv then cmetrics.to_csv.write_to_file("{out}/mclasses.csv")
 
                print toolcontext.format_h2("\n ## Total live instances by mtypes")
                var tmetrics = new MetricSet
                tmetrics.register(analysis.tnli)
                tmetrics.register(analysis.tnlc)
                tmetrics.to_console(1, not toolcontext.opt_nocolors.value)
-               if csv then tmetrics.to_csv.save("{out}/mtypes.csv")
+               if csv then tmetrics.to_csv.write_to_file("{out}/mtypes.csv")
 
                print toolcontext.format_h2("\n ## MType complexity")
                var gmetrics = new MetricSet
@@ -78,13 +76,13 @@ private class RTAMetricsPhase
                gmetrics.register(new TDGS)
                gmetrics.collect(mtypes)
                gmetrics.to_console(1, not toolcontext.opt_nocolors.value)
-               if csv then gmetrics.to_csv.save("{out}/complexity.csv")
+               if csv then gmetrics.to_csv.write_to_file("{out}/complexity.csv")
 
                callsite_info(analysis)
 
                # dump type and method infos
                if csv then
-                       analysis.live_types_to_csv.save("{out}/rta_types.csv")
+                       analysis.live_types_to_csv.write_to_file("{out}/rta_types.csv")
                        analysis.live_methods_to_tree.write_to_file("{out}/rta_methods.dat")
                end
        end
@@ -376,7 +374,7 @@ redef class RapidTypeAnalysis
                super
                tnlc.values.inc(mtype)
 
-               if mtype isa MNullableType then mtype = mtype.mtype
+               mtype = mtype.undecorate
                if mtype isa MClassType then
                        cnlc.values.inc(mtype.mclass)
                end
@@ -387,8 +385,7 @@ end
 
 redef class MType
        private fun signature_depth: Int do
-               var mtype = self
-               if mtype isa MNullableType then mtype = mtype.mtype
+               var mtype = self.undecorate
                if not mtype isa MGenericType then return 0
 
                var depth = 0