docs: Optional<SoyExpression> compileWithNoDetaches(ExprNode node) {
      checkNotNull(node);
      if (RequiresDetachVisitor.INSTANCE.exec(node)) {
        return Optional.absent();
      }
      Supplier<ExpressionDetacher> throwingSupplier =
          () -> {
            throw new AssertionError();
          };
      return Optional.of(
          new CompilerVisitor(parameters, varManager, throwingSupplier, reporter, registry)
              .exec(node));
    }