diff --git a/platform/util/src/com/intellij/util/ObjectUtils.java b/platform/util/src/com/intellij/util/ObjectUtils.java index 8973fc189e94..97aa743548d5 100644 --- a/platform/util/src/com/intellij/util/ObjectUtils.java +++ b/platform/util/src/com/intellij/util/ObjectUtils.java @@ -45,17 +45,17 @@ public class ObjectUtils { } } - @Contract("null, null -> null") + @Contract(value = "!null, _ -> !null; _, !null -> !null; _, _ -> null", pure = true) public static T chooseNotNull(@Nullable T t1, @Nullable T t2) { return t1 == null? t2 : t1; } - @Contract("null,null->null") + @Contract(value = "!null, _ -> !null; _, !null -> !null; _, _ -> null", pure = true) public static T coalesce(@Nullable T t1, @Nullable T t2) { return chooseNotNull(t1, t2); } - @Contract("null,null,null->null") + @Contract(value = "!null, _, _ -> !null; _, !null, _ -> !null; _, _, !null -> !null; _,_,_ -> null", pure = true) public static T coalesce(@Nullable T t1, @Nullable T t2, @Nullable T t3) { return t1 != null ? t1 : t2 != null ? t2 : t3; } @@ -76,6 +76,7 @@ public class ObjectUtils { } @NotNull + @Contract(pure = true) public static T notNull(@Nullable T value, @NotNull T defaultValue) { return value == null ? defaultValue : value; } @@ -85,7 +86,7 @@ public class ObjectUtils { return value == null ? defaultValue.create() : value; } - @Contract("null, _ -> null") + @Contract(value = "null, _ -> null", pure = true) @Nullable public static T tryCast(@Nullable Object obj, @NotNull Class clazz) { if (clazz.isInstance(obj)) { @@ -109,6 +110,7 @@ public class ObjectUtils { } @Nullable + @Contract("null, _ -> null") public static T nullizeByCondition(@Nullable final T obj, @NotNull final Condition condition) { if (condition.value(obj)) { return null;