Skip to content

Java: Javadoc matches regular comments #3695

@Marcono1234

Description

@Marcono1234

Description of the issue
It appears Javadoc and some of the related classes match regular comments. This is pretty misleading because normally javadoc only refers to /** ... */, neither any of the QL classes nor the documentation of the containing module mentions this.
The Learn QL: Javadoc does not mention this either.

Similarly the concept of javadoc tags does not apply to regular comments (interestingly QL seems to honor that and does not find any in regular comments).

Example query:

from Javadoc javadoc
where
  not exists (javadoc.getCommentedElement())
  // Exclude license headers, though they are not javadoc either
  and javadoc.getLocation().getStartLine() > 10
select javadoc

If you decide to stick to this decision, could the documentation of the QL classes and the module please be clarified and could respective predicates for comment types be added (though it might be hard to choose predicate names which are not misleading):

  • is block comment (the JLS calls them "traditional comment", though that is not very meaningful)
  • is line comment

The currently existing predicate getCommentedElement() is not enough to determine whether it is a javadoc comment or a regular comment (since one could place /** ... */ anywhere).
semmlecode.dbscheme provides isNormalComment(@javadoc), but is that an implementation detail or may it be used?

Metadata

Metadata

Assignees

No one assigned

    Labels

    JavaquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions