Fortran-FOSS-Programmers / ford

Automatically generates FORtran Documentation from comments within the code.
https://forddocs.readthedocs.io
GNU General Public License v3.0
405 stars 131 forks source link

Add procedure binding calls to call graph #524

Closed JosephWood2001 closed 1 year ago

JosephWood2001 commented 1 year ago

This allows for call graphs to properly pick up on more complex bindings calls by comparing the calls to the bindings of a type rather then procedures that are in the type's context. This allows for bindings that may rename a proc to be properly recognized (i.e. procedure :: new_name => original_proc_name).

Some bindings are generic bindings that map one name onto multiple procs. To handle this, bindings can now be nodes themselves in the call graphs. At the moment, I made their color the same as interfaces, and calls made from them with dotted lines. Here is a basic example:

type :: some_type
contains
  procedure :: one
  procedure :: two
  generic :: one_two => one, two
end type some_type

example

'Simple' bindings that are just one label pointing to one proc are skipped over in the call graph, as I though it cluttered up the graph and was redundant.

This solves issue #516