private TryCatchStatement surroundWithTryCatch(Expression condition, Expression message, Expression executeAndVerify, boolean optOut) {
    final TryCatchStatement tryCatchStatement = new TryCatchStatement(
      new ExpressionStatement(executeAndVerify),
      EmptyStatement.INSTANCE
    );

    tryCatchStatement.addCatch(
      new CatchStatement(
        new Parameter(new ClassNode(Throwable.class), THROWABLE),
        new ExpressionStatement(
          createDirectMethodCall(
            new ClassExpression(resources.getAstNodeCache().SpockRuntime),
            resources.getAstNodeCache().SpockRuntime_ConditionFailedWithException,
            new ArgumentListExpression(asList(
              new VariableExpression(errorCollectorName),
              optOut ? ConstantExpression.NULL : new VariableExpression(valueRecorderName),  // recorder
              new ConstantExpression(resources.getSourceText(condition)),                    // text
              primitiveConstExpression(condition.getLineNumber()),                           // line
              primitiveConstExpression(condition.getColumnNumber()),                         // column
              message == null ? ConstantExpression.NULL : message,                           // message
              new VariableExpression(THROWABLE)                                              // throwable
            ))
          )
        )
      )
    );
    return tryCatchStatement;
  }
Treat the nonsensical `!!` prefix as opt-out from implicit conditions
spock-core/src/main/java/org/spockframework/compiler/ConditionRewriter.java