Java Code Examples for org.eclipse.jdt.core.compiler.IProblem#ReturnTypeMismatch

The following examples show how to use org.eclipse.jdt.core.compiler.IProblem#ReturnTypeMismatch . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: LambdaExpression.java    From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 5 votes vote down vote up
public void tagAsHavingIgnoredMandatoryErrors(int problemId) {
	switch (problemId) {
		// 15.27.3 requires exception throw related errors to not influence congruence. Other errors should. Also don't abort shape analysis.
		case IProblem.UnhandledExceptionOnAutoClose:
		case IProblem.UnhandledExceptionInDefaultConstructor:
		case IProblem.UnhandledException:
			return;
		/* The following structural problems can occur only because of target type imposition. Filter, so we can distinguish inherent errors 
		   in explicit lambdas. This is to help decide whether to proceed with data/control flow analysis to discover shape. In case of inherent
		   errors, we will not call analyze code as it is not prepared to analyze broken programs.
		*/
		case IProblem.VoidMethodReturnsValue:
		case IProblem.ShouldReturnValueHintMissingDefault:
		case IProblem.ShouldReturnValue:
		case IProblem.ReturnTypeMismatch:
		case IProblem.IncompatibleLambdaParameterType:
		case IProblem.lambdaParameterTypeMismatched:
		case IProblem.lambdaSignatureMismatched:
		case IProblem.LambdaDescriptorMentionsUnmentionable:
		case IProblem.TargetTypeNotAFunctionalInterface:
		case IProblem.illFormedParameterizationOfFunctionalInterface:
		case IProblem.MultipleFunctionalInterfaces:
		case IProblem.NoGenericLambda:
			return;
		default: 
			this.original.hasIgnoredMandatoryErrors = true;
			MethodScope enclosingLambdaScope = this.scope == null ? null : this.scope.enclosingLambdaScope();
			while (enclosingLambdaScope != null) {
				LambdaExpression enclosingLambda = (LambdaExpression) enclosingLambdaScope.referenceContext;
				if (enclosingLambda.original != enclosingLambda)
					enclosingLambda.original.hasIgnoredMandatoryErrors = true;
				enclosingLambdaScope = enclosingLambdaScope.enclosingLambdaScope();
			}
			return;
	}
}