diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg1.java index 220e99fd850a..5da053457b45 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg1.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg1.java @@ -1,38 +1,18 @@ class Neg01 { - Neg01(X x) { - } + Neg01(X x) {} - Neg01(X x, Z z) { - } + Neg01(X x, Z z) {} void test() { - Neg01<String> n1 = new Neg01<>("" ); //new Foo created - Neg01<? extends String> n2 = new Neg01<>(""); //new Foo created - Neg01 n3 = new Neg01<>(""); //new Foo created - Neg01<? super String> n4 = new Neg01<>(""); //new Foo created + Neg01<String> n1 = new Neg01<>(""); + Neg01<? extends String> n2 = new Neg01<>(""); + Neg01 n3 = new Neg01<>(""); + Neg01<? super String> n4 = new Neg01<>(""); - Neg01<String> n5 = new Neg01<>("") { - }; //new Foo created - Neg01<? extends String> n6 = new Neg01<>("") { - }; //new Foo created - Neg01 n7 = new Neg01<>("") { - }; //new Foo created - Neg01<? super String> n8 = new Neg01<>("") { - }; //new Foo created - - Neg01<String> n9 = new Neg01<>("", ""); //new Foo created - Neg01<? extends String> n10 = new Neg01<>("", ""); //new Foo created - Neg01 n11 = new Neg01<>("", ""); //new Foo created - Foo n12 = new Neg01<>("", ""); //new Foo created - - Neg01<String> n13 = new Neg01<>("", "") { - }; //new Foo created - Neg01<? extends String> n14 = new Neg01<>("", "") { - }; //new Foo created - Neg01 n15 = new Neg01<>("", "") { - }; //new Foo created - Neg01<? super String> n16 = new Neg01<>("", "") { - }; //new Foo created + Neg01<String> n5 = new Neg01<>("", ""); + Neg01<? extends String> n6 = new Neg01<>("", ""); + Neg01 n7 = new Neg01<>("", ""); + Foo n8 = new Neg01<>("", ""); } -} +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg10.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg10.java index e5efd0968f05..86b73a90d024 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg10.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg10.java @@ -3,5 +3,5 @@ class Neg10 { Foo(X x) {} } - Foo fw = new Foo<>(1); -} + Foo fw = new Foo<>(1); +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg2.java index 9a218866a1ce..f9493e6c08ab 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg2.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg2.java @@ -1,71 +1,31 @@ class Neg02 { static class Foo { - Foo(X x) { - } - - Foo(X x, Z z) { - } + Foo(X x) {} + Foo(X x, Z z) {} } void testSimple() { - Foo<String> f1 = new Foo<>(""); //new Foo created - Foo<? extends String> f2 = new Foo<>(""); //new Foo created - Foo f3 = new Foo<>(""); //new Foo created - Foo<? super String> f4 = new Foo<>(""); //new Foo created + Foo<String> f1 = new Foo<>(""); + Foo<? extends String> f2 = new Foo<>(""); + Foo f3 = new Foo<>(""); + Foo<? super String> f4 = new Foo<>(""); - Foo<String> f5 = new Foo<>("") { - }; //new Foo created - Foo<? extends String> f6 = new Foo<>("") { - }; //new Foo created - Foo f7 = new Foo< >("") { - }; //new Foo created - Foo<? super String> f8 = new Foo<>("") { - }; //new Foo created - - Foo<String> f9 = new Foo<>("", ""); //new Foo created - Foo<? extends String> f10 = new Foo<>("", ""); //new Foo created - Foo f11 = new Foo< >("", ""); //new Foo created - Foo<? super String> f12 = new Foo<>("", ""); //new Foo created - - Foo<String> f13 = new Foo<>("", "") { - }; //new Foo created - Foo<? extends String> f14 = new Foo<>("", "") { - }; //new Foo created - Foo f15 = new Foo< >("", "") { - }; //new Foo created - Foo<? super String> f16 = new Foo<>("", "") { - }; //new Foo created + Foo<String> f5 = new Foo<>("", ""); + Foo<? extends String> f6 = new Foo<>("", ""); + Foo f7 = new Foo<>("", ""); + Foo<? super String> f8 = new Foo<>("", ""); } void testQualified() { - Foo<String> f1 = new Neg02.Foo<>(""); //new Foo created - Foo<? extends String> f2 = new Neg02.Foo<>(""); //new Foo created - Foo f3 = new Neg02.Foo< >(""); //new Foo created - Foo<? super String> f4 = new Neg02.Foo<>(""); //new Foo created + Foo<String> f1 = new Neg02.Foo<>(""); + Foo<? extends String> f2 = new Neg02.Foo<>(""); + Foo f3 = new Neg02.Foo<>(""); + Foo<? super String> f4 = new Neg02.Foo<>(""); - Foo<String> f5 = new Neg02.Foo<>("") { - }; //new Foo created - Foo<? extends String> f6 = new Neg02.Foo<>("") { - }; //new Foo created - Foo f7 = new Neg02.Foo< >("") { - }; //new Foo created - Foo<? super String> f8 = new Neg02.Foo<>("") { - }; //new Foo created - - Foo<String> f9 = new Neg02.Foo<>("", ""); //new Foo created - Foo<? extends String> f10 = new Neg02.Foo<>("", ""); //new Foo created - Foo f11 = new Neg02.Foo< >("", ""); //new Foo created - Foo<? super String> f12 = new Neg02.Foo<>("", ""); //new Foo created - - Foo<String> f13 = new Neg02.Foo<>("", "") { - }; //new Foo created - Foo<? extends String> f14 = new Neg02.Foo<>("", "") { - }; //new Foo created - Foo f15 = new Neg02.Foo< >("", "") { - }; //new Foo created - Foo<? super String> f16 = new Neg02.Foo<>("", "") { - }; //new Foo created + Foo<String> f5 = new Neg02.Foo<>("", ""); + Foo<? extends String> f6 = new Neg02.Foo<>("", ""); + Foo f7 = new Neg02.Foo<>("", ""); + Foo<? super String> f8 = new Neg02.Foo<>("", ""); } } - diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg3.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg3.java index 6b2a82b9227d..5164ce69f7fa 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg3.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg3.java @@ -1,73 +1,43 @@ class Neg03 { - class Foo { - Foo(V x) {} - Foo(V x, Z z) {} - } + class Foo { + Foo(V x) {} + Foo(V x, Z z) {} + } - void testSimple() { - Foo<String> f1 = new Foo<>(""); //new Foo created - Foo<? extends String> f2 = new Foo<>(""); //new Foo created - Foo f3 = new Foo<>(""); //new Foo created - Foo<? super String> f4 = new Foo<>(""); //new Foo created + void testSimple() { + Foo<String> f1 = new Foo<>(""); + Foo<? extends String> f2 = new Foo<>(""); + Foo f3 = new Foo<>(""); + Foo<? super String> f4 = new Foo<>(""); - Foo<String> f5 = new Foo<>(""){}; //new Foo created - Foo<? extends String> f6 = new Foo<>(""){}; //new Foo created - Foo f7 = new Foo<>(""){}; //new Foo created - Foo<? super String> f8 = new Foo<>(""){}; //new Foo created + Foo<String> f5 = new Foo<>("", ""); + Foo<? extends String> f6 = new Foo<>("", ""); + Foo f7 = new Foo<>("", ""); + Foo<? super String> f8 = new Foo<>("", ""); + } - Foo<String> f9 = new Foo<>("", ""); //new Foo created - Foo<? extends String> f10 = new Foo<>("", ""); //new Foo created - Foo f11 = new Foo<>("", ""); //new Foo created - Foo<? super String> f12 = new Foo<>("", ""); //new Foo created + void testQualified_1() { + Foo<String> f1 = new Neg03.Foo<>(""); + Foo<? extends String> f2 = new Neg03.Foo<>(""); + Foo f3 = new Neg03.Foo<>(""); + Foo<? super String> f4 = new Neg03.Foo<>(""); - Foo<String> f13 = new Foo<>("", ""){}; //new Foo created - Foo<? extends String> f14 = new Foo<>("", ""){}; //new Foo created - Foo f15 = new Foo<>("", ""){}; //new Foo created - Foo<? super String> f16 = new Foo<>("", ""){}; //new Foo created - } + Foo<String> f5 = new Neg03.Foo<>("", ""); + Foo<? extends String> f6 = new Neg03.Foo<>("", ""); + Foo f7 = new Neg03.Foo<>("", ""); + Foo<? super String> f8 = new Neg03.Foo<>("", ""); + } - void testQualified_1() { - Foo<String> f1 = new Neg03.Foo<>(""); //new Foo created - Foo<? extends String> f2 = new Neg03.Foo<>(""); //new Foo created - Foo f3 = new Neg03.Foo<>(""); //new Foo created - Foo<? super String> f4 = new Neg03.Foo<>(""); //new Foo created + void testQualified_2(Neg03 n) { + Foo<String> f1 = n.new Foo<>(""); + Foo<? extends String> f2 = n.new Foo<>(""); + Foo f3 = n.new Foo<>(""); + Foo<? super String> f4 = n.new Foo<>(""); - Foo<String> f5 = new Neg03.Foo<>(""){}; //new Foo created - Foo<? extends String> f6 = new Neg03.Foo<>(""){}; //new Foo created - Foo f7 = new Neg03.Foo<>(""){}; //new Foo created - Foo<? super String> f8 = new Neg03.Foo<>(""){}; //new Foo created - - Foo<String> f9 = new Neg03.Foo<>("", ""); //new Foo created - Foo<? extends String> f10 = new Neg03.Foo<>("", ""); //new Foo created - Foo f11 = new Neg03.Foo<>("", ""); //new Foo created - Foo<? super String> f12 = new Neg03.Foo<>("", ""); //new Foo created - - Foo<String> f13 = new Neg03.Foo<>("", ""){}; //new Foo created - Foo<? extends String> f14 = new Neg03.Foo<>("", ""){}; //new Foo created - Foo f15 = new Neg03.Foo<>("", ""){}; //new Foo created - Foo<? super String> f16 = new Neg03.Foo<>("", ""){}; //new Foo created - } - - void testQualified_2(Neg03 n) { - Foo<String> f1 = n.new Foo<>(""); //new Foo created - Foo<? extends String> f2 = n.new Foo<>(""); //new Foo created - Foo f3 = n.new Foo<>(""); //new Foo created - Foo<? super String> f4 = n.new Foo<>(""); //new Foo created - - Foo<String> f5 = n.new Foo<>(""){}; //new Foo created - Foo<? extends String> f6 = n.new Foo<>(""){}; //new Foo created - Foo f7 = n.new Foo<>(""){}; //new Foo created - Foo<? super String> f8 = n.new Foo<>(""){}; //new Foo created - - Foo<String> f9 = n.new Foo<>("", ""); //new Foo created - Foo<? extends String> f10 = n.new Foo<>("", ""); //new Foo created - Foo f11 = n.new Foo<>("", ""); //new Foo created - Foo<? super String> f12 = n.new Foo<>("", ""); //new Foo created - - Foo<String> f13 = n.new Foo<>("", ""){}; //new Foo created - Foo<? extends String> f14 = n.new Foo<>("", ""){}; //new Foo created - Foo f15 = n.new Foo<>("", ""){}; //new Foo created - Foo<? super String> f16 = n.new Foo<>("", ""){}; //new Foo created - } - } + Foo<String> f5 = n.new Foo<>("", ""); + Foo<? extends String> f6 = n.new Foo<>("", ""); + Foo f7 = n.new Foo<>("", ""); + Foo<? super String> f8 = n.new Foo<>("", ""); + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg4.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg4.java index 204dd9fcc155..aa787cc0d913 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg4.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg4.java @@ -5,24 +5,14 @@ class Neg04 { Foo(V x) {} Foo(V x, Z z) {} } - Foo<String> n1 = new Foo<>(""); //new Foo created - Foo<? extends String> n2 = new Foo<>(""); //new Foo created - Foo n3 = new Foo<>(""); //new Foo created - Foo<? super String> n4 = new Foo<>(""); //new Foo created + Foo<String> n1 = new Foo<>(""); + Foo<? extends String> n2 = new Foo<>(""); + Foo n3 = new Foo<>(""); + Foo<? super String> n4 = new Foo<>(""); - Foo<String> n5 = new Foo<>(""){}; //new Foo created - Foo<? extends String> n6 = new Foo<>(""){}; //new Foo created - Foo n7 = new Foo<>(""){}; //new Foo created - Foo<? super String> n8 = new Foo<>(""){}; //new Foo created - - Foo<String> n9 = new Foo<>("", ""); //new Foo created - Foo<? extends String> n10 = new Foo<>("", ""); //new Foo created - Foo n11 = new Foo<>("", ""); //new Foo created - Foo<? super String> n12 = new Foo<>("", ""); //new Foo created - - Foo<String> n13 = new Foo<>("", ""){}; //new Foo created - Foo<? extends String> n14 = new Foo<>("", ""){}; //new Foo created - Foo n15 = new Foo<>("", ""){}; //new Foo created - Foo<? super String> n16 = new Foo<>("", ""){}; //new Foo created + Foo<String> n5 = new Foo<>("", ""); + Foo<? extends String> n6 = new Foo<>("", ""); + Foo n7 = new Foo<>("", ""); + Foo<? super String> n8 = new Foo<>("", ""); } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg5.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg5.java index e7bc7bf1ab64..71d6441dd943 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg5.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg5.java @@ -1,51 +1,31 @@ class Neg05 { - class Foo { - Foo(V x) {} - Foo(V x, Z z) {} - } + class Foo { + Foo(V x) {} + Foo(V x, Z z) {} + } - void testRare_1() { - Neg05.Foo f1 = new Neg05.Foo<>(""); //new Foo created - Neg05.Foo f2 = new Neg05.Foo<>(""); //new Foo created - Neg05.Foo f3 = new Neg05.Foo<>(""); //new Foo created - Neg05.Foo f4 = new Neg05.Foo<>(""); //new Foo created + void testRare_1() { + Neg05.Foo f1 = new Neg05.Foo<>(""); + Neg05.Foo f2 = new Neg05.Foo<>(""); + Neg05.Foo f3 = new Neg05.Foo<>(""); + Neg05.Foo f4 = new Neg05.Foo<>(""); - Neg05.Foo f5 = new Neg05.Foo<>(""){}; //new Foo created - Neg05.Foo f6 = new Neg05.Foo<>(""){}; //new Foo created - Neg05.Foo f7 = new Neg05.Foo<>(""){}; //new Foo created - Neg05.Foo f8 = new Neg05.Foo<>(""){}; //new Foo created + Neg05.Foo f5 = new Neg05.Foo<>("", ""); + Neg05.Foo f6 = new Neg05.Foo<>("", ""); + Neg05.Foo f7 = new Neg05.Foo<>("", ""); + Neg05.Foo f8 = new Neg05.Foo<>("", ""); + } - Neg05.Foo f9 = new Neg05.Foo<>("", ""); //new Foo created - Neg05.Foo f10 = new Neg05.Foo<>("", ""); //new Foo created - Neg05.Foo f11 = new Neg05.Foo<>("", ""); //new Foo created - Neg05.Foo f12 = new Neg05.Foo<>("", ""); //new Foo created + void testRare_2(Neg05 n) { + Neg05.Foo f1 = n.new Foo<>(""); + Neg05.Foo f2 = n.new Foo<>(""); + Neg05.Foo f3 = n.new Foo<>(""); + Neg05.Foo f4 = n.new Foo<>(""); - Neg05.Foo f13 = new Neg05.Foo<>("", ""){}; //new Foo created - Neg05.Foo f14 = new Neg05.Foo<>("", ""){}; //new Foo created - Neg05.Foo f15 = new Neg05.Foo<>("", ""){}; //new Foo created - Neg05.Foo f16 = new Neg05.Foo<>("", ""){}; //new Foo created - } - - void testRare_2(Neg05 n) { - Neg05.Foo f1 = n.new Foo<>(""); //new Foo created - Neg05.Foo f2 = n.new Foo<>(""); //new Foo created - Neg05.Foo f3 = n.new Foo<>(""); //new Foo created - Neg05.Foo f4 = n.new Foo<>(""); //new Foo created - - Neg05.Foo f5 = n.new Foo<>(""){}; //new Foo created - Neg05.Foo f6 = n.new Foo<>(""){}; //new Foo created - Neg05.Foo f7 = n.new Foo<>(""){}; //new Foo created - Neg05.Foo f8 = n.new Foo<>(""){}; //new Foo created - - Neg05.Foo f9 = n.new Foo<>("", ""); //new Foo created - Neg05.Foo f10 = n.new Foo<>("", ""); //new Foo created - Neg05.Foo f11 = n.new Foo<>("", ""); //new Foo created - Neg05.Foo f12 = n.new Foo<>("", ""); //new Foo created - - Neg05.Foo f13 = n.new Foo<>("", ""){}; //new Foo created - Neg05.Foo f14 = n.new Foo<>("", ""){}; //new Foo created - Neg05.Foo f15 = n.new Foo<>("", ""){}; //new Foo created - Neg05.Foo f16 = n.new Foo<>("", ""){}; //new Foo created - } - } + Neg05.Foo f5 = n.new Foo<>("", ""); + Neg05.Foo f6 = n.new Foo<>("", ""); + Neg05.Foo f7 = n.new Foo<>("", ""); + Neg05.Foo f8 = n.new Foo<>("", ""); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg6.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg6.java index 585761fb8216..a233ed221c91 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg6.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg6.java @@ -1,11 +1,7 @@ class Neg06 { - interface ISuperFoo {} - interface IFoo extends ISuperFoo {} static class CSuperFoo {} static class CFoo extends CSuperFoo {} - ISuperFoo isf = new IFoo<>() {}; CSuperFoo csf1 = new CFoo<>(); - CSuperFoo csf2 = new CFoo<>() {}; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg7.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg7.java index 5bdbff54f378..ab4f22bf4b44 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg7.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg7.java @@ -5,5 +5,4 @@ class Neg07 { } SuperFoo sf1 = new Foo<>(""); - SuperFoo sf2 = new Foo<>("") {}; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg8.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg8.java index 060efa6ebe7b..30a973082e3b 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg8.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg8.java @@ -1,20 +1,5 @@ class Neg08 { - static class Foo { - Foo(X x) { } - } - - static class DoubleFoo { - DoubleFoo(X x,Y y) { } - } - - static class TripleFoo { - TripleFoo(X x,Y y,Z z) { } - } - - Foo fi = new Foo<>(1); - Foo fw = new Foo<>(fi); - Foo fd = new Foo<>(3.0); - DoubleFoo dw = new DoubleFoo<>(fi,fd); - Foo fs = new Foo<>("one"); - TripleFoo tw = new TripleFoo<>(fi,fd,fs); + public static void main(String[] args) { + String s = new String<>("foo"); + } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg9.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg9.java index 5bca169e0f2d..34c27b023e9f 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg9.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg9.java @@ -1,12 +1,15 @@ class Neg09 { - static class Foo> {} - static class DoubleFoo, - Y extends Number & Comparable> {} - static class TripleFoo, - Y extends Number & Comparable, - Z> {} + class Member {} - Foo fw = new Foo<>(); - DoubleFoo dw = new DoubleFoo<>(); - TripleFoo tw = new TripleFoo<>(); + static class Nested {} + + void testSimple() { + Member m1 = new Member<>() {}; + Nested m2 = new Nested<>() {}; + } + + void testQualified() { + Member m1 = this.new Member<>() {}; + Nested m2 = new Neg09.Nested<>() {}; + } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos1.java index e3b9d3ccf49d..927df1dca85f 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos1.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos1.java @@ -1,33 +1,23 @@ public class Pos01 { - Pos01(X x) {} + Pos01(X x) {} - Pos01(X x, Z z) {} + Pos01(X x, Z z) {} - void test() { - Pos01 p1 = new Pos01<>(1); //new Foo created - Pos01 p2 = new Pos01<>(1); //new Foo created - Pos01 p3 = new Pos01<>(1); //new Foo created - Pos01 p4 = new Pos01<>(1); //new Foo created + void test() { + Pos01 p1 = new Pos01<>(1); + Pos01 p2 = new Pos01<>(1); + Pos01 p3 = new Pos01<>(1); + Pos01 p4 = new Pos01<>(1); - Pos01 p5 = new Pos01<>(1){}; //new Foo created - Pos01 p6 = new Pos01<>(1){}; //new Foo created - Pos01 p7 = new Pos01<>(1){}; //new Foo created - Pos01 p8 = new Pos01<>(1){}; //new Foo created + Pos01 p5 = new Pos01<>(1, ""); + Pos01 p6 = new Pos01<>(1, ""); + Pos01 p7 = new Pos01<>(1, ""); + Pos01 p8 = new Pos01<>(1, ""); + } - Pos01 p9 = new Pos01<>(1, ""); //new Foo created - Pos01 p10 = new Pos01<>(1, ""); //new Foo created - Pos01 p11 = new Pos01<>(1, ""); //new Foo created - Pos01 p12 = new Pos01<>(1, ""); //new Foo created - - Pos01 p13 = new Pos01<>(1, ""){}; //new Foo created - Pos01 p14= new Pos01<>(1, ""){}; //new Foo created - Pos01 p15 = new Pos01<>(1, ""){}; //new Foo created - Pos01 p16 = new Pos01<>(1, ""){}; //new Foo created - } - - public static void main(String[] args) { - Pos01 p1 = new Pos01<>(""); - p1.test(); - } - } + public static void main(String[] args) { + Pos01 p1 = new Pos01<>(""); + p1.test(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos2.java index 875e0e77349a..0f7a508e32a8 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos2.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos2.java @@ -1,57 +1,37 @@ public class Pos02 { - static class Foo { - Foo(X x) {} - Foo(X x, Z z) {} - } + static class Foo { + Foo(X x) {} + Foo(X x, Z z) {} + } - void testSimple() { - Foo f1 = new Foo<>(1); //new Foo created - Foo f2 = new Foo<>(1); //new Foo created - Foo f3 = new Foo<>(1); //new Foo created - Foo f4 = new Foo<>(1); //new Foo created + void testSimple() { + Foo f1 = new Foo<>(1); + Foo f2 = new Foo<>(1); + Foo f3 = new Foo<>(1); + Foo f4 = new Foo<>(1); - Foo f5 = new Foo<>(1){}; //new Foo created - Foo f6 = new Foo<>(1){}; //new Foo created - Foo f7 = new Foo<>(1){}; //new Foo created - Foo f8 = new Foo<>(1){}; //new Foo created + Foo f5 = new Foo<>(1, ""); + Foo f6 = new Foo<>(1, ""); + Foo f7 = new Foo<>(1, ""); + Foo f8 = new Foo<>(1, ""); + } - Foo f9 = new Foo<>(1, ""); //new Foo created - Foo f10 = new Foo<>(1, ""); //new Foo created - Foo f11 = new Foo<>(1, ""); //new Foo created - Foo f12 = new Foo<>(1, ""); //new Foo created + void testQualified() { + Foo f1 = new Pos02.Foo<>(1); + Foo f2 = new Pos02.Foo<>(1); + Foo f3 = new Pos02.Foo<>(1); + Foo f4 = new Pos02.Foo<>(1); - Foo f13 = new Foo<>(1, ""){}; //new Foo created - Foo f14 = new Foo<>(1, ""){}; //new Foo created - Foo f15 = new Foo<>(1, ""){}; //new Foo created - Foo f16 = new Foo<>(1, ""){}; //new Foo created - } + Foo f5 = new Pos02.Foo<>(1, ""); + Foo f6 = new Pos02.Foo<>(1, ""); + Foo f7 = new Pos02.Foo<>(1, ""); + Foo f8 = new Pos02.Foo<>(1, ""); + } - void testQualified() { - Foo f1 = new Pos02.Foo<>(1); //new Foo created - Foo f2 = new Pos02.Foo<>(1); //new Foo created - Foo f3 = new Pos02.Foo<>(1); //new Foo created - Foo f4 = new Pos02.Foo< >(1); //new Foo created - - Foo f5 = new Pos02.Foo<>(1){}; //new Foo created - Foo f6 = new Pos02.Foo<>(1){}; //new Foo created - Foo f7 = new Pos02.Foo<>(1){}; //new Foo created - Foo f8 = new Pos02.Foo<>(1){}; //new Foo created - - Foo f9 = new Pos02.Foo<>(1, ""); //new Foo created - Foo f10 = new Pos02.Foo<>(1, ""); //new Foo created - Foo f11 = new Pos02.Foo<>(1, ""); //new Foo created - Foo f12 = new Pos02.Foo<>(1, ""); //new Foo created - - Foo f13 = new Pos02.Foo<>(1, ""){}; //new Foo created - Foo f14 = new Pos02.Foo<>(1, ""){}; //new Foo created - Foo f15 = new Pos02.Foo<>(1, ""){}; //new Foo created - Foo f16 = new Pos02.Foo<>(1, ""){}; //new Foo created - } - - public static void main(String[] args) { - Pos02 p2 = new Pos02(); - p2.testSimple(); - p2.testQualified(); - } - } + public static void main(String[] args) { + Pos02 p2 = new Pos02(); + p2.testSimple(); + p2.testQualified(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos3.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos3.java index e29782d62fe5..7cb017849479 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos3.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos3.java @@ -1,80 +1,50 @@ public class Pos03 { - class Foo { - Foo(V x) {} - Foo(V x, Z z) {} - } + class Foo { + Foo(V x) {} + Foo(V x, Z z) {} + } - void testSimple() { - Foo f1 = new Foo<>(1); //new Foo created - Foo f2 = new Foo<>(1); //new Foo created - Foo f3 = new Foo<>(1); //new Foo created - Foo f4 = new Foo<>(1); //new Foo created + void testSimple() { + Foo f1 = new Foo<>(1); + Foo f2 = new Foo<>(1); + Foo f3 = new Foo<>(1); + Foo f4 = new Foo<>(1); - Foo f5 = new Foo<>(1){}; //new Foo created - Foo f6 = new Foo<>(1){}; //new Foo created - Foo f7 = new Foo<>(1){}; //new Foo created - Foo f8 = new Foo<>(1){}; //new Foo created + Foo f5 = new Foo<>(1, ""); + Foo f6 = new Foo<>(1, ""); + Foo f7 = new Foo<>(1, ""); + Foo f8 = new Foo<>(1, ""); + } - Foo f9 = new Foo<>(1, ""); //new Foo created - Foo f10 = new Foo<>(1, ""); //new Foo created - Foo f11 = new Foo<>(1, ""); //new Foo created - Foo f12 = new Foo<>(1, ""); //new Foo created + void testQualified_1() { + Foo f1 = new Pos03.Foo<>(1); + Foo f2 = new Pos03.Foo<>(1); + Foo f3 = new Pos03.Foo<>(1); + Foo f4 = new Pos03.Foo<>(1); - Foo f13 = new Foo<>(1, ""){}; //new Foo created - Foo f14 = new Foo<>(1, ""){}; //new Foo created - Foo f15 = new Foo<>(1, ""){}; //new Foo created - Foo f16 = new Foo<>(1, ""){}; //new Foo created - } + Foo f5 = new Pos03.Foo<>(1, ""); + Foo f6 = new Pos03.Foo<>(1, ""); + Foo f7 = new Pos03.Foo<>(1, ""); + Foo f8 = new Pos03.Foo<>(1, ""); + } - void testQualified_1() { - Foo f1 = new Pos03.Foo<>(1); //new Foo created - Foo f2 = new Pos03.Foo<>(1); //new Foo created - Foo f3 = new Pos03.Foo<>(1); //new Foo created - Foo f4 = new Pos03.Foo<>(1); //new Foo created + void testQualified_2(Pos03 p) { + Foo f1 = p.new Foo<>(1); + Foo f2 = p.new Foo<>(1); + Foo f3 = p.new Foo<>(1); + Foo f4 = p.new Foo<>(1); - Foo f5 = new Pos03.Foo<>(1){}; //new Foo created - Foo f6 = new Pos03.Foo<>(1){}; //new Foo created - Foo f7 = new Pos03.Foo<>(1){}; //new Foo created - Foo f8 = new Pos03.Foo<>(1){}; //new Foo created + Foo f5 = p.new Foo<>(1, ""); + Foo f6 = p.new Foo<>(1, ""); + Foo f7 = p.new Foo<>(1, ""); + Foo f8 = p.new Foo<>(1, ""); + } - Foo f9 = new Pos03.Foo<>(1, ""); //new Foo created - Foo f10 = new Pos03.Foo<>(1, ""); //new Foo created - Foo f11 = new Pos03.Foo<>(1, ""); //new Foo created - Foo f12 = new Pos03.Foo<>(1, ""); //new Foo created - - Foo f13 = new Pos03.Foo<>(1, ""){}; //new Foo created - Foo f14 = new Pos03.Foo<>(1, ""){}; //new Foo created - Foo f15 = new Pos03.Foo<>(1, " "){}; //new Foo created - Foo f16 = new Pos03.Foo<>(1, ""){}; //new Foo created - } - - void testQualified_2(Pos03 p) { - Foo f1 = p.new Foo<>(1); //new Foo created - Foo f2 = p.new Foo<>( 1); //new Foo created - Foo f3 = p.new Foo<>(1); //new Foo created - Foo f4 = p.new Foo<>(1); //new Foo created - - Foo f5 = p.new Foo<>(1){}; //new Foo created - Foo f6 = p.new Foo<>(1){}; //new Foo created - Foo f7 = p.new Foo<>(1){}; //new Foo created - Foo f8 = p.new Foo<>(1){}; //new Foo created - - Foo f9 = p.new Foo<>(1, ""); //new Foo created - Foo f10 = p.new Foo<>(1, ""); //new Foo created - Foo f11 = p.new Foo<>(1, ""); //new Foo created - Foo f12 = p.new Foo<>(1, ""); //new Foo created - - Foo f13 = p.new Foo<>(1, ""){}; //new Foo created - Foo f14 = p.new Foo<>(1, ""){}; //new Foo created - Foo f15 = p.new Foo<>(1, ""){}; //new Foo created - Foo f16 = p.new Foo<>(1, ""){}; //new Foo created - } - - public static void main(String[] args) { - Pos03 p3 = new Pos03<>( ); - p3.testSimple(); - p3.testQualified_1(); - p3.testQualified_2(p3); - } - } + public static void main(String[] args) { + Pos03 p3 = new Pos03<>(); + p3.testSimple(); + p3.testQualified_1(); + p3.testQualified_2(p3); + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos4.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos4.java index 9b639f576bda..71d00f0cf816 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos4.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos4.java @@ -2,39 +2,18 @@ public class Pos04 { void test() { class Foo { - Foo(V x) { - } - - Foo(V x, Z z) { - } + Foo(V x) {} + Foo(V x, Z z) {} } - Foo p1 = new Foo< >(1); //new Foo created - Foo p2 = new Foo< >(1); //new Foo created - Foo p3 = new Foo< >(1); //new Foo created - Foo p4 = new Foo< >(1); //new Foo created + Foo p1 = new Foo<>(1); + Foo p2 = new Foo<>(1); + Foo p3 = new Foo<>(1); + Foo p4 = new Foo<>(1); - Foo p5 = new Foo< >(1) { - }; //new Foo created - Foo p6 = new Foo< >(1) { - }; //new Foo created - Foo p7 = new Foo< >(1) { - }; //new Foo created - Foo p8 = new Foo< >(1) { - }; //new Foo created - - Foo p9 = new Foo< >(1, ""); //new Foo created - Foo p10 = new Foo< >(1, ""); //new Foo created - Foo p11 = new Foo< >(1, ""); //new Foo created - Foo p12 = new Foo< >(1, ""); //new Foo created - - Foo p13 = new Foo< >(1, "") { - }; //new Foo created - Foo p14 = new Foo< >(1, "") { - }; //new Foo created - Foo p15 = new Foo< >(1, "") { - }; //new Foo created - Foo p16 = new Foo< >(1, "") { - }; //new Foo created + Foo p5 = new Foo<>(1, ""); + Foo p6 = new Foo<>(1, ""); + Foo p7 = new Foo<>(1, ""); + Foo p8 = new Foo<>(1, ""); } public static void main(String[] args) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos6.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos6.java new file mode 100644 index 000000000000..06f852410748 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos6.java @@ -0,0 +1,35 @@ +/* + * Copyright 2000-2011 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Pos06 { + static class Foo { + Foo(X x) { } + } + + static class DoubleFoo { + DoubleFoo(X x,Y y) { } + } + + static class TripleFoo { + TripleFoo(X x,Y y,Z z) { } + } + + Foo fi = new Foo<>(1); + Foo fw = new Foo<>(fi); + Foo fd = new Foo<>(3.0); + DoubleFoo dw = new DoubleFoo<>(fi,fd); + Foo fs = new Foo<>("one"); + TripleFoo tw = new TripleFoo<>(fi,fd,fs); +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos7.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos7.java new file mode 100644 index 000000000000..dfde1a780178 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondPos7.java @@ -0,0 +1,27 @@ +/* + * Copyright 2000-2011 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Pos07 { + static class Foo> {} + static class DoubleFoo, + Y extends Number & Comparable> {} + static class TripleFoo, + Y extends Number & Comparable, + Z> {} + + Foo fw = new Foo<>(); + DoubleFoo dw = new DoubleFoo<>(); + TripleFoo tw = new TripleFoo<>(); +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk7Test.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk7Test.java index d2becdadc2ac..d5e420328838 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk7Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk7Test.java @@ -68,6 +68,17 @@ public class LightAdvHighlightingJdk7Test extends LightDaemonAnalyzerTestCase { doTest(false, false); } + /* + should be negative? + intersection types are not allowed in <>?! + public void testDiamondPos6() throws Exception { + doTest(false, false); + } + + public void testDiamondPos7() throws Exception { + doTest(false, false); + }*/ + public void testDiamondNeg1() throws Exception { doTest(false, false); } diff --git a/java/openapi/src/com/intellij/psi/PsiDiamondType.java b/java/openapi/src/com/intellij/psi/PsiDiamondType.java index 81d5c016ff23..f01b98aaea9e 100644 --- a/java/openapi/src/com/intellij/psi/PsiDiamondType.java +++ b/java/openapi/src/com/intellij/psi/PsiDiamondType.java @@ -92,6 +92,14 @@ public class PsiDiamondType extends PsiType { return PsiDiamondType.DiamondInferenceResult.NULL_RESULT; } + final PsiAnonymousClass anonymousClass = newExpression.getAnonymousClass(); + if (anonymousClass != null) { + final PsiElement resolve = anonymousClass.getBaseClassReference().resolve(); + if (resolve instanceof PsiClass && ((PsiClass)resolve).getContainingClass() != null) { + return PsiDiamondType.DiamondInferenceResult.ANONYMOUS_INNER_RESULT; + } + + } return resolveInferredTypes(newExpression); } @@ -238,6 +246,18 @@ public class PsiDiamondType extends PsiType { } }; + public static final DiamondInferenceResult ANONYMOUS_INNER_RESULT = new DiamondInferenceResult() { + @Override + public PsiType[] getTypes() { + return PsiType.EMPTY_ARRAY; + } + + @Override + public String getErrorMessage() { + return "Cannot use ''<>'' with anonymous inner classes"; + } + }; + private List myInferredTypes = new ArrayList(); private String myErrorMessage; @@ -285,10 +305,10 @@ public class PsiDiamondType extends PsiType { if (myErrorMessage != null) return; if (psiType == null) { myErrorMessage = "Cannot infer type arguments for " + myNewExpressionPresentableText; - } else if (!isValid(psiType)) { + } /*else if (!isValid(psiType)) { myErrorMessage = "Cannot infer type arguments for " + myNewExpressionPresentableText + " because type " + psiType.getPresentableText() + " inferred is not allowed in current context"; - } else { + }*/ else { myInferredTypes.add(psiType); } }