Reports zip operations that contains arguments with Mono<Void> return value inside a Reactor chain.

Zip completes empty as soon as incoming Mono<Void> completes. The quick-fix suggests replacing zip() and zipWhen() and zipWith() with when.

Example:

Mono.zip(Mono.just(1), Mono.fromRunnable(() -> System.out.println("value")))
                .map(v -> "New value")
                .doFinally(System.out::println);

After the quick-fix is applied:

Mono.when(Mono.just(1), Mono.fromRunnable(() -> System.out.println("value")))
                .then(Mono.fromCallable(() -> "New value"))
                .doFinally(System.out::println);

New in 2023.1