void (VarTypeProcessor typeProcessor) { Map<VarVersionPair, VarType> mapExprentMaxTypes = typeProcessor.getMaxExprentTypes(); Map<VarVersionPair, VarType> mapExprentMinTypes = typeProcessor.getMinExprentTypes(); for (VarVersionPair paar : new ArrayList<>(mapExprentMinTypes.keySet())) { VarType type = mapExprentMinTypes.get(paar); VarType maxType = mapExprentMaxTypes.get(paar); if (type.getType() == CodeConstants.TYPE_BYTECHAR || type.getType() == CodeConstants.TYPE_SHORTCHAR) { if (maxType != null && maxType.getType() == CodeConstants.TYPE_CHAR) { type = VarType.VARTYPE_CHAR; } else { type = type.getType() == CodeConstants.TYPE_BYTECHAR ? VarType.VARTYPE_BYTE : VarType.VARTYPE_SHORT; } mapExprentMinTypes.put(paar, type); //} else if(type.type == CodeConstants.TYPE_CHAR && (maxType == null || maxType.type == CodeConstants.TYPE_INT)) { // when possible, lift char to int // mapExprentMinTypes.put(paar, VarType.VARTYPE_INT); } else if (type.getType() == CodeConstants.TYPE_NULL) { mapExprentMinTypes.put(paar, VarType.VARTYPE_OBJECT); } } }