Skip to content

Incorrect linking in C++ code #10989

@albert-github

Description

@albert-github

In the CGAL project it was noted in an example that some instances of a function were hyperlinked (correct) and that some subsequent, identical, calls were not hyperlinked.
The, reduced, code looks like:

/** \file */

/// a fie
void fie()
{
  copy_face_graph (boost::make_function_output_iterator([&](const std::pair<TIN_with_info::Face_handle, Mesh::Face_index>& ff)
  {
    //{
      //color_map1 = CGAL::Color(1);
    //}
    if (ff.first->info() < 0)
      color_map2 = CGAL::Color(2);
    else
    {
      color_map3 = CGAL::Color(3);
    }
  }));
}

/// The NS
namespace CGAL
{
    /// the color class
    class Color
    {
      public:
        /// constructor
        Color(int);
    };
}

the result is:
image

Here the CGAL::Color on line 12 is hyperlinked but the CGAL::Color on line 15 isn't.
When removing the comment signs on the lines 8 - 10 all CGAL::Color ar hyperlinked.

I think the interesting rules in code.l are here:

<Body,FuncCall>"{" 

and

<MemberCall2,FuncCall>"{"

in the later block there is also a reference to the number of open round (() brackets.
Note also the double usage of the state: FuncCall.

As far as I can tell it is an unintended side effect from:

Commit: 0f01005b90986347e57a78c58585aea959da72a1 [0f01005]

Date: Friday, November 1, 2019 4:47:02 PM

i.e. the removal of g_bracketCount = 0; (now this would be yyextra->bracketCount = 0; in rule <MemberCall>{SCOPETNAME}/{BN}*"(")

@doxygen any idea what the best solution would be?

Doxygen version: 1.12.0 (e512970))
Example: example.tar.gz

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions