private List<XExpression> collectIfParts(XIfExpression expression, List<XExpression> result) { result.add(expression.getIf()); if (expression.getElse() instanceof XIfExpression) { collectIfParts((XIfExpression) expression.getElse(), result); } return result; }
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); } }
} else if (expr instanceof XIfExpression) { XIfExpression ifExpr = (XIfExpression) expr; checkInitializationRec(ifExpr.getIf(), fields, initializedForSure, initializedMaybe, 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; }
protected void _computeTypes(XIfExpression object, ITypeComputationState state) { ITypeComputationState conditionExpectation = state.withExpectation(getRawTypeForName(Boolean.TYPE, state)); XExpression condition = object.getIf(); conditionExpectation.computeTypes(condition); // TODO then expression may influence the expected type of else and vice versa XExpression thenExpression = getThen(object); ITypeComputationState thenState = reassignCheckedType(condition, thenExpression, state); ITypeComputationResult thenResult = thenState.computeTypes(thenExpression); XExpression elseExpression = getElse(object); if (elseExpression != null) { state.computeTypes(elseExpression); } else { BranchExpressionProcessor processor = new BranchExpressionProcessor(state, object) { @Override protected String getMessage() { return "Missing else branch for conditional expression with primitive type"; } }; processor.process(thenResult); processor.commit(); } }
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); format.append(this.textRegionExtensions.regionFor(expr).keyword("if"), XbaseFormatterPreferenceKeys.whitespaceBetweenKeywordAndParenthesisSL); format.<XExpression>format(expr.getIf()); XExpression _else = expr.getElse(); boolean _tripleEquals = (_else == null);
protected void _toJavaStatement(XIfExpression expr, ITreeAppendable b, boolean isReferenced) { if (isReferenced) declareSyntheticVariable(expr, b); internalToJavaStatement(expr.getIf(), b, true); b.newLine().append("if ("); internalToJavaExpression(expr.getIf(), b); b.append(") {").increaseIndentation(); final boolean canBeReferenced = isReferenced && !isPrimitiveVoid(expr.getThen());
generate(ifStatement.getIf(), it, context); it.append(":"); //$NON-NLS-1$ it.increaseIndentation().newLine();
this.format(expr.getIf(), format); this.format(expr.getThen(), format); XExpression _else_5 = expr.getElse();