From 28c22cca09fdf789abe0d5d91485c0c9ad1797cd Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Fri, 27 Nov 2015 02:33:54 -0500 Subject: [PATCH] Bug 477359 - Completion node inside attribute specifier Change-Id: I54902dc41834943a3fcfcca60ebbc2944fa0a68a Signed-off-by: Nathan Ridge --- .../core/dom/parser/AbstractGNUSourceCodeParser.java | 5 +++++ .../cdt/ui/tests/text/contentassist2/CompletionTests.java | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java index 8ed48d4c021..f83f999683b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java @@ -2467,6 +2467,11 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IToken t; while ((t = LA(1)).getType() != endType) { t = consume(); + + if (t.getType() == IToken.tCOMPLETION || t.getType() == IToken.tEOC) { + break; + } + result.addToken(createASTToken(t)); IASTToken token; 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 256bf4063b4..7e61b4212bf 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 @@ -1722,4 +1722,10 @@ public class CompletionTests extends AbstractContentAssistTest { final String[] expected = { "A", "C", "foo(void)" }; assertCompletionResults(fCursorOffset, expected, ID); } + + // int [[f(./*cursor*/)]] i; + public void testCompletionInsideAttribute_bug477359() throws Exception { + final String[] expected = {}; + assertCompletionResults(fCursorOffset, expected, ID); + } }