Snapshot idea/138.1029 from git://git.jetbrains.org/idea/community.git
Update from idea/138.538 to idea/138.1029
Change-Id: I828f829a968439a99ec67640990c18ff7c9b58ce
diff --git a/java/java-tests/java-tests.iml b/java/java-tests/java-tests.iml
index 248b1d3..09b0e28 100644
--- a/java/java-tests/java-tests.iml
+++ b/java/java-tests/java-tests.iml
@@ -16,7 +16,7 @@
<orderEntry type="library" name="Velocity" level="project" />
<orderEntry type="module" module-name="java-i18n" exported="" />
<orderEntry type="module" module-name="compiler-impl" />
- <orderEntry type="library" name="asm4" level="project" />
+ <orderEntry type="library" name="asm5" level="project" />
<orderEntry type="module" module-name="instrumentation-util" />
<orderEntry type="library" name="Groovy" level="project" />
<orderEntry type="module" module-name="IntelliLang-java" scope="RUNTIME" />
diff --git a/java/java-tests/testData/codeInsight/completeStatement/AddMissingParen_after.java b/java/java-tests/testData/codeInsight/completeStatement/AddMissingParen_after.java
index d53d73e..3cf8eb4 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/AddMissingParen_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/AddMissingParen_after.java
@@ -3,7 +3,6 @@
abstract void a();
{
- a();
- <caret>
+ a();<caret>
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/AddMissingSemicolon_after.java b/java/java-tests/testData/codeInsight/completeStatement/AddMissingSemicolon_after.java
index d53d73e..3cf8eb4 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/AddMissingSemicolon_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/AddMissingSemicolon_after.java
@@ -3,7 +3,6 @@
abstract void a();
{
- a();
- <caret>
+ a();<caret>
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/ArrayInitializerRBracket_after.java b/java/java-tests/testData/codeInsight/completeStatement/ArrayInitializerRBracket_after.java
index d766b4a..2a09299 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/ArrayInitializerRBracket_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/ArrayInitializerRBracket_after.java
@@ -1,6 +1,5 @@
public class Foo {
public void fails() {
- boolean[] a = new boolean[f()];
- <caret>
+ boolean[] a = new boolean[f()];<caret>
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/BraceFixeNewLine_after.java b/java/java-tests/testData/codeInsight/completeStatement/BraceFixeNewLine_after.java
index 059822d..7a129a9 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/BraceFixeNewLine_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/BraceFixeNewLine_after.java
@@ -3,7 +3,6 @@
int k1 = 1;
int k2 = 2;
int[] array = new int[]{k1, k2};
- <caret>
System.out.print(k1);
}
diff --git a/java/java-tests/testData/codeInsight/completeStatement/CdrEndlessLoop_after.java b/java/java-tests/testData/codeInsight/completeStatement/CdrEndlessLoop_after.java
index 07d7649..b690a46 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/CdrEndlessLoop_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/CdrEndlessLoop_after.java
@@ -1,6 +1,5 @@
public class Test {
public int foo(int i) {
- int ii = foo(0);
- <caret>
+ int ii = foo(0);<caret>
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/FollowedByComment_after.java b/java/java-tests/testData/codeInsight/completeStatement/FollowedByComment_after.java
index f146a88..209898f 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/FollowedByComment_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/FollowedByComment_after.java
@@ -1,7 +1,6 @@
public class Foo {
public void foo() {
- foo();
- <caret>
+ foo();<caret>
// some line comment
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/IDEA22125_after.java b/java/java-tests/testData/codeInsight/completeStatement/IDEA22125_after.java
index 3579bfd..61fca24 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/IDEA22125_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/IDEA22125_after.java
@@ -1,7 +1,6 @@
public class Junk {
public static void main(String[] args) {
- int i = 1; // comment
- <caret>
+ int i = 1; // comment<caret>
}
}
diff --git a/java/java-tests/testData/codeInsight/completeStatement/IDEADEV40479_after.java b/java/java-tests/testData/codeInsight/completeStatement/IDEADEV40479_after.java
index 89767d3..c61c4ca 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/IDEADEV40479_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/IDEADEV40479_after.java
@@ -1,7 +1,6 @@
public class Junk {
public static void main(String[] args) {
- int[] arr = new int[]{1, 2, 3};
- <caret>
+ int[] arr = new int[]{1, 2, 3};<caret>
}
}
diff --git a/java/java-tests/testData/codeInsight/completeStatement/IncompleteCall_after.java b/java/java-tests/testData/codeInsight/completeStatement/IncompleteCall_after.java
index 2aa9baa..608de1e 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/IncompleteCall_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/IncompleteCall_after.java
@@ -1,8 +1,7 @@
public class Foo {
{
- foo();
- <caret>
+ foo();<caret>
foo();
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/MultilineCall_after.java b/java/java-tests/testData/codeInsight/completeStatement/MultilineCall_after.java
index 77770c0..1d2e3fc 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/MultilineCall_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/MultilineCall_after.java
@@ -1,7 +1,6 @@
class Test {
Object method() {
method(
- factory());
- <caret>
+ factory());<caret>
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/NewInParentheses_after.java b/java/java-tests/testData/codeInsight/completeStatement/NewInParentheses_after.java
index b7512bc..0bdd9c0 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/NewInParentheses_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/NewInParentheses_after.java
@@ -1,7 +1,6 @@
class foo {
{
- Object d = ((String) new String());
- <caret>
+ Object d = ((String) new String());<caret>
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/Parenthesized_after.java b/java/java-tests/testData/codeInsight/completeStatement/Parenthesized_after.java
index 9b159d2..cecc090 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/Parenthesized_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/Parenthesized_after.java
@@ -1,7 +1,6 @@
class Foo {
{
- tx2 = (long) (vcx + vw);
- <caret>
+ tx2 = (long) (vcx + vw);<caret>
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/StringLiteral_after.java b/java/java-tests/testData/codeInsight/completeStatement/StringLiteral_after.java
index 977a63e..b76baf5 100644
--- a/java/java-tests/testData/codeInsight/completeStatement/StringLiteral_after.java
+++ b/java/java-tests/testData/codeInsight/completeStatement/StringLiteral_after.java
@@ -1,7 +1,6 @@
class foo {
{
- String s = "a";
- <caret>
+ String s = "a";<caret>
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/normal/CharsetName.java b/java/java-tests/testData/codeInsight/completion/normal/CharsetName.java
new file mode 100644
index 0000000..c932c81
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/normal/CharsetName.java
@@ -0,0 +1,7 @@
+import java.nio.charset.Charset;
+
+public final class FileAttributes {
+ {
+ Charset.forName("utf<caret>")
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/normal/DeepInner.java b/java/java-tests/testData/codeInsight/completion/normal/DeepInner.java
new file mode 100644
index 0000000..33d1ac4
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/normal/DeepInner.java
@@ -0,0 +1,13 @@
+class ClassMain{
+ public static class ClassInner1{
+ public static class ClassInner2{
+
+ }
+ }
+}
+
+class Foo {
+ {
+ new ClassMain.Cla<caret>
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/normal/DeepInner_after.java b/java/java-tests/testData/codeInsight/completion/normal/DeepInner_after.java
new file mode 100644
index 0000000..f46d6f1
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/normal/DeepInner_after.java
@@ -0,0 +1,13 @@
+class ClassMain{
+ public static class ClassInner1{
+ public static class ClassInner2{
+
+ }
+ }
+}
+
+class Foo {
+ {
+ new ClassMain.ClassInner1.ClassInner2()<caret>
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/normal/SmartEnterWrapsConstructorCall_after.java b/java/java-tests/testData/codeInsight/completion/normal/SmartEnterWrapsConstructorCall_after.java
index 4761cce..43e9168 100644
--- a/java/java-tests/testData/codeInsight/completion/normal/SmartEnterWrapsConstructorCall_after.java
+++ b/java/java-tests/testData/codeInsight/completion/normal/SmartEnterWrapsConstructorCall_after.java
@@ -8,7 +8,6 @@
}
public void test1() {
- build(new EntityBuilder());
- <caret>
+ build(new EntityBuilder());<caret>
}
}
diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/HonorFirstLetterCase.java b/java/java-tests/testData/codeInsight/completion/normalSorting/HonorFirstLetterCase.java
new file mode 100644
index 0000000..7edb9cd
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/normalSorting/HonorFirstLetterCase.java
@@ -0,0 +1,11 @@
+import java.io.*;
+
+class Foo {
+ {
+ pim<caret>
+ }
+}
+
+class PNGImageDecoder {}
+class PImageDecoder {}
+class posIdMap {}
diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/PreferAnnotationsToInterfaceKeyword.java b/java/java-tests/testData/codeInsight/completion/normalSorting/PreferAnnotationsToInterfaceKeyword.java
new file mode 100644
index 0000000..7d1d4ff
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/normalSorting/PreferAnnotationsToInterfaceKeyword.java
@@ -0,0 +1,4 @@
+class A {
+ @<caret>
+ void foo(){}
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/PreferThrownExceptionsInCatch.java b/java/java-tests/testData/codeInsight/completion/normalSorting/PreferThrownExceptionsInCatch.java
new file mode 100644
index 0000000..c1d4122
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/normalSorting/PreferThrownExceptionsInCatch.java
@@ -0,0 +1,15 @@
+import java.io.*;
+
+class Foo {
+ {
+ try {
+ foo();
+ } catch (<caret>)
+ }
+
+ private void foo() throws FileNotFoundException {
+ }
+
+ private void bar() throws ArrayIndexOutOfBoundsException {
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/ConstructorArgsSmartEnter-out.java b/java/java-tests/testData/codeInsight/completion/smartType/ConstructorArgsSmartEnter-out.java
index 484b537..9d25f93 100644
--- a/java/java-tests/testData/codeInsight/completion/smartType/ConstructorArgsSmartEnter-out.java
+++ b/java/java-tests/testData/codeInsight/completion/smartType/ConstructorArgsSmartEnter-out.java
@@ -5,7 +5,6 @@
{
- List l = new ArrayList(239);
- <caret>
+ List l = new ArrayList(239);<caret>
}
}
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/SmartFinish-out.java b/java/java-tests/testData/codeInsight/completion/smartType/SmartFinish-out.java
index 1583bee..e95297e 100644
--- a/java/java-tests/testData/codeInsight/completion/smartType/SmartFinish-out.java
+++ b/java/java-tests/testData/codeInsight/completion/smartType/SmartFinish-out.java
@@ -2,8 +2,7 @@
{
Foo foo = null;
- Foo bar = id(foo);
- <caret>
+ Foo bar = id(foo);<caret>
}
Foo id(Foo foo) {return foo;}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/IllegalForwardReference.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/IllegalForwardReference.java
index 88dd953..45663a1 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/IllegalForwardReference.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/IllegalForwardReference.java
@@ -13,7 +13,7 @@
int k = 1 + <error descr="Illegal forward reference">ki</error>;
int ki;
- final int fi5 = <error descr="Illegal forward reference">fi5</error> + 1;
+ final int fi5 = <error descr="Illegal self reference">fi5</error> + 1;
}
class a1 {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg1.java
index cd9c7e1..8ec18fd 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg1.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg1.java
@@ -5,14 +5,14 @@
<Z> Neg01(X x, Z z) {}
void test() {
- Neg01<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n1 = new Neg01<><error descr="'Neg01(java.lang.String & java.lang.Number)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
- Neg01<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n2 = new Neg01<><error descr="'Neg01(java.lang.String & java.lang.Number)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
- Neg01<?> n3 = new Neg01<><error descr="'Neg01(java.lang.String & java.lang.Number)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
- Neg01<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n4 = new Neg01<><error descr="'Neg01(java.lang.String & java.lang.Number)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
+ Neg01<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n1 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
+ Neg01<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n2 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
+ Neg01<?> n3 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
+ Neg01<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n4 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
- Neg01<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n5 = new Neg01<><error descr="'Neg01(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Neg01<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n6 = new Neg01<><error descr="'Neg01(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Neg01<?> n7 = new Neg01<><error descr="'Neg01(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- <error descr="Cannot resolve symbol 'Foo'">Foo</error><? super String> n8 = new Neg01<><error descr="'Neg01(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Neg01<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n5 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Neg01<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n6 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Neg01<?> n7 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ <error descr="Cannot resolve symbol 'Foo'">Foo</error><? super String> n8 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
}
}
\ 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 f1a2f75..045ba94 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg2.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg2.java
@@ -6,26 +6,26 @@
}
void testSimple() {
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<?> f3 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<?> f3 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<?> f7 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<?> f7 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
}
void testQualified() {
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = new Neg02.Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = new Neg02.Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<?> f3 = new Neg02.Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Neg02.Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<?> f3 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Neg02.Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Neg02.Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<?> f7 = new Neg02.Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Neg02.Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<?> f7 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg3.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg3.java
index ac66d2a..29295eb 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg3.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg3.java
@@ -6,38 +6,38 @@
}
void testSimple() {
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<?> f3 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<?> f3 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<?> f7 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<?> f7 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
}
void testQualified_1() {
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<?> f3 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<?> f3 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<?> f7 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<?> f7 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
}
void testQualified_2(Neg03<U> n) {
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = n.new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = n.new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<?> f3 = n.new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = n.new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f1 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f2 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<?> f3 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = n.new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = n.new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<?> f7 = n.new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = n.new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<?> f7 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg4.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg4.java
index 55b50c5..ecf72df 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg4.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg4.java
@@ -5,14 +5,14 @@
Foo(V x) {}
<Z> Foo(V x, Z z) {}
}
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n1 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n2 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<?> n3 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n4 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n1 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n2 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<?> n3 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n4 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
- Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n5 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n6 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<?> n7 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
- Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n8 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n5 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n6 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<?> n7 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
+ Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n8 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg7.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg7.java
index 84771a6..3d356a9 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg7.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/DiamondNeg7.java
@@ -4,5 +4,5 @@
Foo(X x) {}
}
- SuperFoo<String> sf1 = new Foo<><error descr="'Foo(java.lang.String & java.lang.Number)' in 'Neg07.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
+ SuperFoo<String> sf1 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg07.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/IDEA111420.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/IDEA111420.java
index eafce26..d5e43e1 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/IDEA111420.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/IDEA111420.java
@@ -1,7 +1,7 @@
import java.util.List;
public class Test {
- private static final <error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<? extends java.io.Serializable & java.lang.Cloneable>>', required: 'java.util.List<java.lang.Class<?>>'">List<Class<?>> PRIMITIVE_ARRAY_TYPES = asList(byte[].class, int[].class);</error>
+ private static final <error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<? extends java.lang.Cloneable & java.io.Serializable>>', required: 'java.util.List<java.lang.Class<?>>'">List<Class<?>> PRIMITIVE_ARRAY_TYPES = asList(byte[].class, int[].class);</error>
private static final List<?> PRIMITIVE_ARRAY_TYPES1 = asList(byte[].class, int[].class);
public static <T> List<T> asList(T... a) {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA124363.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA124363.java
new file mode 100644
index 0000000..577e19a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA124363.java
@@ -0,0 +1,16 @@
+import java.util.*;
+
+class MyTClass {
+
+ <T> void foo(final List<Object> objects){
+ Collection<? extends T> collection = (Collection<? extends T>) objects;
+ }
+
+ <T> void foo1(final List<Object> objects){
+ Collection<? super T> collection = (Collection<? super T>) objects;
+ }
+
+ <T extends String> void bar(final List<Object> objects){
+ Collection<? extends T> collection = <error descr="Inconvertible types; cannot cast 'java.util.List<java.lang.Object>' to 'java.util.Collection<? extends T>'">(Collection<? extends T>) objects</error>;
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java
index d2515ee..868b4df 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java
@@ -1,6 +1,19 @@
+import java.util.Comparator;
+import java.util.List;
+
+class Test {
+ public static final Comparator<Object> ORDER_AWARE_COMPARATOR = null;
+
+ public static void orderAwareSort(List<?> data) {
+ sort(data, ORDER_AWARE_COMPARATOR);
+ }
+
+ public static <T> void sort(List<T> list, Comparator<? super T> c) {}
+}
+
class FooBar<T> {
void foo(final FooBar<?> fooBar){
- fooBar.supertype<error descr="'supertype(java.lang.Class<capture<?>>)' in 'FooBar' cannot be applied to '(java.lang.Class<java.lang.Iterable>)'">(Iterable.class)</error>;
+ //fooBar.supertype(Iterable.class);
}
void foo1(final FooBar<? super T> fooBar){
@@ -13,3 +26,4 @@
void supertype(Class<? super T> superclass) {}
}
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA126633.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA126633.java
new file mode 100644
index 0000000..19e79fc
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA126633.java
@@ -0,0 +1,15 @@
+import java.util.List;
+
+class Test {
+ <T> List<T> test(final List<Object> foo) {
+ return (List<T>) foo;
+ }
+
+ <T> List<List<T>> test1(final List<List<Object>> foo) {
+ return <error descr="Inconvertible types; cannot cast 'java.util.List<java.util.List<java.lang.Object>>' to 'java.util.List<java.util.List<T>>'">(List<List<T>>) foo</error>;
+ }
+
+ <T> List<List<List<T>>> test2(final List<List<List<Object>>> foo) {
+ return <error descr="Inconvertible types; cannot cast 'java.util.List<java.util.List<java.util.List<java.lang.Object>>>' to 'java.util.List<java.util.List<java.util.List<T>>>'">(List<List<List<T>>>) foo</error>;
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA126697.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA126697.java
new file mode 100644
index 0000000..895e569
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA126697.java
@@ -0,0 +1,8 @@
+class Test {
+ private static void <warning descr="Private method 'test(java.lang.Short)' is never used">test</warning>(Short s) { System.out.println("Short:" + s); }
+ private static void test(short s) { System.out.println("short:" + s); }
+
+ public static void main(String ... args) {
+ test(true ? new Short((short) 1) : new Byte((byte) 1));
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParent.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParent.java
index 49c8f5b..3e270f7 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParent.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParent.java
@@ -7,7 +7,11 @@
List<Foo> elements = getElements(parent);
- for (<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Foo'">Foo foo : getElements(parent)</error>) {
+ /*for (Foo foo : getElements(parent)) {
+ System.out.println(foo);
+ }*/
+
+ for (Foo foo : getElementsArray(parent)) {
System.out.println(foo);
}
}
@@ -15,4 +19,8 @@
public static <E extends Foo<E>> List<E> getElements(E parent) {
return new ArrayList<>();
}
+
+ public static <E extends Foo<E>> E[] getElementsArray(E parent) {
+ return null;
+ }
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParentArrayType.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParentArrayType.java
new file mode 100644
index 0000000..904e372
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParentArrayType.java
@@ -0,0 +1,14 @@
+import java.util.*;
+
+class Test {
+ protected Class[] getAllInterfaces(final Set<Class> interfaces, final Class[] classes) {
+ return interfaces.toArray(classes);
+ }
+ public static <T extends Collection<String>> T get(T out) {
+ return out;
+ }
+
+ public static void main(String[] args) {
+ Set<String> set = get(new HashSet());
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/Intersection.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/Intersection.java
index 767b547..7a6312b 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/Intersection.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/Intersection.java
@@ -13,8 +13,8 @@
{
Object o1 = (Serializable & I) () -> {};
Object o2 = (I & Serializable) () -> {};
- Object o3 = (I & Runnable) <error descr="Multiple non-overriding abstract methods found in Runnable & I">() -> {}</error>;
- Object o4 = (A & Runnable) <error descr="Multiple non-overriding abstract methods found in Runnable & A">() -> {}</error>;
+ Object o3 = (I & Runnable) <error descr="Multiple non-overriding abstract methods found in I & Runnable">() -> {}</error>;
+ Object o4 = (A & Runnable) <error descr="Multiple non-overriding abstract methods found in A & Runnable">() -> {}</error>;
Object o5 = (Runnable & A) <error descr="Multiple non-overriding abstract methods found in Runnable & A">() -> {}</error>;
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/RecursiveAccess.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/RecursiveAccess.java
index cf95ac4..fce5258 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/RecursiveAccess.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/RecursiveAccess.java
@@ -1,5 +1,5 @@
public class LambdaTest {
- Op lambda_fib = (n) -> (n < 2) ? 1 : <error descr="Illegal forward reference">lambda_fib</error>.op(n - 1) + <error descr="Illegal forward reference">lambda_fib</error>.op(n - 2);
+ Op lambda_fib = (n) -> (n < 2) ? 1 : <error descr="Illegal self reference">lambda_fib</error>.op(n - 1) + <error descr="Illegal self reference">lambda_fib</error>.op(n - 2);
{
Op lambda_fib = (n) -> (n < 2) ? 1 : <error descr="Variable 'lambda_fib' might not have been initialized">lambda_fib</error>.op(n - 1) + lambda_fib.op(n - 2);
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA119003.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA119003.java
index f56af02..01646dd 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA119003.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA119003.java
@@ -3,6 +3,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
+import java.util.function.*;
import static java.util.stream.Collectors.*;
@@ -82,3 +83,32 @@
return name;
}
}
+
+class Test67 {
+
+ static {
+ collectingAndThen(reducing(), Optional::get);
+ collectingAndThen(reducing(), o -> o.get());
+ }
+
+ static <T> List<Optional<T>> reducing() {
+ return null;
+ }
+
+ static <R,RR> void collectingAndThen(List<R> downstream, Function<R,RR> finisher){}
+}
+
+class Test99 {
+
+ {
+ collectingAndThen(reducing((d1, d2) -> d2), Optional::get);
+ }
+
+ public static <COL, R, RR> void collectingAndThen(Collector<COL, R> downstream, Function<R, RR> finisher) {}
+
+ public static <RED> Collector<RED, Optional<RED>> reducing(BinaryOperator<RED> op) {
+ return null;
+ }
+
+ static class Collector<A, C>{}
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA124961.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA124961.java
new file mode 100644
index 0000000..ab8e994
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA124961.java
@@ -0,0 +1,16 @@
+import java.util.List;
+import java.util.function.Supplier;
+import java.util.stream.Stream;
+
+class Test {
+
+ private static void list(List<? extends CharSequence> l) {
+ Stream<? extends CharSequence> str = map(() -> l.get(0));
+ Stream<? extends CharSequence> str1 = map1(() -> l.get(0));
+ Stream<? extends CharSequence> str2 = map1(() -> l.get(0));
+ }
+
+ static <M> Stream<M> map (Supplier<? extends M> mapper) { return null;}
+ static <M> Stream<M> map1(Supplier<? super M> mapper) { return null;}
+ static <M> Stream<M> map2(Supplier<M> mapper) { return null;}
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA125254.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA125254.java
new file mode 100644
index 0000000..4d74d14
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA125254.java
@@ -0,0 +1,103 @@
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.function.BiFunction;
+
+class Scratch
+{
+ public static void main(String[] args)
+ {
+ final ExecutorService threadPool = Executors.newCachedThreadPool();
+ final List<EventObject> events = new ArrayList<>();
+ final SoapInterface soap = new SoapInterface();
+
+ events.stream()
+ .map(event -> get(event).apply(soap, event))
+ .map(threadPool::submit)
+ .forEachOrdered(future -> {
+ try
+ {
+ if (! future.get().isError())
+ {
+
+ }
+ else
+ {
+ ;
+ }
+ }
+ catch (InterruptedException | ExecutionException e)
+ {
+ e.printStackTrace();
+ }
+ });
+ }
+
+ public static BiFunction<SoapInterface, Object, Callable<Either<Object, Exception>>> get(Object o)
+ {
+ return (soap, event) -> toEither(
+ () -> {
+ return "value";
+ }
+ );
+ }
+
+ private static Callable<Either<Object, Exception>> toEither(Callable<Object> callable)
+ {
+ return () -> {
+ try
+ {
+ return Either.value(callable.call());
+ }
+ catch (Exception e)
+ {
+ return Either.error(e);
+ }
+ };
+ }
+
+ public static class EventObject { }
+
+ public static class SoapInterface { }
+
+ public static class Either<V, E>
+ {
+ private V value;
+
+ private E error;
+
+ private Either(V value, E error)
+ {
+ this.value = value;
+ this.error = error;
+ }
+
+ public static <V, E> Either<V, E> value(V value)
+ {
+ return new Either<>(value, null);
+ }
+
+ public static <V, E> Either<V, E> error(E error)
+ {
+ return new Either<>(null, error);
+ }
+
+ public V getValue()
+ {
+ return value;
+ }
+
+ public E getError()
+ {
+ return error;
+ }
+
+ public boolean isError()
+ {
+ return error != null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126109.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126109.java
new file mode 100644
index 0000000..0fd7c68
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126109.java
@@ -0,0 +1,26 @@
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+class Test {
+ void foo(final Stream<Person> stream) {
+ final Map<String,List<Person>> mapByFirstLetter = stream.collect(Collectors.groupingBy(p -> "" + p.name.charAt(0)));
+
+ final String vV = mapByFirstLetter.values().stream().map(lp -> lp.stream().map(p -> p.name)
+ .collect(Collectors.joining("/","<",">"))) .collect(Collectors.joining(" : "));
+
+ final String vV2 = mapByFirstLetter.values().stream()
+ .map(lp -> lp.stream().map(Person::getName).collect(Collectors.joining("/","<",">")))
+ .collect(Collectors.joining(" : "));
+ System.out.println("mapByFirstLetter2 : "+ vV2);
+ }
+
+ public static class Person {
+ private String name;
+ public Person(String name) {
+ this.name = name;
+ }
+ public String getName() {return name;}
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126809.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126809.java
new file mode 100644
index 0000000..df910d9
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126809.java
@@ -0,0 +1,27 @@
+import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Stream;
+
+import static java.util.stream.Collectors.toSet;
+
+class App {
+
+ {
+ final User user = new User("test", Stream.of("TEST").collect(toSet()));
+ Optional.of(user).map(u -> new User(u.getName(),
+ u.getAttributes().stream().filter(a -> !a.equals("TEST")).collect(toSet())));
+ }
+
+ private static final class User {
+ User(final String name, final Set<String> attributes) {
+ }
+
+ public String getName() {
+ return null;
+ }
+
+ public Set<String> getAttributes() {
+ return null;
+ }
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/EnumValuesMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/EnumValuesMethod.java
new file mode 100644
index 0000000..14ad192
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/EnumValuesMethod.java
@@ -0,0 +1,25 @@
+import java.util.function.Supplier;
+
+class EnumValues {
+
+ {
+ Supplier<I<ABC>> supplier = () -> new C<>(ABC::values);
+ }
+
+ private static interface I<T> {
+ T get();
+ }
+
+ private static class C<E> implements I<E> {
+ C(Supplier<E[]> supplier) {}
+
+ @Override
+ public E get() {
+ return null;
+ }
+ }
+
+ private static enum ABC {
+ A, B, C
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/MissedApplicableMemberContainingClassSubstitution.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/MissedApplicableMemberContainingClassSubstitution.java
new file mode 100644
index 0000000..7562e45
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/MissedApplicableMemberContainingClassSubstitution.java
@@ -0,0 +1,54 @@
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+class TestA {
+
+ public static class Entity<K> {
+ K id;
+ public K getId() {
+ return id;
+ }
+ }
+
+ public static class EntityVo {}
+
+ public static class Area extends Entity<Integer> {
+ }
+
+ public static class AreaVo {
+ public AreaVo(Area area, String lang) {
+
+ }
+ }
+
+ public static void main(String[] args) {
+ String language = "da";
+ List<Area> areas = new ArrayList<>();
+ Map<Integer, AreaVo> areaLookup = areas.stream()
+ .collect(Collectors.toMap(Area::getId, area -> new AreaVo(area, language)));
+ }
+
+}
+
+class TestSimple {
+
+ public static class Entity<K> {
+ K id;
+ public K getId() {
+ return id;
+ }
+ }
+
+ public static class Area extends Entity<Integer> {
+ }
+
+ public static <M> Set<M> toMap(Function<Area, M> keyMapper) {
+ return null;
+ }
+
+ {
+ Set<Integer> tMapCollector = toMap(Area::getId);
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/RejectReceiverTypesForConstructorRefs.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/RejectReceiverTypesForConstructorRefs.java
new file mode 100644
index 0000000..0954ed9
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/RejectReceiverTypesForConstructorRefs.java
@@ -0,0 +1,21 @@
+import java.util.function.*;
+
+class ConstructorReferences {
+ public ConstructorReferences() {}
+ public ConstructorReferences(String s) {}
+ public ConstructorReferences(String s1, String s2) {}
+ public ConstructorReferences(ConstructorReferences other) {}
+ public ConstructorReferences(ConstructorReferences other1, ConstructorReferences other2) {}
+
+ public static void main(String[] args) {
+ Supplier<ConstructorReferences> supplier = ConstructorReferences::new;
+ Function<String,ConstructorReferences> function = ConstructorReferences::new;
+ BiFunction<String,String,ConstructorReferences> bifunction = ConstructorReferences::new;
+ UnaryOperator<ConstructorReferences> unaryOperator = ConstructorReferences:: new;
+ Function<ConstructorReferences,ConstructorReferences> unaryOperatorBaseClass = ConstructorReferences::new;
+ BinaryOperator<ConstructorReferences> binaryOperator = ConstructorReferences::new;
+ BiFunction<ConstructorReferences, ConstructorReferences, ConstructorReferences> binaryOperatorBaseClass = ConstructorReferences::new;
+ Consumer<ConstructorReferences> consumer = ConstructorReferences::new;
+ BiConsumer<ConstructorReferences,ConstructorReferences> biconsumer = ConstructorReferences::new;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/Constructor.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/Constructor.java
new file mode 100644
index 0000000..fa782b8
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/Constructor.java
@@ -0,0 +1,26 @@
+public class A {
+
+ Project p;
+ MyElement fieldElement;
+
+ static MyElement staticElement;
+
+ public A() {
+
+ MyElement localElement1 = getElement();
+
+ getProje<caret>ct();
+
+ MyElement localElement2 = getElement();
+
+ }
+
+ interface Project {
+
+ }
+
+ interface MyElement {
+ Project getProject();
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/FixAfter.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/FixAfter.java
new file mode 100644
index 0000000..171715c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/FixAfter.java
@@ -0,0 +1,20 @@
+public class A {
+
+ Project p;
+ MyElement fieldElement;
+
+ static MyElement staticElement;
+
+ public void m() {
+ fieldElement.getProject();
+ }
+
+ interface Project {
+
+ }
+
+ interface MyElement {
+ Project getProject();
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/FixBefore.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/FixBefore.java
new file mode 100644
index 0000000..9996e8a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/FixBefore.java
@@ -0,0 +1,20 @@
+public class A {
+
+ Project p;
+ MyElement fieldElement;
+
+ static MyElement staticElement;
+
+ public void m() {
+ getProje<caret>ct();
+ }
+
+ interface Project {
+
+ }
+
+ interface MyElement {
+ Project getProject();
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NestedMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NestedMethod.java
new file mode 100644
index 0000000..1135da9
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NestedMethod.java
@@ -0,0 +1,36 @@
+import java.lang.Object;
+
+public class A {
+
+ Project p;
+ MyElement fieldElement;
+
+ static MyElement staticElement;
+
+ public void m(MyElement paramElement) {
+
+ Object o = new Object() {
+
+ private final MyElement nestedField;
+
+ public void targetMethod(MyElement nestedParamElement) {
+
+ final MyElement localElement1 = getElement();
+
+ getProje<caret>ct ();
+
+ MyElement localElement2 = getElement();
+
+ }
+ }
+ }
+
+ interface Project {
+
+ }
+
+ interface MyElement {
+ Project getProject();
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NonStaticMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NonStaticMethod.java
new file mode 100644
index 0000000..6407fa1
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NonStaticMethod.java
@@ -0,0 +1,26 @@
+public class A {
+
+ Project p;
+ MyElement fieldElement;
+
+ static MyElement staticElement;
+
+ public void targetMethod(MyElement paramElement) {
+
+ MyElement localElement1 = getElement();
+
+ getProje<caret>ct();
+
+ MyElement localElement2 = getElement();
+
+ }
+
+ interface Project {
+
+ }
+
+ interface MyElement {
+ Project getProject();
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/StaticInitializer.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/StaticInitializer.java
new file mode 100644
index 0000000..94faa31
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/StaticInitializer.java
@@ -0,0 +1,26 @@
+public class A {
+
+ Project p;
+ MyElement fieldElement;
+
+ static MyElement staticElement;
+
+ static {
+
+ MyElement localElement1 = getElement();
+
+ getProje<caret>ct();
+
+ MyElement localElement2 = getElement();
+
+ }
+
+ interface Project {
+
+ }
+
+ interface MyElement {
+ Project getProject();
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/StaticMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/StaticMethod.java
new file mode 100644
index 0000000..b7f033a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/StaticMethod.java
@@ -0,0 +1,26 @@
+public class A {
+
+ Project p;
+ MyElement fieldElement;
+
+ static MyElement staticElement;
+
+ public static void targetMethod(MyElement paramElement) {
+
+ MyElement localElement1 = getElement();
+
+ getProje<caret>ct();
+
+ MyElement localElement2 = getElement();
+
+ }
+
+ interface Project {
+
+ }
+
+ interface MyElement {
+ Project getProject();
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeSelfReference.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeSelfReference.java
new file mode 100644
index 0000000..7160a62
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeSelfReference.java
@@ -0,0 +1,9 @@
+// "Replace with lambda" "false"
+class Test {
+ Runnable runnable = new Runn<caret>able() {
+ @Override
+ public void run() {
+ System.out.println(runnable);
+ }
+ };
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/afterInsideNestedInner.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/afterInsideNestedInner.java
new file mode 100644
index 0000000..9e58354
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/afterInsideNestedInner.java
@@ -0,0 +1,18 @@
+// "Replace lambda with method reference" "true"
+class Example {
+ class Bar {
+ void foo() {
+ }
+
+ class Foo {
+
+ void bar() {
+ new Object() {
+ void baz() {
+ Runnable runnable = Bar.this::foo;
+ }
+ };
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeInsideAnonymous.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeInsideAnonymous.java
new file mode 100644
index 0000000..e6ad36c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeInsideAnonymous.java
@@ -0,0 +1,17 @@
+// "Replace lambda with method reference" "false"
+class Example {
+ {
+ new Object() {
+ void foo() {
+ }
+
+ void bar() {
+ new Object() {
+ void baz() {
+ Runnable runnable = () -> fo<caret>o();
+ }
+ };
+ }
+ };
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeInsideNestedInner.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeInsideNestedInner.java
new file mode 100644
index 0000000..553b433
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeInsideNestedInner.java
@@ -0,0 +1,18 @@
+// "Replace lambda with method reference" "true"
+class Example {
+ class Bar {
+ void foo() {
+ }
+
+ class Foo {
+
+ void bar() {
+ new Object() {
+ void baz() {
+ Runnable runnable = () -> fo<caret>o();
+ }
+ };
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterBase.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterBase.java
new file mode 100644
index 0000000..da423ae
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterBase.java
@@ -0,0 +1,16 @@
+// "Swap If Statements" "true"
+class A {
+
+ void m() {
+
+ if (otherCondition) {
+ doAnotherAction();
+ } else if (someCondition) {
+ doSomeAction();
+ } else {
+ defaultAction();
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterManyStatements.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterManyStatements.java
new file mode 100644
index 0000000..2a70fb4
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterManyStatements.java
@@ -0,0 +1,20 @@
+// "Swap If Statements" "true"
+class A {
+
+ void m() {
+
+ if (a) {
+ System.out.println(1);
+ } else if (c) {
+ System.out.println(3);
+ } else if (b) {
+ System.out.println(2);
+ } else if (d) {
+ System.out.println(4);
+ } else {
+ System.out.println(5);
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterWithoutBrackets.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterWithoutBrackets.java
new file mode 100644
index 0000000..5c87fbc
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/afterWithoutBrackets.java
@@ -0,0 +1,12 @@
+// "Swap If Statements" "true"
+class A {
+
+ void m() {
+
+ if (cond2) m2();
+ else if (cond1) m1();
+ else if (cond3) m3();
+
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeBase.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeBase.java
new file mode 100644
index 0000000..146510c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeBase.java
@@ -0,0 +1,16 @@
+// "Swap If Statements" "true"
+class A {
+
+ void m() {
+
+ if (someCondition) {
+ doSomeAction();
+ } e<caret>lse if (otherCondition) {
+ doAnotherAction();
+ } else {
+ defaultAction();
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeManyStatements.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeManyStatements.java
new file mode 100644
index 0000000..c1e7c1c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeManyStatements.java
@@ -0,0 +1,20 @@
+// "Swap If Statements" "true"
+class A {
+
+ void m() {
+
+ if (a) {
+ System.out.println(1);
+ } else if (b) {
+ System.out.println(2);
+ } el<caret>se if (c) {
+ System.out.println(3);
+ } else if (d) {
+ System.out.println(4);
+ } else {
+ System.out.println(5);
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeNotAvailable.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeNotAvailable.java
new file mode 100644
index 0000000..16a0bc0
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeNotAvailable.java
@@ -0,0 +1,10 @@
+// "Swap If Statements" "false"
+class A {
+ void m() {
+ if (someCondition) {
+ doSomeAction();
+ } e<caret>lse {
+ defaultAction();
+ }
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeWithoutBrackets.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeWithoutBrackets.java
new file mode 100644
index 0000000..e7b3ac7
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements/beforeWithoutBrackets.java
@@ -0,0 +1,12 @@
+// "Swap If Statements" "true"
+class A {
+
+ void m() {
+
+ if (cond1) m1();
+ el<caret>se if (cond2) m2();
+ else if (cond3) m3();
+
+ }
+
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterCallAsArgument.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterCallAsArgument.java
new file mode 100644
index 0000000..6ef1870
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterCallAsArgument.java
@@ -0,0 +1,11 @@
+// "Remove redundant assignment" "true"
+class Test {
+ void foo() {
+ String var;
+ this.bar("someString");
+ }
+
+ void bar(String arg) {
+
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeCallAsArgument.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeCallAsArgument.java
new file mode 100644
index 0000000..116cc94
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeCallAsArgument.java
@@ -0,0 +1,11 @@
+// "Remove redundant assignment" "true"
+class Test {
+ void foo() {
+ String var;
+ this.bar(v<caret>ar = "someString");
+ }
+
+ void bar(String arg) {
+
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/javadocIG/annotations.html b/java/java-tests/testData/codeInsight/javadocIG/annotations.html
new file mode 100644
index 0000000..39e5747
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/javadocIG/annotations.html
@@ -0,0 +1,3 @@
+<html><head> <style type="text/css"> #error { background-color: #eeeeee; margin-bottom: 10px; } p { margin: 5px 0; } </style></head><body><small><b><a href="psi_element://Test"><code>Test</code></a></b></small><PRE><font color=red>@Nullable</font>
+@<a href="psi_element://java.lang.Deprecated"><code>Deprecated</code></a>
+public <a href="psi_element://java.lang.String"><code>String</code></a> <b>field = null</b></PRE></body></html>
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/javadocIG/annotations.java b/java/java-tests/testData/codeInsight/javadocIG/annotations.java
new file mode 100644
index 0000000..2a3a674
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/javadocIG/annotations.java
@@ -0,0 +1,5 @@
+class Test {
+ @Nullable
+ @Deprecated
+ public String field = null;
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/slice/backward/VarArgsAsAWhole.java b/java/java-tests/testData/codeInsight/slice/backward/VarArgsAsAWhole.java
new file mode 100644
index 0000000..21ba9ba
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/slice/backward/VarArgsAsAWhole.java
@@ -0,0 +1,12 @@
+class VarArgs {
+ private void g() {
+ f<flown111>("d",1,2,3);
+ }
+
+ void f(String value,int... <flown11>i) {
+ v(value, <flown1>i);
+ }
+
+ private void v(String value, int... <caret>ints) {
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/slice/backward/VarArgsPartial.java b/java/java-tests/testData/codeInsight/slice/backward/VarArgsPartial.java
new file mode 100644
index 0000000..1e59e13
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/slice/backward/VarArgsPartial.java
@@ -0,0 +1,14 @@
+class VarArgs {
+ private static void foo(String value, int...<flown11>ints) {
+ System.out.println(value + " " + java.util.Arrays.asList(ints));
+ int <caret>anInt = <flown1>ints[1];
+ }
+
+ private static void bar(String value, int...<flown1111>ints) {
+ foo(value, <flown111>ints);
+ }
+
+ private static void baz(String value) {
+ bar<flown11111>("d", <flown111111>2, <flown111112>3, <flown111113>4);
+ }
+}
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/AssertTrueNotComplex.java b/java/java-tests/testData/inspection/dataFlow/fixture/AssertTrueNotComplex.java
new file mode 100644
index 0000000..9eb541c
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/AssertTrueNotComplex.java
@@ -0,0 +1,17 @@
+import org.jetbrains.annotations.Contract;
+
+import java.util.List;
+
+abstract class Some {
+ @Contract("_,false->fail")
+ abstract void assertTrue(String s, boolean b);
+
+ void assertContainsAllVariants(List<String> actualVariants, String... expectedVariants) {
+ for (String expectedVariant : expectedVariants) {
+ assertTrue(expectedVariant, actualVariants.contains(expectedVariant));
+ }
+ }
+
+}
+
+
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullToNotNull.java b/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullToNotNull.java
new file mode 100644
index 0000000..a9f17f7
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullToNotNull.java
@@ -0,0 +1,14 @@
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Collection;
+
+class Bar3 {
+
+ public void foo(@Nullable Object element) {
+ final String elementType = element != null ? element.toString() : null;
+ if (elementType == "") {
+ System.out.println(element.hashCode());
+ }
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullableToNullable.java b/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullableToNullable.java
new file mode 100644
index 0000000..5e3ce3c
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullableToNullable.java
@@ -0,0 +1,16 @@
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Collection;
+
+class Bar3 {
+
+ public void foo(@Nullable Object element) {
+ final String elementType = element != null ? element.toString() : null;
+ if (elementType == nullableString()) {
+ System.out.println(<warning descr="Method invocation 'element.hashCode()' may produce 'java.lang.NullPointerException'">element.hashCode()</warning>);
+ }
+ }
+
+ @Nullable String nullableString() { return null; }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullableToUnknown.java b/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullableToUnknown.java
new file mode 100644
index 0000000..b15c6c7
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/ComparingNullableToUnknown.java
@@ -0,0 +1,16 @@
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Collection;
+
+class Bar3 {
+
+ public void foo(@Nullable Object element) {
+ final String elementType = element != null ? element.toString() : null;
+ if (elementType == someString()) {
+ System.out.println(<warning descr="Method invocation 'element.hashCode()' may produce 'java.lang.NullPointerException'">element.hashCode()</warning>);
+ }
+ }
+
+ String someString() { return <warning descr="'null' is returned by the method which is not declared as @Nullable">null</warning>; }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/offline/project/src/Test.java b/java/java-tests/testData/inspection/offline/project/src/Test.java
new file mode 100644
index 0000000..94e0c00
--- /dev/null
+++ b/java/java-tests/testData/inspection/offline/project/src/Test.java
@@ -0,0 +1,52 @@
+/**
+ * User: anna
+ * Date: 25-Apr-2006
+ */
+public class Test {
+ private boolean myFlag = false;
+ @SuppressWarnings({"PointlessBooleanExpression"})
+ boolean foo(){
+ boolean flag = false;
+ if (flag == false){
+ flag = true;
+ }
+ int j = 0;
+ if (myFlag) return false;
+ return flag;
+ }
+
+ /*private int bar() {
+ int i = 0;
+ return i;
+ }*/
+
+
+ private void fooo(){
+ this.fooo();
+ }
+
+ public void deadCode() {
+
+ }
+ public static void main(String[] args){
+ Test test = new Test();
+ }
+
+ public void f() {
+ class D {
+ void b() {
+ Runnable r = new Runnable() {
+ public void run() {
+ int i = 0;
+
+ }
+ };
+ }
+ }
+ }
+
+ void ff() {
+ long d = 5;
+ int a = 0;
+ }
+}
diff --git a/java/java-tests/testData/inspection/offline/res/UnusedAssignment.xml b/java/java-tests/testData/inspection/offline/res/UnusedAssignment.xml
new file mode 100644
index 0000000..9829cf8
--- /dev/null
+++ b/java/java-tests/testData/inspection/offline/res/UnusedAssignment.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<problems>
+ <problem>
+ <file>file://$PROJECT_DIR$/javamodule/src/Test.java</file>
+ <line>13</line>
+ <entry_point TYPE="method" FQNAME="Test boolean foo()">
+ <entry_point TYPE="class" FQNAME="Test" />
+ </entry_point>
+ <module>javamodule</module>
+ <method>
+ <name>boolean foo()</name>
+ <name>foo()</name>
+ <package><default></package>
+ <class>
+ <name>Test</name>
+ <display_name>Test</display_name>
+ </class>
+ </method>
+ <problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Unused assignment</problem_class>
+ <description>Variable <code>j</code> is never used.</description>
+ </problem>
+ <problem>
+ <file>file://$PROJECT_DIR$/javamodule/src/Test.java</file>
+ <line>40</line>
+ <entry_point TYPE="method" FQNAME="Test$2D$1 void run()">
+ <entry_point TYPE="class" FQNAME="Test$2D$1">
+ <entry_point TYPE="method" FQNAME="Test$2D void b()">
+ <entry_point TYPE="class" FQNAME="Test$2D">
+ <entry_point TYPE="method" FQNAME="Test void f()">
+ <entry_point TYPE="class" FQNAME="Test" />
+ </entry_point>
+ </entry_point>
+ </entry_point>
+ </entry_point>
+ </entry_point>
+ <module>javamodule</module>
+ <method>
+ <name>void run()</name>
+ <name>run()</name>
+ <package><default></package>
+ <class>
+ <name>Test</name>
+ <display_name>Test</display_name>
+ </class>
+ </method>
+ <problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Unused assignment</problem_class>
+ <description>Variable <code>i</code> is never used.</description>
+ </problem>
+ <problem>
+ <file>file://$PROJECT_DIR$/javamodule/src/Test.java</file>
+ <line>49</line>
+ <entry_point TYPE="method" FQNAME="Test void ff()">
+ <entry_point TYPE="class" FQNAME="Test" />
+ </entry_point>
+ <module>javamodule</module>
+ <method>
+ <name>void ff()</name>
+ <name>ff()</name>
+ <package><default></package>
+ <class>
+ <name>Test</name>
+ <display_name>Test</display_name>
+ </class>
+ </method>
+ <problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Unused assignment</problem_class>
+ <description>Variable <code>d</code> is never used.</description>
+ </problem>
+ <problem>
+ <file>file://$PROJECT_DIR$/javamodule/src/Test.java</file>
+ <line>50</line>
+ <entry_point TYPE="method" FQNAME="Test void ff()">
+ <entry_point TYPE="class" FQNAME="Test" />
+ </entry_point>
+ <module>javamodule</module>
+ <method>
+ <name>void ff()</name>
+ <name>ff()</name>
+ <package><default></package>
+ <class>
+ <name>Test</name>
+ <display_name>Test</display_name>
+ </class>
+ </method>
+ <problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Unused assignment</problem_class>
+ <description>Variable <code>a</code> is never used.</description>
+ </problem>
+ <problem>
+ <file>file://$PROJECT_DIR$/javamodule/src/Test.java</file>
+ <line>32</line>
+ <entry_point TYPE="method" FQNAME="Test void main(java.lang.String[] args)">
+ <entry_point TYPE="class" FQNAME="Test" />
+ </entry_point>
+ <module>javamodule</module>
+ <method>
+ <name>void main(String[] args)</name>
+ <name>main(String[])</name>
+ <package><default></package>
+ <class>
+ <name>Test</name>
+ <display_name>Test</display_name>
+ </class>
+ </method>
+ <problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Unused assignment</problem_class>
+ <description>Variable <code>test</code> is never used.</description>
+ </problem>
+ <problem>
+ <file>file://$PROJECT_DIR$/javamodule/src/Test.java</file>
+ <line>38</line>
+ <entry_point TYPE="method" FQNAME="Test$2D void b()">
+ <entry_point TYPE="class" FQNAME="Test$2D">
+ <entry_point TYPE="method" FQNAME="Test void f()">
+ <entry_point TYPE="class" FQNAME="Test" />
+ </entry_point>
+ </entry_point>
+ </entry_point>
+ <module>javamodule</module>
+ <method>
+ <name>void b()</name>
+ <name>b()</name>
+ <package><default></package>
+ <class>
+ <name>Test</name>
+ <display_name>Test</display_name>
+ </class>
+ </method>
+ <problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Unused assignment</problem_class>
+ <description>Variable <code>r</code> is never used.</description>
+ </problem>
+</problems>
+
diff --git a/java/java-tests/testData/inspection/redundantCast/generics/ForEachValueIDEA126166/expected.xml b/java/java-tests/testData/inspection/redundantCast/generics/ForEachValueIDEA126166/expected.xml
new file mode 100644
index 0000000..4704d91
--- /dev/null
+++ b/java/java-tests/testData/inspection/redundantCast/generics/ForEachValueIDEA126166/expected.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<problems/>
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/redundantCast/generics/ForEachValueIDEA126166/src/Test.java b/java/java-tests/testData/inspection/redundantCast/generics/ForEachValueIDEA126166/src/Test.java
new file mode 100644
index 0000000..18bf47f
--- /dev/null
+++ b/java/java-tests/testData/inspection/redundantCast/generics/ForEachValueIDEA126166/src/Test.java
@@ -0,0 +1,11 @@
+import java.util.ArrayList;
+import java.util.List;
+
+class SomeClass {
+ public void test() {
+ List<?> objects = new ArrayList<>();
+ for (String value : (Iterable<? extends String>) objects) {
+ System.out.println(value);
+ }
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/redundantCast/lambda/ForeachValue/expected.xml b/java/java-tests/testData/inspection/redundantCast/lambda/ForeachValue/expected.xml
new file mode 100644
index 0000000..4704d91
--- /dev/null
+++ b/java/java-tests/testData/inspection/redundantCast/lambda/ForeachValue/expected.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<problems/>
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/redundantCast/lambda/ForeachValue/src/Test.java b/java/java-tests/testData/inspection/redundantCast/lambda/ForeachValue/src/Test.java
new file mode 100644
index 0000000..bd2236c
--- /dev/null
+++ b/java/java-tests/testData/inspection/redundantCast/lambda/ForeachValue/src/Test.java
@@ -0,0 +1,10 @@
+import java.util.Arrays;
+import java.util.Iterator;
+
+class IterableMain {
+ public static void main(final String... args) {
+ for (final String s : (Iterable<String>) XIterator::new) {}
+ }
+
+ public static interface XIterator extends Iterator<String> {}
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/suspiciousCalls/RemoveAll14.java b/java/java-tests/testData/inspection/suspiciousCalls/RemoveAll14.java
new file mode 100644
index 0000000..f6e2c03
--- /dev/null
+++ b/java/java-tests/testData/inspection/suspiciousCalls/RemoveAll14.java
@@ -0,0 +1,14 @@
+import java.util.*;
+
+
+class Simple {
+ public static void main(Set set, Set setO) {
+ class O {}
+
+ Map someData = new HashMap();
+
+ set.removeAll(someData.keySet());
+ setO.removeAll(someData.keySet());
+
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/psi/cls/stubBuilder/UtilCollections.txt b/java/java-tests/testData/psi/cls/stubBuilder/UtilCollections.txt
index 82d04fe..d64c31b 100644
--- a/java/java-tests/testData/psi/cls/stubBuilder/UtilCollections.txt
+++ b/java/java-tests/testData/psi/cls/stubBuilder/UtilCollections.txt
@@ -4,6 +4,910 @@
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:]
+ PsiClassStub[name=AsLIFOQueue fqn=java.util.Collections.AsLIFOQueue]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.AbstractQueue<E>]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Queue<E>, java.io.Serializable]
+ PsiFieldStub[serialVersionUID:long=1802017725587941708L]
+ PsiModifierListStub[mask=26]
+ PsiFieldStub[q:java.util.Deque<E>]
+ PsiModifierListStub[mask=18]
+ PsiMethodStub[cons AsLIFOQueue:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Deque<E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[add:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[offer:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[poll:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[remove:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[peek:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[element:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[clear:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[size:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[isEmpty:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[contains:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[remove:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[iterator:java.util.Iterator<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:java.lang.Object[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:T[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:T[]]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toString:java.lang.String]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[containsAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[removeAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[retainAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=CheckedCollection fqn=java.util.Collections.CheckedCollection]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Collection<E>, java.io.Serializable]
+ PsiFieldStub[serialVersionUID:long=1578914078182001775L]
+ PsiModifierListStub[mask=26]
+ PsiFieldStub[c:java.util.Collection<E>]
+ PsiModifierListStub[mask=4112]
+ PsiFieldStub[type:java.lang.Class<E>]
+ PsiModifierListStub[mask=4112]
+ PsiFieldStub[zeroLengthElementArray:E[]]
+ PsiModifierListStub[mask=2]
+ PsiMethodStub[typeCheck:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[badElementMsg:java.lang.String]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[cons CheckedCollection:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<E>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[size:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[isEmpty:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[contains:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:java.lang.Object[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:T[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:T[]]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toString:java.lang.String]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[remove:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[clear:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[containsAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[removeAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[retainAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[iterator:java.util.Iterator<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[add:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[zeroLengthElementArray:E[]]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[checkedCopyOf:java.util.Collection<E>]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<? extends E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[addAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<? extends E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=CheckedList fqn=java.util.Collections.CheckedList]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.Collections.CheckedCollection<E>]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.List<E>]
+ PsiFieldStub[serialVersionUID:long=65247728283967356L]
+ PsiModifierListStub[mask=26]
+ PsiFieldStub[list:java.util.List<E>]
+ PsiModifierListStub[mask=4112]
+ PsiMethodStub[cons CheckedList:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.List<E>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[equals:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hashCode:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[get:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[remove:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[indexOf:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[lastIndexOf:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[set:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[add:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[addAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.util.Collection<? extends E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[listIterator:java.util.ListIterator<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[listIterator:java.util.ListIterator<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[subList:java.util.List<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:int]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=CheckedMap fqn=java.util.Collections.CheckedMap]
+ PsiModifierListStub[mask=10]
+ PsiTypeParameterListStub
+ PsiTypeParameter[K]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiTypeParameter[V]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Map<K,V>, java.io.Serializable]
+ PsiClassStub[name=CheckedEntrySet fqn=java.util.Collections.CheckedMap.CheckedEntrySet]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[K]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiTypeParameter[V]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Set<java.util.Map.Entry<K,V>>]
+ PsiClassStub[name=CheckedEntry fqn=java.util.Collections.CheckedMap.CheckedEntrySet.CheckedEntry]
+ PsiModifierListStub[mask=10]
+ PsiTypeParameterListStub
+ PsiTypeParameter[K]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiTypeParameter[V]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Map.Entry<K,V>]
+ PsiFieldStub[e:java.util.Map.Entry<K,V>]
+ PsiModifierListStub[mask=18]
+ PsiFieldStub[valueType:java.lang.Class<T>]
+ PsiModifierListStub[mask=18]
+ PsiMethodStub[cons CheckedEntry:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Map.Entry<K,V>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<T>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[getKey:K]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[getValue:V]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hashCode:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toString:java.lang.String]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[setValue:V]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:V]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[badValueMsg:java.lang.String]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[equals:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiFieldStub[s:java.util.Set<java.util.Map.Entry<K,V>>]
+ PsiModifierListStub[mask=18]
+ PsiFieldStub[valueType:java.lang.Class<V>]
+ PsiModifierListStub[mask=18]
+ PsiMethodStub[cons CheckedEntrySet:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Set<java.util.Map.Entry<K,V>>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<V>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[size:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[isEmpty:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toString:java.lang.String]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hashCode:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[clear:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[add:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Map.Entry<K,V>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[addAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<? extends java.util.Map.Entry<K,V>>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[iterator:java.util.Iterator<java.util.Map.Entry<K,V>>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:java.lang.Object[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:T[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:T[]]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[contains:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[containsAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[remove:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[removeAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[retainAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[batchRemove:boolean]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:boolean]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[equals:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[checkedEntry:java.util.Collections.CheckedMap.CheckedEntrySet.CheckedEntry<K,V,T>]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[K]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiTypeParameter[V]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Map.Entry<K,V>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<T>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiFieldStub[serialVersionUID:long=5742860141034234728L]
+ PsiModifierListStub[mask=26]
+ PsiFieldStub[m:java.util.Map<K,V>]
+ PsiModifierListStub[mask=18]
+ PsiFieldStub[keyType:java.lang.Class<K>]
+ PsiModifierListStub[mask=4112]
+ PsiFieldStub[valueType:java.lang.Class<V>]
+ PsiModifierListStub[mask=4112]
+ PsiFieldStub[entrySet:java.util.Set<java.util.Map.Entry<K,V>>]
+ PsiModifierListStub[mask=130]
+ PsiMethodStub[typeCheck:void]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[badKeyMsg:java.lang.String]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[badValueMsg:java.lang.String]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[cons CheckedMap:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Map<K,V>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<K>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p3:java.lang.Class<V>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[size:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[isEmpty:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[containsKey:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[containsValue:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[get:V]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[remove:V]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[clear:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[keySet:java.util.Set<K>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[values:java.util.Collection<V>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[equals:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hashCode:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toString:java.lang.String]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[put:V]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:K]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:V]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[putAll:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Map<? extends K,? extends V>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[entrySet:java.util.Set<java.util.Map.Entry<K,V>>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=CheckedRandomAccessList fqn=java.util.Collections.CheckedRandomAccessList]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.Collections.CheckedList<E>]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.RandomAccess]
+ PsiFieldStub[serialVersionUID:long=1638200125423088369L]
+ PsiModifierListStub[mask=26]
+ PsiMethodStub[cons CheckedRandomAccessList:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.List<E>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[subList:java.util.List<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:int]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=CheckedSet fqn=java.util.Collections.CheckedSet]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.Collections.CheckedCollection<E>]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Set<E>, java.io.Serializable]
+ PsiFieldStub[serialVersionUID:long=4694047833775013803L]
+ PsiModifierListStub[mask=26]
+ PsiMethodStub[cons CheckedSet:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Set<E>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[equals:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hashCode:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=CheckedSortedMap fqn=java.util.Collections.CheckedSortedMap]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[K]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiTypeParameter[V]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.Collections.CheckedMap<K,V>]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.SortedMap<K,V>, java.io.Serializable]
+ PsiFieldStub[serialVersionUID:long=1599671320688067438L]
+ PsiModifierListStub[mask=26]
+ PsiFieldStub[sm:java.util.SortedMap<K,V>]
+ PsiModifierListStub[mask=18]
+ PsiMethodStub[cons CheckedSortedMap:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.SortedMap<K,V>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<K>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p3:java.lang.Class<V>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[comparator:java.util.Comparator<? super K>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[firstKey:K]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[lastKey:K]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[subMap:java.util.SortedMap<K,V>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:K]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:K]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[headMap:java.util.SortedMap<K,V>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:K]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[tailMap:java.util.SortedMap<K,V>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:K]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=CheckedSortedSet fqn=java.util.Collections.CheckedSortedSet]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.Collections.CheckedSet<E>]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.SortedSet<E>, java.io.Serializable]
+ PsiFieldStub[serialVersionUID:long=1599911165492914959L]
+ PsiModifierListStub[mask=26]
+ PsiFieldStub[ss:java.util.SortedSet<E>]
+ PsiModifierListStub[mask=18]
+ PsiMethodStub[cons CheckedSortedSet:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.SortedSet<E>]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:java.lang.Class<E>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[comparator:java.util.Comparator<? super E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[first:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[last:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[subSet:java.util.SortedSet<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[headSet:java.util.SortedSet<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[tailSet:java.util.SortedSet<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
PsiClassStub[name=CopiesList fqn=java.util.Collections.CopiesList]
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
@@ -12,11 +916,11 @@
PsiRefListStub[EXTENDS_LIST:java.util.AbstractList<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.util.RandomAccess, java.io.Serializable]
PsiFieldStub[serialVersionUID:long=2739099268398711800L]
- PsiModifierListStub[mask=4120]
+ PsiModifierListStub[mask=26]
PsiFieldStub[n:int]
- PsiModifierListStub[mask=4096]
+ PsiModifierListStub[mask=4112]
PsiFieldStub[element:E]
- PsiModifierListStub[mask=4096]
+ PsiModifierListStub[mask=4112]
PsiMethodStub[cons CopiesList:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -38,6 +942,20 @@
PsiParameterStub[p1:java.lang.Object]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[indexOf:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[lastIndexOf:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[get:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
@@ -45,10 +963,88 @@
PsiParameterStub[p1:int]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:java.lang.Object[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:T[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:T[]]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[subList:java.util.List<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:int]
+ PsiModifierListStub[mask=0]
+ PsiParameterStub[p2:int]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=EmptyEnumeration fqn=java.util.Collections.EmptyEnumeration]
+ PsiModifierListStub[mask=10]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Enumeration<E>]
+ PsiFieldStub[EMPTY_ENUMERATION:java.util.Collections.EmptyEnumeration<java.lang.Object>]
+ PsiModifierListStub[mask=4120]
+ PsiMethodStub[cons EmptyEnumeration:void]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hasMoreElements:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[nextElement:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=EmptyIterator fqn=java.util.Collections.EmptyIterator]
+ PsiModifierListStub[mask=10]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator<E>]
+ PsiFieldStub[EMPTY_ITERATOR:java.util.Collections.EmptyIterator<java.lang.Object>]
+ PsiModifierListStub[mask=4120]
+ PsiMethodStub[cons EmptyIterator:void]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hasNext:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[next:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[remove:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiClassStub[name=EmptyList fqn=java.util.Collections.EmptyList]
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
- PsiRefListStub[EXTENDS_LIST:java.util.AbstractList<java.lang.Object>]
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.AbstractList<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.util.RandomAccess, java.io.Serializable]
PsiFieldStub[serialVersionUID:long=8842843931221139166L]
PsiModifierListStub[mask=26]
@@ -57,11 +1053,26 @@
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[iterator:java.util.Iterator<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[listIterator:java.util.ListIterator<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[size:int]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[isEmpty:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[contains:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
@@ -69,22 +1080,107 @@
PsiParameterStub[p1:java.lang.Object]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[get:java.lang.Object]
+ PsiMethodStub[containsAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:java.lang.Object[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:T[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:T[]]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[get:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:int]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[equals:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hashCode:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[readResolve:java.lang.Object]
PsiModifierListStub[mask=2]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
+ PsiClassStub[name=EmptyListIterator fqn=java.util.Collections.EmptyListIterator]
+ PsiModifierListStub[mask=10]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.Collections.EmptyIterator<E>]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.ListIterator<E>]
+ PsiFieldStub[EMPTY_ITERATOR:java.util.Collections.EmptyListIterator<java.lang.Object>]
+ PsiModifierListStub[mask=4120]
+ PsiMethodStub[cons EmptyListIterator:void]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hasPrevious:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[previous:E]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[nextIndex:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[previousIndex:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[set:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[add:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
PsiClassStub[name=EmptyMap fqn=java.util.Collections.EmptyMap]
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
- PsiRefListStub[EXTENDS_LIST:java.util.AbstractMap<java.lang.Object,java.lang.Object>]
+ PsiTypeParameter[K]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiTypeParameter[V]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.AbstractMap<K,V>]
PsiRefListStub[IMPLEMENTS_LIST:java.io.Serializable]
PsiFieldStub[serialVersionUID:long=6428348081105594320L]
PsiModifierListStub[mask=26]
@@ -117,24 +1213,24 @@
PsiParameterStub[p1:java.lang.Object]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[get:java.lang.Object]
+ PsiMethodStub[get:V]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:java.lang.Object]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[keySet:java.util.Set<java.lang.Object>]
+ PsiMethodStub[keySet:java.util.Set<K>]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[values:java.util.Collection<java.lang.Object>]
+ PsiMethodStub[values:java.util.Collection<V>]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[entrySet:java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>>]
+ PsiMethodStub[entrySet:java.util.Set<java.util.Map.Entry<K,V>>]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
@@ -159,7 +1255,9 @@
PsiClassStub[name=EmptySet fqn=java.util.Collections.EmptySet]
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
- PsiRefListStub[EXTENDS_LIST:java.util.AbstractSet<java.lang.Object>]
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.AbstractSet<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.io.Serializable]
PsiFieldStub[serialVersionUID:long=1582296315990362920L]
PsiModifierListStub[mask=26]
@@ -168,7 +1266,7 @@
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[iterator:java.util.Iterator<java.lang.Object>]
+ PsiMethodStub[iterator:java.util.Iterator<E>]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
@@ -178,6 +1276,11 @@
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[isEmpty:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[contains:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
@@ -185,6 +1288,27 @@
PsiParameterStub[p1:java.lang.Object]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[containsAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:java.lang.Object[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:T[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:T[]]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[readResolve:java.lang.Object]
PsiModifierListStub[mask=2]
PsiTypeParameterListStub
@@ -193,12 +1317,12 @@
PsiClassStub[name=ReverseComparator fqn=java.util.Collections.ReverseComparator]
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
- PsiTypeParameter[T]
- PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Comparator<java.lang.Comparable<java.lang.Object>>, java.io.Serializable]
PsiFieldStub[serialVersionUID:long=7207038068494060240L]
PsiModifierListStub[mask=26]
+ PsiFieldStub[REVERSE_ORDER:java.util.Collections.ReverseComparator]
+ PsiModifierListStub[mask=4120]
PsiMethodStub[cons ReverseComparator:void]
PsiModifierListStub[mask=2]
PsiTypeParameterListStub
@@ -213,6 +1337,11 @@
PsiParameterStub[p2:java.lang.Comparable<java.lang.Object>]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[readResolve:java.lang.Object]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiClassStub[name=ReverseComparator2 fqn=java.util.Collections.ReverseComparator2]
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
@@ -223,7 +1352,7 @@
PsiFieldStub[serialVersionUID:long=4374092139857L]
PsiModifierListStub[mask=26]
PsiFieldStub[cmp:java.util.Comparator<T>]
- PsiModifierListStub[mask=2]
+ PsiModifierListStub[mask=4112]
PsiMethodStub[cons ReverseComparator2:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -240,11 +1369,143 @@
PsiParameterStub[p2:T]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[equals:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hashCode:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiClassStub[interface name=SelfComparable fqn=java.util.Collections.SelfComparable]
PsiModifierListStub[mask=1034]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.lang.Comparable<java.util.Collections.SelfComparable>]
PsiRefListStub[IMPLEMENTS_LIST:]
+ PsiClassStub[name=SetFromMap fqn=java.util.Collections.SetFromMap]
+ PsiModifierListStub[mask=10]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiRefListStub[EXTENDS_LIST:java.util.AbstractSet<E>]
+ PsiRefListStub[IMPLEMENTS_LIST:java.util.Set<E>, java.io.Serializable]
+ PsiFieldStub[m:java.util.Map<E,java.lang.Boolean>]
+ PsiModifierListStub[mask=18]
+ PsiFieldStub[s:java.util.Set<E>]
+ PsiModifierListStub[mask=130]
+ PsiFieldStub[serialVersionUID:long=2454657854757543876L]
+ PsiModifierListStub[mask=26]
+ PsiMethodStub[cons SetFromMap:void]
+ PsiModifierListStub[mask=4096]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Map<E,java.lang.Boolean>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[clear:void]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[size:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[isEmpty:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[contains:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[remove:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[add:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[iterator:java.util.Iterator<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:java.lang.Object[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toArray:T[]]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:T[]]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[toString:java.lang.String]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[hashCode:int]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[equals:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Object]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[containsAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[removeAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[retainAll:boolean]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Collection<?>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[readObject:void]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.io.ObjectInputStream]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:java.io.IOException, java.lang.ClassNotFoundException]
PsiClassStub[name=SingletonList fqn=java.util.Collections.SingletonList]
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
@@ -253,7 +1514,7 @@
PsiRefListStub[EXTENDS_LIST:java.util.AbstractList<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.util.RandomAccess, java.io.Serializable]
PsiFieldStub[serialVersionUID:long=3093736618740652951L]
- PsiModifierListStub[mask=4120]
+ PsiModifierListStub[mask=26]
PsiFieldStub[element:E]
PsiModifierListStub[mask=18]
PsiMethodStub[cons SingletonList:void]
@@ -263,6 +1524,11 @@
PsiParameterStub[p1:E]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[iterator:java.util.Iterator<E>]
+ PsiModifierListStub[mask=1]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[size:int]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
@@ -291,62 +1557,6 @@
PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiRefListStub[EXTENDS_LIST:java.util.AbstractMap<K,V>]
PsiRefListStub[IMPLEMENTS_LIST:java.io.Serializable]
- PsiClassStub[name=ImmutableEntry fqn=java.util.Collections.SingletonMap.ImmutableEntry]
- PsiModifierListStub[mask=10]
- PsiTypeParameterListStub
- PsiTypeParameter[K]
- PsiRefListStub[EXTENDS_BOUNDS_LIST:]
- PsiTypeParameter[V]
- PsiRefListStub[EXTENDS_BOUNDS_LIST:]
- PsiRefListStub[EXTENDS_LIST:]
- PsiRefListStub[IMPLEMENTS_LIST:java.util.Map.Entry<K,V>]
- PsiFieldStub[k:K]
- PsiModifierListStub[mask=4112]
- PsiFieldStub[v:V]
- PsiModifierListStub[mask=4112]
- PsiMethodStub[cons ImmutableEntry:void]
- PsiModifierListStub[mask=4096]
- PsiTypeParameterListStub
- PsiParameterListStub
- PsiParameterStub[p1:K]
- PsiModifierListStub[mask=0]
- PsiParameterStub[p2:V]
- PsiModifierListStub[mask=0]
- PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[getKey:K]
- PsiModifierListStub[mask=1]
- PsiTypeParameterListStub
- PsiParameterListStub
- PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[getValue:V]
- PsiModifierListStub[mask=1]
- PsiTypeParameterListStub
- PsiParameterListStub
- PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[setValue:V]
- PsiModifierListStub[mask=1]
- PsiTypeParameterListStub
- PsiParameterListStub
- PsiParameterStub[p1:V]
- PsiModifierListStub[mask=0]
- PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[equals:boolean]
- PsiModifierListStub[mask=1]
- PsiTypeParameterListStub
- PsiParameterListStub
- PsiParameterStub[p1:java.lang.Object]
- PsiModifierListStub[mask=0]
- PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[hashCode:int]
- PsiModifierListStub[mask=1]
- PsiTypeParameterListStub
- PsiParameterListStub
- PsiRefListStub[THROWS_LIST:]
- PsiMethodStub[toString:java.lang.String]
- PsiModifierListStub[mask=1]
- PsiTypeParameterListStub
- PsiParameterListStub
- PsiRefListStub[THROWS_LIST:]
PsiFieldStub[serialVersionUID:long=-6979724477215052911L]
PsiModifierListStub[mask=26]
PsiFieldStub[k:K]
@@ -459,9 +1669,9 @@
PsiFieldStub[serialVersionUID:long=3053995032091335093L]
PsiModifierListStub[mask=26]
PsiFieldStub[c:java.util.Collection<E>]
- PsiModifierListStub[mask=4096]
+ PsiModifierListStub[mask=4112]
PsiFieldStub[mutex:java.lang.Object]
- PsiModifierListStub[mask=4096]
+ PsiModifierListStub[mask=4112]
PsiMethodStub[cons SynchronizedCollection:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -566,6 +1776,13 @@
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[writeObject:void]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.io.ObjectOutputStream]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:java.io.IOException]
PsiClassStub[name=SynchronizedList fqn=java.util.Collections.SynchronizedList]
PsiModifierListStub[mask=4104]
PsiTypeParameterListStub
@@ -574,9 +1791,9 @@
PsiRefListStub[EXTENDS_LIST:java.util.Collections.SynchronizedCollection<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.util.List<E>]
PsiFieldStub[serialVersionUID:long=-7754090372962971524L]
- PsiModifierListStub[mask=4120]
+ PsiModifierListStub[mask=26]
PsiFieldStub[list:java.util.List<E>]
- PsiModifierListStub[mask=4096]
+ PsiModifierListStub[mask=4112]
PsiMethodStub[cons SynchronizedList:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -698,9 +1915,9 @@
PsiFieldStub[serialVersionUID:long=1978198479659022715L]
PsiModifierListStub[mask=26]
PsiFieldStub[m:java.util.Map<K,V>]
- PsiModifierListStub[mask=2]
+ PsiModifierListStub[mask=18]
PsiFieldStub[mutex:java.lang.Object]
- PsiModifierListStub[mask=4096]
+ PsiModifierListStub[mask=4112]
PsiFieldStub[keySet:java.util.Set<K>]
PsiModifierListStub[mask=130]
PsiFieldStub[entrySet:java.util.Set<java.util.Map.Entry<K,V>>]
@@ -814,6 +2031,13 @@
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[writeObject:void]
+ PsiModifierListStub[mask=2]
+ PsiTypeParameterListStub
+ PsiParameterListStub
+ PsiParameterStub[p1:java.io.ObjectOutputStream]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:java.io.IOException]
PsiClassStub[name=SynchronizedRandomAccessList fqn=java.util.Collections.SynchronizedRandomAccessList]
PsiModifierListStub[mask=4104]
PsiTypeParameterListStub
@@ -822,7 +2046,7 @@
PsiRefListStub[EXTENDS_LIST:java.util.Collections.SynchronizedList<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.util.RandomAccess]
PsiFieldStub[serialVersionUID:long=1530674583602358482L]
- PsiModifierListStub[mask=4120]
+ PsiModifierListStub[mask=26]
PsiMethodStub[cons SynchronizedRandomAccessList:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -902,7 +2126,7 @@
PsiFieldStub[serialVersionUID:long=-8798146769416483793L]
PsiModifierListStub[mask=26]
PsiFieldStub[sm:java.util.SortedMap<K,V>]
- PsiModifierListStub[mask=2]
+ PsiModifierListStub[mask=18]
PsiMethodStub[cons SynchronizedSortedMap:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -967,7 +2191,7 @@
PsiFieldStub[serialVersionUID:long=8695801310862127406L]
PsiModifierListStub[mask=26]
PsiFieldStub[ss:java.util.SortedSet<E>]
- PsiModifierListStub[mask=2]
+ PsiModifierListStub[mask=18]
PsiMethodStub[cons SynchronizedSortedSet:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -1032,7 +2256,7 @@
PsiFieldStub[serialVersionUID:long=1820017752578914078L]
PsiModifierListStub[mask=26]
PsiFieldStub[c:java.util.Collection<? extends E>]
- PsiModifierListStub[mask=4096]
+ PsiModifierListStub[mask=4112]
PsiMethodStub[cons UnmodifiableCollection:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -1136,9 +2360,9 @@
PsiRefListStub[EXTENDS_LIST:java.util.Collections.UnmodifiableCollection<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.util.List<E>]
PsiFieldStub[serialVersionUID:long=-283967356065247728L]
- PsiModifierListStub[mask=4120]
+ PsiModifierListStub[mask=26]
PsiFieldStub[list:java.util.List<? extends E>]
- PsiModifierListStub[mask=4096]
+ PsiModifierListStub[mask=4112]
PsiMethodStub[cons UnmodifiableList:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -1536,7 +2760,7 @@
PsiFieldStub[serialVersionUID:long=-8806743815996713206L]
PsiModifierListStub[mask=26]
PsiFieldStub[sm:java.util.SortedMap<K,? extends V>]
- PsiModifierListStub[mask=2]
+ PsiModifierListStub[mask=18]
PsiMethodStub[cons UnmodifiableSortedMap:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -1592,7 +2816,7 @@
PsiFieldStub[serialVersionUID:long=-4929149591599911165L]
PsiModifierListStub[mask=26]
PsiFieldStub[ss:java.util.SortedSet<E>]
- PsiModifierListStub[mask=2]
+ PsiModifierListStub[mask=18]
PsiMethodStub[cons UnmodifiableSortedSet:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
@@ -1662,8 +2886,6 @@
PsiModifierListStub[mask=25]
PsiFieldStub[EMPTY_MAP:java.util.Map]
PsiModifierListStub[mask=25]
- PsiFieldStub[REVERSE_ORDER:java.util.Comparator]
- PsiModifierListStub[mask=26]
PsiMethodStub[cons Collections:void]
PsiModifierListStub[mask=2]
PsiTypeParameterListStub
@@ -1693,9 +2915,9 @@
PsiModifierListStub[mask=9]
PsiTypeParameterListStub
PsiTypeParameter[T]
- PsiRefListStub[EXTENDS_BOUNDS_LIST:java.lang.Object, java.lang.Comparable<? super T>]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiParameterListStub
- PsiParameterStub[p1:java.util.List<? extends T>]
+ PsiParameterStub[p1:java.util.List<? extends java.lang.Comparable<? super T>>]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:T]
PsiModifierListStub[mask=0]
@@ -1704,9 +2926,9 @@
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
PsiTypeParameter[T]
- PsiRefListStub[EXTENDS_BOUNDS_LIST:java.lang.Object, java.lang.Comparable<? super T>]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiParameterListStub
- PsiParameterStub[p1:java.util.List<? extends T>]
+ PsiParameterStub[p1:java.util.List<? extends java.lang.Comparable<? super T>>]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:T]
PsiModifierListStub[mask=0]
@@ -1715,9 +2937,9 @@
PsiModifierListStub[mask=10]
PsiTypeParameterListStub
PsiTypeParameter[T]
- PsiRefListStub[EXTENDS_BOUNDS_LIST:java.lang.Object, java.lang.Comparable<? super T>]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiParameterListStub
- PsiParameterStub[p1:java.util.List<? extends T>]
+ PsiParameterStub[p1:java.util.List<? extends java.lang.Comparable<? super T>>]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:T]
PsiModifierListStub[mask=0]
@@ -2099,6 +3321,15 @@
PsiParameterStub[p2:java.lang.Class<E>]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[zeroLengthArray:T[]]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:java.lang.Class<T>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[checkedSet:java.util.Set<E>]
PsiModifierListStub[mask=9]
PsiTypeParameterListStub
@@ -2162,6 +3393,27 @@
PsiParameterStub[p3:java.lang.Class<V>]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[emptyIterator:java.util.Iterator<T>]
+ PsiModifierListStub[mask=9]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[emptyListIterator:java.util.ListIterator<T>]
+ PsiModifierListStub[mask=9]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[emptyEnumeration:java.util.Enumeration<T>]
+ PsiModifierListStub[mask=9]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[emptySet:java.util.Set<T>]
PsiModifierListStub[mask=25]
PsiTypeParameterListStub
@@ -2194,6 +3446,15 @@
PsiParameterStub[p1:T]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[singletonIterator:java.util.Iterator<E>]
+ PsiModifierListStub[mask=4104]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:E]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
PsiMethodStub[singletonList:java.util.List<T>]
PsiModifierListStub[mask=9]
PsiTypeParameterListStub
@@ -2262,7 +3523,7 @@
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[eq:boolean]
- PsiModifierListStub[mask=10]
+ PsiModifierListStub[mask=4104]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:java.lang.Object]
@@ -2290,6 +3551,7 @@
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[varargs addAll:boolean]
PsiModifierListStub[mask=9]
+ PsiAnnotationStub[@java.lang.SafeVarargs]
PsiTypeParameterListStub
PsiTypeParameter[T]
PsiRefListStub[EXTENDS_BOUNDS_LIST:]
@@ -2299,3 +3561,21 @@
PsiParameterStub[p2:T...]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[newSetFromMap:java.util.Set<E>]
+ PsiModifierListStub[mask=9]
+ PsiTypeParameterListStub
+ PsiTypeParameter[E]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Map<E,java.lang.Boolean>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
+ PsiMethodStub[asLifoQueue:java.util.Queue<T>]
+ PsiModifierListStub[mask=9]
+ PsiTypeParameterListStub
+ PsiTypeParameter[T]
+ PsiRefListStub[EXTENDS_BOUNDS_LIST:]
+ PsiParameterListStub
+ PsiParameterStub[p1:java.util.Deque<T>]
+ PsiModifierListStub[mask=0]
+ PsiRefListStub[THROWS_LIST:]
diff --git a/java/java-tests/testData/refactoring/inlineMethod/SameVarMethodNames.java b/java/java-tests/testData/refactoring/inlineMethod/SameVarMethodNames.java
new file mode 100644
index 0000000..0260f08
--- /dev/null
+++ b/java/java-tests/testData/refactoring/inlineMethod/SameVarMethodNames.java
@@ -0,0 +1,13 @@
+class Test {
+ public boolean isConsideredFinal(int cl) {
+ return haveSeenAllExp<caret>ectedAtCl(cl);
+ }
+
+ private boolean haveSeenAllExpectedAtCl(int cl) {
+ return cl == cl();
+ }
+
+ int cl() {
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/refactoring/inlineMethod/SameVarMethodNames.java.after b/java/java-tests/testData/refactoring/inlineMethod/SameVarMethodNames.java.after
new file mode 100644
index 0000000..a7ff12c
--- /dev/null
+++ b/java/java-tests/testData/refactoring/inlineMethod/SameVarMethodNames.java.after
@@ -0,0 +1,9 @@
+class Test {
+ public boolean isConsideredFinal(int cl) {
+ return cl == cl();
+ }
+
+ int cl() {
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/refactoring/moveMembers/fromNestedToOuterMethodRef/after/Outer.java b/java/java-tests/testData/refactoring/moveMembers/fromNestedToOuterMethodRef/after/Outer.java
new file mode 100644
index 0000000..aafb683
--- /dev/null
+++ b/java/java-tests/testData/refactoring/moveMembers/fromNestedToOuterMethodRef/after/Outer.java
@@ -0,0 +1,10 @@
+class Outer {
+ static void foo() {}
+
+ static class Inner {
+ }
+
+ {
+ Runnable r = Outer::foo;
+ }
+}
diff --git a/java/java-tests/testData/refactoring/moveMembers/fromNestedToOuterMethodRef/before/Outer.java b/java/java-tests/testData/refactoring/moveMembers/fromNestedToOuterMethodRef/before/Outer.java
new file mode 100644
index 0000000..ae82c74
--- /dev/null
+++ b/java/java-tests/testData/refactoring/moveMembers/fromNestedToOuterMethodRef/before/Outer.java
@@ -0,0 +1,9 @@
+class Outer {
+ static class Inner {
+ static void foo() {}
+ }
+
+ {
+ Runnable r = Inner::foo;
+ }
+}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy
index 45a3f81..5d0bcd4 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy
@@ -26,6 +26,8 @@
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.testFramework.PsiTestUtil
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase
+import org.jetbrains.annotations.NotNull
+
/**
* @author peter
*/
@@ -94,7 +96,7 @@
static class CacheVerifyingContributor extends CompletionContributor {
@Override
- void fillCompletionVariants(CompletionParameters parameters, CompletionResultSet result) {
+ void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) {
PsiClass psiClass = PsiTreeUtil.getParentOfType(parameters.position, PsiClass)
for (ci in OverrideImplementExploreUtil.getMethodsToOverrideImplement(psiClass, true)) {
assert ci.element.valid
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy
index a5397a2..8a54c95 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy
@@ -47,7 +47,9 @@
import com.intellij.openapi.fileEditor.FileEditor
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.progress.ProgressManager
+import com.intellij.openapi.util.Computable
import com.intellij.openapi.util.Disposer
+import com.intellij.psi.PsiClass
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiJavaFile
import com.intellij.psi.statistics.StatisticsManager
@@ -559,7 +561,7 @@
static class LongContributor extends CompletionContributor {
@Override
- void fillCompletionVariants(CompletionParameters parameters, CompletionResultSet result) {
+ void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) {
result.runRemainingContributors(parameters, true)
Thread.sleep 500
}
@@ -892,9 +894,7 @@
void bar(int aaa, int aaaaa) { foo(<caret>) }
} """)
type 'a'
- println myFixture.lookupElementStrings
type 'a'
- println myFixture.lookupElementStrings
type ','
assert myFixture.editor.document.text.contains('foo(aaa, )')
}
@@ -967,7 +967,12 @@
void x__goo() {}
}
'''
- def cls = ((PsiJavaFile)myFixture.file).getClasses()[0]
+ PsiClass cls = ApplicationManager.getApplication().runReadAction(new Computable<PsiClass>() {
+ @Override
+ public PsiClass compute() {
+ return ((PsiJavaFile)myFixture.file).getClasses()[0];
+ }
+ });
def foo = cls.methods[0]
def goo = cls.methods[2]
type('x')
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaReflectionCompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaReflectionCompletionTest.java
index 8aa780a..6eb495d 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaReflectionCompletionTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaReflectionCompletionTest.java
@@ -64,6 +64,7 @@
}
public void testGenerics() throws Exception {
+ myFixture.addFileToProject("a.properties", "foo=bar"); // check that property variants don't override reflection ones
doTest(0, "foo");
}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy
index c1e6d41..900555d 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy
@@ -633,6 +633,19 @@
checkPreferredItems 0, 'fact'
}
+ public void testPreferAnnotationsToInterfaceKeyword() {
+ checkPreferredItems 0, 'Deprecated', 'Override'
+ }
+
+ public void testPreferThrownExceptionsInCatch() {
+ checkPreferredItems 0, 'FileNotFoundException', 'File'
+ }
+
+ public void testHonorFirstLetterCase() {
+ CodeInsightSettings.getInstance().COMPLETION_CASE_SENSITIVE = CodeInsightSettings.NONE;
+ checkPreferredItems 0, 'posIdMap', 'PImageDecoder', 'PNGImageDecoder'
+ }
+
public void testGlobalStaticMemberStats() {
configureNoCompletion(getTestName(false) + ".java")
myFixture.complete(CompletionType.BASIC, 2)
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy
index ba38fd1..79a94aa 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy
@@ -792,7 +792,7 @@
public void testDoubleFalse() throws Throwable {
configureByFile(getTestName(false) + ".java");
- assertFirstStringItems("false", "fefefef", "float", "finalize");
+ assertFirstStringItems("fefefef", "false", "float", "finalize");
}
public void testSameNamedVariableInNestedClasses() throws Throwable {
@@ -938,6 +938,13 @@
public void testQualifyInnerMembers() throws Throwable { doTest('\n') }
+ public void testDeepInner() throws Throwable {
+ configure()
+ assert myFixture.lookupElementStrings == ['ClassInner1', 'ClassInner1.ClassInner2']
+ selectItem(lookup.items[1])
+ checkResult()
+ }
+
public void testSuggestExpectedTypeMembers() throws Throwable { doTest('\n') }
public void testSuggestExpectedTypeMembersInCall() throws Throwable { doTest('\n') }
public void testSuggestExpectedTypeMembersInAnno() throws Throwable { doTest('\n') }
@@ -1209,6 +1216,12 @@
public void testConstantInAnno() { doTest() }
+ public void testCharsetName() {
+ myFixture.addClass("package java.nio.charset; public class Charset { public static Charset forName(String s) {} }")
+ configureByTestName()
+ assert myFixture.lookupElementStrings.contains('UTF-8')
+ }
+
public void testInnerClassInExtendsGenerics() {
def text = "package bar; class Foo extends List<Inne<caret>> { public static class Inner {} }"
myFixture.configureFromExistingVirtualFile(myFixture.addClass(text).containingFile.virtualFile)
@@ -1240,7 +1253,7 @@
configure()
def items = myFixture.lookupElements.findAll { it.lookupString == 'String' }
assert items.size() == 1
- assert LookupElementPresentation.renderElement(items[0]).tailText?.contains('java.lang')
+ assert LookupElementPresentation.renderElement(items[0]).tailText == ' (java.lang)'
}
public void testSameSignature() {
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java
index 74d2465..f6be068 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java
@@ -368,6 +368,9 @@
public void testIDEA125816() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
public void testIDEA57338() { doTest(LanguageLevel.JDK_1_6, JavaSdkVersion.JDK_1_6, false); }
public void testIDEA67600() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
+ public void testIDEA126697() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, true); }
+ public void testIDEA126633() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
+ public void testIDEA124363() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
//jdk should propagate LL 1.4 but actually it provides LL 1.7?!
public void testCastObjectToIntJdk14() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_4, false); }
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GraphInferenceHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GraphInferenceHighlightingTest.java
index 20a5d51..7950628 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GraphInferenceHighlightingTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GraphInferenceHighlightingTest.java
@@ -184,6 +184,10 @@
doTest();
}
+ public void testRawTypeFromParentArrayType() throws Exception {
+ doTest();
+ }
+
private void doTest() throws Exception {
doTest(false);
}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java
index f5e6a65..6bd7654 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java
@@ -226,6 +226,22 @@
doTest();
}
+ public void testIDEA125254() throws Exception {
+ doTest();
+ }
+
+ public void testIDEA124961() throws Exception {
+ doTest();
+ }
+
+ public void testIDEA126109() throws Exception {
+ doTest();
+ }
+
+ public void testIDEA126809() throws Exception {
+ doTest();
+ }
+
private void doTest() {
doTest(false);
}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java
index 16af900..6860bc0 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java
@@ -261,6 +261,18 @@
doTest();
}
+ public void testRejectReceiverTypesForConstructorRefs() {
+ doTest();
+ }
+
+ public void testEnumValuesMethod() throws Exception {
+ doTest();
+ }
+
+ public void testMissedApplicableMemberContainingClassSubstitution() throws Exception {
+ doTest();
+ }
+
private void doTest() {
doTest(false);
}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/AddMethodQualifierTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/AddMethodQualifierTest.java
new file mode 100644
index 0000000..48572b2
--- /dev/null
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/AddMethodQualifierTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2000-2014 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.
+ */
+package com.intellij.codeInsight.daemon.quickFix;
+
+import com.intellij.JavaTestUtil;
+import com.intellij.codeInsight.daemon.impl.quickfix.AddMethodQualifierFix;
+import com.intellij.codeInsight.intention.IntentionAction;
+import com.intellij.psi.PsiNamedElement;
+import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
+import com.intellij.util.Function;
+import com.intellij.util.containers.ContainerUtil;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.*;
+
+/**
+ * @author Dmitry Batkovich
+ */
+public class AddMethodQualifierTest extends JavaCodeInsightFixtureTestCase {
+
+ @Override
+ protected String getTestDataPath() {
+ return JavaTestUtil.getJavaTestDataPath() + "/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/";
+ }
+
+ public void testNonStaticMethod() {
+ doTest("fieldElement", "staticElement", "localElement1", "paramElement");
+ }
+
+ public void testStaticMethod() {
+ doTest("staticElement", "localElement1", "paramElement");
+ }
+
+ public void testNestedMethod() {
+ doTest("fieldElement", "localElement1", "nestedField", "nestedParamElement", "staticElement", "paramElement");
+ }
+
+ public void testConstructor() {
+ doTest("fieldElement", "staticElement", "localElement1");
+ }
+
+ public void testStaticInitializer() {
+ doTest("staticElement", "localElement1");
+ }
+
+ public void testFix() {
+ doTestFix();
+ }
+
+ private void doTestFix() {
+ myFixture.configureByFile(getTestName(false) + "Before.java");
+ final AddMethodQualifierFix quickFix = getQuickFix();
+ assertNotNull(quickFix);
+ myFixture.launchAction(quickFix);
+ myFixture.checkResultByFile(getTestName(false) + "After.java");
+ }
+
+ private void doTest(final String... candidatesNames) {
+ myFixture.configureByFile(getTestName(false) + ".java");
+ final AddMethodQualifierFix addMethodQualifierFix = getQuickFix();
+ if (candidatesNames.length == 0) {
+ assertNull(addMethodQualifierFix);
+ return;
+ }
+ assertNotNull(addMethodQualifierFix);
+ final Set<String> actualCandidatesNames = new TreeSet<String>(ContainerUtil.map(addMethodQualifierFix.getCandidates(), new Function<PsiNamedElement, String>() {
+ @Override
+ public String fun(final PsiNamedElement psiNamedElement) {
+ final String name = psiNamedElement.getName();
+ assertNotNull(name);
+ return name;
+ }
+ }));
+ final Set<String> expectedCandidatesNames = new TreeSet<String>(ContainerUtil.list(candidatesNames));
+ assertEquals(expectedCandidatesNames, actualCandidatesNames);
+ }
+
+ @Nullable
+ private AddMethodQualifierFix getQuickFix() {
+ final List<IntentionAction> availableIntentions = myFixture.getAvailableIntentions();
+ AddMethodQualifierFix addMethodQualifierFix = null;
+ for (final IntentionAction availableIntention : availableIntentions) {
+ if (availableIntention instanceof AddMethodQualifierFix) {
+ addMethodQualifierFix = (AddMethodQualifierFix)availableIntention;
+ break;
+ }
+ }
+ return addMethodQualifierFix;
+ }
+
+}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy
index 41d72f7..2047f13 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy
@@ -27,6 +27,7 @@
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiClass
+import com.intellij.psi.PsiLiteralExpression
import com.intellij.psi.PsiMethod
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.testFramework.LightProjectDescriptor
@@ -592,6 +593,225 @@
assert regions[0].placeholderText == '{...}'
}
+ public void "test insert boolean literal argument name"() {
+ def text = """class Groo {
+
+ public void test() {
+ boolean testNow = System.currentTimeMillis() > 34000;
+ int times = 1;
+ float pi = 4;
+ String title = "Testing..."
+ char ch = 'q'
+ File file;
+
+ configure(true, false, 555, 3.141f, "Huge Title", 'c', null);
+ configure(testNow, shouldIgnoreRoots(), fourteen, pi, title, c, file);
+ }
+
+ pubic void configure(boolean testNow, boolean shouldIgnoreRoots, int times, float pi, String title, char terminate, File file) {
+ System.out.println();
+ System.out.println();
+ }
+
+}"""
+ configure text
+ PsiClass fooClass = JavaPsiFacade.getInstance(project).findClass('Groo', GlobalSearchScope.allScope(project))
+
+ def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset }
+ assert regions.size() == 9
+
+ def literals = fooClass.methods[0].body.statements[6].children[0].children[1].children.findAll { it instanceof PsiLiteralExpression }
+ def parameters = fooClass.methods[1].parameterList.parameters
+
+ for (int i = 0; i < literals.size(); i++) {
+ def currentElement = literals[i]
+ def correspondingFolding = regions[i + 1]
+ assert correspondingFolding.startOffset == currentElement.textRange.startOffset && correspondingFolding.endOffset == currentElement.textRange.endOffset
+ assert correspondingFolding.placeholderText == parameters[i].name + ": " + currentElement.text
+ }
+ }
+
+ public void "test do not inline name if setter"() {
+ def text = """class Groo {
+
+ public void test() {
+ setTestNow(false);
+ System.out.println("");
+ }
+
+ pubic void setTestNow(boolean testNow) {
+ System.out.println("");
+ System.out.println("");
+ }
+
+}"""
+ configure text
+ def regions = myFixture.editor.foldingModel.allFoldRegions
+ assert regions.size() == 2
+ }
+
+ public void "test do not collapse varargs"() {
+ def text = """
+public class VarArgTest {
+
+ public void main() {
+ System.out.println("AAA");
+ testBooleanVarargs(13, false);
+ }
+
+ public boolean testBooleanVarargs(int test, boolean... booleans) {
+ int temp = test;
+ return false;
+ }
+}
+"""
+ configure text
+ def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset }
+ assert regions.size() == 3
+ checkRangeOffsetByPositionInText(regions[1], text, "13")
+ assert regions[1].placeholderText == "test: 13"
+ }
+
+ public void "test inline if argument length is one (EA-57555)"() {
+ def text = """
+public class CharSymbol {
+
+ public void main() {
+ System.out.println("AAA");
+ count(1, false);
+ }
+
+ public void count(int test, boolean fast) {
+ int temp = test;
+ boolean isFast = fast;
+ }
+}
+"""
+ configure text
+ def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset }
+ assert regions.size() == 4
+
+ checkRangeOffsetByPositionInText(regions[1], text, "1")
+ assert regions[1].placeholderText == "test: 1"
+
+ checkRangeOffsetByPositionInText(regions[2], text, "false")
+ assert regions[2].placeholderText == "fast: false"
+ }
+
+ public void "test inline names if literal expression can be assigned to method parameter"() {
+ def text = """
+public class CharSymbol {
+
+ public void main() {
+ Object obj = new Object();
+ count(100, false, "Hi!");
+ }
+
+ public void count(Integer test, Boolean boo, CharSequence seq) {
+ int a = test;
+ Object obj = new Object();
+ }
+}
+"""
+ configure text
+ def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset }
+ assert regions.size() == 5
+
+ checkRangeOffsetByPositionInText(regions[1], text, "100")
+ assert regions[1].placeholderText == "test: 100"
+
+ checkRangeOffsetByPositionInText(regions[2], text, "false")
+ assert regions[2].placeholderText == "boo: false"
+
+ checkRangeOffsetByPositionInText(regions[3], text, '"Hi!"')
+ assert regions[3].placeholderText == 'seq: "Hi!"'
+ }
+
+ public void "test inline negative numbers (IDEA-126753)"() {
+ def text = """
+public class CharSymbol {
+
+ public void main() {
+ Object obj = new Object();
+ count(-1, obj);
+ }
+
+ public void count(int test, Object obj) {
+ Object tmp = obj;
+ boolean isFast = false;
+ }
+}
+"""
+ configure text
+ def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset }
+ assert regions.size() == 3
+
+ checkRangeOffsetByPositionInText(regions[1], text, "-1")
+ assert regions[1].placeholderText == "test: -1"
+ }
+
+ public void "test inline constructor literal arguments names"() {
+ def text = """
+public class Test {
+
+ public void main() {
+ System.out.println("AAA");
+ Checker r = new Checker(true, false) {
+ @Override
+ void test() {
+ }
+ };
+ }
+
+ abstract class Checker {
+ Checker(boolean applyToFirst, boolean applyToSecond) {}
+ abstract void test();
+ }
+}
+"""
+ configure text
+ def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset }
+ assert regions.length == 6
+
+ assert regions[1].placeholderText == "applyToFirst: true"
+ assert regions[2].placeholderText == "applyToSecond: false"
+
+ checkRangeOffsetByPositionInText(regions[1], text, "true")
+ checkRangeOffsetByPositionInText(regions[2], text, "false")
+ }
+
+ public void "test inline anonymous class constructor literal arguments names"() {
+ def text = """
+public class Test {
+
+ Test(int counter, boolean shouldTest) {
+ System.out.println();
+ System.out.println();
+ }
+
+ public static void main() {
+ System.out.println();
+ Test t = new Test(10, false);
+ }
+
+}
+"""
+ configure text
+ def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset }
+ assert regions.length == 4
+
+ assert regions[2].placeholderText == "counter: 10"
+ assert regions[3].placeholderText == "shouldTest: false"
+
+ checkRangeOffsetByPositionInText(regions[2], text, "10")
+ checkRangeOffsetByPositionInText(regions[3], text, "false")
+ }
+
+ private static def checkRangeOffsetByPositionInText(FoldRegion region, String text, String foldElement) {
+ assert region.startOffset == text.indexOf(foldElement) && region.endOffset == text.indexOf(foldElement) + foldElement.length()
+ }
+
+
private def changeFoldRegions(Closure op) {
myFixture.editor.foldingModel.runBatchFoldingOperationDoNotCollapseCaret(op)
}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/intention/SwapIfStatementsTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/intention/SwapIfStatementsTest.java
new file mode 100644
index 0000000..a973a97
--- /dev/null
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/intention/SwapIfStatementsTest.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2000-2014 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.
+ */
+package com.intellij.codeInsight.intention;
+
+import com.intellij.codeInsight.daemon.quickFix.LightQuickFixParameterizedTestCase;
+
+/**
+ * @author Dmitry Batkovich
+ */
+public class SwapIfStatementsTest extends LightQuickFixParameterizedTestCase {
+
+ @Override
+ protected String getBasePath() {
+ return "/codeInsight/daemonCodeAnalyzer/quickFix/swapIfStatements";
+ }
+
+ @Override
+ protected boolean shouldBeAvailableAfterExecution() {
+ return true;
+ }
+}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java
index 6df51f0..454bb7f 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java
@@ -76,6 +76,10 @@
doTestField();
}
+ public void testAnnotations() throws Exception {
+ doTestField();
+ }
+
public void testLiteral() throws Exception {
doTestField();
}
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy
index cc50869..3acb984 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy
@@ -461,7 +461,7 @@
}
@Override
- protected void invokeTestRunnable(final Runnable runnable) throws Exception {
+ protected void invokeTestRunnable(@NotNull final Runnable runnable) throws Exception {
if (name in ["testNavigationActionsDontTerminateTemplate", "testTemplateWithEnd", "testDisappearingVar", "test escape string characters in soutv"]) {
runnable.run();
return;
diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/ContractInferenceFromSourceTest.groovy b/java/java-tests/testSrc/com/intellij/codeInspection/ContractInferenceFromSourceTest.groovy
index ab9a566..32982f3 100644
--- a/java/java-tests/testSrc/com/intellij/codeInspection/ContractInferenceFromSourceTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/codeInspection/ContractInferenceFromSourceTest.groovy
@@ -171,6 +171,55 @@
assert c == []
}
+ public void "test plain delegation"() {
+ def c = inferContracts("""
+ boolean delegating(Object o) {
+ return smth(o);
+ }
+ boolean smth(Object o) {
+ assert o instanceof String;
+ return true;
+ }
+""")
+ assert c == ['null -> fail']
+ }
+
+ public void "test arg swapping delegation"() {
+ def c = inferContracts("""
+ boolean delegating(Object o, Object o1) {
+ return smth(o1, o);
+ }
+ boolean smth(Object o, Object o1) {
+ return o == null && o1 != null;
+ }
+""")
+ assert c == ['_, !null -> false', 'null, null -> false', '!null, null -> true']
+ }
+
+ public void "test negating delegation"() {
+ def c = inferContracts("""
+ boolean delegating(Object o) {
+ return !smth(o);
+ }
+ boolean smth(Object o) {
+ return o == null;
+ }
+""")
+ assert c == ['null -> false', '!null -> true']
+ }
+
+ public void "test delegation with constant"() {
+ def c = inferContracts("""
+ boolean delegating(Object o) {
+ return smth(null);
+ }
+ boolean smth(Object o) {
+ return o == null;
+ }
+""")
+ assert c == ['_ -> true']
+ }
+
private String inferContract(String method) {
return assertOneElement(inferContracts(method))
}
diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java
index 67987b3..833b519 100644
--- a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java
@@ -71,6 +71,9 @@
public void testGeneratedEquals() throws Throwable { doTest(); }
public void testIDEA84489() throws Throwable { doTest(); }
+ public void testComparingNullToNotNull() { doTest(); }
+ public void testComparingNullableToNullable() { doTest(); }
+ public void testComparingNullableToUnknown() { doTest(); }
public void testComparingToNotNullShouldNotAffectNullity() throws Throwable { doTest(); }
public void testComparingToNullableShouldNotAffectNullity() throws Throwable { doTest(); }
public void testStringTernaryAlwaysTrue() throws Throwable { doTest(); }
@@ -235,6 +238,7 @@
public void testManySequentialInstanceofsNotComplex() { doTest(); }
public void testLongDisjunctionsNotComplex() { doTest(); }
public void testWhileNotComplex() { doTest(); }
+ public void testAssertTrueNotComplex() { doTest(); }
public void testManyDisjunctiveFieldAssignmentsInLoopNotComplex() { doTest(); }
public void testManyContinuesNotComplex() { doTest(); }
public void testFinallyNotComplex() { doTest(); }
diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/OfflineIRVTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/OfflineIRVTest.java
new file mode 100644
index 0000000..a1f81da
--- /dev/null
+++ b/java/java-tests/testSrc/com/intellij/codeInspection/OfflineIRVTest.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright (c) 2000-2007 JetBrains s.r.o. All Rights Reserved.
+ */
+
+/*
+ * User: anna
+ * Date: 14-Jan-2007
+ */
+package com.intellij.codeInspection;
+
+import com.intellij.codeInsight.daemon.HighlightDisplayKey;
+import com.intellij.codeInspection.actions.ViewOfflineResultsAction;
+import com.intellij.codeInspection.defUse.DefUseInspection;
+import com.intellij.codeInspection.defUse.DefUseInspectionBase;
+import com.intellij.codeInspection.ex.InspectionProfileImpl;
+import com.intellij.codeInspection.ex.InspectionToolWrapper;
+import com.intellij.codeInspection.ex.LocalInspectionToolWrapper;
+import com.intellij.codeInspection.ex.ToolsImpl;
+import com.intellij.codeInspection.offline.OfflineProblemDescriptor;
+import com.intellij.codeInspection.offlineViewer.OfflineViewParseUtil;
+import com.intellij.codeInspection.ui.InspectionResultsView;
+import com.intellij.codeInspection.ui.InspectionTree;
+import com.intellij.codeInspection.ui.InspectionTreeNode;
+import com.intellij.openapi.application.ex.PathManagerEx;
+import com.intellij.openapi.util.Comparing;
+import com.intellij.openapi.util.Disposer;
+import com.intellij.openapi.util.io.FileUtil;
+import com.intellij.psi.PsiElement;
+import com.intellij.testFramework.PlatformTestUtil;
+import com.intellij.testFramework.TestSourceBasedTestCase;
+import com.intellij.util.ui.tree.TreeUtil;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+public class OfflineIRVTest extends TestSourceBasedTestCase {
+ private InspectionResultsView myView;
+ private LocalInspectionToolWrapper myToolWrapper;
+
+ private static String varMessage(String name) {
+ return InspectionsBundle.message("inspection.unused.assignment.problem.descriptor1", "'"+name+"'");
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ HighlightDisplayKey.register(DefUseInspectionBase.SHORT_NAME);
+ myToolWrapper = new LocalInspectionToolWrapper(new DefUseInspection());
+ myView = ViewOfflineResultsAction.showOfflineView(getProject(), parse(), new InspectionProfileImpl("test") {
+ @Override
+ public boolean isToolEnabled(final HighlightDisplayKey key, PsiElement element) {
+ return Comparing.strEqual(key.toString(), DefUseInspectionBase.SHORT_NAME);
+ }
+
+ @Override
+ @NotNull
+ public InspectionToolWrapper[] getInspectionTools(PsiElement element) {
+ return new InspectionToolWrapper[]{myToolWrapper};
+ }
+
+ @Override
+ @NotNull
+ public ModifiableModel getModifiableModel() {
+ return new InspectionProfileImpl("test") {
+ @Override
+ @NotNull
+ public InspectionToolWrapper[] getInspectionTools(PsiElement element) {
+ return new InspectionToolWrapper[]{myToolWrapper};
+ }
+
+ @Override
+ public boolean isToolEnabled(final HighlightDisplayKey key, PsiElement element) {
+ return Comparing.strEqual(key.toString(), DefUseInspectionBase.SHORT_NAME);
+ }
+ };
+ }
+ }, null);
+ myView.getGlobalInspectionContext().getTools().put(
+ myToolWrapper.getShortName(), new ToolsImpl(myToolWrapper, myToolWrapper.getDefaultLevel(), true));
+ myToolWrapper.initialize(myView.getGlobalInspectionContext());
+ }
+
+ private Map<String, Map<String, Set<OfflineProblemDescriptor>>> parse() throws IOException {
+ final String moduleName = getModule().getName();
+ final Map<String, Map<String, Set<OfflineProblemDescriptor>>> map = new HashMap<String, Map<String, Set<OfflineProblemDescriptor>>>();
+ final File res = new File(PathManagerEx.getTestDataPath(), getTestPath() + File.separator + "res");
+ final File[] files = res.listFiles();
+ assert files != null;
+ for (File file : files) {
+ final String name = file.getName();
+ final String problems = FileUtil.loadFile(file);
+ final Map<String, Set<OfflineProblemDescriptor>> descriptors = OfflineViewParseUtil.parse(problems);
+ for (Set<OfflineProblemDescriptor> problemDescriptors : descriptors.values()) {
+ for (OfflineProblemDescriptor descriptor : problemDescriptors) {
+ descriptor.setModule(moduleName);
+ }
+ }
+ map.put(name.substring(0, name.lastIndexOf('.')), descriptors);
+ }
+ return map;
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ Disposer.dispose(myView);
+ myView = null;
+ myToolWrapper = null;
+ super.tearDown();
+ }
+
+ public void testOfflineView() throws Exception {
+ myView.getGlobalInspectionContext().getUIOptions().SHOW_STRUCTURE = true;
+ InspectionTree tree = updateTree();
+ TreeUtil.expandAll(tree);
+ PlatformTestUtil.assertTreeEqual(tree, "-" + getProject() + "\n"
+ + " -Probable bugs\n"
+ + " -" + myToolWrapper + "\n"
+ + " -" + getModule().toString() + "\n"
+ + " -<default>\n"
+ + " -Test\n"
+ + " -foo()\n"
+ + " " + varMessage("j") + "\n"
+ + " -main(String[])\n"
+ + " " + varMessage("test") + "\n"
+ + " -f()\n"
+ + " -D\n"
+ + " -b()\n"
+ + " " + varMessage("r") + "\n"
+ + " -anonymous (java.lang.Runnable)\n"
+ + " -run()\n"
+ + " " + varMessage("i") + "\n"
+ + " -ff()\n"
+ + " " + varMessage("d") + "\n"
+ + " " + varMessage("a") + "\n");
+ myView.getGlobalInspectionContext().getUIOptions().SHOW_STRUCTURE = false;
+ tree = updateTree();
+ PlatformTestUtil.assertTreeEqual(tree, "-" + getProject() + "\n"
+ + " -Probable bugs\n"
+ + " -" + myToolWrapper + "\n"
+ + " -Test\n"
+ + " " + varMessage("j") + "\n"
+ + " " + varMessage("test") + "\n"
+ + " " + varMessage("r") + "\n"
+ + " " + varMessage("i") + "\n"
+ + " " + varMessage("d") + "\n"
+ + " " + varMessage("a") + "\n");
+ TreeUtil.selectFirstNode(tree);
+ final InspectionTreeNode root = (InspectionTreeNode)tree.getLastSelectedPathComponent();
+ root.ignoreElement();
+ TreeUtil.traverse(root, new TreeUtil.Traverse() {
+ @Override
+ public boolean accept(final Object node) {
+ assertTrue(((InspectionTreeNode)node).isResolved());
+ return true;
+ }
+ });
+ myView.getGlobalInspectionContext().getUIOptions().FILTER_RESOLVED_ITEMS = true;
+ tree = updateTree();
+ PlatformTestUtil.assertTreeEqual(tree, getProject() + "\n");
+ myView.getGlobalInspectionContext().getUIOptions().FILTER_RESOLVED_ITEMS = false;
+ tree = updateTree();
+ PlatformTestUtil.assertTreeEqual(tree, "-" + getProject() + "\n"
+ + " -Probable bugs\n"
+ + " -" + myToolWrapper + "\n"
+ + " -Test\n"
+ + " " + varMessage("j") + "\n"
+ + " " + varMessage("test") + "\n"
+ + " " + varMessage("r") + "\n"
+ + " " + varMessage("i") + "\n"
+ + " " + varMessage("d") + "\n"
+ + " " + varMessage("a") + "\n");
+ }
+
+ private InspectionTree updateTree() {
+ myView.update();
+ final InspectionTree tree = myView.getTree();
+ TreeUtil.expandAll(tree);
+ return tree;
+ }
+
+ @Override
+ protected String getTestPath() {
+ return "inspection/offline";
+ }
+
+ @Override
+ protected String getTestDirectoryName() {
+ return "project";
+ }
+}
diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast15Test.java b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast15Test.java
index 4dd2964..a8b27ab 100644
--- a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast15Test.java
+++ b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast15Test.java
@@ -49,6 +49,7 @@
public void testGetClassProcessing() throws Exception { doTest();}
public void testInstanceOfChecks() throws Exception { doTest();}
public void testForEachValue() throws Exception { doTest();}
+ public void testForEachValueIDEA126166() throws Exception { doTest();}
public void testCaseThrowable() throws Exception { doTest();}
public void testSafeTempVarName() throws Exception { doTest();}
diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast18Test.java b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast18Test.java
index 0a0c539..6cb5291 100644
--- a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast18Test.java
+++ b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast18Test.java
@@ -18,7 +18,6 @@
import com.intellij.codeInspection.ex.LocalInspectionToolWrapper;
import com.intellij.codeInspection.redundantCast.RedundantCastInspection;
import com.intellij.openapi.projectRoots.Sdk;
-import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.testFramework.IdeaTestUtil;
@@ -33,6 +32,7 @@
public void testLambdaContext() throws Exception { doTest(); }
public void testMethodRefContext() throws Exception { doTest(); }
public void testExpectedSupertype() throws Exception { doTest(); }
+ public void testForeachValue() throws Exception { doTest(); }
@Override
protected Sdk getTestProjectSdk() {
diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/SuspiciousCollectionMethodCalls14Test.java b/java/java-tests/testSrc/com/intellij/codeInspection/SuspiciousCollectionMethodCalls14Test.java
new file mode 100644
index 0000000..2d30216
--- /dev/null
+++ b/java/java-tests/testSrc/com/intellij/codeInspection/SuspiciousCollectionMethodCalls14Test.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2000-2014 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.
+ */
+package com.intellij.codeInspection;
+
+import com.intellij.JavaTestUtil;
+import com.intellij.codeInspection.miscGenerics.SuspiciousCollectionsMethodCallsInspection;
+import com.intellij.testFramework.LightProjectDescriptor;
+import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
+import org.jetbrains.annotations.NotNull;
+
+public class SuspiciousCollectionMethodCalls14Test extends LightCodeInsightFixtureTestCase {
+ private final SuspiciousCollectionsMethodCallsInspection myTool = new SuspiciousCollectionsMethodCallsInspection();
+
+ @Override
+ protected String getBasePath() {
+ return JavaTestUtil.getRelativeJavaTestDataPath() + "/inspection/suspiciousCalls";
+ }
+
+ private void doTest() throws Exception {
+ myFixture.enableInspections(myTool);
+ myFixture.testHighlighting(getTestName(false) + ".java");
+ }
+
+ public void testRemoveAll14() throws Exception { doTest(); }
+
+ @NotNull
+ @Override
+ protected LightProjectDescriptor getProjectDescriptor() {
+ return JAVA_1_4;
+ }
+}
diff --git a/java/java-tests/testSrc/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java b/java/java-tests/testSrc/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java
index ef4b5ea..498a117 100644
--- a/java/java-tests/testSrc/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java
+++ b/java/java-tests/testSrc/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java
@@ -27,8 +27,8 @@
import com.intellij.util.ArrayUtil;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.Nullable;
-import org.jetbrains.asm4.ClassReader;
-import org.jetbrains.asm4.ClassWriter;
+import org.jetbrains.org.objectweb.asm.ClassReader;
+import org.jetbrains.org.objectweb.asm.ClassWriter;
import java.io.File;
import java.io.IOException;
diff --git a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java
index 86d79fb..92caad0 100644
--- a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java
+++ b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java
@@ -53,9 +53,11 @@
import com.intellij.util.CommonProcessors;
import com.intellij.util.ThrowableRunnable;
import com.intellij.util.WaitFor;
+import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -284,6 +286,26 @@
assertSize(2, findUsages(findModel));
}
+ public void testFindInOpenedFilesIncludesNoneProjectButOpenedFile() throws IOException {
+ File dir = createTempDirectory();
+ File file = new File(dir.getPath(), "A.test1234");
+ file.createNewFile();
+ FileUtil.writeToFile(file, "foo fo foo");
+ VirtualFile nonProjectFile = VfsUtil.findFileByIoFile(file, true);
+ assertNotNull(nonProjectFile);
+
+ FindModel findModel = new FindModel();
+ findModel.setStringToFind("fo");
+ findModel.setWholeWordsOnly(true);
+ findModel.setFromCursor(false);
+ findModel.setGlobal(true);
+ findModel.setMultipleFiles(true);
+ findModel.setCustomScope(true);
+ findModel.setCustomScope(new GlobalSearchScope.FilesScope(myProject, ContainerUtil.list(nonProjectFile)));
+
+ assertSize(1, findUsages(findModel));
+ }
+
public void testWholeWordsInNonIndexedFiles() throws Exception {
createFile(myModule, "A.test123", "foo fo foo");
diff --git a/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy b/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy
index fad8e4f..dabe06b 100644
--- a/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy
@@ -1,17 +1,30 @@
+/*
+ * Copyright 2000-2014 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.
+ */
package com.intellij.navigation
-import com.intellij.ide.util.gotoByName.ChooseByNameBase
-import com.intellij.ide.util.gotoByName.ChooseByNameModel
-import com.intellij.ide.util.gotoByName.ChooseByNamePopup
-import com.intellij.ide.util.gotoByName.GotoClassModel2
-import com.intellij.ide.util.gotoByName.GotoFileModel
-import com.intellij.ide.util.gotoByName.GotoSymbolModel2
+import com.intellij.ide.util.gotoByName.*
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ModalityState
import com.intellij.openapi.util.Disposer
import com.intellij.psi.PsiElement
+import com.intellij.psi.PsiFile
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
import com.intellij.util.Consumer
import com.intellij.util.concurrency.Semaphore
+import org.jetbrains.annotations.NotNull
+
/**
* @author peter
*/
@@ -135,24 +148,32 @@
}
public void "test goto file can go to dir"() {
- def fooIndex = myFixture.addFileToProject("foo/index.html", "foo")
- def barIndex = myFixture.addFileToProject("bar.txt/bar.txt", "foo")
+ PsiFile fooIndex = myFixture.addFileToProject("foo/index.html", "foo")
+ PsiFile barIndex = myFixture.addFileToProject("bar.txt/bar.txt", "foo")
def popup = createPopup(new GotoFileModel(project), fooIndex)
- assert calcPopupElements(popup, "foo/") == [fooIndex.containingDirectory]
- assert calcPopupElements(popup, "foo\\") == [fooIndex.containingDirectory]
- assert calcPopupElements(popup, "/foo") == [fooIndex.containingDirectory]
- assert calcPopupElements(popup, "\\foo") == [fooIndex.containingDirectory]
+
+ def fooDir
+ def barDir
+ edt {
+ fooDir = fooIndex.containingDirectory
+ barDir = barIndex.containingDirectory
+ }
+
+ assert calcPopupElements(popup, "foo/") == [fooDir]
+ assert calcPopupElements(popup, "foo\\") == [fooDir]
+ assert calcPopupElements(popup, "/foo") == [fooDir]
+ assert calcPopupElements(popup, "\\foo") == [fooDir]
assert calcPopupElements(popup, "foo") == []
assert calcPopupElements(popup, "/index.html") == [fooIndex]
assert calcPopupElements(popup, "\\index.html") == [fooIndex]
assert calcPopupElements(popup, "index.html/") == [fooIndex]
assert calcPopupElements(popup, "index.html\\") == [fooIndex]
- assert calcPopupElements(popup, "bar.txt/") == [barIndex.containingDirectory]
- assert calcPopupElements(popup, "bar.txt\\") == [barIndex.containingDirectory]
- assert calcPopupElements(popup, "/bar.txt") == [barIndex.containingDirectory]
- assert calcPopupElements(popup, "\\bar.txt") == [barIndex.containingDirectory]
+ assert calcPopupElements(popup, "bar.txt/") == [barDir]
+ assert calcPopupElements(popup, "bar.txt\\") == [barDir]
+ assert calcPopupElements(popup, "/bar.txt") == [barDir]
+ assert calcPopupElements(popup, "\\bar.txt") == [barDir]
assert calcPopupElements(popup, "bar.txt") == [barIndex]
popup.close(false)
}
@@ -178,7 +199,10 @@
public void "test super method in jdk"() {
def ourRun = myFixture.addClass("package foo.bar; class Goo implements Runnable { public void run() {} }").methods[0]
- def sdkRun = ourRun.containingClass.interfaces[0].methods[0]
+ def sdkRun
+ edt {
+ sdkRun = ourRun.containingClass.interfaces[0].methods[0]
+ }
assert getPopupElements(new GotoSymbolModel2(project), 'run ', true) == [sdkRun]
assert getPopupElements(new GotoSymbolModel2(project), 'run ', false) == [ourRun]
}
@@ -218,7 +242,7 @@
}
@Override
- protected void invokeTestRunnable(Runnable runnable) throws Exception {
+ protected void invokeTestRunnable(@NotNull Runnable runnable) throws Exception {
runnable.run()
}
}
diff --git a/java/java-tests/testSrc/com/intellij/openapi/editor/impl/FoldingExceptionTest.java b/java/java-tests/testSrc/com/intellij/openapi/editor/impl/FoldingExceptionTest.java
index f40a58b..b168bc2 100644
--- a/java/java-tests/testSrc/com/intellij/openapi/editor/impl/FoldingExceptionTest.java
+++ b/java/java-tests/testSrc/com/intellij/openapi/editor/impl/FoldingExceptionTest.java
@@ -15,11 +15,8 @@
*/
package com.intellij.openapi.editor.impl;
-import com.intellij.codeHighlighting.TextEditorHighlightingPass;
import com.intellij.codeInsight.daemon.impl.CodeFoldingPassFactory;
-import com.intellij.mock.MockProgressIndicator;
import com.intellij.psi.PsiDocumentManager;
-import com.intellij.psi.PsiFile;
import com.intellij.testFramework.EditorTestUtil;
import com.intellij.testFramework.LightCodeInsightTestCase;
@@ -43,14 +40,7 @@
}
private static void runFoldingPass() {
- PsiDocumentManager psiDocumentManager = PsiDocumentManager.getInstance(getProject());
- psiDocumentManager.commitAllDocuments();
- PsiFile psiFile = psiDocumentManager.getPsiFile(myEditor.getDocument());
- assertNotNull(psiFile);
-
- CodeFoldingPassFactory factory = getProject().getComponent(CodeFoldingPassFactory.class);
- TextEditorHighlightingPass highlightingPass = factory.createHighlightingPass(psiFile, myEditor);
- highlightingPass.collectInformation(new MockProgressIndicator());
- highlightingPass.doApplyInformationToEditor();
+ PsiDocumentManager.getInstance(ourProject).commitAllDocuments();
+ EditorTestUtil.runTextEditorHighlightingPass(myEditor, CodeFoldingPassFactory.class);
}
}
diff --git a/java/java-tests/testSrc/com/intellij/psi/ClsDuplicatesTest.java b/java/java-tests/testSrc/com/intellij/psi/ClsDuplicatesTest.java
deleted file mode 100644
index dd32222..0000000
--- a/java/java-tests/testSrc/com/intellij/psi/ClsDuplicatesTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2000-2014 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.
- */
-package com.intellij.psi;
-
-import com.intellij.JavaTestUtil;
-import com.intellij.openapi.projectRoots.Sdk;
-import com.intellij.openapi.util.text.StringUtil;
-import com.intellij.psi.search.GlobalSearchScope;
-import com.intellij.testFramework.PsiTestCase;
-import com.intellij.testFramework.SkipSlowTestLocally;
-import com.intellij.usageView.UsageViewLongNameLocation;
-import gnu.trove.THashSet;
-import gnu.trove.TObjectHashingStrategy;
-
-import java.util.Set;
-
-@SkipSlowTestLocally
-public class ClsDuplicatesTest extends PsiTestCase {
- private Set<PsiNamedElement> myUnique = new THashSet<PsiNamedElement>(new TObjectHashingStrategy<PsiNamedElement>() {
- @Override
- public int computeHashCode(PsiNamedElement object) {
- String name = object.getName();
- return name == null ? 0 : name.hashCode();
- }
-
- @Override
- public boolean equals(PsiNamedElement o1, PsiNamedElement o2) {
- return o1.getParent() == o2.getParent() &&
- o1.getClass() == o2.getClass() &&
- StringUtil.equals(o1.getName(), o2.getName()) &&
- StringUtil.equals(o1.getText(), o2.getText());
- }
- });
-
- @Override
- protected void tearDown() throws Exception {
- myUnique = null;
- super.tearDown();
- }
-
- @Override
- protected Sdk getTestProjectJdk() {
- return JavaTestUtil.getTestJdk();
- }
-
- public void testDuplicates() throws Exception {
- final PsiPackage rootPackage = JavaPsiFacade.getInstance(getProject()).findPackage("");
- assert rootPackage != null;
-
- final GlobalSearchScope scope = GlobalSearchScope.allScope(getProject());
- JavaRecursiveElementVisitor visitor = new JavaRecursiveElementVisitor() {
- @Override
- public void visitPackage(PsiPackage aPackage) {
- visit(aPackage);
- for (PsiPackage subPackage : aPackage.getSubPackages(scope)) {
- visitPackage(subPackage);
- }
- for (PsiClass aClass : aPackage.getClasses(scope)) {
- visitClass(aClass);
- }
- }
-
- @Override
- public void visitElement(PsiElement element) {
- if (element instanceof PsiNamedElement) {
- visit((PsiNamedElement)element);
- }
- super.visitElement(element);
- }
-
- @Override
- public void visitClass(PsiClass aClass) {
- super.visitClass(aClass);
- PsiElement parent = aClass.getParent();
- if (parent instanceof PsiFile) {
- myUnique.clear();
- }
- }
- };
-
- rootPackage.accept(visitor);
- }
-
- private void visit(PsiNamedElement element) {
- if (!myUnique.add(element)) {
- String description = ElementDescriptionUtil.getElementDescription(element, UsageViewLongNameLocation.INSTANCE);
- fail("Duplicate Element: " + description + ": " + element.getText());
- }
- }
-}
diff --git a/java/java-tests/testSrc/com/intellij/psi/ClsMirrorBuildingTest.java b/java/java-tests/testSrc/com/intellij/psi/ClsMirrorBuildingTest.java
index b832e65..c88c8c2 100644
--- a/java/java-tests/testSrc/com/intellij/psi/ClsMirrorBuildingTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/ClsMirrorBuildingTest.java
@@ -18,15 +18,18 @@
import com.intellij.JavaTestUtil;
import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.openapi.util.text.StringUtil;
-import com.intellij.openapi.vfs.JarFileSystem;
-import com.intellij.openapi.vfs.LocalFileSystem;
+import com.intellij.openapi.vfs.StandardFileSystems;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileSystem;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.psi.impl.compiled.ClsFileImpl;
+import com.intellij.psi.impl.compiled.InnerClassSourceStrategy;
+import com.intellij.psi.impl.compiled.StubBuildingVisitor;
+import com.intellij.psi.impl.java.stubs.impl.PsiJavaFileStubImpl;
import com.intellij.testFramework.LightIdeaTestCase;
import com.intellij.testFramework.PlatformTestUtil;
+import org.jetbrains.org.objectweb.asm.ClassReader;
import java.io.IOException;
@@ -75,6 +78,35 @@
doTest(clsPath, txtPath);
}
+ public void testStrayInnersFiltering() throws IOException {
+ String path = JavaTestUtil.getJavaTestDataPath() + "/../../mockJDK-1.8/jre/lib/rt.jar!/java/lang/Class.class";
+ VirtualFile file = StandardFileSystems.jar().findFileByPath(path);
+ assertNotNull(path, file);
+
+ InnerClassSourceStrategy<VirtualFile> strategy = new InnerClassSourceStrategy<VirtualFile>() {
+ @Override
+ public VirtualFile findInnerClass(String innerName, VirtualFile outerClass) {
+ String baseName = outerClass.getNameWithoutExtension();
+ VirtualFile child = outerClass.getParent().findChild(baseName + "$" + innerName + ".class");
+ // stray inner classes should be filtered out
+ assert child != null : innerName + " is not an inner class of " + outerClass;
+ return child;
+ }
+
+ @Override
+ public void accept(VirtualFile innerClass, StubBuildingVisitor<VirtualFile> visitor) {
+ try {
+ byte[] bytes = innerClass.contentsToByteArray();
+ new ClassReader(bytes).accept(visitor, ClassReader.SKIP_FRAMES);
+ }
+ catch (IOException ignored) { }
+ }
+ };
+ PsiJavaFileStubImpl stub = new PsiJavaFileStubImpl("do.not.know.yet", true);
+ StubBuildingVisitor<VirtualFile> visitor = new StubBuildingVisitor<VirtualFile>(file, strategy, stub, 0, null);
+ new ClassReader(file.contentsToByteArray()).accept(visitor, ClassReader.SKIP_FRAMES);
+ }
+
private void doTest() {
doTest(getTestName(false));
}
@@ -85,11 +117,9 @@
}
private static void doTest(String clsPath, String txtPath) {
- VirtualFileSystem fs = clsPath.contains("!/") ? JarFileSystem.getInstance() : LocalFileSystem.getInstance();
- VirtualFile vFile = fs.findFileByPath(clsPath);
- assertNotNull(clsPath, vFile);
- PsiFile clsFile = getPsiManager().findFile(vFile);
- assertNotNull(vFile.getPath(), clsFile);
+ VirtualFileSystem fs = clsPath.contains("!/") ? StandardFileSystems.jar() : StandardFileSystems.local();
+ VirtualFile file = fs.findFileByPath(clsPath);
+ assertNotNull(clsPath, file);
String expected;
try {
@@ -100,6 +130,6 @@
return;
}
- assertEquals(expected, ((ClsFileImpl)clsFile).getMirror().getText());
+ assertEquals(expected, ClsFileImpl.decompile(file).toString());
}
}
diff --git a/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java b/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java
index 16392eb..e831741 100644
--- a/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java
@@ -690,7 +690,6 @@
final PsiType returnType = methodsWithReturnType.getReturnType();
assert returnType != null : methodsWithReturnType;
assertEquals("pack.Parametrized<? extends T>", returnType.getCanonicalText());
- assertEquals("public pack.Parametrized<? extends T> method() { /* compiled code */ }", methodsWithReturnType.getText());
}
private static void checkEnumConstant(String name, PsiField field, PsiClassType type) {
@@ -740,19 +739,20 @@
assertEquals(PsiWildcardType.createUnbounded(myPsiManager), substitution);
}
+ @SuppressWarnings("ConstantConditions")
public void testModifiers() throws Exception {
- final PsiClass psiClass = myJavaFacade.findClass("pack.Modifiers", RESOLVE_SCOPE);
+ PsiClass psiClass = myJavaFacade.findClass("pack.Modifiers", RESOLVE_SCOPE);
assertNotNull(psiClass);
- assertEquals("public class Modifiers {\n" +
- " private transient int f1;\n" +
- " private volatile int f2;\n" +
- "\n" +
- " public Modifiers() { /* compiled code */ }\n" +
- "\n" +
- " private void m1(int... i) { /* compiled code */ }\n" +
- "\n" +
- " private synchronized void m2() { /* compiled code */ }\n" +
- "}",
- psiClass.getText().trim());
+
+ PsiField f1 = psiClass.findFieldByName("f1", false);
+ assertEquals("private transient", f1.getModifierList().getText());
+ PsiField f2 = psiClass.findFieldByName("f2", false);
+ assertEquals("private volatile", f2.getModifierList().getText());
+ PsiMethod init = psiClass.findMethodsByName("Modifiers", false)[0];
+ assertEquals("public", init.getModifierList().getText());
+ PsiMethod m1 = psiClass.findMethodsByName("m1", false)[0];
+ assertEquals("private", m1.getModifierList().getText());
+ PsiMethod m2 = psiClass.findMethodsByName("m2", false)[0];
+ assertEquals("private synchronized", m2.getModifierList().getText());
}
}
diff --git a/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java b/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java
index 301a993..096547c 100644
--- a/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java
@@ -25,10 +25,11 @@
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.impl.source.tree.LazyParseableElement;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
+import org.jetbrains.annotations.NotNull;
public class MiscPsiTest extends LightCodeInsightFixtureTestCase {
@Override
- protected void invokeTestRunnable(final Runnable runnable) throws Exception {
+ protected void invokeTestRunnable(@NotNull final Runnable runnable) throws Exception {
new WriteCommandAction.Simple(getProject()) {
@Override
protected void run() throws Throwable {
diff --git a/java/java-tests/testSrc/com/intellij/psi/StubAstSwitchTest.groovy b/java/java-tests/testSrc/com/intellij/psi/StubAstSwitchTest.groovy
index c915398..021f7f9 100644
--- a/java/java-tests/testSrc/com/intellij/psi/StubAstSwitchTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/psi/StubAstSwitchTest.groovy
@@ -73,7 +73,13 @@
}
CountDownLatch latch = new CountDownLatch(count)
for (c in classList) {
- ApplicationManager.application.executeOnPooledThread { Thread.yield(); c.text; latch.countDown() }
+ ApplicationManager.application.executeOnPooledThread {
+ Thread.yield();
+ ApplicationManager.application.runReadAction {
+ c.text;
+ }
+ latch.countDown()
+ }
for (m in c.methods) {
def parameters = m.parameterList.parameters
for (i in 0..<parameters.size()) {
diff --git a/java/java-tests/testSrc/com/intellij/psi/codeStyle/arrangement/JavaRearrangerFieldReferenceTest.groovy b/java/java-tests/testSrc/com/intellij/psi/codeStyle/arrangement/JavaRearrangerFieldReferenceTest.groovy
index 302f1b3..d11a34f 100644
--- a/java/java-tests/testSrc/com/intellij/psi/codeStyle/arrangement/JavaRearrangerFieldReferenceTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/psi/codeStyle/arrangement/JavaRearrangerFieldReferenceTest.groovy
@@ -328,9 +328,61 @@
)
}
+ void "test IDEA-123875"() {
+ doTest(
+ initial: '''\
+public class RearrangeFail {
+ public static final byte[] ENTITIES_END = "</entities>".getBytes();
+ private final Element entitiesEndElement = new Element(ENTITIES_END);
+ public static final byte[] ENTITIES_START = "<entities>".getBytes();
+ private final Element entitiesStartElement = new Element(ENTITIES_START);
+}
+''',
+ expected: '''\
+public class RearrangeFail {
+ public static final byte[] ENTITIES_END = "</entities>".getBytes();
+ public static final byte[] ENTITIES_START = "<entities>".getBytes();
+ private final Element entitiesEndElement = new Element(ENTITIES_END);
+ private final Element entitiesStartElement = new Element(ENTITIES_START);
}
+''',
+ rules: [
+ rule(PUBLIC, STATIC, FINAL),
+ rule(PRIVATE),
+ ]
+ )
+ }
+
+ void "test IDEA-125099"() {
+ doTest(
+ initial: '''\
+public class test {
+
+ private int a = 2;
+
+ public static final String TEST = "1";
+ public static final String SHOULD_BE_IN_BETWEEN = "2";
+ public static final String USERS_ROLE_ID_COLUMN = TEST;
+}
+''',
+ expected: '''\
+public class test {
+
+ public static final String TEST = "1";
+ public static final String SHOULD_BE_IN_BETWEEN = "2";
+ public static final String USERS_ROLE_ID_COLUMN = TEST;
+ private int a = 2;
+}
+''',
+ rules: [
+ rule(PUBLIC, STATIC, FINAL),
+ rule(PRIVATE)
+ ]
+ )
+ }
+}
diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/PsiEventsTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/PsiEventsTest.java
index 8ea8d3a..2461a46 100644
--- a/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/PsiEventsTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/PsiEventsTest.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2000-2014 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.
+ */
package com.intellij.psi.impl.file.impl;
@@ -640,4 +655,90 @@
getPsiManager().removePsiTreeChangeListener(listener);
}
}
+
+ public void testPsiEventsComeWhenDocumentAlreadyCommitted() throws Exception {
+ myFile = createFile("A.java", "class A { int i; }");
+ getPsiManager().addPsiTreeChangeListener(new PsiTreeChangeListener() {
+ @Override
+ public void beforeChildAddition(@NotNull PsiTreeChangeEvent event) {
+ // did not decide whether the doc should be committed at this point
+ //checkCommitted(false, event);
+ }
+
+ @Override
+ public void beforeChildRemoval(@NotNull PsiTreeChangeEvent event) {
+ // did not decide whether the doc should be committed at this point
+ //checkCommitted(false, event);
+ }
+
+ @Override
+ public void beforeChildReplacement(@NotNull PsiTreeChangeEvent event) {
+ // did not decide whether the doc should be committed at this point
+ //checkCommitted(false, event);
+ }
+
+ @Override
+ public void beforeChildMovement(@NotNull PsiTreeChangeEvent event) {
+ // did not decide whether the doc should be committed at this point
+ //checkCommitted(false, event);
+ }
+
+ @Override
+ public void beforeChildrenChange(@NotNull PsiTreeChangeEvent event) {
+ // did not decide whether the doc should be committed at this point
+ //checkCommitted(false, event);
+ }
+
+ @Override
+ public void beforePropertyChange(@NotNull PsiTreeChangeEvent event) {
+ // did not decide whether the doc should be committed at this point
+ //checkCommitted(false, event);
+ }
+
+ @Override
+ public void childAdded(@NotNull PsiTreeChangeEvent event) {
+ checkCommitted(true, event);
+ }
+
+ @Override
+ public void childRemoved(@NotNull PsiTreeChangeEvent event) {
+ checkCommitted(true, event);
+ }
+
+ @Override
+ public void childReplaced(@NotNull PsiTreeChangeEvent event) {
+ checkCommitted(true, event);
+ }
+
+ @Override
+ public void childrenChanged(@NotNull PsiTreeChangeEvent event) {
+ checkCommitted(true, event);
+ }
+
+ @Override
+ public void childMoved(@NotNull PsiTreeChangeEvent event) {
+ checkCommitted(true, event);
+ }
+
+ @Override
+ public void propertyChanged(@NotNull PsiTreeChangeEvent event) {
+ checkCommitted(true, event);
+ }
+ }, myTestRootDisposable);
+
+ PsiDocumentManager documentManager = PsiDocumentManager.getInstance(getProject());
+ Document document = documentManager.getDocument(getFile());
+ assertTrue(documentManager.isCommitted(document));
+
+ document.setText("");
+ documentManager.commitAllDocuments();
+ assertTrue(documentManager.isCommitted(document));
+ }
+
+ private void checkCommitted(boolean shouldBeCommitted, PsiTreeChangeEvent event) {
+ PsiFile file = event.getFile();
+ PsiDocumentManager documentManager = PsiDocumentManager.getInstance(file.getProject());
+ Document document = documentManager.getDocument(file);
+ assertEquals(shouldBeCommitted, documentManager.isCommitted(document));
+ }
}
diff --git a/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveInLibrariesTest.groovy b/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveInLibrariesTest.groovy
index 5e6adfd..ce04dd0 100644
--- a/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveInLibrariesTest.groovy
+++ b/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveInLibrariesTest.groovy
@@ -20,12 +20,12 @@
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiClass
-import com.intellij.psi.PsiFile
-import com.intellij.psi.PsiManager
import com.intellij.psi.PsiMethod
+import com.intellij.psi.impl.source.PsiFileImpl
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.searches.ClassInheritorsSearch
import com.intellij.psi.search.searches.OverridingMethodsSearch
+import com.intellij.psi.stubs.StubTreeLoader
import com.intellij.testFramework.PsiTestUtil
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase
/**
@@ -150,14 +150,12 @@
Collection<VirtualFile> pkgDirs = pkg.directories.collect { it.virtualFile }
Collection<VirtualFile> pkgChildren = pkgDirs.collect { it.children as List }.flatten()
- PsiFile javaSrc = psiManager.findFile(pkgChildren.find { it.name == 'LibraryClass.java' })
- assert !javaSrc.contentsLoaded
- assert !javaSrc.stub
+ VirtualFile javaSrc = pkgChildren.find { it.name == 'LibraryClass.java' }
+ checkFileIsNotLoadedAndHasNoIndexedStub(javaSrc)
assert pkg.containsClassNamed('LibraryClass')
- assert !javaSrc.contentsLoaded
- assert !javaSrc.stub
- assert !javaSrc.node.parsed
+ checkFileIsNotLoadedAndHasNoIndexedStub(javaSrc)
+ assert !((PsiFileImpl)psiManager.findFile(javaSrc)).treeElement
}
@Override
@@ -174,7 +172,7 @@
def localFile = myFixture.copyFileToProject(testDataPathForTest + File.separator + "Foo.java", 'Foo.java')
assert localFile != null
- checkFileIsNotLoadedAndHasNoStub(localFile)
+ checkFileIsNotLoadedAndHasNoIndexedStub(localFile)
assert facade.findClasses('Foo', scope).size() == 0
PsiTestUtil.addLibrary(myModule, 'cas', lib.path, [] as String[], ["/classesAndSources.jar!/"] as String[])
@@ -187,14 +185,16 @@
assert facade.findClasses('LibraryClass', scope).size() == 0
- checkFileIsNotLoadedAndHasNoStub(vfile)
+ checkFileIsNotLoadedAndHasNoIndexedStub(vfile)
}
- private void checkFileIsNotLoadedAndHasNoStub(VirtualFile vfile) {
- def file = PsiManager.getInstance(project).findFile(vfile);
+ private void checkFileIsNotLoadedAndHasNoIndexedStub(VirtualFile vfile) {
+ PsiFileImpl file = psiManager.findFile(vfile);
assert file != null
assert !file.contentsLoaded
- assert !file.stub
+ assert !StubTreeLoader.instance.readFromVFile(project, vfile)
+ assert !StubTreeLoader.instance.canHaveStub(vfile)
+ assert file.stub // from text
}
}
diff --git a/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java b/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java
index 83e8fa1..b34486f 100644
--- a/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java
+++ b/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java
@@ -187,6 +187,18 @@
doTest("Outer.Inner", "Outer", true, VisibilityUtil.ESCALATE_VISIBILITY, 0);
}
+ public void testFromNestedToOuterMethodRef() throws Exception {
+ final LanguageLevelProjectExtension projectExtension = LanguageLevelProjectExtension.getInstance(getProject());
+ final LanguageLevel oldLevel = projectExtension.getLanguageLevel();
+ try {
+ projectExtension.setLanguageLevel(LanguageLevel.HIGHEST);
+ doTest("Outer.Inner", "Outer", true, VisibilityUtil.ESCALATE_VISIBILITY, 0);
+ }
+ finally {
+ projectExtension.setLanguageLevel(oldLevel);
+ }
+ }
+
@NotNull
@Override
protected String getTestRoot() {
diff --git a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java
index c77b344..99de5eb 100644
--- a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java
+++ b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java
@@ -264,6 +264,10 @@
doTest();
}
+ public void testSameVarMethodNames() throws Exception {
+ doTest();
+ }
+
private void doTestInlineThisOnly() {
@NonNls String fileName = "/refactoring/inlineMethod/" + getTestName(false) + ".java";
configureByFile(fileName);
diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java
index 180a8ee..514348e 100644
--- a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java
+++ b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java
@@ -1,12 +1,29 @@
+/*
+ * Copyright 2000-2014 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.
+ */
package com.intellij.roots;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.StdModuleTypes;
+import com.intellij.openapi.module.impl.ModuleEx;
import com.intellij.openapi.module.impl.scopes.LibraryScope;
import com.intellij.openapi.roots.*;
import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.testFramework.ModuleTestCase;
import com.intellij.testFramework.PsiTestUtil;
import com.intellij.testFramework.fixtures.impl.LightTempDirTestFixtureImpl;
@@ -207,4 +224,28 @@
addLibrary(myModule, DependencyScope.COMPILE);
assertTrue(myModule.getModuleWithDependenciesAndLibrariesScope(false).contains(file));
}
+
+ public void testScopeEquality() {
+ Module module = createModule("a.iml", StdModuleTypes.JAVA);
+ addDependentModule(module, DependencyScope.COMPILE);
+ addLibrary(module, DependencyScope.COMPILE);
+
+ GlobalSearchScope deps = module.getModuleWithDependentsScope();
+ GlobalSearchScope depsTests = module.getModuleTestsWithDependentsScope();
+
+ assertFalse(deps.equals(depsTests));
+ assertFalse(depsTests.equals(deps));
+
+ ((ModuleEx)module).clearScopesCache();
+
+ GlobalSearchScope deps2 = module.getModuleWithDependentsScope();
+ GlobalSearchScope depsTests2 = module.getModuleTestsWithDependentsScope();
+
+ assertFalse(deps2.equals(depsTests2));
+ assertFalse(depsTests2.equals(deps2));
+ assertNotSame(deps, deps2);
+ assertNotSame(depsTests, depsTests2);
+ assertEquals(deps, deps2);
+ assertEquals(depsTests, depsTests2);
+ }
}
diff --git a/java/java-tests/testSrc/com/intellij/slicer/SliceBackwardTest.java b/java/java-tests/testSrc/com/intellij/slicer/SliceBackwardTest.java
index 513fcec..2f6ea95 100644
--- a/java/java-tests/testSrc/com/intellij/slicer/SliceBackwardTest.java
+++ b/java/java-tests/testSrc/com/intellij/slicer/SliceBackwardTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -179,6 +179,8 @@
public void testArrayElements() throws Exception { doTest();}
public void testAnonArray() throws Exception { doTest();}
public void testVarArgs() throws Exception { doTest();}
+ public void testVarArgsAsAWhole() throws Exception { doTest();}
+ public void testVarArgsPartial() throws Exception { doTest();}
public void testListTrackToArray() throws Exception { doTest();}
}