visitOrderedChoice method
Implementation
@override
void visitOrderedChoice(OrderedChoiceExpression node) {
final expressions = node.expressions;
final count = expressions.length;
final returnType = node.resultType;
for (var i = 0; i < count; i++) {
final expression = expressions[i];
_setReturnType(expression, returnType);
}
node.visitChildren(this);
final returnTypes = <String>{};
for (var i = 0; i < count; i++) {
final child = expressions[i];
returnTypes.add(child.resultType);
}
if (returnTypes.contains('dynamic')) {
_setReturnType(node, returnType);
} else {
if (returnTypes.length == 1) {
_setReturnType(node, returnTypes.first);
} else {
_setReturnType(node, returnType);
}
}
}