[clang] [Clang][ASTImporter] Implement AST import for CXXParenListInitExpr, SubstNonTypeTemplateParmPackExpr, PseudoObjectExpr (PR #160904)
Balázs Kéri via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 14 07:58:36 PDT 2025
================
@@ -3300,6 +3300,75 @@ TEST_P(ImportExpr, ConceptNestedNonInstantiationDependentRequirement) {
conceptDecl(has(requiresExpr(has(requiresExprBodyDecl())))));
}
+TEST_P(ImportExpr, ImportSubstNonTypeTemplateParmPackExpr) {
+ MatchVerifier<Decl> Verifier;
+ const char *Code = R"(
+ template<auto ...> struct X {};
+ template<typename ...> struct Z {};
+
+ template<int ...N> struct E {
+ template<int ...M> using B = Z<X<N, M>...>;
+ template<int M1, int M2> E(B<M1, M2>);
+ };
+ using declToImport = E<1, 3>;
+ )";
+ testImport(Code, Lang_CXX20, "", Lang_CXX20, Verifier,
+ typedefNameDecl(hasName("declToImport")));
+}
+
+TEST_P(ImportExpr, ImportCXXParenListInitExpr) {
+ MatchVerifier<Decl> Verifier;
+ const char *Code = R"(
+ struct Node {
+ int val;
+ double d;
+ };
+ template <int N> struct Container {
+ Node* create() { return new Node(N, 3.14); }
+ };
+ using declToImport = Container<42>;
----------------
balazske wrote:
Probably this can be enough instead of `Container`:
```Node* declToImport() { return new Node(2, 3.14); }```
https://github.com/llvm/llvm-project/pull/160904
More information about the cfe-commits
mailing list