================
@@ -924,6 +919,27 @@ TEST(RangeSelectorTest, ExpansionOpPartial) {
                        HasValue("BADDECL(x * x)"));
 }
 
+TEST(RangeSelectorTest, SpelledFullyInMacro) {
+  StringRef Code = R"cc(
+    #define MACRO int i;
+    MACRO
+  )cc";
+  const char *ID = "id";
+  TestMatch Match = matchCode(Code, varDecl().bind(ID));
+  EXPECT_THAT_EXPECTED(select(spelled(node(ID)), Match), HasValue("int i"));
+}
+
+TEST(RangeSelectorTest, SpelledWithArgumentInMacro) {
+  StringRef Code = R"cc(
+    #define MACRO(T) void foo(T t);
+    MACRO(int)
+  )cc";
+  const char *ID = "id";
+  TestMatch Match = matchCode(Code, functionDecl().bind(ID));
+  EXPECT_THAT_EXPECTED(select(spelled(node(ID)), Match),
+                       HasValue("void foo(T t)"));
+}
+
----------------
ymand wrote:

Please add a test for behavior when the node starts in macro but isn't fully 
includes, same for ends, and starts + ends in different macros.

https://github.com/llvm/llvm-project/pull/177442
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to