mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 13:31:28 +07:00
java completion: prefer lambdas over method references (IDEA-181662)
This commit is contained in:
@@ -457,7 +457,7 @@ public class JavaCompletionSorting {
|
||||
@Override
|
||||
public Comparable weigh(@NotNull LookupElement element) {
|
||||
final Object object = element.getObject();
|
||||
if (object instanceof PsiMethod) {
|
||||
if (object instanceof PsiMethod && FunctionalExpressionCompletionProvider.FUNCTIONAL_EXPR_ITEM.get(element) == null) {
|
||||
PsiType type = ((PsiMethod)object).getReturnType();
|
||||
final JavaMethodCallElement callItem = element.as(JavaMethodCallElement.CLASS_CONDITION_KEY);
|
||||
if (callItem != null) {
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
import java.util.*;
|
||||
|
||||
class Foo {
|
||||
{
|
||||
Optional.of(2).orElseThrow(<caret>)
|
||||
}
|
||||
}
|
||||
@@ -306,6 +306,11 @@ class Test88 {
|
||||
myFixture.assertPreferredCompletionItems 0, 'output', 'out -> '
|
||||
}
|
||||
|
||||
void testPreferLambdaToConstructorReference() {
|
||||
configureByTestName()
|
||||
myFixture.assertPreferredCompletionItems 0, '() -> ', 'AbstractMethodError::new'
|
||||
}
|
||||
|
||||
private checkResultByFileName() {
|
||||
checkResultByFile(getTestName(false) + "_after.java")
|
||||
}
|
||||
|
||||
@@ -110,7 +110,8 @@ public class SmartType18CompletionTest extends LightFixtureCompletionTestCase {
|
||||
myFixture.addClass("package foo; class ImplInaccessible implements intf.Intf<String> {}");
|
||||
|
||||
configureByTestName();
|
||||
myFixture.assertPreferredCompletionItems(0, "ImplBar::new", "ImplFoo::new", "() -> ");
|
||||
myFixture.assertPreferredCompletionItems(0, "() -> ", "ImplBar::new", "ImplFoo::new");
|
||||
myFixture.getLookup().setCurrentItem(myFixture.getLookupElements()[1]);
|
||||
myFixture.type('\n');
|
||||
checkResultByFile("/" + getTestName(false) + "-out.java");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user