Search code examples
javaintellij-ideacontract

Intellij IDEA Contract false-positive syntax error


I'm getting error although I'm doing it right(I think)

@Contract("!null -> !null, _, _, _; null -> null, _, _, _")
public <T> T deserialize(@Nullable final Object object, @Nullable final GenericDeclaration genericSource, @NotNull final Class<T> targetClass, @Nullable final GenericDeclaration genericTarget) {

Basically, I'm trying to create a contract for if first parameter is null returns null, otherwise not null. But I don't want to add other parameters into contract, or just ignore it with _ key.

Intellij IDEA version is 2021.1.2(latest release)

It complains about return values and I don't know why?

yellow error


Solution

  • @Contract("!null, _, _, _ -> !null; null, _, _, _ -> null");
    

    I guess. Parameter list -> Result ; ... See Syntax.