resolveType method
Implementation
@override
FutureOr<ASTType> resolveType(VMContext? context) {
switch (operator) {
case ASTExpressionOperator.add:
case ASTExpressionOperator.subtract:
case ASTExpressionOperator.multiply:
case ASTExpressionOperator.divide:
{
var retT1 = expression1.resolveType(context);
var retT2 = expression2.resolveType(context);
return retT1.resolveBoth(
retT2, (t1, t2) => _resolveTypePair(t1, t2, context));
}
case ASTExpressionOperator.divideAsInt:
return ASTTypeInt.instance;
case ASTExpressionOperator.divideAsDouble:
return ASTTypeDouble.instance;
case ASTExpressionOperator.equals:
case ASTExpressionOperator.notEquals:
case ASTExpressionOperator.greater:
case ASTExpressionOperator.greaterOrEq:
case ASTExpressionOperator.lower:
case ASTExpressionOperator.lowerOrEq:
return ASTTypeBool.instance;
}
}