diff options
author | Sergey Grant | 2015-12-01 04:02:26 +0000 |
---|---|---|
committer | Sergey Prigogin | 2015-12-24 02:27:27 +0000 |
commit | 61b65becf9e3c74fb055e0bd65d3e3a262469a96 (patch) | |
tree | 640f2aa2f0fd51373d007c399cae8c407178c58b | |
parent | 6142db7901d5fad87ebbff5740e62cb31591d6c0 (diff) | |
download | org.eclipse.cdt-61b65becf9e3c74fb055e0bd65d3e3a262469a96.tar.gz org.eclipse.cdt-61b65becf9e3c74fb055e0bd65d3e3a262469a96.tar.xz org.eclipse.cdt-61b65becf9e3c74fb055e0bd65d3e3a262469a96.zip |
Bug 481070 - Parameter completion doesn't work inside lambda
Change-Id: I32b0cf54dd349e04fddca17f4141e7fee06f2562
Signed-off-by: Sergey Grant <sergey.grant@me.com>
2 files changed, 11 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/AccessContext.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/AccessContext.java index 6d4a4621438..8b5184cdc47 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/AccessContext.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/AccessContext.java @@ -31,6 +31,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope; import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization; import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter; import org.eclipse.cdt.core.parser.util.ArrayUtil; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClosureType; import org.eclipse.cdt.internal.core.dom.parser.cpp.ClassTypeHelper; import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDeferredClassInstance; import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalUnknownScope; @@ -115,6 +116,8 @@ public class AccessContext { binding = ((ICPPAliasTemplateInstance) binding).getTemplateDefinition(); } IBinding owner = binding.getOwner(); + if (owner instanceof CPPClosureType) + return true; if (owner instanceof ICPPClassType) { bindingVisibility = ((ICPPClassType) owner).getVisibility(binding); } else { diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java index 7e61b4212bf..85bcbc33ecd 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java @@ -1401,6 +1401,13 @@ public class CompletionTests extends AbstractContentAssistTest { assertCompletionResults(fCursorOffset, expected, ID); } + // int par1; + // auto x = [](int par2) { return par/*cursor*/ + public void testLambdaParameter_481070() throws Exception { + final String[] expected= { "par1", "par2" }; + assertCompletionResults(fCursorOffset, expected, ID); + } + // #define fooBar // #define foo_bar // fB/*cursor*/ @@ -1629,7 +1636,7 @@ public class CompletionTests extends AbstractContentAssistTest { final String[] expectedDisplay = { "default_argument() : void" }; assertContentAssistResults(fCursorOffset, expectedDisplay, true, DISPLAY); } - + // template<typename T = int> // struct default_argument {}; // default_arg/*cursor*/ |