objcxx0x-lambda-expressions.mm revision dc3b723d35067e5d13474247b94a10c869cc7e58
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 2 3class C { 4 5 void f() { 6 int foo, bar; 7 8 // fail to parse as a lambda introducer, so we get objc message parsing errors instead 9 [foo,+] {}; // expected-error {{expected expression}} 10 11 []; // expected-error {{expected body of lambda expression}} 12 [=,foo+] {}; // expected-error {{expected ',' or ']' in lambda capture list}} 13 [&this] {}; // expected-error {{address expression must be an lvalue}} 14 [] {}; // expected-error {{lambda expressions are not supported yet}} 15 [=] (int i) {}; // expected-error {{lambda expressions are not supported yet}} 16 [&] (int) mutable -> void {}; // expected-error {{lambda expressions are not supported yet}} 17 // FIXME: this error occurs because we do not yet handle lambda scopes 18 // properly. I did not anticipate it because I thought it was a semantic (not 19 // syntactic) check. 20 [foo,bar] () { return 3; }; // expected-error {{void function 'f' should not return a value}} expected-error {{lambda expressions are not supported yet}} 21 [=,&foo] () {}; // expected-error {{lambda expressions are not supported yet}} 22 [this] () {}; // expected-error {{lambda expressions are not supported yet}} 23 } 24 25}; 26 27