mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
method refs: captured wildcard at receiver position
EA-77434 - assert: PsiMethodReferenceCompatibilityConstraint.getParameterizedTypeSubstitutor
This commit is contained in:
@@ -269,6 +269,9 @@ public class PsiMethodReferenceCompatibilityConstraint implements ConstraintForm
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pType instanceof PsiCapturedWildcardType) {
|
||||
pType = ((PsiCapturedWildcardType)pType).getUpperBound();
|
||||
}
|
||||
|
||||
PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(pType);
|
||||
PsiClass paramClass = resolveResult.getElement();
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
class Test {
|
||||
static <T> Map<T, Integer> combine(Collection<Map<? extends T, Integer>> pMaps) {
|
||||
Function<Map<? extends T, Integer>, Set<? extends Map.Entry<? extends T, Integer>>> entrySet = Map::entrySet;
|
||||
return pMaps.stream()
|
||||
.map(entrySet)
|
||||
.flatMap(Collection::stream)
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
|
||||
(pEntry1, pEntry2) -> pEntry1 + pEntry2,
|
||||
(Supplier<HashMap<T, Integer>>) HashMap::new
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -486,6 +486,10 @@ public class NewMethodRefHighlightingTest extends LightDaemonAnalyzerTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testCapturedWildcardInReceiverPosition() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
|
||||
private void doTest() {
|
||||
doTest(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user