void (@NotNull DfaValue value, @NotNull PsiExpression expression, @NotNull DfaMemoryState memState) { if (!expression.isPhysical()) { Application application = ApplicationManager.getApplication(); if (application.isEAP() || application.isInternal() || application.isUnitTestMode()) { throw new IllegalStateException("Non-physical expression is passed"); } } PsiElement parent = PsiUtil.skipParenthesizedExprUp(expression.getParent()); if (parent instanceof PsiTypeCastExpression cast) { TypeConstraint fact = TypeConstraint.fromDfType(memState.getDfType(value)); myRealOperandTypes.merge(cast, fact, TypeConstraint::join); } }