diff options
Diffstat (limited to 'org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl')
2 files changed, 15 insertions, 7 deletions
diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java index 99804638db..fa1531dedb 100644 --- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java +++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java @@ -8,6 +8,10 @@ * * SPDX-License-Identifier: EPL-2.0 * + * This is an implementation of an early-draft specification developed under the Java + * Community Process (JCP) and is made available for testing and evaluation purposes + * only. The code is not compatible with any specification of the JCP. + * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ @@ -104,6 +108,7 @@ public abstract class AssistParser extends Parser { protected static final int K_ENUM_CONSTANT_DELIMITER = ASSIST_PARSER + 6; // whether we are inside a field initializer protected static final int K_LAMBDA_EXPRESSION_DELIMITER = ASSIST_PARSER + 7; // whether we are inside a lambda expression protected static final int K_MODULE_INFO_DELIMITER = ASSIST_PARSER + 8; // whether we are inside a module info declaration + protected static final int K_SWITCH_EXPRESSION_DELIMITTER = ASSIST_PARSER + 9; // whether we are inside a switch expression // selector constants protected static final int THIS_CONSTRUCTOR = -1; @@ -1281,11 +1286,8 @@ private void adjustBracket(int token) { break; } } -private boolean lastArrowAssociatedWithCase = false; @Override protected void consumeToken(int token) { - if (TokenNameARROW == token) - this.lastArrowAssociatedWithCase = this.caseFlagSet; // remember the arrow association before reset. super.consumeToken(token); if(this.isFirst) { @@ -1318,9 +1320,10 @@ protected void consumeToken(int token) { } break; case TokenNameLBRACE: - if (this.previousToken == TokenNameARROW && !this.lastArrowAssociatedWithCase) { + if (this.previousToken == TokenNameARROW) { popElement(K_LAMBDA_EXPRESSION_DELIMITER); - pushOnElementStack(K_LAMBDA_EXPRESSION_DELIMITER, BLOCK_BODY, this.previousObjectInfo); + if (topKnownElementKind(ASSIST_PARSER, 1) != K_SWITCH_EXPRESSION_DELIMITTER) + pushOnElementStack(K_LAMBDA_EXPRESSION_DELIMITER, BLOCK_BODY, this.previousObjectInfo); } break; } diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/Keywords.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/Keywords.java index 2fb6ab568b..ba10f2c3d8 100644 --- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/Keywords.java +++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/Keywords.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2018 IBM Corporation and others. + * Copyright (c) 2000, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -7,7 +7,11 @@ * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 - * + * + * This is an implementation of an early-draft specification developed under the Java + * Community Process (JCP) and is made available for testing and evaluation purposes + * only. The code is not compatible with any specification of the JCP. + * * Contributors: * IBM Corporation - initial API and implementation * Jesper Steen Møller - Contributions for @@ -22,6 +26,7 @@ public interface Keywords { char[] ASSERT = "assert".toCharArray(); //$NON-NLS-1$ char[] BREAK = "break".toCharArray(); //$NON-NLS-1$ char[] CASE = "case".toCharArray(); //$NON-NLS-1$ + char[] YIELD = "yield".toCharArray(); //$NON-NLS-1$ char[] CATCH = "catch".toCharArray(); //$NON-NLS-1$ char[] CLASS = "class".toCharArray(); //$NON-NLS-1$ char[] CONTINUE = "continue".toCharArray(); //$NON-NLS-1$ |