From: Gabor Marton Date: Mon, 28 Jan 2019 10:01:11 +0000 (+0000) Subject: [AST] Add structural eq tests for template args X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bf4ebf6924cce0fb86a06c4c7777bcac2983bb9a;p=clang [AST] Add structural eq tests for template args Summary: New tests added to verify equivalency of templates when their parameters are different. Reviewers: a_sidorin, shafik Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Differential Revision: https://reviews.llvm.org/D57235 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@352345 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/unittests/AST/StructuralEquivalenceTest.cpp b/unittests/AST/StructuralEquivalenceTest.cpp index 919856f4ad..e6c289a5f6 100644 --- a/unittests/AST/StructuralEquivalenceTest.cpp +++ b/unittests/AST/StructuralEquivalenceTest.cpp @@ -802,6 +802,25 @@ TEST_F(StructuralEquivalenceEnumTest, EnumsWithDifferentBody) { EXPECT_FALSE(testStructuralMatch(t)); } +struct StructuralEquivalenceTemplateTest : StructuralEquivalenceTest {}; + +TEST_F(StructuralEquivalenceTemplateTest, ExactlySameTemplates) { + auto t = makeNamedDecls("template struct foo;", + "template struct foo;", Lang_CXX); + EXPECT_TRUE(testStructuralMatch(t)); +} + +TEST_F(StructuralEquivalenceTemplateTest, DifferentTemplateArgName) { + auto t = makeNamedDecls("template struct foo;", + "template struct foo;", Lang_CXX); + EXPECT_TRUE(testStructuralMatch(t)); +} + +TEST_F(StructuralEquivalenceTemplateTest, DifferentTemplateArgKind) { + auto t = makeNamedDecls("template struct foo;", + "template struct foo;", Lang_CXX); + EXPECT_FALSE(testStructuralMatch(t)); +} } // end namespace ast_matchers } // end namespace clang