doxygen icon indicating copy to clipboard operation
doxygen copied to clipboard

explicit link request to could not be resolved

Open tdegeus opened this issue 1 year ago • 3 comments

Describe the bug I have the following minimal example:

INPUT = Bar
JAVADOC_AUTOBRIEF = YES
QUIET = YES
WARN_IF_UNDOCUMENTED = YES

Bar/Mesh.h:

#ifndef GOOSEFEM_MESH_H
#define GOOSEFEM_MESH_H

namespace GooseFEM {

/**
Generic mesh operations, and simple mesh definitions.
*/
namespace Mesh {

/**
CRTP base class for regular meshes.
*/
template <class D>
class RegularBase {
public:
    /**
    Linear edge size of one 'block'.
    \return double
    */
    auto h() const;
};

/**
CRTP base class for regular meshes in 2d.
*/
template <class D>
class RegularBase2d : public RegularBase<D> {
public:
    /**
    See #h
    \return List of node numbers.
    */
    auto nodesTopEdge() const;
};

} // namespace Mesh
} // namespace GooseFEM

#endif

This works fine, until I add Bar/MeshQuad4.h

#ifndef GOOSEFEM_MESHQUAD4_H
#define GOOSEFEM_MESHQUAD4_H

#include "Mesh.h"

namespace GooseFEM {
namespace Mesh {

/**
Simple meshes of 3-noded quadrilateral elements in 2d (ElementType::Quad4).
*/
namespace Quad4 {

/**
Regular mesh: equi-sized elements.
*/
class Regular : public RegularBase2d<Regular> {
public:
    Regular() = default;
};

} // namespace Quad4
} // namespace Mesh
} // namespace GooseFEM

#endif

Then I get

$ doxygen
.../Bar/Mesh.h:31: warning: explicit link request to 'h' could not be resolved
.../Bar/Mesh.h:31: warning: explicit link request to 'h' could not be resolved

The issue disappears when I run without

JAVADOC_AUTOBRIEF = YES

Expected behavior No warning in any case.

Screenshots

To Reproduce See above

Version 1.9.5 (works fine with 1.9.4)

Stack trace

Additional context

tdegeus avatar Sep 05 '22 08:09 tdegeus

It looks like that the warning is given, but that the result is correct. The problem also looks like to exist for \ref h m, but here independently of the setting of JAVADOC_AUTOBRIEF. It looks like the commit:

Commit: b290399fab92df45376103d7c094f053f24495fa [b290399]
Date: Tuesday, May 24, 2022 8:12:07 AM
Commit Date: Friday, June 3, 2022 9:38:54 PM

Refactoring: reimplement getDefs using symbol resolver

it the commit causing the message.

We see also that there is an improvement in the inheritance graph: 1.9.4

image

1.9.5

image

albert-github avatar Sep 05 '22 09:09 albert-github

Thanks @albert-github . I had not even noticed the dependency graph, but that is very nice! A question to workaround for WARN_IF_UNDOCUMENTED = YES with WARN_AS_ERROR = YES: is there an option to except such warnings (temporarily until this bug is resolved), but still throw if there are undocumented functions/parameters? I.e. it would be nice if there were ERROR_IF_UNDOCUMENTED

tdegeus avatar Sep 05 '22 09:09 tdegeus

There is no possibility other that setting JAVA_AUTOBRIEF = NO but this will probably give some other problems. One could set WARN_AS_ERROR = FAIL_ON_WARNINGS so only at the end of the run the run would stop. Only other possibilities I see is to set WARN_AS_ERROR =NO catch the warnings in a file (i.e. WARN_LOGFILE), process the file outside doxygen and when warnings are left throw an error.

albert-github avatar Sep 05 '22 09:09 albert-github