boolean (@NotNull DfaValueFactory factory, @NotNull DfaMemoryState state, @NotNull TypeConstraint type) { DfaValue value = state.peek(); DfType dfType = state.getDfType(value); DfType result = dfType.meet(type.asDfType()); if (!result.equals(dfType)) { if (result == NULL || !state.meetDfType(value, result)) return false; if (!(value instanceof DfaVariableValue)) { state.pop(); state.push(factory.fromDfType(result)); } } return true; }