Giter Club home page Giter Club logo

Comments (4)

ZedThree avatar ZedThree commented on June 25, 2024

Thanks for finding this, @mscfd, but I'm a bit unclear on how you trigger it exactly? That implies we're trying to render something that has no lines?

from ford.

mscfd avatar mscfd commented on June 25, 2024

I wrongly assumed that for really simple test project lines=0 happens naturally. But indeed, it is a bit more intriguing. It looks like that for 'display: private' (possibly in conjunction with submodules) lines are counted wrongly. In the example below, I have self.num_lines=4 but total=0. Whether display:public is present or not, does not change the exception.
The description line with my max(1,*)-safeguard is

"400.0% of total for procedures."

ford_project_file.md:

---
project: test
src_dir: ./src
output_dir: ./doc
display: protected
display: private
display: public
---

test.f90:

module test

implicit none
private

public create

type, abstract, public :: base
end type base

end module test

test_smod.f90:

submodule (test) test_smod

implicit none

type, extends(base) :: impl
end type impl

contains

module function create() result(p)
   class(base), pointer :: p
   allocate(impl :: p)
end function create

end submodule test_smod

from ford.

ZedThree avatar ZedThree commented on June 25, 2024

Note that your example isn't valid Fortran, and you'd need at least an interface for create. Adding that:

module test

implicit none
private

public :: create

type, abstract, public :: base
end type base

interface
  function create() result(p)
    import base
    class(base), pointer :: p
  end function create
end interface

end module test

and ford runs fine.

I'll add a warning and a safe-guard for lines_description

from ford.

mscfd avatar mscfd commented on June 25, 2024

Thanks. As this was not real code, I never compiled it. it was just for testing ford.

from ford.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.