mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-07 22:09:38 +07:00
highlight diamonds as type parameter list (IDEA-156859)
This commit is contained in:
@@ -125,7 +125,7 @@ public class GenericsHighlightUtil {
|
||||
if (referenceElements.length == 1 && referenceElements[0].getType() instanceof PsiDiamondType) {
|
||||
if (!typeParameterListOwner.hasTypeParameters()) {
|
||||
final String description = JavaErrorMessages.message("generics.diamond.not.applicable");
|
||||
return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(referenceElements[0]).descriptionAndTooltip(description).create();
|
||||
return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(referenceParameterList).descriptionAndTooltip(description).create();
|
||||
}
|
||||
inferenceResult = ((PsiDiamondType)referenceElements[0].getType()).resolveInferredTypes();
|
||||
final String errorMessage = inferenceResult.getErrorMessage();
|
||||
@@ -133,7 +133,7 @@ public class GenericsHighlightUtil {
|
||||
final PsiType expectedType = detectExpectedType(referenceParameterList);
|
||||
if (!(inferenceResult.failedToInfer() && expectedType instanceof PsiClassType && ((PsiClassType)expectedType).isRaw())) {
|
||||
return HighlightInfo
|
||||
.newHighlightInfo(HighlightInfoType.ERROR).range(referenceElements[0]).descriptionAndTooltip(errorMessage).create();
|
||||
.newHighlightInfo(HighlightInfoType.ERROR).range(referenceParameterList).descriptionAndTooltip(errorMessage).create();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ class MyTest {
|
||||
|
||||
class NonParameterized {
|
||||
void foo() {
|
||||
new NonParameterized<<error descr="Diamond operator is not applicable for non-parameterized types"></error>>();
|
||||
new NonParameterized<error descr="Diamond operator is not applicable for non-parameterized types"><></error>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,14 +95,14 @@ interface I<T> {
|
||||
}
|
||||
|
||||
class FI1 {
|
||||
I<? extends String> i1 = new I<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>() {
|
||||
I<? extends String> i1 = new I<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>() {
|
||||
@Override
|
||||
public String m() {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
I<?> i2 = new I<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>() {
|
||||
I<?> i2 = new I<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>() {
|
||||
@Override
|
||||
public Object m() {
|
||||
return null;
|
||||
@@ -126,9 +126,9 @@ class TestLocal<X> {
|
||||
void test() {
|
||||
class Local {}
|
||||
|
||||
Member m = new Member<<error descr="Diamond operator is not applicable for non-parameterized types"></error>>();
|
||||
Nested n = new Nested<<error descr="Diamond operator is not applicable for non-parameterized types"></error>>();
|
||||
Local l = new Local<<error descr="Diamond operator is not applicable for non-parameterized types"></error>>();
|
||||
Member m = new Member<error descr="Diamond operator is not applicable for non-parameterized types"><></error>();
|
||||
Nested n = new Nested<error descr="Diamond operator is not applicable for non-parameterized types"><></error>();
|
||||
Local l = new Local<error descr="Diamond operator is not applicable for non-parameterized types"><></error>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ class PredefinedErrorsOverRaw<T> {
|
||||
}
|
||||
|
||||
void test() {
|
||||
PredefinedErrorsOverRaw mc = new <Boolean>PredefinedErrorsOverRaw<<error descr="Cannot use diamonds with explicit type parameters for constructor"></error>>("");
|
||||
PredefinedErrorsOverRaw mc = new <Boolean>PredefinedErrorsOverRaw<error descr="Cannot use diamonds with explicit type parameters for constructor"><></error>("");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ class Neg12 {
|
||||
<T> Foo(T t) {}
|
||||
}
|
||||
|
||||
Foo<Integer> fi1 = new <String> Foo<<error descr="Cannot use diamonds with explicit type parameters for constructor"></error>>(1);
|
||||
Foo<Integer> fi1 = new <String> Foo<error descr="Cannot use diamonds with explicit type parameters for constructor"><></error>(1);
|
||||
Foo<Integer> fi2 = new <<error descr="Actual type argument and inferred type contradict each other">String</error>> Foo<Integer>(1);
|
||||
Foo<Integer> fi3 = new Foo<Integer>(1);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@ class Neg13 {
|
||||
<T> Foo(T t) {}
|
||||
}
|
||||
|
||||
Foo<Integer> fi1 = new <String, Integer> Foo<<error descr="Cannot use diamonds with explicit type parameters for constructor"></error>>("");
|
||||
Foo<Integer> fi1 = new <String, Integer> Foo<error descr="Cannot use diamonds with explicit type parameters for constructor"><></error>("");
|
||||
Foo<Integer> fi2 = new <error descr="Wrong number of type arguments: 2; required: 1"><String, Integer></error> Foo<Integer>("");
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@ class Neg14 {
|
||||
<T extends Integer> Foo(T t) {}
|
||||
}
|
||||
|
||||
Foo<Integer> fi1 = new <String> Foo<<error descr="Cannot use diamonds with explicit type parameters for constructor"></error>>(1);
|
||||
Foo<Integer> fi1 = new <String> Foo<error descr="Cannot use diamonds with explicit type parameters for constructor"><></error>(1);
|
||||
Foo<Integer> fi2 = new <<error descr="Actual type argument and inferred type contradict each other">String</error>> Foo<Integer>(1);
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ class Pos8 {
|
||||
|
||||
Foo<Integer> fi1 = new Foo<>(1);
|
||||
Foo<Integer> fi2 = new Foo<Integer>(1);
|
||||
Foo<Integer> fi3 = new <String> Foo<<error descr="Cannot use diamonds with explicit type parameters for constructor"></error>>(1);
|
||||
Foo<Integer> fi3 = new <String> Foo<error descr="Cannot use diamonds with explicit type parameters for constructor"><></error>(1);
|
||||
Foo<Integer> fi4 = new <String> Foo<Integer>(1);
|
||||
Foo<Integer> fi5 = new <String, String> Foo<<error descr="Cannot use diamonds with explicit type parameters for constructor"></error>>(1);
|
||||
Foo<Integer> fi5 = new <String, String> Foo<error descr="Cannot use diamonds with explicit type parameters for constructor"><></error>(1);
|
||||
Foo<Integer> fi6 = new <String, String> Foo<Integer>(1);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class Neg08 {
|
||||
public static void main(String[] args) {
|
||||
String s = new String<<error descr="Diamond operator is not applicable for non-parameterized types"></error>>("foo");
|
||||
String s = new String<error descr="Diamond operator is not applicable for non-parameterized types"><></error>("foo");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@ class Neg09 {
|
||||
static class Nested<X> {}
|
||||
|
||||
void testSimple() {
|
||||
Member<?> m1 = new Member<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>() {};
|
||||
Nested<?> m2 = new Nested<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>() {};
|
||||
Member<?> m1 = new Member<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>() {};
|
||||
Nested<?> m2 = new Nested<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>() {};
|
||||
}
|
||||
|
||||
void testQualified() {
|
||||
Member<?> m1 = this.new Member<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>() {};
|
||||
Nested<?> m2 = new Neg09.Nested<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>() {};
|
||||
Member<?> m1 = this.new Member<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>() {};
|
||||
Nested<?> m2 = new Neg09.Nested<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>() {};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@ import java.util.List;
|
||||
class Test {
|
||||
|
||||
{
|
||||
List<List<String>> l = new ArrayList<List<<error descr="Cannot infer arguments"></error>>>();
|
||||
List<List<String>> l = new ArrayList<List<error descr="Cannot infer arguments"><></error>>();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
class A<T> {}
|
||||
class Foo<K extends A<K>> {
|
||||
{
|
||||
Foo foo = new Foo<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>() {};
|
||||
Foo foo = new Foo<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>() {};
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,6 @@ class Foo<E extends List<String> & Runnable> {
|
||||
Foo() {}
|
||||
|
||||
{
|
||||
Foo foo = new Foo<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>() {};
|
||||
Foo foo = new Foo<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>() {};
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,6 @@ class Foo<E> {
|
||||
Foo(E e, E e1) {}
|
||||
|
||||
{
|
||||
Foo foo = new Foo<<error descr="Cannot use ''<>'' with anonymous inner classes"></error>>(new B.C(), new B.D()) {};
|
||||
Foo foo = new Foo<error descr="Cannot use ''<>'' with anonymous inner classes"><></error>(new B.C(), new B.D()) {};
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
class Test {
|
||||
{
|
||||
D<String> ds = new D<<error descr="Cannot infer arguments (unable to resolve constructor)"></error>>(9);
|
||||
D<String> ds = new D<error descr="Cannot infer arguments (unable to resolve constructor)"><></error>(9);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
class Test {
|
||||
{
|
||||
Holder h = null;
|
||||
Result<String> r1 = new Result<<error descr="Cannot infer arguments"></error>>(h);
|
||||
Result<String> r1 = new Result<error descr="Cannot infer arguments"><></error>(h);
|
||||
Result<String> r2 = Result.create<error descr="'create(K)' in 'Result' cannot be applied to '(Holder)'">(h)</error>;
|
||||
|
||||
Holder dataHolder = null;
|
||||
Result<String> r3 = new Result<<error descr="Cannot infer arguments"></error>>(new Holder<>(dataHolder));
|
||||
Result<String> r3 = new Result<error descr="Cannot infer arguments"><></error>(new Holder<>(dataHolder));
|
||||
Result<String> r4 = Result.create<error descr="'create(K)' in 'Result' cannot be applied to '(Holder<E>)'">(new Holder<>(dataHolder))</error>;
|
||||
|
||||
Result<String> r5 = new Result<<error descr="Cannot infer arguments"></error>>(Holder.create(dataHolder));
|
||||
Result<String> r5 = new Result<error descr="Cannot infer arguments"><></error>(Holder.create(dataHolder));
|
||||
Result<String> r6 = Result.create<error descr="'create(K)' in 'Result' cannot be applied to '(Holder)'">(Holder.create(dataHolder))</error>;
|
||||
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class ConcurrentCollectors {
|
||||
static <T, K, D, M1 extends Map<K, D>> C<T, M1> groupingBy(F<M1> f,
|
||||
C<T, D> c,
|
||||
BiConsumer<M1, T> consumer) {
|
||||
return new CImpl<<error descr="Cannot infer arguments"></error>>(f, consumer, arg(c.getOp()));
|
||||
return new CImpl<error descr="Cannot infer arguments"><></error>(f, consumer, arg(c.getOp()));
|
||||
}
|
||||
|
||||
static <K, V, M2 extends ConcurrentMap<K, V>> BiOp<M2> arg(BiOp<V> op) {
|
||||
|
||||
Reference in New Issue
Block a user