xref: /llvm-project/clang/test/AST/ast-printer-lambda.cpp (revision a130cf8ae8ab56ba1cfa7edc52b637c9d0c3fd38)
15125a02aSNicolas Lesser // RUN: %clang_cc1 -ast-print -std=c++17 %s | FileCheck %s
25125a02aSNicolas Lesser 
35125a02aSNicolas Lesser struct S {
45125a02aSNicolas Lesser template<typename ... T>
test1S55125a02aSNicolas Lesser void test1(int i, T... t) {
65125a02aSNicolas Lesser {
75125a02aSNicolas Lesser   auto lambda = [i]{};
85125a02aSNicolas Lesser   //CHECK: [i] {
95125a02aSNicolas Lesser }
105125a02aSNicolas Lesser {
115125a02aSNicolas Lesser   auto lambda = [=]{};
125125a02aSNicolas Lesser   //CHECK: [=] {
135125a02aSNicolas Lesser }
145125a02aSNicolas Lesser {
155125a02aSNicolas Lesser   auto lambda = [&]{};
165125a02aSNicolas Lesser   //CHECK: [&] {
175125a02aSNicolas Lesser }
185125a02aSNicolas Lesser {
19*a130cf8aSIlya Golovenko   auto lambda = [k{i}] {};
20*a130cf8aSIlya Golovenko   //CHECK: [k{i}] {
21*a130cf8aSIlya Golovenko }
22*a130cf8aSIlya Golovenko {
23*a130cf8aSIlya Golovenko   auto lambda = [k(i)] {};
24*a130cf8aSIlya Golovenko   //CHECK: [k(i)] {
25*a130cf8aSIlya Golovenko }
26*a130cf8aSIlya Golovenko {
27*a130cf8aSIlya Golovenko   auto lambda = [k = i] {};
28*a130cf8aSIlya Golovenko   //CHECK: [k = i] {
29*a130cf8aSIlya Golovenko }
30*a130cf8aSIlya Golovenko {
315125a02aSNicolas Lesser   auto lambda = [t..., i]{};
325125a02aSNicolas Lesser   //CHECK: [t..., i] {
335125a02aSNicolas Lesser }
345125a02aSNicolas Lesser {
355125a02aSNicolas Lesser   auto lambda = [&t...]{};
365125a02aSNicolas Lesser   //CHECK: [&t...] {
375125a02aSNicolas Lesser }
385125a02aSNicolas Lesser {
395125a02aSNicolas Lesser   auto lambda = [this, &t...]{};
405125a02aSNicolas Lesser   //CHECK: [this, &t...] {
415125a02aSNicolas Lesser }
425125a02aSNicolas Lesser {
435125a02aSNicolas Lesser   auto lambda = [t..., this]{};
445125a02aSNicolas Lesser   //CHECK: [t..., this] {
455125a02aSNicolas Lesser }
46*a130cf8aSIlya Golovenko {
47*a130cf8aSIlya Golovenko   auto lambda = [k(t...)] {};
48*a130cf8aSIlya Golovenko   //CHECK: [k(t...)] {
49*a130cf8aSIlya Golovenko }
50*a130cf8aSIlya Golovenko {
51*a130cf8aSIlya Golovenko   auto lambda = [k{t...}] {};
52*a130cf8aSIlya Golovenko   //CHECK: [k{t...}] {
53*a130cf8aSIlya Golovenko }
545125a02aSNicolas Lesser }
555125a02aSNicolas Lesser 
565125a02aSNicolas Lesser };