package org.jtwig.render.expression.test.calculator;

import org.jtwig.exceptions.ResolveValueException;
import org.jtwig.model.expression.Expression;
import org.jtwig.model.expression.test.DefinedTestExpression;
import org.jtwig.model.position.Position;
import org.jtwig.render.RenderRequest;
import org.jtwig.render.expression.CalculateExpressionService;
import org.jtwig.value.Undefined;

public class DefinedTestExpressionCalculator implements TestExpressionCalculator<DefinedTestExpression> {
    @Override
    public Object calculate(RenderRequest request, Position position, DefinedTestExpression test, Expression argument) {
        CalculateExpressionService calculateExpressionService = request.getEnvironment().getRenderEnvironment().getCalculateExpressionService();
        try {
            Object value = calculateExpressionService.calculate(request, argument);
            return value != null && value != Undefined.UNDEFINED;
        } catch (ResolveValueException e) {
            return false;
        }
    }
}

@@ -900,25 +900,8 @@
 e !=
- null && value !=
  Und

Defined only false if undefined