mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java-inspections] IDEA-326289 Raw type when converting generic constructor method ref to lambda
GitOrigin-RevId: cd8f8d36f5ded99b168e8db0a00a06a82df4044f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
cfa46d2993
commit
fb1eeff810
@@ -23,6 +23,7 @@ import com.intellij.refactoring.introduceField.ElementToWorkOn;
|
||||
import com.intellij.refactoring.introduceVariable.JavaIntroduceVariableHandlerBase;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.text.UniqueNameGenerator;
|
||||
import com.siyeh.ig.psiutils.CommentTracker;
|
||||
import com.siyeh.ig.psiutils.ExpressionUtils;
|
||||
@@ -212,7 +213,8 @@ public final class LambdaRefactoringUtil {
|
||||
final PsiSubstitutor substitutor = resolveResult.getSubstitutor();
|
||||
|
||||
LOG.assertTrue(containingClass != null);
|
||||
if (containingClass.hasTypeParameters() && !PsiUtil.isRawSubstitutor(containingClass, substitutor)) {
|
||||
if (containingClass.hasTypeParameters() &&
|
||||
ContainerUtil.all(containingClass.getTypeParameters(), tp -> substitutor.substitute(tp) != null)) {
|
||||
buf.append("<").append(StringUtil.join(containingClass.getTypeParameters(), parameter -> {
|
||||
final PsiType psiType = substitutor.substitute(parameter);
|
||||
LOG.assertTrue(psiType != null);
|
||||
|
||||
@@ -6,7 +6,7 @@ public class LocalClass {
|
||||
MyObject<Integer, T> h = new MyObject<>(1, x);
|
||||
MyObject<String, T> h2 = new MyObject<>("1", x);
|
||||
MyObject raw = new MyObject("1", x);
|
||||
IntFunction<MyObject<Character, T>> ic = a -> new MyObject(a, x);
|
||||
IntFunction<MyObject<Character, T>> ic = a -> new MyObject<>(a, x);
|
||||
System.out.println(new MyObject<Number, T>(1, x) {
|
||||
void test() {}
|
||||
});
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import java.util.function.*;
|
||||
|
||||
public class MyTest {
|
||||
class Inner<I> {
|
||||
Inner() {}
|
||||
}
|
||||
<T> void test() {
|
||||
Supplier<Inner<T>> supplier2 = <caret>() -> new Inner<T>();
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import java.util.function.*;
|
||||
|
||||
public class MyTest {
|
||||
class Inner<I> {
|
||||
Inner() {}
|
||||
}
|
||||
<T> void test() {
|
||||
Supplier<Inner<T>> supplier2 = <caret>Inner::new;
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import java.util.function.*;
|
||||
|
||||
public class MyTest<T> {
|
||||
class Inner<I> {
|
||||
Inner() {}
|
||||
}
|
||||
void test() {
|
||||
Supplier<Inner<T>> supplier2 = <caret>() -> new Inner<T>();
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import java.util.function.*;
|
||||
|
||||
public class MyTest<T> {
|
||||
class Inner<I> {
|
||||
Inner() {}
|
||||
}
|
||||
void test() {
|
||||
Supplier<Inner<T>> supplier2 = <caret>Inner::new;
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import java.util.function.*;
|
||||
|
||||
public class MyTest {
|
||||
<T> void test() {
|
||||
class Local<L> {
|
||||
Local() {}
|
||||
}
|
||||
Supplier<Local<T>> supplier = <caret>() -> new Local<T>();
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import java.util.function.*;
|
||||
|
||||
public class MyTest {
|
||||
<T> void test() {
|
||||
class Local<L> {
|
||||
Local() {}
|
||||
}
|
||||
Supplier<Local<T>> supplier = <caret>Local::new;
|
||||
}
|
||||
}
|
||||
+4
@@ -162,4 +162,8 @@ public class MethodRefCanBeReplacedWithLambdaFixTest extends IGQuickFixesTestCas
|
||||
public void testBrokenPrimitiveArray() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testLocalGenericClass() { doTest(); }
|
||||
public void testInnerGenericClass() { doTest(); }
|
||||
public void testInnerGenericClass2() { doTest(); }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user