diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-02-09 08:26:42 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-02-09 08:26:42 +0000 |
commit | b326ca8ffbea96f9cc8a457b0f57be880304a6f5 (patch) | |
tree | 88d0757c9105ab4be5c68f44046cab11caa0ffd8 /test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp | |
parent | 7e545d95bc92157f9f124d95aa2ed66d691d2028 (diff) |
Remove the "unsupported" error for lambda expressions. It's annoying,
and rapidly becoming untrue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150165 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp')
-rw-r--r-- | test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp b/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp index 48c00aa7c6..c6ed308d79 100644 --- a/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp +++ b/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp @@ -2,9 +2,8 @@ // prvalue void prvalue() { - auto&& x = []()->void { }; // expected-error{{lambda expressions are not supported yet}} - auto& y = []()->void { }; // expected-error{{cannot bind to a temporary of type}} \ - // expected-error{{lambda expressions are not supported yet}} + auto&& x = []()->void { }; + auto& y = []()->void { }; // expected-error{{cannot bind to a temporary of type}} } namespace std { @@ -16,11 +15,9 @@ struct P { }; void unevaluated_operand(P &p, int i) { - int i2 = sizeof([]()->void{}()); // expected-error{{lambda expression in an unevaluated operand}} \ - // expected-error{{lambda expressions are not supported yet}} - const std::type_info &ti1 = typeid([&]() -> P& { return p; }()); // expected-error{{lambda expressions are not supported yet}} - const std::type_info &ti2 = typeid([&]() -> int { return i; }()); // expected-error{{lambda expression in an unevaluated operand}} \ - // expected-error{{lambda expressions are not supported yet}} + int i2 = sizeof([]()->void{}()); // expected-error{{lambda expression in an unevaluated operand}} + const std::type_info &ti1 = typeid([&]() -> P& { return p; }()); + const std::type_info &ti2 = typeid([&]() -> int { return i; }()); // expected-error{{lambda expression in an unevaluated operand}} } template<typename T> @@ -36,13 +33,10 @@ struct Boom { void odr_used(P &p, Boom<int> boom_int, Boom<float> boom_float, Boom<double> boom_double) { const std::type_info &ti1 - = typeid([=,&p]() -> P& { boom_int.tickle(); return p; }()); // expected-error{{lambda expressions are not supported yet}} \ - // expected-note{{in instantiation of member function 'Boom<int>::Boom' requested here}} + = typeid([=,&p]() -> P& { boom_int.tickle(); return p; }()); // expected-note{{in instantiation of member function 'Boom<int>::Boom' requested here}} const std::type_info &ti2 = typeid([=]() -> int { boom_float.tickle(); return 0; }()); // expected-error{{lambda expression in an unevaluated operand}} \ - // expected-error{{lambda expressions are not supported yet}} \ // expected-note{{in instantiation of member function 'Boom<float>::Boom' requested here}} - auto foo = [=]() -> int { boom_double.tickle(); return 0; }; // expected-error{{lambda expressions are not supported yet}} \ - // expected-note{{in instantiation of member function 'Boom<double>::Boom' requested here}} + auto foo = [=]() -> int { boom_double.tickle(); return 0; }; // expected-note{{in instantiation of member function 'Boom<double>::Boom' requested here}} } |