X-Git-Url: http://nitlanguage.org diff --git a/src/analysis/reachable_method_analysis.nit b/src/analysis/reachable_method_analysis.nit index 75c91ea..b208ae3 100644 --- a/src/analysis/reachable_method_analysis.nit +++ b/src/analysis/reachable_method_analysis.nit @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Package containing all bases for the reachable method analysis +# Module containing all bases for the reachable method analysis package reachable_method_analysis import icode @@ -23,6 +23,28 @@ import program redef class Program # This attribute is the ReachableMethodAnalysis results readable writable var _rma: nullable ReachableMethodAnalysis = null + + # This method will create a file and output all reachable method names in it + fun dump_reachable_methods(directory_name: String, algo: String) do + var f = new OFStream.open("{directory_name}/{main_module.name}.reachable_methods.{algo}.log") + with_each_methods !action(m) do + if rma.is_method_reachable(m) then + f.write("{m.full_name}\n") + end + end + f.close + end + + # This method will create a file and output all unreachable method names in it + fun dump_unreachable_methods(directory_name: String, algo: String) do + var f = new OFStream.open("{directory_name}/{main_module.name}.unreachable_methods.{algo}.log") + with_each_methods !action(m) do + if not rma.is_method_reachable(m) then + f.write("{m.full_name}\n") + end + end + f.close + end end # Subclasses of this class would represent an analysis that produces