﻿# V3131\. The expression is checked for compatibility with the type 'A', but is casted to the 'B' type\.

Анализатор обнаружил потенциально возможную ошибку, связанную с проверкой выражения на принадлежность к одному типу и приведением этого выражения в блоке проверки к другому типу\.

Давайте рассмотрим данную ситуацию более подробно на примере:

```cpp
if (obj is A)
{
  return (B)obj;
}
```

Скорее всего программист ошибся, так как подобное приведение типов с большой вероятностью приведет к ошибке, и вероятнее всего подразумевалась либо проверка выражения на принадлежность к другому типу, либо приведение выражения к другому типу\. 

Корректный вариант мог бы выглядеть так:

```cpp
if (obj is B)
{
  return (B)obj;
}
```