doc: use 'module' instead of 'package' in comments
[nit.git] / src / analysis / reachable_method_analysis.nit
index 75c91ea..b208ae3 100644 (file)
@@ -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