From b252df02b3ea664b99611bcaf8494686b0f06a9d Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 26 Jan 2026 08:49:37 -0800 Subject: [PATCH] Override `ImmutableMap#getOrDefault` for GWT/J2CL This accomplishes two things: 1. Slight optimization as we don't need to check for key presence (ImmutableMap does not allow null values). 2. This allows the Checker Framework stubs to be applied. RELNOTES=n/a PiperOrigin-RevId: 861211284 --- .../super/com/google/common/collect/ImmutableMap.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/guava-gwt/src-super/com/google/common/collect/super/com/google/common/collect/ImmutableMap.java b/guava-gwt/src-super/com/google/common/collect/super/com/google/common/collect/ImmutableMap.java index 3878fc440054..4bc71dd9a14e 100644 --- a/guava-gwt/src-super/com/google/common/collect/super/com/google/common/collect/ImmutableMap.java +++ b/guava-gwt/src-super/com/google/common/collect/super/com/google/common/collect/ImmutableMap.java @@ -435,6 +435,17 @@ public boolean containsValue(@Nullable Object value) { return values().contains(value); } + @Override + public final @Nullable V getOrDefault(@Nullable Object key, @Nullable V defaultValue) { + V result = get(key); + // TODO(b/192579700): Use a ternary once it no longer confuses our nullness checker. + if (result != null) { + return result; + } else { + return defaultValue; + } + } + private transient @Nullable ImmutableSet> cachedEntrySet = null; @Override