summaryrefslogtreecommitdiff
path: root/java/java-tests/testData
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-tests/testData')
-rw-r--r--java/java-tests/testData/codeInsight/completeStatement/Class.java1
-rw-r--r--java/java-tests/testData/codeInsight/completeStatement/Class_after.java3
-rw-r--r--java/java-tests/testData/codeInsight/completion/smartType/SameSignatureWithGenerics.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java7
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/SerializableStuff.java5
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA113225.java11
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityRawGenerics.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ReturnTypeAmbiguity.java45
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ReturnTypeSpecific.java4
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/afterComparableConflicts.java7
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeComparableConflicts.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before1.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before2.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertFalse.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertTrue.java2
-rw-r--r--java/java-tests/testData/inspection/dataFlow/fixture/ContractInLoopNotTooComplex.java16
-rw-r--r--java/java-tests/testData/inspection/dataFlow/fixture/ContractWithNullable.java16
-rw-r--r--java/java-tests/testData/inspection/dataFlow/fixture/ReportConstantReferencesAfterFinalFieldAccess.java18
-rw-r--r--java/java-tests/testData/inspection/dataFlow/fixture/UnconditionalForLoop.java18
20 files changed, 184 insertions, 7 deletions
diff --git a/java/java-tests/testData/codeInsight/completeStatement/Class.java b/java/java-tests/testData/codeInsight/completeStatement/Class.java
new file mode 100644
index 000000000000..d3ccae6a574a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completeStatement/Class.java
@@ -0,0 +1 @@
+public class Test<caret> \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completeStatement/Class_after.java b/java/java-tests/testData/codeInsight/completeStatement/Class_after.java
new file mode 100644
index 000000000000..f870e03b4672
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completeStatement/Class_after.java
@@ -0,0 +1,3 @@
+public class Test {
+ <caret>
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/SameSignatureWithGenerics.java b/java/java-tests/testData/codeInsight/completion/smartType/SameSignatureWithGenerics.java
new file mode 100644
index 000000000000..3e1ddfe5c55b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/smartType/SameSignatureWithGenerics.java
@@ -0,0 +1,8 @@
+class A<T> {
+ public A(T i, String z, String zz) {}
+}
+class B extends A<String> {
+ public B(String i, String zz, String z) {
+ super(<caret>);
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java
index 94c279faa10e..1c3342a46009 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java
@@ -32,6 +32,16 @@ public class a21 {
void f4() {
if (DEBUG && (fi < 3 || fi >4)) return;
}
+
+ void f5(final int i) {
+ (<error descr="Cannot assign a value to final variable 'i'">i</error>) = 1;
+ }
+ void f6(final int i) {
+ (<error descr="Cannot assign a value to final variable 'i'">i</error>)++;
+ }
+ void f7(final int i) {
+ ++(<error descr="Cannot assign a value to final variable 'i'">i</error>);
+ }
}
class B extends a21 {
public B() {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java
index 17bd29a20846..ec01fd7af137 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java
@@ -219,5 +219,12 @@ public class X {
}
}
}
+class Y {
+ private final int mayBeFinal;
+
+ Y() {
+ (mayBeFinal) = 1;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/SerializableStuff.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/SerializableStuff.java
index 2eb209fb1f95..75ca72ab7c82 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/SerializableStuff.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/SerializableStuff.java
@@ -59,4 +59,9 @@ class serializableSubclassOfAbstractNoSerializable extends abstractNoSerializabl
public static void main(String[] args) {
System.out.println(new serializableSubclassOfAbstractNoSerializable().toString());
}
+ static {
+ new a();
+ new b();
+ }
+ static final long serialVersionUID = 20130808044800000L;
} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA113225.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA113225.java
new file mode 100644
index 000000000000..7b4bbaba7fa3
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA113225.java
@@ -0,0 +1,11 @@
+import java.io.Serializable;
+
+public class Test {
+ public <T extends Serializable> void foo(byte[] data) {
+ T foo = (T) data;
+ }
+
+ public <T extends Serializable & Runnable> void bar(byte[] data) {
+ T bar = <error descr="Inconvertible types; cannot cast 'byte[]' to 'T'">(T) data</error>;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityRawGenerics.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityRawGenerics.java
index 595787704437..2e4416c6e9cf 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityRawGenerics.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityRawGenerics.java
@@ -22,6 +22,6 @@ class AmbiguityRawGenerics {
<Z> void foo(I3<Z> s) { }
void bar() {
- foo<error descr="Ambiguous method call: both 'AmbiguityRawGenerics.foo(I)' and 'AmbiguityRawGenerics.foo(I1)' match">(()-> { throw new RuntimeException(); })</error>;
+ foo<error descr="Ambiguous method call: both 'AmbiguityRawGenerics.foo(I)' and 'AmbiguityRawGenerics.foo(I3<Object>)' match">(()-> { throw new RuntimeException(); })</error>;
}
} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ReturnTypeAmbiguity.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ReturnTypeAmbiguity.java
new file mode 100644
index 000000000000..8ee9852f366f
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ReturnTypeAmbiguity.java
@@ -0,0 +1,45 @@
+class A {
+ private interface AsyncFunction<I, O> {
+ Promise<O> apply(I input);
+ }
+
+ private interface Function<I, O> {
+ O apply(I input);
+ }
+
+ private interface Promise<V> {
+ <T1> Promise<T1> then(Function<? super V, T1> function);
+ <T2> Promise<T2> then(AsyncFunction<? super V, T2> function);
+ }
+
+ private static Promise<Integer> calculateLength(String word) {
+ return null;
+ }
+
+ public static void main(Promise<String> helloWorld) {
+ helloWorld.then(A::calculateLength);
+ }
+}
+
+class AAmbiguous {
+ private interface AsyncFunction<I, O> {
+ O apply(I input);
+ }
+
+ private interface Function<I, O> {
+ O apply(I input);
+ }
+
+ private interface Promise<V> {
+ <T1> Promise<T1> then(Function<? super V, T1> function);
+ <T2> Promise<T2> then(AsyncFunction<? super V, T2> function);
+ }
+
+ private static Promise<Integer> calculateLength(String word) {
+ return null;
+ }
+
+ public static void main(Promise<String> helloWorld) {
+ helloWorld.then<error descr="Ambiguous method call: both 'Promise.then(Function<? super String,Promise<Integer>>)' and 'Promise.then(AsyncFunction<? super String,Promise<Integer>>)' match">(AAmbiguous::calculateLength)</error>;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ReturnTypeSpecific.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ReturnTypeSpecific.java
index 2a617de711f8..a86f8040ed5f 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ReturnTypeSpecific.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ReturnTypeSpecific.java
@@ -95,7 +95,7 @@ class MyTest2 {
System.out.println(i);
}
- private static void m(I2 i) {
+ private static void <warning descr="Private method 'm(MyTest2.I2)' is never used">m</warning>(I2 i) {
System.out.println(i);
}
@@ -104,6 +104,6 @@ class MyTest2 {
}
public static void main(String[] args) {
- m(Foo::new);
+ m<error descr="Ambiguous method call: both 'MyTest2.m(I2)' and 'MyTest2.m(I3)' match">(Foo::new)</error>;
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/afterComparableConflicts.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/afterComparableConflicts.java
new file mode 100644
index 000000000000..0dac8f456767
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/afterComparableConflicts.java
@@ -0,0 +1,7 @@
+// "Replace with lambda" "true"
+class Test {
+ {
+ String o = "";
+ Comparable<String> c = o1 -> 0;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeComparableConflicts.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeComparableConflicts.java
new file mode 100644
index 000000000000..f8ba6ced6af4
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeComparableConflicts.java
@@ -0,0 +1,12 @@
+// "Replace with lambda" "true"
+class Test {
+ {
+ String o = "";
+ Comparable<String> c = new Compa<caret>rable<String>() {
+ @Override
+ public int compareTo(String o) {
+ return 0;
+ }
+ };
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before1.java
index f4fb0184c518..b012f43a1c52 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before1.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before1.java
@@ -3,7 +3,7 @@ public class Test {
void foo() {
int k = 0;
int i = 0;
- if (<caret>i == k) {}
+ if (i <caret>== k) {}
if (i == k) {}
if (i == k) {}
if (i == k) {}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before2.java
index f41c6b8f1b43..e7d9398ae3e8 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before2.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/before2.java
@@ -14,7 +14,7 @@ public class Test {
void foo2() {
int k = 0;
int i = 0;
- if (<caret>i == k) {}
+ if (i <caret>== k) {}
if (i == k) {}
if (i == k) {}
if (i == k) {}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertFalse.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertFalse.java
index 26e29d389a12..8ddc67b7ac1e 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertFalse.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertFalse.java
@@ -3,6 +3,6 @@ public class Test {
void foo2() {
int k = 0;
int i = 0;
- assert <caret>i != k;
+ assert i <caret>!= k;
}
} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertTrue.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertTrue.java
index 204b0867fed2..98611528fce5 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertTrue.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/fixAll/beforeAssertTrue.java
@@ -3,7 +3,7 @@ public class Test {
void foo2() {
int k = 0;
int i = 0;
- assert <caret>i == k;
+ assert i <caret>== k;
assert i == k;
if (i == k) {
System.out.println();
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ContractInLoopNotTooComplex.java b/java/java-tests/testData/inspection/dataFlow/fixture/ContractInLoopNotTooComplex.java
new file mode 100644
index 000000000000..96356dd21c09
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/ContractInLoopNotTooComplex.java
@@ -0,0 +1,16 @@
+import org.jetbrains.annotations.Contract;
+
+public class Foo {
+
+ public void main(String[] args) {
+ for (int i = 0; i < 10; i++) {
+ assertTrue("str", true);
+ }
+ }
+
+ @Contract("_, false->fail")
+ void assertTrue(String msg, boolean value) {
+
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ContractWithNullable.java b/java/java-tests/testData/inspection/dataFlow/fixture/ContractWithNullable.java
new file mode 100644
index 000000000000..99cee251aa00
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/ContractWithNullable.java
@@ -0,0 +1,16 @@
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+public class Foo {
+
+ public void main(@NotNull Object nn) {
+ foo(nn).hashCode();
+ }
+
+ @Contract("null->null;!null->!null")
+ @Nullable
+ Object foo(Object a) { return a; }
+
+}
+
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ReportConstantReferencesAfterFinalFieldAccess.java b/java/java-tests/testData/inspection/dataFlow/fixture/ReportConstantReferencesAfterFinalFieldAccess.java
new file mode 100644
index 000000000000..9957eb710fa6
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/ReportConstantReferencesAfterFinalFieldAccess.java
@@ -0,0 +1,18 @@
+public class Foo {
+ private final boolean field = hashCode() == 2;
+
+ public void main(boolean b) {
+ if (!b) {
+ System.out.println(<warning descr="Value 'b' is always 'false'">b</warning>);
+
+ }
+ if (field) {
+ System.out.println(b);
+ }
+ if (b) {
+ System.out.println(<warning descr="Value 'b' is always 'true'">b</warning>);
+ }
+ }
+
+}
+
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/UnconditionalForLoop.java b/java/java-tests/testData/inspection/dataFlow/fixture/UnconditionalForLoop.java
new file mode 100644
index 000000000000..1f3a769530f9
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/UnconditionalForLoop.java
@@ -0,0 +1,18 @@
+import java.util.HashMap;
+class A {
+ private HashMap<String, Integer> mLoaderIds = new HashMap<String, Integer>();
+
+ public int getLoaderId(final String loaderName) {
+ Integer loaderId = null;
+ for (int i = 0; ; i++) {
+ if (!mLoaderIds.containsValue(i)) {
+ loaderId = i;
+ mLoaderIds.put(loaderName, loaderId);
+ break;
+ }
+ }
+
+
+ return loaderId; // here IDEA says that "unboxing may produce NPE".
+ }
+} \ No newline at end of file