diff options
author | Nathan Ridge | 2013-01-30 01:03:04 +0000 |
---|---|---|
committer | Sergey Prigogin | 2013-01-30 01:03:04 +0000 |
commit | ad05d7423a6e82b702a2160ce227a7e0b958285b (patch) | |
tree | 7492a30774fc01302fc25635346f490c7f171adf | |
parent | f2037f2ebb1c1843d99567e922671d855c3dc1f6 (diff) | |
download | org.eclipse.cdt-ad05d7423a6e82b702a2160ce227a7e0b958285b.tar.gz org.eclipse.cdt-ad05d7423a6e82b702a2160ce227a7e0b958285b.tar.xz org.eclipse.cdt-ad05d7423a6e82b702a2160ce227a7e0b958285b.zip |
Bug 397494 - Error evaluating decltype of constant lambda
Reviewed-on: https://git.eclipse.org/r/9478
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2 files changed, 16 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index cf82d2d8ee1..7488fbb69d6 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -10088,6 +10088,21 @@ public class AST2CPPTests extends AST2TestBase { helper.assertNonProblemOnFirstIdentifier("fint({vchar"); } + // template <typename T> + // T bar(); + // struct S { + // void waldo(); + // }; + // int main() { + // auto L = [](S s) { return s; }; + // typedef decltype(L) lambda_type; + // decltype(bar<const lambda_type>()(S())) v; + // v.waldo(); + // } + public void testDecltypeWithConstantLambda_397494() throws Exception { + parseAndCheckBindings(); + } + // template <bool> // struct enable_if { // }; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java index 14e1902fd42..979cc8fd7b3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java @@ -103,7 +103,7 @@ public class CPPClosureType extends PlatformObject implements ICPPClassType, ICP // Function call operator final IType returnType= getReturnType(); final IType[] parameterTypes= getParameterTypes(); - ft= new CPPFunctionType(returnType, parameterTypes, isMutable(), false, false); + ft= new CPPFunctionType(returnType, parameterTypes, !isMutable(), false, false); ICPPParameter[] params = new ICPPParameter[parameterTypes.length]; for (int i = 0; i < params.length; i++) { |