diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/AbstractInternalContentAssistParser.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/AbstractInternalContentAssistParser.java index 0d0e0c0a2..308ecbe69 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/AbstractInternalContentAssistParser.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/AbstractInternalContentAssistParser.java @@ -230,7 +230,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme private void removeUnexpectedElements() { int dropParamAt = -1; if (!grammarElementsWithParams.isEmpty()) { - dropParamAt = grammarElementsWithParams.get(grammarElementsWithParams.size() - 1); + dropParamAt = getLast(grammarElementsWithParams); } while (stackSize < grammarElements.size()) { removeLast(grammarElements); @@ -238,12 +238,16 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme removeLast(paramStack); removeLast(grammarElementsWithParams); if (!grammarElementsWithParams.isEmpty()) { - dropParamAt = grammarElementsWithParams.get(grammarElementsWithParams.size() - 1); + dropParamAt = getLast(grammarElementsWithParams); } } } } - + + private T getLast(List list) { + return list.get(list.size() - 1); + } + private T removeLast(List list) { return list.remove(list.size() - 1); } @@ -516,7 +520,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme protected AbstractElement getCurrentGrammarElement() { for (int i = grammarElements.size() - 1; i >= 0; i--) { - EObject result = grammarElements.get(grammarElements.size() - 1); + EObject result = grammarElements.get(i); if (result instanceof AbstractElement) return (AbstractElement) result; }