mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 13:02:30 +07:00
lambda -> method ref: avoid Object::getClass as the type depends on qualifier (IDEA-150967)
This commit is contained in:
@@ -426,7 +426,7 @@ public class LambdaCanBeMethodReferenceInspection extends BaseJavaBatchLocalInsp
|
||||
return getClassReferenceName(nonAmbiguousContainingClass);
|
||||
}
|
||||
|
||||
if (containingClass.isPhysical() && qualifierExpression instanceof PsiReferenceExpression) {
|
||||
if (containingClass.isPhysical() && qualifierExpression instanceof PsiReferenceExpression && !PsiTypesUtil.isGetClass(psiMethod)) {
|
||||
final PsiElement resolve = ((PsiReferenceExpression)qualifierExpression).resolve();
|
||||
final boolean parameterWithoutFormalType = resolve instanceof PsiParameter && ((PsiParameter)resolve).getTypeElement() == null;
|
||||
if (parameterWithoutFormalType && ArrayUtil.find(parameters, resolve) > -1) {
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// "Replace lambda with method reference" "true"
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
class Test {
|
||||
|
||||
public <T> void some(Stream<AtomicReference<T>> stream) {
|
||||
stream.map((Function<AtomicReference<T>, ? extends Class<? extends AtomicReference>>) AtomicReference<T>::getClass);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// "Replace lambda with method reference" "true"
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
class Test {
|
||||
|
||||
public <T> void some(Stream<AtomicReference<T>> stream) {
|
||||
stream.map(t -> t.getCl<caret>ass());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user