import metrics_base
import static_types_metrics
-import visit_nullable_sends
+import nullables_metrics
import visit_self
import model_stats
import generate_hierarchies
redef class ToolContext
+ # --nullables
+ var opt_nullables = new OptionBool("Compute metrics on nullables send", "--nullables")
# --static-types
var opt_static_types = new OptionBool("Compute explicit static types metrics", "--static-types")
# --tables
redef init
do
super
+ self.option_context.add_option(opt_nullables)
self.option_context.add_option(opt_static_types)
self.option_context.add_option(opt_tables)
self.option_context.add_option(opt_rta)
# limitations under the License.
# Statistics about the usage of nullables
-module visit_nullable_sends
+module nullables_metrics
import modelbuilder
private import typing
end
end
-# Visit the AST and print statistics about the usage of send on nullable reciever.
-fun visit_nullable_sends(modelbuilder: ModelBuilder)
+# Visit the AST and print metrics about the usage of send on nullable reciever.
+fun compute_nullables_metrics(modelbuilder: ModelBuilder)
do
print "--- Sends on Nullable Reciever ---"
var total_sends = 0
print ""
visit_self(modelbuilder)
-print ""
-visit_nullable_sends(modelbuilder)
+# Nullables metrics
+if toolcontext.opt_nullables.value then
+ print ""
+ compute_nullables_metrics(modelbuilder)
+end
# Static types metrics
if toolcontext.opt_static_types.value then