*** METRICS ***
--- AST Metrics ---
## All nodes of the AST
- population: 52
+ population: 49
minimum value: 1
- maximum value: 40
- total value: 304
- average value: 5.84
+ maximum value: 37
+ total value: 286
+ average value: 5.83
distribution:
- <=1: sub-population=16 (30.76%); cumulated value=16 (5.26%)
- <=2: sub-population=5 (9.61%); cumulated value=10 (3.28%)
- <=4: sub-population=9 (17.30%); cumulated value=28 (9.21%)
- <=8: sub-population=12 (23.07%); cumulated value=76 (25.00%)
- <=16: sub-population=5 (9.61%); cumulated value=59 (19.40%)
- <=32: sub-population=4 (7.69%); cumulated value=75 (24.67%)
- <=64: sub-population=1 (1.92%); cumulated value=40 (13.15%)
+ <=1: sub-population=15 (30.61%); cumulated value=15 (5.24%)
+ <=2: sub-population=3 (6.12%); cumulated value=6 (2.09%)
+ <=4: sub-population=12 (24.48%); cumulated value=40 (13.98%)
+ <=8: sub-population=10 (20.40%); cumulated value=67 (23.42%)
+ <=16: sub-population=4 (8.16%); cumulated value=48 (16.78%)
+ <=32: sub-population=4 (8.16%); cumulated value=73 (25.52%)
+ <=64: sub-population=1 (2.04%); cumulated value=37 (12.93%)
list:
- TId: 40 (13.15%)
- APublicVisibility: 19 (6.25%)
- AListExprs: 19 (6.25%)
- AQid: 19 (6.25%)
- ACallExpr: 18 (5.92%)
- TClassid: 15 (4.93%)
- AQclassid: 15 (4.93%)
- TInteger: 10 (3.28%)
- AIntegerExpr: 10 (3.28%)
- AType: 9 (2.96%)
+ TId: 37 (12.93%)
+ APublicVisibility: 19 (6.64%)
+ ACallExpr: 18 (6.29%)
+ AQid: 18 (6.29%)
+ AListExprs: 18 (6.29%)
+ AQclassid: 14 (4.89%)
+ TClassid: 14 (4.89%)
+ TInteger: 10 (3.49%)
+ AIntegerExpr: 10 (3.49%)
+ ASignature: 8 (2.79%)
...
- AAnnotation: 1 (0.32%)
- AAnnotations: 1 (0.32%)
- AReturnExpr: 1 (0.32%)
- TKwreturn: 1 (0.32%)
- AInterfaceClasskind: 1 (0.32%)
- TKwinterface: 1 (0.32%)
- ANoImport: 1 (0.32%)
- AMainMethPropdef: 1 (0.32%)
- AMainClassdef: 1 (0.32%)
- TKwimport: 1 (0.32%)
+ TKwreturn: 1 (0.34%)
+ AAnnotation: 1 (0.34%)
+ AParam: 1 (0.34%)
+ AMainMethPropdef: 1 (0.34%)
+ AInterfaceClasskind: 1 (0.34%)
+ TKwinterface: 1 (0.34%)
+ ANoImport: 1 (0.34%)
+ ABlockExpr: 1 (0.34%)
+ AMainClassdef: 1 (0.34%)
+ TKwimport: 1 (0.34%)
## All identifiers of the AST
- population: 20
+ population: 19
minimum value: 1
maximum value: 11
- total value: 55
- average value: 2.75
+ total value: 51
+ average value: 2.68
distribution:
- <=1: sub-population=3 (15.00%); cumulated value=3 (5.45%)
- <=2: sub-population=12 (60.00%); cumulated value=24 (43.63%)
- <=4: sub-population=3 (15.00%); cumulated value=10 (18.18%)
- <=8: sub-population=1 (5.00%); cumulated value=7 (12.72%)
- <=16: sub-population=1 (5.00%); cumulated value=11 (20.00%)
+ <=1: sub-population=3 (15.78%); cumulated value=3 (5.88%)
+ <=2: sub-population=12 (63.15%); cumulated value=24 (47.05%)
+ <=4: sub-population=2 (10.52%); cumulated value=7 (13.72%)
+ <=8: sub-population=1 (5.26%); cumulated value=6 (11.76%)
+ <=16: sub-population=1 (5.26%); cumulated value=11 (21.56%)
list:
- output: 11 (20.00%)
- Int: 7 (12.72%)
- run: 4 (7.27%)
- c: 3 (5.45%)
- val: 3 (5.45%)
- i: 2 (3.63%)
- bar: 2 (3.63%)
- foo: 2 (3.63%)
- val2: 2 (3.63%)
- val1: 2 (3.63%)
- C: 2 (3.63%)
- v: 2 (3.63%)
- baz: 2 (3.63%)
- a: 2 (3.63%)
- A: 2 (3.63%)
- B: 2 (3.63%)
- b: 2 (3.63%)
- intern: 1 (1.81%)
- Object: 1 (1.81%)
- Bool: 1 (1.81%)
+ output: 11 (21.56%)
+ Int: 6 (11.76%)
+ run: 4 (7.84%)
+ c: 3 (5.88%)
+ baz: 2 (3.92%)
+ i: 2 (3.92%)
+ bar: 2 (3.92%)
+ val2: 2 (3.92%)
+ val1: 2 (3.92%)
+ C: 2 (3.92%)
+ val: 2 (3.92%)
+ B: 2 (3.92%)
+ a: 2 (3.92%)
+ A: 2 (3.92%)
+ foo: 2 (3.92%)
+ b: 2 (3.92%)
+ intern: 1 (1.96%)
+ Object: 1 (1.96%)
+ Bool: 1 (1.96%)
--- Detection of variance constraints on formal parameter types ---
-- Generic classes --
list:
Average number of class refinments by classes: 0.00
Average number of class refinments by refined classes: na
-Number of properties: 23
- Number of MAttribute: 3 (13.04%)
- Number of MMethod: 20 (86.95%)
+Number of properties: 21
+ Number of MAttribute: 3 (14.28%)
+ Number of MMethod: 18 (85.71%)
-Number of property definitions: 24
-Number of redefined properties: 1 (4.34%)
-Average number of property redefinitions by property: 0.04
-Average number of property redefinitions by redefined property: 1.00
+Number of property definitions: 23
+Number of redefined properties: 1 (4.76%)
+Average number of property redefinitions by property: 0.09
+Average number of property redefinitions by redefined property: 2.00
--- Explicit vs. Implicit Self ---
-Total number of self: 5
-Total number of implicit self: 4 (80.00%)
+Total number of self: 4
+Total number of implicit self: 4 (100.00%)
--- Construction of tables ---
Number of runtime classes: 6 (excluding interfaces and abstract classes)
Average number of composing class definition by runtime class: 2.00
-Total size of tables (classes and instances): 33 (not including stuff like info for subtyping or call-next-method)
-Average size of table by runtime class: 5.50
-Values never redefined: 27 (81.81%)
+Total size of tables (classes and instances): 31 (not including stuff like info for subtyping or call-next-method)
+Average size of table by runtime class: 5.16
+Values never redefined: 25 (80.64%)
generating package_hierarchy.dot
generating module_hierarchy.dot
--- Metrics of the explitic static types ---
-Total number of explicit static types: 9
+Total number of explicit static types: 8
Statistics of type usage:
population: 4
minimum value: 1
- maximum value: 6
- total value: 9
- average value: 2.25
+ maximum value: 5
+ total value: 8
+ average value: 2.00
distribution:
- <=1: sub-population=3 (75.00%); cumulated value=3 (33.33%)
- <=8: sub-population=1 (25.00%); cumulated value=6 (66.66%)
+ <=1: sub-population=3 (75.00%); cumulated value=3 (37.50%)
+ <=8: sub-population=1 (25.00%); cumulated value=5 (62.50%)
list:
- Int: 6 (66.66%)
- C: 1 (11.11%)
- B: 1 (11.11%)
- A: 1 (11.11%)
+ Int: 5 (62.50%)
+ C: 1 (12.50%)
+ B: 1 (12.50%)
+ A: 1 (12.50%)
# MClasses metrics
std: 0.926
sum: 6
cnbp: number of accessible properties (inherited + local)
- avg: 5.0
+ avg: 4.0
max: C (9)
min: Object (2)
- std: 2.268
- sum: 35
+ std: 2.591
+ sum: 33
cnba: number of accessible attributes (inherited + local)
avg: 0.0
max: C (2)
std: 0.845
sum: 3
cnbi: number of accessible constructors (inherited + local)
- avg: 1.0
- max: B (2)
- min: Object (1)
- std: 0.378
- sum: 8
+ avg: 2.0
+ max: A (3)
+ min: Object (2)
+ std: 0.655
+ sum: 17
cnbm: number of accessible methods (inherited + local)
- avg: 3.0
- max: B (5)
- min: Object (1)
- std: 1.773
- sum: 21
+ avg: 4.0
+ max: C (7)
+ min: Object (2)
+ std: 1.927
+ sum: 30
cnbv: number of accessible virtual types (inherited + local)
avg: 0.0
max: Object (0)
cnbip: number of introduced properties
avg: 3.0
max: C (7)
- min: Bool (1)
- std: 2.0
- sum: 23
+ min: Bool (0)
+ std: 2.268
+ sum: 21
cnbrp: number of redefined properties
avg: 0.0
max: A (1)
min: Object (0)
- std: 0.378
- sum: 1
+ std: 0.535
+ sum: 2
cnbhp: number of inherited properties
avg: 1.0
max: Bool (2)
std: 0.926
sum: 6
cnbp: number of accessible properties (inherited + local)
- avg: 5.0
+ avg: 4.0
max: C (9)
min: Object (2)
- std: 2.268
- sum: 35
+ std: 2.591
+ sum: 33
cnba: number of accessible attributes (inherited + local)
avg: 0.0
max: C (2)
std: 0.845
sum: 3
cnbi: number of accessible constructors (inherited + local)
- avg: 1.0
- max: B (2)
- min: Object (1)
- std: 0.378
- sum: 8
+ avg: 2.0
+ max: A (3)
+ min: Object (2)
+ std: 0.655
+ sum: 17
cnbm: number of accessible methods (inherited + local)
- avg: 3.0
- max: B (5)
- min: Object (1)
- std: 1.773
- sum: 21
+ avg: 4.0
+ max: C (7)
+ min: Object (2)
+ std: 1.927
+ sum: 30
cnbv: number of accessible virtual types (inherited + local)
avg: 0.0
max: Object (0)
cnbip: number of introduced properties
avg: 3.0
max: C (7)
- min: Bool (1)
- std: 2.0
- sum: 23
+ min: Bool (0)
+ std: 2.268
+ sum: 21
cnbrp: number of redefined properties
avg: 0.0
max: A (1)
min: Object (0)
- std: 0.378
- sum: 1
+ std: 0.535
+ sum: 2
cnbhp: number of inherited properties
avg: 1.0
max: Bool (2)
sum: 0.143
# Mendel metrics
- large mclasses (threshold: 4.354)
+ large mclasses (threshold: 4.915)
+ B: 5
C: 5
- budding mclasses (threshold: 3.207)
+ budding mclasses (threshold: 3.231)
C: 3.5
- blooming mclasses (threshold: 14.316)
+ blooming mclasses (threshold: 15.285)
C: 17.5
--- Detection of the usage of covariance static type conformance ---
-- Total --
- Kinds of the subtype -
list:
- primitive type: 6 (100.00%)
- total: 6
+ primitive type: 5 (100.00%)
+ total: 5
- Variance -
list:
- monomorph: 6 (100.00%)
- total: 6
+ monomorph: 5 (100.00%)
+ total: 5
- Classes of the subtype -
list:
- Int: 6 (100.00%)
- total: 6
+ Int: 5 (100.00%)
+ total: 5
-- On covariance only --
- Specific covariance case explanations -
list:
cnbna: number of accessible nullable attributes (inherited + local) -- nothing
sum: 0
--- Sends on Nullable Receiver ---
-Total number of sends: 19
+Total number of sends: 18
Number of sends on a unsafe nullable receiver: 0 (0.00%)
Number of sends on a safe nullable receiver: 0 (0.00%)
Number of buggy sends (cannot determine the type of the receiver): 0 (0.00%)
std: 0.0
sum: 16
mnlmd: number of live method definitions in a mmodule
- avg: 17.0
- max: base_simple3 (17)
- min: base_simple3 (17)
+ avg: 18.0
+ max: base_simple3 (18)
+ min: base_simple3 (18)
std: 0.0
- sum: 17
+ sum: 18
mnldd: number of dead method definitions in a mmodule
avg: 0.0
max: base_simple3 (0)
sum: 0
## Callsites
-* 23 live callsites
+* 21 live callsites
MMethodDef locally designated (by number of CallSites)
- population: 14
+ population: 12
minimum value: 1
maximum value: 10
- total value: 23
- average value: 1.64
+ total value: 21
+ average value: 1.75
distribution:
- <=1: sub-population=13 (92.85%); cumulated value=13 (56.52%)
- <=16: sub-population=1 (7.14%); cumulated value=10 (43.47%)
+ <=1: sub-population=11 (91.66%); cumulated value=11 (52.38%)
+ <=16: sub-population=1 (8.33%); cumulated value=10 (47.61%)
list:
- base_simple3$Int$output: 10 (43.47%)
- base_simple3$B$val: 1 (4.34%)
- base_simple3$B$val=: 1 (4.34%)
- base_simple3$Object$init: 1 (4.34%)
- base_simple3$C$val2: 1 (4.34%)
+ base_simple3$Int$output: 10 (47.61%)
+ base_simple3$B$val: 1 (4.76%)
+ base_simple3$C$val2: 1 (4.76%)
+ base_simple3$C$val1: 1 (4.76%)
+ base_simple3$B$run: 1 (4.76%)
...
- base_simple3$A$autoinit: 1 (4.34%)
- base_simple3$Sys$baz: 1 (4.34%)
- base_simple3$Sys$bar: 1 (4.34%)
- base_simple3$Sys$foo: 1 (4.34%)
- base_simple3$C$autoinit: 1 (4.34%)
+ base_simple3$A$defaultinit: 1 (4.76%)
+ base_simple3$Sys$baz: 1 (4.76%)
+ base_simple3$Sys$bar: 1 (4.76%)
+ base_simple3$Sys$foo: 1 (4.76%)
+ base_simple3$C$defaultinit: 1 (4.76%)
MMethodDef possibly invoked at runtime (by number of CallSites)
- population: 14
+ population: 12
minimum value: 1
maximum value: 10
- total value: 23
- average value: 1.64
+ total value: 21
+ average value: 1.75
distribution:
- <=1: sub-population=13 (92.85%); cumulated value=13 (56.52%)
- <=16: sub-population=1 (7.14%); cumulated value=10 (43.47%)
+ <=1: sub-population=11 (91.66%); cumulated value=11 (52.38%)
+ <=16: sub-population=1 (8.33%); cumulated value=10 (47.61%)
list:
- base_simple3$Int$output: 10 (43.47%)
- base_simple3$B$val: 1 (4.34%)
- base_simple3$B$val=: 1 (4.34%)
- base_simple3$Object$init: 1 (4.34%)
- base_simple3$C$val2: 1 (4.34%)
+ base_simple3$Int$output: 10 (47.61%)
+ base_simple3$B$val: 1 (4.76%)
+ base_simple3$C$val2: 1 (4.76%)
+ base_simple3$C$val1: 1 (4.76%)
+ base_simple3$B$run: 1 (4.76%)
...
- base_simple3$A$autoinit: 1 (4.34%)
- base_simple3$Sys$baz: 1 (4.34%)
- base_simple3$Sys$bar: 1 (4.34%)
- base_simple3$Sys$foo: 1 (4.34%)
- base_simple3$C$autoinit: 1 (4.34%)
+ base_simple3$A$defaultinit: 1 (4.76%)
+ base_simple3$Sys$baz: 1 (4.76%)
+ base_simple3$Sys$bar: 1 (4.76%)
+ base_simple3$Sys$foo: 1 (4.76%)
+ base_simple3$C$defaultinit: 1 (4.76%)
class_hierarchy.dot
classdef_hierarchy.dot
inheritance/