blob: 1afe17f52843b90afba6ccf6214f6e5d4610fae0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 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
*/
package org.eclipse.jdt.internal.codeassist.select;
import org.eclipse.jdt.internal.compiler.ast.LambdaExpression;
import org.eclipse.jdt.internal.compiler.lookup.BlockScope;
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
public class SelectionOnLambdaExpression extends LambdaExpression {
public SelectionOnLambdaExpression(LambdaExpression expression) {
// Where is object derivation when I need it ???
super(expression.compilationResult(), true);
// copy all state created by the parser.
this.sourceStart = expression.sourceStart;
this.sourceEnd = expression.sourceEnd;
this.hasParentheses = expression.hasParentheses;
this.statementEnd = expression.statementEnd;
this.setBody(expression.body());
this.setArguments(expression.arguments());
this.setArrowPosition(expression.arrowPosition());
}
@Override
public TypeBinding resolveType(BlockScope blockScope) {
TypeBinding resolveType = super.resolveType(blockScope);
if (this.expectedType != null && this.original == this) { // final resolution.
throw new SelectionNodeFound(this.descriptor);
}
return resolveType;
}
}