[PATCH] D69241: [clangd] Handle the missing consturctor initializers in findExplicitReferences.

2019-10-21 Thread Ilya Biryukov via Phabricator via cfe-commits
ilya-biryukov added a comment.

NIT: there's a typo in the revision title: should be **constructor**, not 
**consturctor**


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69241/new/

https://reviews.llvm.org/D69241



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D69241: [clangd] Handle the missing consturctor initializers in findExplicitReferences.

2019-10-21 Thread pre-merge checks [bot] via Phabricator via cfe-commits
merge_guards_bot added a comment.

Build result: fail - 33623 tests passed, 1 failed and 462 were skipped.

  failed: LLVM.tools/llvm-ar/mri-utf8.test

Log files: cmake-log.txt 
, 
ninja_check_all-log.txt 
, 
CMakeCache.txt 



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69241/new/

https://reviews.llvm.org/D69241



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D69241: [clangd] Handle the missing consturctor initializers in findExplicitReferences.

2019-10-21 Thread Ilya Biryukov via Phabricator via cfe-commits
ilya-biryukov accepted this revision.
ilya-biryukov added a comment.
This revision is now accepted and ready to land.

LGTM, thanks!




Comment at: clang-tools-extra/clangd/FindTarget.cpp:646
+  bool TraverseConstructorInitializer(CXXCtorInitializer *Init) {
+   visitNode(DynTypedNode::create(*Init));
+return RecursiveASTVisitor::TraverseConstructorInitializer(Init);

This looks misindented. Could you clang-format?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69241/new/

https://reviews.llvm.org/D69241



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D69241: [clangd] Handle the missing consturctor initializers in findExplicitReferences.

2019-10-21 Thread Ilya Biryukov via Phabricator via cfe-commits
ilya-biryukov added inline comments.



Comment at: clang-tools-extra/clangd/unittests/FindTargetTests.cpp:844
+int $1^abc;
+$2^X(): $3^abc() {}
+  };

Could you also add a test with the initializer containing a base class? It 
produces a different kind of `CXXConstructorInitializer`


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69241/new/

https://reviews.llvm.org/D69241



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D69241: [clangd] Handle the missing consturctor initializers in findExplicitReferences.

2019-10-21 Thread Haojian Wu via Phabricator via cfe-commits
hokein created this revision.
hokein added a reviewer: ilya-biryukov.
Herald added subscribers: usaxena95, kadircet, arphaman, jkorous, MaskRay.
Herald added a project: clang.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D69241

Files:
  clang-tools-extra/clangd/FindTarget.cpp
  clang-tools-extra/clangd/unittests/FindTargetTests.cpp


Index: clang-tools-extra/clangd/unittests/FindTargetTests.cpp
===
--- clang-tools-extra/clangd/unittests/FindTargetTests.cpp
+++ clang-tools-extra/clangd/unittests/FindTargetTests.cpp
@@ -812,6 +812,7 @@
"1: targets = {func}\n"
"2: targets = {w}, decl\n"
"3: targets = {FuncParam}\n"},
+  // declaration references.
   {R"cpp(
  namespace ns {}
  class S {};
@@ -835,6 +836,19 @@
"8: targets = {INT2}, decl\n"
"9: targets = {NS}, decl\n"
"10: targets = {ns}\n"},
+  // cxx constructor initializer.
+  {R"cpp(
+void foo() {
+  class $0^X {
+int $1^abc;
+$2^X(): $3^abc() {}
+  };
+}
+   )cpp",
+   "0: targets = {X}, decl\n"
+   "1: targets = {foo()::X::abc}, decl\n"
+   "2: targets = {foo()::X::X}, decl\n"
+   "3: targets = {foo()::X::abc}\n"}
   };
 
   for (const auto  : Cases) {
Index: clang-tools-extra/clangd/FindTarget.cpp
===
--- clang-tools-extra/clangd/FindTarget.cpp
+++ clang-tools-extra/clangd/FindTarget.cpp
@@ -642,6 +642,11 @@
 return RecursiveASTVisitor::TraverseNestedNameSpecifierLoc(L);
   }
 
+  bool TraverseConstructorInitializer(CXXCtorInitializer *Init) {
+   visitNode(DynTypedNode::create(*Init));
+return RecursiveASTVisitor::TraverseConstructorInitializer(Init);
+  }
+
 private:
   /// Obtain information about a reference directly defined in \p N. Does not
   /// recurse into child nodes, e.g. do not expect references for constructor


Index: clang-tools-extra/clangd/unittests/FindTargetTests.cpp
===
--- clang-tools-extra/clangd/unittests/FindTargetTests.cpp
+++ clang-tools-extra/clangd/unittests/FindTargetTests.cpp
@@ -812,6 +812,7 @@
"1: targets = {func}\n"
"2: targets = {w}, decl\n"
"3: targets = {FuncParam}\n"},
+  // declaration references.
   {R"cpp(
  namespace ns {}
  class S {};
@@ -835,6 +836,19 @@
"8: targets = {INT2}, decl\n"
"9: targets = {NS}, decl\n"
"10: targets = {ns}\n"},
+  // cxx constructor initializer.
+  {R"cpp(
+void foo() {
+  class $0^X {
+int $1^abc;
+$2^X(): $3^abc() {}
+  };
+}
+   )cpp",
+   "0: targets = {X}, decl\n"
+   "1: targets = {foo()::X::abc}, decl\n"
+   "2: targets = {foo()::X::X}, decl\n"
+   "3: targets = {foo()::X::abc}\n"}
   };
 
   for (const auto  : Cases) {
Index: clang-tools-extra/clangd/FindTarget.cpp
===
--- clang-tools-extra/clangd/FindTarget.cpp
+++ clang-tools-extra/clangd/FindTarget.cpp
@@ -642,6 +642,11 @@
 return RecursiveASTVisitor::TraverseNestedNameSpecifierLoc(L);
   }
 
+  bool TraverseConstructorInitializer(CXXCtorInitializer *Init) {
+   visitNode(DynTypedNode::create(*Init));
+return RecursiveASTVisitor::TraverseConstructorInitializer(Init);
+  }
+
 private:
   /// Obtain information about a reference directly defined in \p N. Does not
   /// recurse into child nodes, e.g. do not expect references for constructor
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits