CheckTypesResult () { CheckTypesResult result = new CheckTypesResult(); if (newType.getArrayDim() != 0) { for (Exprent dim : lstDims) { result.addMinTypeExprent(dim, VarType.VARTYPE_BYTECHAR); result.addMaxTypeExprent(dim, VarType.VARTYPE_INT); } if (newType.getArrayDim() == 1) { VarType leftType = newType.decreaseArrayDim(); for (Exprent element : lstArrayElements) { result.addMinTypeExprent(element, VarType.getMinTypeInFamily(leftType.getTypeFamily())); result.addMaxTypeExprent(element, leftType); } } } else if (constructor != null) { return constructor.checkExprTypeBounds(); } return result; }