void (@NotNull XExpression expression, @NotNull XModificationCallback callback) { final EvaluationDescriptor evaluationDescriptor = EvaluationDescriptor.this; if (evaluationDescriptor.canSetValue()) { final DebuggerContextImpl debuggerContext = DebuggerManagerEx.getInstanceEx(getProject()).getContext(); set(expression, callback, debuggerContext, new SetValueRunnable() { @Override public void setValue(EvaluationContextImpl evaluationContext, Value newValue) throws ClassNotLoadedException, InvalidTypeException, EvaluateException { //noinspection ConstantConditions evaluationDescriptor.getModifier().setValue(preprocessValue(evaluationContext, newValue, getLType())); update(debuggerContext); } @NotNull @Override public Type getLType() throws EvaluateException, ClassNotLoadedException { //noinspection ConstantConditions return evaluationDescriptor.getModifier().getExpectedType(); } }); } }