[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-compiler-dev
Subject: [PATCH] Re: False positive compilation of a method reference with type parameters
From: Nikita Eshkeev <neshkeev () yandex ! ru>
Date: 2020-01-23 14:00:25
Message-ID: 5800981579788025 () myt2-508c8f44300a ! qloud-c ! yandex ! net
[Download RAW message or body]
# HG changeset patch<br /><div class="49d322fa18fbd16bb206f61f9a2a40f7normalize"><div><p># User neshkeev<br /># Date <span class="177d5a4333ac019606de889e143743a1wmi-callto">1579367144 -10800</span><br /># Sat Jan 18 20:05:44 2020 +0300<br /># Node ID 2ccc63b8e786adc0230a25a69c7eee3ba3f54d7b<br /># Parent 5dae0969decc5ef795cb591fa83d5abb69e9cfaa<br />Fix false-positive compilation of method references with type parameters<br />Summary: This patch makes MethodReferenceLookupHelper#lookup to favor precedence of explicitly defined type parameters of a method reference over type arguments of the SAM the method reference is bound<br />Contributed-by: Nikita Eshkeev<neshkeev at yandex.ru><br /><br />diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java<br />--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java<br />+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java<br />@@ -3401,6 +3401,15 @@<br /><br /> @Override<br /> final Symbol lookup(Env<AttrContext> env, MethodResolutionPhase phase) {<!-- --><br />+ final List<Type> argtypes;<br />+<br />+ final List<JCExpression> typeArguments = referenceTree.getTypeArguments();<br />+ if ((typeArguments != null) && typeArguments.nonEmpty()) {<!-- --><br />+ argtypes = this.referenceTree.getTypeArguments().map(e -> e.type);<br />+ } else {<!-- --><br />+ argtypes = this.argtypes;<br />+ }<br />+<br /> return findMethod(env, site, name, argtypes, typeargtypes,<br /> phase.isBoxingRequired(), phase.isVarargsRequired());<br /> }<br /><br /></p></div></div><div class="fac59074051ae5ed40c8811da5d24da6js-compose-signature"></div><div><br /></div>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic