org.eclipse.jdt.internal.compiler.ast.ExpressionContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ecj Show documentation
Show all versions of ecj Show documentation
This is Eclipse JDT Core Batch Compiler used by Scout SDK
The newest version!
/*******************************************************************************
* Copyright (c) 2013, 2014 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Stephan Herrmann - Contribution for
* Bug 427438 - [1.8][compiler] NPE at org.eclipse.jdt.internal.compiler.ast.ConditionalExpression.generateCode(ConditionalExpression.java:280)
*******************************************************************************/
package org.eclipse.jdt.internal.compiler.ast;
public enum ExpressionContext {
/** Assignment context: potential poly-expressions are: method invocations, lambdas, reference expressions,
conditional expressions and allocation expressions. This is the only Java 7 context where target type
influenced evaluation of some expression.
Context induced by: ReturnStatement, ArrayInitializer, Assignment, FieldDeclaration and LocalDeclaration.
*/
ASSIGNMENT_CONTEXT {
public String toString() {
return "assignment context"; //$NON-NLS-1$
}
public boolean definesTargetType() {
return true;
}
},
/** Invocation context: potential poly-expressions are: method invocations, lambdas, reference expressions,
conditional expressions and allocation expressions. At this point, we don't distinguish between strict
and loose invocation contexts - we may have to cross the bridge some day.
Context induced by: AllocationExpression, QualifiedAllocationExpression, ExplicitConstructorCall, MessageSend
CodeSnippetAllocationExpression and CodeSnippetMessageSend.
*/
INVOCATION_CONTEXT {
public String toString() {
return "invocation context"; //$NON-NLS-1$
}
public boolean definesTargetType() {
return true;
}
},
/** Casting context: potential poly-expressions are: lambdas and reference expressions
Context induced by: CastExpression.
*/
CASTING_CONTEXT {
public String toString() {
return "casting context"; //$NON-NLS-1$
}
public boolean definesTargetType() {
return false;
}
},
/** Vanilla context (string, numeric): potential poly-expressions are: NONE. This is the nonpoly context in which
expressions get evaluated, unless they feature in one of the above contexts.
*/
VANILLA_CONTEXT {
public String toString() {
return "vanilla context"; //$NON-NLS-1$
}
public boolean definesTargetType() {
return false;
}
};
public abstract boolean definesTargetType();
}