On Wed, 16 Dec 2020 09:20:09 GMT, Andrey Turbanov <github.com+741251+turban...@openjdk.org> wrote:
>> 8258422: Cleanup unnecessary null comparison before instanceof check in >> java.base > > Andrey Turbanov has updated the pull request incrementally with one > additional commit since the last revision: > > 8258422: Cleanup unnecessary null comparison before instanceof check in > java.base > use instanceof pattern matching in UnixPath too Let's take advantage of "flow scoping" to eliminate some of these casts. A few examples follow. src/java.base/share/classes/java/net/InetSocketAddress.java line 414: > 412: if (!(obj instanceof InetSocketAddress)) > 413: return false; > 414: return holder.equals(((InetSocketAddress) obj).holder); If we restructure this a little we can get: public final boolean equals(Object obj) { if (obj instanceof InetSocketAddress that) return holder.equals(that.holder); return false; } src/java.base/share/classes/java/net/InetSocketAddress.java line 124: > 122: if (!(obj instanceof InetSocketAddressHolder)) > 123: return false; > 124: InetSocketAddressHolder that = (InetSocketAddressHolder)obj; If we restructure this a little we can take advantage of flow scoping, e.g. public final boolean equals(Object obj) { if (!(obj instanceof InetSocketAddressHolder that)) return false; boolean sameIP; if (addr != null) sameIP = addr.equals(that.addr); else if (hostname != null) sameIP = (that.addr == null) && hostname.equalsIgnoreCase(that.hostname); else sameIP = (that.addr == null) && (that.hostname == null); return sameIP && (port == that.port); } ------------- Changes requested by chegar (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/20