visitSequence method
Implementation
@override
void visitSequence(SequenceExpression node) {
final expressions = node.expressions;
final count = expressions.length;
final returnType = node.resultType;
node.visitChildren(this);
final variables = expressions.where((e) => e.variable != null).toList();
if (node.actionIndex != null) {
_setReturnType(node, returnType);
} else {
if (count == 1) {
final first = expressions.first;
_setReturnType(node, first.resultType);
} else {
if (variables.isEmpty) {
final expression = expressions.first;
_setReturnType(node, expression.resultType);
} else if (variables.length == 1) {
final expression = variables.first;
_setReturnType(node, expression.resultType);
} else {
final hashSet = variables.toSet();
if (hashSet.length == 1) {
final returnType = hashSet.first.resultType;
_setReturnType(node, _getListReturnType(returnType));
} else {
_setReturnType(node, 'List');
}
}
}
}
}