visitConditionalExpression method
Visit a SConditionalExpression.
Implementation
@override
Object? visitConditionalExpression(SConditionalExpression node) {
final conditionValue = node.condition!.accept<Object?>(this);
bool conditionResult;
final bridgedInstance = toBridgedInstance(conditionValue);
if (conditionValue is bool) {
conditionResult = conditionValue;
} else if (bridgedInstance.$2 && bridgedInstance.$1?.nativeObject is bool) {
conditionResult = bridgedInstance.$1!.nativeObject as bool;
} else {
throw RuntimeD4rtException(
"The condition of a conditional expression must be a boolean, but was ${conditionValue?.runtimeType}.",
);
}
if (conditionResult) {
return node.thenExpression!.accept<Object?>(this);
} else {
return node.elseExpression!.accept<Object?>(this);
}
}