diff options
author | Faisal Vali <faisalv@yahoo.com> | 2013-10-03 06:29:33 +0000 |
---|---|---|
committer | Faisal Vali <faisalv@yahoo.com> | 2013-10-03 06:29:33 +0000 |
commit | 618c28547a7f7cc785a6c6301f79febf5a584f9e (patch) | |
tree | f9d971d1b4ea06cabdf6af801512ae21fb0074f2 /test/CXX/expr/expr.prim | |
parent | 11f22a35b7f08a8d017f6ab26e440edffc930f96 (diff) | |
download | clang-618c28547a7f7cc785a6c6301f79febf5a584f9e.tar.gz |
Teach TreeTransform and family how to transform generic lambdas within templates and nested within themselves.
This does not yet include capturing (that is next).
Please see test file for examples.
This patch was LGTM'd by Doug:
http://llvm-reviews.chandlerc.com/D1784
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130930/090048.html
When I first committed this patch - a bunch of buildbots were unable to compile the code that VS2010 seemed to compile. Seems like there was a dependency on Sema/Template.h which VS did not seem to need, but I have now added for the other compilers. It still compiles on Visual Studio 2010 - lets hope the buildbots remain quiet (please!)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191879 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CXX/expr/expr.prim')
-rw-r--r-- | test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp b/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp index a43a98bb18..92dd7ad187 100644 --- a/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp +++ b/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp @@ -29,20 +29,3 @@ void test() { } -namespace nested_generic_lambdas { -void test() { - auto L = [](auto a) -> int { - auto M = [](auto b, decltype(a) b2) -> int { //expected-error{{unimplemented}} - return 1; - }; - M(a, a); - }; - L(3); //expected-note{{in instantiation of}} -} -template<class T> void foo(T) { - auto L = [](auto a) { return a; }; //expected-error{{unimplemented}} -} -template void foo(int); //expected-note{{in instantiation of}} -} - - |