@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); result.addMinTypeExprent(index, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(index, VarType.VARTYPE_INT); return result; }
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); for (int i = 0; i < lstParameters.size(); i++) { Exprent parameter = lstParameters.get(i); VarType leftType = descriptor.params[i]; result.addMinTypeExprent(parameter, VarType.getMinTypeInFamily(leftType.typeFamily)); result.addMaxTypeExprent(parameter, leftType); } return result; }
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); VarType typeLeft = left.getExprType(); VarType typeRight = right.getExprType(); if (typeLeft.typeFamily > typeRight.typeFamily) { result.addMinTypeExprent(right, VarType.getMinTypeInFamily(typeLeft.typeFamily)); } else if (typeLeft.typeFamily < typeRight.typeFamily) { result.addMinTypeExprent(left, typeRight); } else { result.addMinTypeExprent(left, VarType.getCommonSupertype(typeLeft, typeRight)); } return result; }
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); if (exitType == EXIT_RETURN && retType.type != CodeConstants.TYPE_VOID) { result.addMinTypeExprent(value, VarType.getMinTypeInFamily(retType.typeFamily)); result.addMaxTypeExprent(value, retType); } return result; }
case FUNCTION_IIF: VarType supertype = getExprType(); result.addMinTypeExprent(param1, VarType.VARTYPE_BOOLEAN); result.addMinTypeExprent(param2, VarType.getMinTypeInFamily(supertype.typeFamily)); result.addMinTypeExprent(lstOperands.get(2), VarType.getMinTypeInFamily(supertype.typeFamily)); break; case FUNCTION_I2L: case FUNCTION_I2C: case FUNCTION_I2S: result.addMinTypeExprent(param1, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(param1, VarType.VARTYPE_INT); break; case FUNCTION_MMI: case FUNCTION_PPI: result.addMinTypeExprent(param1, implicitType); result.addMaxTypeExprent(param1, implicitType); break; case FUNCTION_GT: case FUNCTION_LE: result.addMinTypeExprent(param2, VarType.VARTYPE_BYTECHAR); case FUNCTION_BIT_NOT: result.addMinTypeExprent(param1, VarType.VARTYPE_BYTECHAR); break; case FUNCTION_AND:
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); result.addMinTypeExprent(value, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(value, VarType.VARTYPE_INT); VarType valType = value.getExprType(); for (List<Exprent> lst : caseValues) { for (Exprent expr : lst) { if (expr != null) { VarType caseType = expr.getExprType(); if (!caseType.equals(valType)) { valType = VarType.getCommonSupertype(caseType, valType); result.addMinTypeExprent(value, valType); } } } } return result; }
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); if (newType.arrayDim != 0) { for (Exprent dim : lstDims) { result.addMinTypeExprent(dim, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(dim, VarType.VARTYPE_INT); } if (newType.arrayDim == 1) { VarType leftType = newType.decreaseArrayDim(); for (Exprent element : lstArrayElements) { result.addMinTypeExprent(element, VarType.getMinTypeInFamily(leftType.typeFamily)); result.addMaxTypeExprent(element, leftType); } } } else if (constructor != null) { return constructor.checkExprTypeBounds(); } return result; }
public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); result.addMinTypeExprent(index, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(index, VarType.VARTYPE_INT); return result; }
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); VarType typeLeft = left.getExprType(); VarType typeRight = right.getExprType(); if (typeLeft.typeFamily > typeRight.typeFamily) { result.addMinTypeExprent(right, VarType.getMinTypeInFamily(typeLeft.typeFamily)); } else if (typeLeft.typeFamily < typeRight.typeFamily) { result.addMinTypeExprent(left, typeRight); } else { result.addMinTypeExprent(left, VarType.getCommonSupertype(typeLeft, typeRight)); } return result; }
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); for (int i = 0; i < lstParameters.size(); i++) { Exprent parameter = lstParameters.get(i); VarType leftType = descriptor.params[i]; result.addMinTypeExprent(parameter, VarType.getMinTypeInFamily(leftType.typeFamily)); result.addMaxTypeExprent(parameter, leftType); } return result; }
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); if (exitType == EXIT_RETURN && retType.type != CodeConstants.TYPE_VOID) { result.addMinTypeExprent(value, VarType.getMinTypeInFamily(retType.typeFamily)); result.addMaxTypeExprent(value, retType); } return result; }
result.addMinTypeExprent(param1, VarType.VARTYPE_BOOLEAN); result.addMinTypeExprent(param2, VarType.getMinTypeInFamily(supertype.typeFamily)); result.addMinTypeExprent(lstOperands.get(2), VarType.getMinTypeInFamily(supertype.typeFamily)); break; case FUNCTION_I2L: case FUNCTION_I2C: case FUNCTION_I2S: result.addMinTypeExprent(param1, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(param1, VarType.VARTYPE_INT); break; case FUNCTION_MMI: case FUNCTION_PPI: result.addMinTypeExprent(param1, implicitType); result.addMaxTypeExprent(param1, implicitType); break; case FUNCTION_GT: case FUNCTION_LE: result.addMinTypeExprent(param2, VarType.VARTYPE_BYTECHAR); case FUNCTION_BIT_NOT: result.addMinTypeExprent(param1, VarType.VARTYPE_BYTECHAR); break; case FUNCTION_AND: if (type1.type == CodeConstants.TYPE_BOOLEAN) { if (type2.isStrictSuperset(type1)) {
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); result.addMinTypeExprent(value, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(value, VarType.VARTYPE_INT); VarType valType = value.getExprType(); for (List<Exprent> lst : caseValues) { for (Exprent expr : lst) { if (expr != null) { VarType caseType = expr.getExprType(); if (!caseType.equals(valType)) { valType = VarType.getCommonSupertype(caseType, valType); result.addMinTypeExprent(value, valType); } } } } return result; }
@Override public CheckTypesResult checkExprTypeBounds() { CheckTypesResult result = new CheckTypesResult(); if (newType.arrayDim != 0) { for (Exprent dim : lstDims) { result.addMinTypeExprent(dim, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(dim, VarType.VARTYPE_INT); } if (newType.arrayDim == 1) { VarType leftType = newType.decreaseArrayDim(); for (Exprent element : lstArrayElements) { result.addMinTypeExprent(element, VarType.getMinTypeInFamily(leftType.typeFamily)); result.addMaxTypeExprent(element, leftType); } } } else { if (constructor != null) { return constructor.checkExprTypeBounds(); } } return result; }