DfaVariableValue (@NotNull DfaCallState state, DfaValueFactory factory, DfaValue value) { DfType type = value.getDfType(); if (type instanceof DfReferenceType) { if (type.isLocal()) { type = ((DfReferenceType)type).dropLocality(); value = factory.fromDfType(type); } if (((DfReferenceType)type).getNullability() == DfaNullability.NULLABLE) { type = ((DfReferenceType)type).dropNullability(); } } DfaVariableValue var = factory.getVarFactory().createVariableValue(new ContractTempDescriptor(this, type)); state.getMemoryState().setVarValue(var, value); return var; }