final ValueType whenFalseArg = ((EvaluationTracker)data).getValueType();
if (choiceArg != null && whenTrueArg != null && whenFalseArg != null)
{
final TernaryChoiceOperator operator =
new TernaryChoiceOperator(_diagnosticFactory);
final Diagnostic diagnostic =
operator.validate(choiceArg/* whenTrueArg, whenFalseArg*/);
if (diagnostic.getSeverity() != Diagnostic.OK)
{
final Token firstToken = node.getFirstToken();
final int offset = _context.getDocumentPosition() + firstToken.beginColumn - 1;
final int length = node.getLastToken().endColumn - firstToken.beginColumn+1;
_reporter.report(diagnostic, offset, length);
}
((EvaluationTracker)data).setType(operator.perform(choiceArg, whenTrueArg, whenFalseArg));
}
else
{
((EvaluationTracker)data).setType(null);
}