/** * Only for testing purpose. * @nooverride This method is not intended to be re-implemented or extended by clients. * @noreference This method is not intended to be referenced by clients. */ /* @Nullable */ protected XExpression getThen(XIfExpression ifExpression) { return ifExpression.getThen(); }
protected void _findImplicitReturns(final XIfExpression expression, final ImplicitReturnFinder.Acceptor acceptor) { this.findImplicitReturns(expression.getThen(), acceptor); this.findImplicitReturns(expression.getElse(), acceptor); }
protected Collection<IEarlyExitComputer.ExitPoint> _exitPoints(final XIfExpression expression) { Collection<IEarlyExitComputer.ExitPoint> ifExitPoints = this.getExitPoints(expression.getIf()); boolean _isNotEmpty = this.isNotEmpty(ifExitPoints); if (_isNotEmpty) { return ifExitPoints; } Collection<IEarlyExitComputer.ExitPoint> thenExitPoints = this.getExitPoints(expression.getThen()); Collection<IEarlyExitComputer.ExitPoint> elseExitPoints = this.getExitPoints(expression.getElse()); if ((this.isNotEmpty(thenExitPoints) && this.isNotEmpty(elseExitPoints))) { Collection<IEarlyExitComputer.ExitPoint> result = Lists.<IEarlyExitComputer.ExitPoint>newArrayList(thenExitPoints); result.addAll(elseExitPoints); return result; } return Collections.<IEarlyExitComputer.ExitPoint>emptyList(); }
protected Object _doEvaluate(XIfExpression ifExpression, IEvaluationContext context, CancelIndicator indicator) { Object conditionResult = internalEvaluate(ifExpression.getIf(), context, indicator); if (Boolean.TRUE.equals(conditionResult)) { return internalEvaluate(ifExpression.getThen(), context, indicator); } else { if (ifExpression.getElse() == null) return getDefaultObjectValue(typeResolver.resolveTypes(ifExpression).getActualType(ifExpression)); return internalEvaluate(ifExpression.getElse(), context, indicator); } }
@Check public void checkDeadCode(XIfExpression condition) { if (!earlyExitComputer.isEarlyExit(condition.getIf())) { validateCondition(condition.getIf(), false); } else { if (!markAsDeadCode(condition.getThen())) { markAsDeadCode(condition.getElse()); } } }
checkInitializationRec(ifExpr.getThen(), fields, initializedThenForSure, initializedThenMaybe, visited);
/** Test if the given expression has side effects. * * @param expression the expression. * @param context the list of context expressions. * @return {@code true} if the expression has side effects. */ protected Boolean _hasSideEffects(XIfExpression expression, ISideEffectContext context) { if (hasSideEffects(expression.getIf(), context)) { return true; } final Map<String, List<XExpression>> buffer1 = context.createVariableAssignmentBufferForBranch(); if (hasSideEffects(expression.getThen(), context.branch(buffer1))) { return true; } final Map<String, List<XExpression>> buffer2 = context.createVariableAssignmentBufferForBranch(); if (hasSideEffects(expression.getElse(), context.branch(buffer2))) { return true; } context.mergeBranchVariableAssignments(Arrays.asList(buffer1, buffer2)); return false; }
format.<XIfExpression>surround(expr, _function); final boolean multiline = (this.isMultilineOrInNewLine(expr.getThen()) || this.isMultilineOrInNewLine(expr.getElse())); final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it) -> { it.noSpace(); }; format.<XExpression>surround(expr.getIf(), _function_1); if (((expr.getThen() instanceof XBlockExpression) || multiline)) { format.append(this.textRegionExtensions.regionFor(expr).keyword("if"), XbaseFormatterPreferenceKeys.whitespaceBetweenKeywordAndParenthesisML); } else { boolean _tripleEquals = (_else == null); if (_tripleEquals) { this.formatBody(expr.getThen(), multiline, format); } else { this.formatBodyInline(expr.getThen(), multiline, format); if (((expr.getElse() instanceof XIfExpression) || (!multiline))) { final Procedure1<IHiddenRegionFormatter> _function_2 = (IHiddenRegionFormatter it) -> {
if (ifExpression.getThen() == expr || ifExpression.getElse() == expr) { return false;
return isDefiniteEarlyExit(ifExpression.getThen()) && isDefiniteEarlyExit(ifExpression.getElse()); } else if (expression instanceof XSwitchExpression) { XSwitchExpression switchExpression = (XSwitchExpression) expression;
internalToJavaExpression(expr.getIf(), b); b.append(") {").increaseIndentation(); final boolean canBeReferenced = isReferenced && !isPrimitiveVoid(expr.getThen()); internalToJavaStatement(expr.getThen(), b, canBeReferenced); if (canBeReferenced) { b.newLine(); b.append(getVarName(expr, b)); b.append(" = "); internalToConvertedExpression(expr.getThen(), b, getLightweightType(expr)); b.append(";");
format.operator_add(_append_1); final INode thennode = this._nodeModelAccess.nodeForEObject(expr.getThen()); XExpression _else = expr.getElse(); INode _nodeForEObject = null; Function1<? super FormattableDocument, ? extends Iterable<FormattingData>> _surround = this._formattingDataFactory.surround(this._nodeModelAccess.nodeForFeature(expr, XbasePackage.Literals.XIF_EXPRESSION__IF), _function_2); format.operator_add(_surround); if (((expr.getThen() instanceof XBlockExpression) || multiline)) { final Procedure1<FormattingDataInit> _function_3 = (FormattingDataInit it) -> { it.cfg(XbaseFormatterPreferenceKeys.whitespaceBetweenKeywordAndParenthesisML); format.operator_add(_append_3); XExpression _then = expr.getThen(); if ((_then instanceof XBlockExpression)) { final Procedure1<FormattingDataInit> _function_5 = (FormattingDataInit it) -> { this.format(expr.getThen(), format); XExpression _else_5 = expr.getElse(); boolean _tripleNotEquals_3 = (_else_5 != null);
return isIntentionalEarlyExit(((XIfExpression) expression).getThen()) || isIntentionalEarlyExit(((XIfExpression) expression).getElse()); } else if (expression instanceof XSwitchExpression) {