@Override public Result execute(Scope scope) throws Exception { Value value = evaluation.evaluate(scope, null); Object object = value.getValue(); if (!Boolean.TRUE.equals(object)) { throw new AssertionException("Assertion failed"); } return ResultType.getNormal(); }
@Override public Result compile(Scope outer) throws Exception { if (!compile.compareAndSet(false, true)) { Result result = builder.compile(outer); Type type = result.getValue(); collector.update(constants); // collect static constants first for (TypePart part : parts) { Initializer initializer = part.compile(collector, type); collector.update(initializer); } generator.generate(type); return result; } return ResultType.getNormal(); }