Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added check for visibility attribute specifier #51

Merged
merged 22 commits into from
Nov 9, 2019

Conversation

kavanaanand
Copy link
Collaborator

This change improves Hyde with following capabilities -

  • Checks the visibility of a function/method and also if it explicitly annotated. This adds visibility and visibility_explicit attributes to the JSON method info
  • All the logging statements are executed only when Hyde is running with the verbose option. This cleans up the JSON output to be parsable when HYDE_JSON mode is preferred
  • For some reason, the CommonOptionsParser is duplicating every input file. Hyde now checks and removes the duplicates
  • Added option to process class methods (default is false which is existing behavior)

kavanaanand and others added 21 commits August 29, 2019 11:26
…bility_specifier"

This reverts commit 336758d, reversing
changes made to e439d93.
…bility_specifier"

This reverts commit 336758d, reversing
changes made to e439d93.
…bility_specifier"

This reverts commit 336758d, reversing
changes made to e439d93.
…bility_specifier"

This reverts commit 336758d, reversing
changes made to e439d93.
…ana/visibility_specifier""

This reverts commit 3ee8bde.
…into kavana/visibility_specifier"""

This reverts commit 5f8eea5.
…ana/visibility_specifier""

This reverts commit fafbf4e.
@kavanaanand kavanaanand added enhancement New feature or request good first issue Good for newcomers labels Nov 5, 2019
Copy link
Contributor

@fosterbrereton fosterbrereton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple small changes requested here, and one point of clarification.

case Visibility::ProtectedVisibility:
info["visibility"] = "protected";
break;
default:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather there not be a default option. That way in case these enumerations change we get a compiler warning about them, instead of values going blank unexpectedly.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

@@ -38,7 +38,9 @@ void FunctionInfo::run(const MatchFinder::MatchResult& Result) {
auto function = Result.Nodes.getNodeAs<FunctionDecl>("func");

// Do not process class methods here.
if (llvm::dyn_cast_or_null<CXXMethodDecl>(function)) return;
if (!_options._process_class_methods) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain a bit why this is necessary?

@fosterbrereton
Copy link
Contributor

LGTM!

@fosterbrereton fosterbrereton merged commit 0d29c9d into master Nov 9, 2019
@fosterbrereton fosterbrereton deleted the kavana/visibility_specifier branch November 9, 2019 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants