summaryrefslogtreecommitdiff
path: root/java/java-tests/testData/codeInsight
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-tests/testData/codeInsight')
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/afterClass.java8
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/afterField.java10
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/afterMethod.java10
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/afterMethod2.java12
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/beforeClass.java5
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/beforeClass2.java13
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/beforeField.java7
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/beforeMethod.java7
-rw-r--r--java/java-tests/testData/codeInsight/addJavadoc/beforeMethod2.java7
-rw-r--r--java/java-tests/testData/codeInsight/completion/className/template/after1.java12
-rw-r--r--java/java-tests/testData/codeInsight/completion/className/template/after2.java12
-rw-r--r--java/java-tests/testData/codeInsight/completion/className/template/before1.java7
-rw-r--r--java/java-tests/testData/codeInsight/completion/className/template/before2.java7
-rw-r--r--java/java-tests/testData/codeInsight/completion/normalSorting/NoBooleansInMultiplication.java7
-rw-r--r--java/java-tests/testData/codeInsight/completion/normalSorting/NoNumberValueOf.java7
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/enum.java11
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/enum2.java11
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/enum2_after.java12
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/enum_after.java12
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/notAvailable.java13
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/notAvailable2.java13
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/primitive.java10
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/primitive_after.java11
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/string.java10
-rw-r--r--java/java-tests/testData/codeInsight/createSwitch/string_after.java11
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java29
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/EnumSynthetics.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/IDEA61415.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/IDEA65473.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/UnsupportedFeatures7.java4
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/SwitchByInaccessibleEnum.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/CastObjectToIntJdk14.java7
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java15
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118533.java11
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118536.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java16
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java15
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125800.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125816.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA24496.java17
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57290.java11
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57338.java17
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57388.java7
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA58692.java20
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67578.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67600.java24
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParent.java18
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA125855.java18
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA118362.java20
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126056.java27
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/IDEA126062.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParameters.java15
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParameters2.java16
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParametersWithoutOrder.java16
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterSingleParameter.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterValueTyping.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParameters.java15
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParameters2.java16
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParametersWithoutOrder.java16
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeParameterWithDefaultValue.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeSingleParameter.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeValueTyping.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeRaw.java24
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/afterSameParameterSimpleNames.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/afterIfNoBlock.java9
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/beforeIfNoBlock.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterSillyAssignment.java7
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeSillyAssignment.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/afterFewParameters.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/afterSingleParameter.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeFewParameters.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeNotConvertible.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeNotConvertible2.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeSingleParameter.java13
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterBoolean.java13
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterChar.java13
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterChar2.java13
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterLong.java15
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeBoolean.java13
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeChar.java13
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeChar2.java13
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeLong.java15
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable.java10
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable2.java13
-rw-r--r--java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable3.java13
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/assert/beforeAssignment.java7
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/assert/beforeAssignment_after.java7
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/assert/simpleWithSemicolon.java9
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/assert/simpleWithSemicolon_after.java9
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/if/beforeAssignment.java7
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/if/beforeAssignment_after.java9
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/if/simpleWithSemicolon.java9
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/if/simpleWithSemicolon_after.java11
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/throw/beforeAssignment.java9
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/throw/beforeAssignment_after.java9
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/throw/notThrowable_after.java2
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/throw/simpleWithSemicolon.java7
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/throw/simpleWithSemicolon_after.java7
100 files changed, 1144 insertions, 31 deletions
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/afterClass.java b/java/java-tests/testData/codeInsight/addJavadoc/afterClass.java
new file mode 100644
index 000000000000..c8afa98295ce
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/afterClass.java
@@ -0,0 +1,8 @@
+// "Add Javadoc" "true"
+
+/**
+ *
+ */
+class Foo {
+
+}
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/afterField.java b/java/java-tests/testData/codeInsight/addJavadoc/afterField.java
new file mode 100644
index 000000000000..96c53712f0b2
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/afterField.java
@@ -0,0 +1,10 @@
+// "Add Javadoc" "true"
+
+class A {
+
+ /**
+ *
+ */
+ private int myFoo;
+
+}
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/afterMethod.java b/java/java-tests/testData/codeInsight/addJavadoc/afterMethod.java
new file mode 100644
index 000000000000..d5d21088c837
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/afterMethod.java
@@ -0,0 +1,10 @@
+// "Add Javadoc" "true"
+
+class A {
+ /**
+ *
+ */
+ public void foo() {
+
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/afterMethod2.java b/java/java-tests/testData/codeInsight/addJavadoc/afterMethod2.java
new file mode 100644
index 000000000000..a86a2f943c81
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/afterMethod2.java
@@ -0,0 +1,12 @@
+// "Add Javadoc" "true"
+
+class A {
+ /**
+ * @param s
+ * @return
+ * @throws Exception
+ */
+ public int foo(final String s) throws Exception {
+
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/beforeClass.java b/java/java-tests/testData/codeInsight/addJavadoc/beforeClass.java
new file mode 100644
index 000000000000..c6c284928e24
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/beforeClass.java
@@ -0,0 +1,5 @@
+// "Add Javadoc" "true"
+
+class Fo<caret>o {
+
+}
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/beforeClass2.java b/java/java-tests/testData/codeInsight/addJavadoc/beforeClass2.java
new file mode 100644
index 000000000000..0d1d456256d6
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/beforeClass2.java
@@ -0,0 +1,13 @@
+// "Add Javadoc" "false"
+
+class A {
+
+ void m() {
+
+ Object o<caret> = new Object() {
+
+ }
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/beforeField.java b/java/java-tests/testData/codeInsight/addJavadoc/beforeField.java
new file mode 100644
index 000000000000..cf27dadb93e5
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/beforeField.java
@@ -0,0 +1,7 @@
+// "Add Javadoc" "true"
+
+class A {
+
+ private int myFo<caret>o;
+
+}
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/beforeMethod.java b/java/java-tests/testData/codeInsight/addJavadoc/beforeMethod.java
new file mode 100644
index 000000000000..c428f80c85cd
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/beforeMethod.java
@@ -0,0 +1,7 @@
+// "Add Javadoc" "true"
+
+class A {
+ public void f<caret>oo() {
+
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/addJavadoc/beforeMethod2.java b/java/java-tests/testData/codeInsight/addJavadoc/beforeMethod2.java
new file mode 100644
index 000000000000..0fb87904cc0c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/addJavadoc/beforeMethod2.java
@@ -0,0 +1,7 @@
+// "Add Javadoc" "true"
+
+class A {
+ public int f<caret>oo(final String s) throws Exception {
+
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/completion/className/template/after1.java b/java/java-tests/testData/codeInsight/completion/className/template/after1.java
new file mode 100644
index 000000000000..26e269fc5089
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/className/template/after1.java
@@ -0,0 +1,12 @@
+import pack.Foo;
+class Test {
+ {
+ m(new Foo<String>() {
+ @Override
+ public void foo(String s) {
+
+ }
+ })
+ }
+ <T> void m(Foo<T> foo){}
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/className/template/after2.java b/java/java-tests/testData/codeInsight/completion/className/template/after2.java
new file mode 100644
index 000000000000..3cc7fd50d897
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/className/template/after2.java
@@ -0,0 +1,12 @@
+import pack.Foo;
+class Test {
+ {
+ m(new Foo<String>() {
+ @Override
+ public void foo(String s) {
+
+ }
+ })
+ }
+ void m(Foo<String> foo){}
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/className/template/before1.java b/java/java-tests/testData/codeInsight/completion/className/template/before1.java
new file mode 100644
index 000000000000..db664b23c886
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/className/template/before1.java
@@ -0,0 +1,7 @@
+import pack.Foo;
+class Test {
+ {
+ m(new <caret>)
+ }
+ <T> void m(Foo<T> foo){}
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/className/template/before2.java b/java/java-tests/testData/codeInsight/completion/className/template/before2.java
new file mode 100644
index 000000000000..bf1ca0b36978
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/className/template/before2.java
@@ -0,0 +1,7 @@
+import pack.Foo;
+class Test {
+ {
+ m(new <caret>)
+ }
+ void m(Foo<String> foo){}
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/NoBooleansInMultiplication.java b/java/java-tests/testData/codeInsight/completion/normalSorting/NoBooleansInMultiplication.java
new file mode 100644
index 000000000000..befcf40a26ab
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/normalSorting/NoBooleansInMultiplication.java
@@ -0,0 +1,7 @@
+public class Foo {
+
+ int foo(Object fact) {
+ return 42 * fa<caret>x
+ }
+}
+
diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/NoNumberValueOf.java b/java/java-tests/testData/codeInsight/completion/normalSorting/NoNumberValueOf.java
new file mode 100644
index 000000000000..d53e3c294eb5
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/normalSorting/NoNumberValueOf.java
@@ -0,0 +1,7 @@
+public class Foo {
+
+ void foo(Object value) {
+ Integer i = val<caret>x
+ }
+}
+
diff --git a/java/java-tests/testData/codeInsight/createSwitch/enum.java b/java/java-tests/testData/codeInsight/createSwitch/enum.java
new file mode 100644
index 000000000000..23d180ddbe3b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/enum.java
@@ -0,0 +1,11 @@
+class X {
+
+ enum MyEnum {
+ a,b,c
+ }
+
+ void m(MyEnum e) {
+ e<caret>
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/enum2.java b/java/java-tests/testData/codeInsight/createSwitch/enum2.java
new file mode 100644
index 000000000000..8464e6213e22
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/enum2.java
@@ -0,0 +1,11 @@
+class X {
+
+ enum MyEnum {
+ a,b,c
+ }
+
+ void m(MyEnum e) {
+ <caret>e
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/enum2_after.java b/java/java-tests/testData/codeInsight/createSwitch/enum2_after.java
new file mode 100644
index 000000000000..61803f4e0f6b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/enum2_after.java
@@ -0,0 +1,12 @@
+class X {
+
+ enum MyEnum {
+ a,b,c
+ }
+
+ void m(MyEnum e) {
+ switch (e) {<caret>
+ }
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/enum_after.java b/java/java-tests/testData/codeInsight/createSwitch/enum_after.java
new file mode 100644
index 000000000000..61803f4e0f6b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/enum_after.java
@@ -0,0 +1,12 @@
+class X {
+
+ enum MyEnum {
+ a,b,c
+ }
+
+ void m(MyEnum e) {
+ switch (e) {<caret>
+ }
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/notAvailable.java b/java/java-tests/testData/codeInsight/createSwitch/notAvailable.java
new file mode 100644
index 000000000000..2cdae544482e
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/notAvailable.java
@@ -0,0 +1,13 @@
+class X {
+
+ void m() {
+
+ int foo = 10;
+ m2(fo<caret>o);
+
+ }
+
+ void m2(int i) {
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/notAvailable2.java b/java/java-tests/testData/codeInsight/createSwitch/notAvailable2.java
new file mode 100644
index 000000000000..112e2d450d9b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/notAvailable2.java
@@ -0,0 +1,13 @@
+class X {
+
+ void m() {
+
+ int foo = 10;
+ int bar = fo<caret>o + 10;
+
+ }
+
+ void m2(int i) {
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/primitive.java b/java/java-tests/testData/codeInsight/createSwitch/primitive.java
new file mode 100644
index 000000000000..332325ce4029
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/primitive.java
@@ -0,0 +1,10 @@
+class X {
+
+ void m() {
+
+ int foo = 10;
+ fo<caret>o
+
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/primitive_after.java b/java/java-tests/testData/codeInsight/createSwitch/primitive_after.java
new file mode 100644
index 000000000000..0f04c947694b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/primitive_after.java
@@ -0,0 +1,11 @@
+class X {
+
+ void m() {
+
+ int foo = 10;
+ switch (foo) {<caret>
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/string.java b/java/java-tests/testData/codeInsight/createSwitch/string.java
new file mode 100644
index 000000000000..aca5f90aa689
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/string.java
@@ -0,0 +1,10 @@
+class X {
+
+ void m() {
+
+ String s = getStr();
+ s<caret>
+
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/createSwitch/string_after.java b/java/java-tests/testData/codeInsight/createSwitch/string_after.java
new file mode 100644
index 000000000000..3acf5d1e5b59
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/createSwitch/string_after.java
@@ -0,0 +1,11 @@
+class X {
+
+ void m() {
+
+ String s = getStr();
+ switch (s) {<caret>
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java
index a7450bd6e3e4..16f89fd887cd 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/FinalFieldInit.java
@@ -236,9 +236,19 @@ class IDEA100237 {
}
final Object baz = new Object() {
- final int qux = <error descr="Variable 'bar' might not have been initialized">bar</error>.hashCode() + 1;
+ final int qux = bar.<error descr="Cannot resolve method 'hashCode()'">hashCode</error>() + 1;
};
}
+
+ static class Outer {
+ final String a;
+ class Inner {
+ String b = a;
+ }
+ Outer() {
+ a = "";
+ }
+ }
}
class StaticInitializerUsedInAnotherStaticField {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java
index 326c24bbbbf5..87891d0d5bc3 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java
@@ -1,19 +1,3 @@
-/*
- * Copyright 2000-2012 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.
- */
-
import java.io.*;
import java.util.*;
@@ -34,16 +18,7 @@ class UnsupportedFeatures {
<error descr="Incompatible types. Found: 'boolean', required: 'java.lang.Boolean'">Boolean b = true;</error>
<error descr="Incompatible types. Found: 'java.lang.Boolean', required: 'boolean'">boolean b1 = Boolean.TRUE;</error>
- try { Reader r = new FileReader("/dev/null"); }
- catch (<error descr="Multi-catches are not supported at this language level">FileNotFoundException | IOException e</error>) { e.printStackTrace(); }
-
- try <error descr="Try-with-resources are not supported at this language level">(Reader r = new FileReader("/dev/null"))</error> { }
-
- I i1 = <error descr="Method references are not supported at this language level">UnsupportedFeatures::m</error>;
- I i2 = <error descr="Lambda expressions are not supported at this language level">() -> { }</error>;
- }
-
- interface I {
- <error descr="Extension methods are not supported at this language level">default void m() { }</error>
+ java.lang.annotation.ElementType t = null;
+ switch (<error descr="Incompatible types. Found: 'java.lang.annotation.ElementType', required: 'byte, char, short or int'">t</error>) { }
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/EnumSynthetics.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/EnumSynthetics.java
new file mode 100644
index 000000000000..fa25bbff5ab4
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/EnumSynthetics.java
@@ -0,0 +1,8 @@
+import java.lang.annotation.ElementType;
+
+class EnumSynthetics {
+ void m() {
+ //ElementType[] values = ElementType.values();
+ ElementType type = ElementType.valueOf("TYPE");
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/IDEA61415.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/IDEA61415.java
new file mode 100644
index 000000000000..8f86c8ed4058
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/IDEA61415.java
@@ -0,0 +1,10 @@
+class Test {
+ Runnable r = new Runnable() {
+ <error descr="Modifier 'private' not allowed here">private</error> class Foo {}
+ @Override
+ public void run() {
+
+ }
+ };
+}
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/IDEA65473.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/IDEA65473.java
new file mode 100644
index 000000000000..13e19fe40572
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/IDEA65473.java
@@ -0,0 +1,13 @@
+
+class FirstClass {
+ public FirstClass(int i) {
+ }
+
+ public FirstClass() {
+ this(Point.FOO);
+ }
+
+ public class Point {
+ public static final int FOO = 0;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/UnsupportedFeatures7.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/UnsupportedFeatures7.java
index ac3eb042da5f..168b31bcf55a 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/UnsupportedFeatures7.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/UnsupportedFeatures7.java
@@ -41,6 +41,10 @@ class UnsupportedFeatures {
I i1 = <error descr="Method references are not supported at this language level">UnsupportedFeatures::m</error>;
I i2 = <error descr="Lambda expressions are not supported at this language level">() -> { }</error>;
+
+ switch (<error descr="Incompatible types. Found: 'java.lang.String', required: 'byte, char, short or int'">list.get(0)</error>) {
+ case "foo": break;
+ }
}
interface I {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/SwitchByInaccessibleEnum.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/SwitchByInaccessibleEnum.java
index 7cdd90fece61..70f2fa1656c1 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/SwitchByInaccessibleEnum.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/SwitchByInaccessibleEnum.java
@@ -13,7 +13,7 @@ interface A {
class D {
public static void f(A a) {
A.B b = a.getB();
- switch (<error descr="A.B.C is inaccessible here">b.c</error>) {
+ switch (<error descr="'A.B.C' is inaccessible here">b.c</error>) {
case SOME:
break;
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/CastObjectToIntJdk14.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/CastObjectToIntJdk14.java
new file mode 100644
index 000000000000..4dc0dae7765d
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/CastObjectToIntJdk14.java
@@ -0,0 +1,7 @@
+class Test {
+
+ Object getObj() {return null;}
+ {
+ int a = (int) getObj();
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java
new file mode 100644
index 000000000000..57b1c73999d9
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java
@@ -0,0 +1,15 @@
+import java.io.Serializable;
+import java.util.Set;
+
+class IdeaGenericsFail {
+
+ public IdeaGenericsFail(Set<Klass<? extends Serializable>> map) {
+ }
+
+ public static class Klass<T extends Serializable> {
+ }
+
+ public static void main(final Set<Klass<?>> map) {
+ new IdeaGenericsFail(map);
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118533.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118533.java
new file mode 100644
index 000000000000..56a140091dbe
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118533.java
@@ -0,0 +1,11 @@
+abstract class Test {
+
+ interface InputFormat<K, V> {
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Class<? extends InputFormat<?, ?>> getInputFormatClass(final Class<? extends InputFormat> aClass)
+ throws ClassNotFoundException {
+ return (Class<? extends InputFormat<?, ?>>) aClass;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118536.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118536.java
new file mode 100644
index 000000000000..b747456247fe
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118536.java
@@ -0,0 +1,10 @@
+import java.util.Comparator;
+
+class MyTest {
+ void foo(final Ordering<Comparable> natural){
+ compound(natural);
+ }
+ <U extends String> Ordering<U> compound(Comparator<? super U> secondaryComparator) { return null; }
+}
+abstract class Ordering <T> implements Comparator<T> {}
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java
new file mode 100644
index 000000000000..d3e018e64c34
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java
@@ -0,0 +1,16 @@
+import java.util.List;
+
+class Foo<T extends V,V> {
+ Foo(List<? extends T> l) {
+ }
+}
+class Bar {
+ void foo(Foo<String,String> foo) {}
+
+ void bar(List<String> l) {
+ foo<error descr="'foo(Foo<java.lang.String,java.lang.String>)' in 'Bar' cannot be applied to '(Foo<java.lang.String,java.lang.Object>)'">(new Foo<>(l))</error>;
+ foo<error descr="'foo(Foo<java.lang.String,java.lang.String>)' in 'Bar' cannot be applied to '(Foo<java.lang.String,java.lang.Object>)'">(f(l))</error>;
+ }
+
+ <T1 extends V1, V1> Foo<T1, V1> f(List<? extends T1> l) {return null;}
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java
new file mode 100644
index 000000000000..d2515eef82eb
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java
@@ -0,0 +1,15 @@
+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>;
+ }
+
+ void foo1(final FooBar<? super T> fooBar){
+ fooBar.supertype<error descr="'supertype(java.lang.Class<capture<? super T>>)' in 'FooBar' cannot be applied to '(java.lang.Class<java.lang.Iterable>)'">(Iterable.class)</error>;
+ }
+
+ void foo2(final FooBar<? extends T> fooBar){
+ fooBar.supertype<error descr="'supertype(java.lang.Class<? super capture<? extends T>>)' in 'FooBar' cannot be applied to '(java.lang.Class<java.lang.Iterable>)'">(Iterable.class)</error>;
+ }
+
+ void supertype(Class<? super T> superclass) {}
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java
new file mode 100644
index 000000000000..38580705a3c4
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java
@@ -0,0 +1,14 @@
+class A {}
+interface B {}
+
+class MyTest {
+ public <M extends A & B> M getInvokedMember() {
+ return null;
+ }
+}
+
+class Bar {
+ void f(MyTest myTest) {
+ B member = myTest.getInvokedMember();
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125800.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125800.java
new file mode 100644
index 000000000000..1ec56b8a6c52
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125800.java
@@ -0,0 +1,10 @@
+import java.util.List;
+
+abstract class Test {
+ abstract <T extends List<String> & Runnable> T list();
+
+ public void test()
+ {
+ for (String s : list()) {}
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125816.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125816.java
new file mode 100644
index 000000000000..e17d850a9106
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125816.java
@@ -0,0 +1,8 @@
+public enum State {
+ STATE1 {
+ State s = <error descr="It is illegal to access static member 'STATE2' from enum constructor or instance initializer">STATE2</error>;
+ },
+ STATE2 {
+ State s = <error descr="It is illegal to access static member 'STATE1' from enum constructor or instance initializer">STATE1</error>;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA24496.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA24496.java
new file mode 100644
index 000000000000..454e43d33f08
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA24496.java
@@ -0,0 +1,17 @@
+import java.util.List;
+import java.util.ArrayList;
+
+class GenericsError {
+
+ public <T> List<List<T>> method(List<T> list) {
+ List<List<T>> retVal = new ArrayList<List<T>>();
+ retVal.add(list);
+ return retVal;
+ }
+
+ public List<List<?>> otherMethod() {
+ List<?> list = null;
+ <error descr="Incompatible types. Found: 'java.util.List<java.util.List<capture<?>>>', required: 'java.util.List<java.util.List<?>>'">List<List<?>> result = method(list);</error>
+ return result;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57290.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57290.java
new file mode 100644
index 000000000000..1898d59e9316
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57290.java
@@ -0,0 +1,11 @@
+
+class A<T,S> {
+ class B{}
+}
+
+class C {
+ void foo(A<?,?>.B x){
+ bar<error descr="'bar(A<capture<?>,capture<?>>.B)' in 'C' cannot be applied to '(A<capture<?>,capture<?>>.B)'">(x)</error>;
+ }
+ <T> void bar(A<T,T>.B x){}
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57338.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57338.java
new file mode 100644
index 000000000000..06e25b11f772
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57338.java
@@ -0,0 +1,17 @@
+abstract class A {
+ abstract <T> void foo();
+}
+
+abstract class B extends A {
+ void foo()
+ {
+ this.<Integer>foo();
+ }
+}
+
+abstract class C {
+ void foo()
+ {
+ this.<error descr="Method 'foo()' does not have type parameters"><Integer></error>foo();
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57388.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57388.java
new file mode 100644
index 000000000000..9a5502a47700
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57388.java
@@ -0,0 +1,7 @@
+
+class B<T extends Cloneable> {}
+class A<T> {
+ A<B<? extends Cloneable>> foo(A<B<?>> x){
+ return x;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA58692.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA58692.java
new file mode 100644
index 000000000000..6571375f3fdc
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA58692.java
@@ -0,0 +1,20 @@
+class ExposeAnotherProblem {
+
+ class OneClass<T> {
+ public T get(){
+ return null;
+ }
+ }
+
+ class AnotherClass<T> {}
+
+
+ static <T, R extends OneClass<T>> R method1(AnotherClass<T> param) {
+ return null;
+ }
+
+ <E> E method2(AnotherClass<E> param){
+ return method1(param).get();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67578.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67578.java
new file mode 100644
index 000000000000..d2e602c6fdb2
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67578.java
@@ -0,0 +1,8 @@
+class X<T> { }
+
+class A<T, S extends X<T>> {}
+
+class C {
+ void foo(A<?, X<?>> a){ <error descr="Inferred type 'X<?>' for type parameter 'S' is not within its bound; should extend 'X<capture<?>>'">bar(a)</error>; }
+ <T, S extends X<T>> void bar(A<T, S> a){ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67600.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67600.java
new file mode 100644
index 000000000000..6f0e625e21c2
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67600.java
@@ -0,0 +1,24 @@
+abstract class A<T, S extends T>
+{
+ abstract S bar();
+ void foo(A<Runnable[], ? extends Cloneable[]> a){
+ <error descr="Incompatible types. Found: 'java.lang.Cloneable[]', required: 'java.lang.Runnable[]'">Runnable[] x = a.bar();</error>
+ }
+}
+
+abstract class AB<T, S extends T>
+{
+ abstract S bar();
+ void foo(AB<Runnable, ? extends Cloneable> a){
+ Runnable x = a.bar();
+ }
+}
+
+abstract class AC<T, S>
+{
+ abstract S bar();
+ void foo(AC<Runnable[], ? extends Cloneable[]> a){
+ <error descr="Incompatible types. Found: 'java.lang.Cloneable[]', required: 'java.lang.Runnable[]'">Runnable[] x = a.bar();</error>
+ }
+}
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParent.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParent.java
new file mode 100644
index 000000000000..49c8f5bbeaad
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/RawTypeFromParent.java
@@ -0,0 +1,18 @@
+import java.util.ArrayList;
+import java.util.List;
+
+class Foo<T> {
+
+ public void test(Foo parent) {
+ List<Foo> elements = getElements(parent);
+
+
+ for (<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Foo'">Foo foo : getElements(parent)</error>) {
+ System.out.println(foo);
+ }
+ }
+
+ public static <E extends Foo<E>> List<E> getElements(E parent) {
+ return new ArrayList<>();
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA125855.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA125855.java
new file mode 100644
index 000000000000..3021604f0768
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA125855.java
@@ -0,0 +1,18 @@
+
+import java.util.Collection;
+import java.util.List;
+
+class Test {
+
+ private static <E> void <warning descr="Private method 'x(java.util.Collection<E>)' is never used">x</warning>(Collection<E> collection) {
+ System.out.println(collection);
+ }
+
+ private static <E> void x(List<E> list) {
+ System.out.println(list);
+ }
+
+ public static void main(List list) {
+ Test.<Object[]>x(list);
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA118362.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA118362.java
new file mode 100644
index 000000000000..111a23a7e8d7
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA118362.java
@@ -0,0 +1,20 @@
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.stream.Collectors;
+
+class Test {
+ private static final String[] decimalStrings = {"1.1", "+1.25"};
+
+ {
+ Arrays.stream(decimalStrings).map(BigDecimal::new).reduce(BigDecimal::add).ifPresent(bd -> System.out.print("Sum is " + bd));
+ }
+
+ void foo(final ArrayList<Pair> points) {
+ points.stream().filter(p -> p.x > 0).collect(Collectors.toCollection(ArrayList::new));
+ }
+}
+
+class Pair {
+ int x;
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126056.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126056.java
new file mode 100644
index 000000000000..6cd13fd8df23
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA126056.java
@@ -0,0 +1,27 @@
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
+
+class StreamTest {
+ public class Foo {}
+
+ List<? super Foo> all = new ArrayList<>();
+
+ void foo(final Predicate<Object> predicate, final Stream<? super Foo> stream){
+ long the_count= stream.filter((a) -> predicate.test(a)).count();
+ }
+
+ void foo1(final Predicate<Object> predicate, final Stream<? extends Foo> stream){
+ long the_count= stream.filter((a) -> predicate.test(a)).count();
+ }
+
+ void foo2(final Predicate<Object> predicate, final Stream<Foo> stream){
+ long the_count= stream.filter((a) -> predicate.test(a)).count();
+ }
+
+}
+
+
+
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/IDEA126062.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/IDEA126062.java
new file mode 100644
index 000000000000..c8b023a2b38b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/IDEA126062.java
@@ -0,0 +1,12 @@
+import java.util.function.Consumer;
+class Pipeline<I, O> implements Consumer<I> {
+ @Override public final void accept(I input) {}
+
+ public <K> void then(Pipeline<O, K> pipeline, final Observable<O> observable) {
+ observable.subscribe(pipeline::accept);
+ }
+}
+
+interface Observable<T> {
+ void subscribe(Consumer<T> x);
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParameters.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParameters.java
new file mode 100644
index 000000000000..889b0a118252
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParameters.java
@@ -0,0 +1,15 @@
+// "Add missing annotation parameters - value3, value2, value1" "true"
+class Test {
+
+ @MyAnnotation(value3 = , value2 = , value1 = )
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value3();
+ String value2();
+ String value1();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParameters2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParameters2.java
new file mode 100644
index 000000000000..67886a6bb979
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParameters2.java
@@ -0,0 +1,16 @@
+// "Add missing annotation parameters - value4, value1" "true"
+class Test {
+
+ @MyAnnotation(value4 = , value3 = "", value2 = "", value1 = )
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value4();
+ String value3();
+ String value2();
+ String value1();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParametersWithoutOrder.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParametersWithoutOrder.java
new file mode 100644
index 000000000000..414eb2bf7f35
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterFewParametersWithoutOrder.java
@@ -0,0 +1,16 @@
+// "Add missing annotation parameters - value4, value1" "true"
+class Test {
+
+ @MyAnnotation(value2 = "", value3 = "", value4 = , value1 = )
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value4();
+ String value3();
+ String value2();
+ String value1();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterSingleParameter.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterSingleParameter.java
new file mode 100644
index 000000000000..14f71e51a151
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterSingleParameter.java
@@ -0,0 +1,13 @@
+// "Add missing annotation parameter 'value'" "true"
+class Test {
+
+ @MyAnnotation()
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterValueTyping.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterValueTyping.java
new file mode 100644
index 000000000000..d6efb38f0792
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/afterValueTyping.java
@@ -0,0 +1,14 @@
+class Test {
+
+ @MyAnnotation(value3 = "value33", value2 = "value22", value1 = "value11")
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value3();
+ String value2();
+ String value1();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParameters.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParameters.java
new file mode 100644
index 000000000000..d8e6b5afbe7a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParameters.java
@@ -0,0 +1,15 @@
+// "Add missing annotation parameters - value3, value2, value1" "true"
+class Test {
+
+ @MyAnnotati<caret>on
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value3();
+ String value2();
+ String value1();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParameters2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParameters2.java
new file mode 100644
index 000000000000..bb0ad03903bf
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParameters2.java
@@ -0,0 +1,16 @@
+// "Add missing annotation parameters - value4, value1" "true"
+class Test {
+
+ @MyAnnotati<caret>on(value3 = "", value2 = "")
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value4();
+ String value3();
+ String value2();
+ String value1();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParametersWithoutOrder.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParametersWithoutOrder.java
new file mode 100644
index 000000000000..4f210601e287
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeFewParametersWithoutOrder.java
@@ -0,0 +1,16 @@
+// "Add missing annotation parameters - value4, value1" "true"
+class Test {
+
+ @MyAnnotati<caret>on(value2 = "", value3 = "")
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value4();
+ String value3();
+ String value2();
+ String value1();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeParameterWithDefaultValue.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeParameterWithDefaultValue.java
new file mode 100644
index 000000000000..15862bc3f427
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeParameterWithDefaultValue.java
@@ -0,0 +1,13 @@
+// "Add missing annotation parameter 'value'" "false"
+class Test {
+
+ @MyAnnotati<caret>on
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value() default "";
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeSingleParameter.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeSingleParameter.java
new file mode 100644
index 000000000000..a627372e6db8
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeSingleParameter.java
@@ -0,0 +1,13 @@
+// "Add missing annotation parameter 'value'" "true"
+class Test {
+
+ @MyAnnotati<caret>on
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeValueTyping.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeValueTyping.java
new file mode 100644
index 000000000000..139f523bff7a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMissingRequiredAnnotationParameters/beforeValueTyping.java
@@ -0,0 +1,14 @@
+class Test {
+
+ @MyAnnotati<caret>on
+ void m() {
+
+ }
+
+ @interface MyAnnotation {
+ String value3();
+ String value2();
+ String value1();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeRaw.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeRaw.java
new file mode 100644
index 000000000000..e9389d73da1b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeRaw.java
@@ -0,0 +1,24 @@
+// "Replace with lambda" "false"
+class DbTableBinder {
+
+ public Binder build() {
+ return new Bin<caret>der<DbTable>() {
+ public void bind(A q, DbTable dbTable) {
+ q.bind("name", dbTable.name);
+ }
+ };
+ }
+}
+
+class DbTable {
+ String name;
+}
+
+interface Binder <ArgType> {
+ void bind(A<?> sqlStatement, ArgType argType);
+}
+
+interface A<P> {
+ void bind(String s, String p);
+}
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/afterSameParameterSimpleNames.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/afterSameParameterSimpleNames.java
index 3f64bdcda609..3b65e88d8bb8 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/afterSameParameterSimpleNames.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/afterSameParameterSimpleNames.java
@@ -3,7 +3,7 @@ class A {
private final int _field;
private final int field;
A(int field, int field1) {
- _field = field;
+ this._field = field;
this.field = field1;
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/afterIfNoBlock.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/afterIfNoBlock.java
new file mode 100644
index 000000000000..19fcc59c4a64
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/afterIfNoBlock.java
@@ -0,0 +1,9 @@
+// "Remove variable 'foo'" "true"
+class a {
+ private int refactorTest(int i) {
+ int bar = 0;
+ if (i >0) ;
+ return bar;
+ }
+}
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/beforeIfNoBlock.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/beforeIfNoBlock.java
new file mode 100644
index 000000000000..5648eaec5c28
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/beforeIfNoBlock.java
@@ -0,0 +1,10 @@
+// "Remove variable 'foo'" "true"
+class a {
+ private int refactorTest(int i) {
+ int f<caret>oo = 0;
+ int bar = 0;
+ if (i >0) foo++;
+ return bar;
+ }
+}
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterSillyAssignment.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterSillyAssignment.java
new file mode 100644
index 000000000000..8b0859f170f3
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterSillyAssignment.java
@@ -0,0 +1,7 @@
+// "Remove redundant assignment" "true"
+class A {
+ {
+ String ss = "";
+
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeSillyAssignment.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeSillyAssignment.java
new file mode 100644
index 000000000000..81147747a999
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeSillyAssignment.java
@@ -0,0 +1,8 @@
+// "Remove redundant assignment" "true"
+class A {
+ {
+ String ss = "";
+
+ s<caret>s = ss;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/afterFewParameters.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/afterFewParameters.java
new file mode 100644
index 000000000000..868cf5e74f5c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/afterFewParameters.java
@@ -0,0 +1,14 @@
+// "Wrap 4th parameter using 'Arrays.asList'" "true"
+import java.util.Arrays;
+import java.util.List;
+
+public class Test {
+
+ void list(int i, int j, int k, List<String> l, String s) {
+
+ }
+
+ void m(String[] a) {
+ list(1, 2, 3, Arrays.asList(a), "asd");
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/afterSingleParameter.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/afterSingleParameter.java
new file mode 100644
index 000000000000..9544df9a4c52
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/afterSingleParameter.java
@@ -0,0 +1,14 @@
+// "Wrap using 'Arrays.asList'" "true"
+import java.util.Arrays;
+import java.util.List;
+
+public class Test {
+
+ void list(List<String> l) {
+
+ }
+
+ void m(String[] a) {
+ list(Arrays.asList(a));
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeFewParameters.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeFewParameters.java
new file mode 100644
index 000000000000..92ed4293c63b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeFewParameters.java
@@ -0,0 +1,13 @@
+// "Wrap 4th parameter using 'Arrays.asList'" "true"
+import java.util.List;
+
+public class Test {
+
+ void list(int i, int j, int k, List<String> l, String s) {
+
+ }
+
+ void m(String[] a) {
+ list(1, 2, 3, a<caret>, "asd");
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeNotConvertible.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeNotConvertible.java
new file mode 100644
index 000000000000..8a8e0153aed4
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeNotConvertible.java
@@ -0,0 +1,13 @@
+// "Wrap using 'Arrays.asList'" "false"
+import java.util.LinkedList;
+
+public class Test {
+
+ void list(LinkedList<String> l) {
+
+ }
+
+ void m(String[] a) {
+ list(a<caret>);
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeNotConvertible2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeNotConvertible2.java
new file mode 100644
index 000000000000..c27ca44463db
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeNotConvertible2.java
@@ -0,0 +1,13 @@
+// "Wrap using 'Arrays.asList'" "false"
+import java.util.LinkedList;
+
+public class Test {
+
+ void list(LinkedList<String> l) {
+
+ }
+
+ void m(Long[] a) {
+ list(a<caret>);
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeSingleParameter.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeSingleParameter.java
new file mode 100644
index 000000000000..fcc446717771
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/wrapArrayToArraysAsList/beforeSingleParameter.java
@@ -0,0 +1,13 @@
+// "Wrap using 'Arrays.asList'" "false"
+import java.util.List;
+
+public class Test {
+
+ void list(List<String> l) {
+
+ }
+
+ void m(String[] a) {
+ list(a<caret>);
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterBoolean.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterBoolean.java
new file mode 100644
index 000000000000..9b101a0a3f08
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterBoolean.java
@@ -0,0 +1,13 @@
+// "Surround annotation parameter value with quotes" "true"
+class X {
+
+ @interface MyAnnotation {
+ String value();
+ }
+
+ @MyAnnotation("true")
+ void m() {
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterChar.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterChar.java
new file mode 100644
index 000000000000..7e4931578a58
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterChar.java
@@ -0,0 +1,13 @@
+// "Surround annotation parameter value with quotes" "true"
+class X {
+
+ @interface MyAnnotation {
+ String value();
+ }
+
+ @MyAnnotation(value= "x")
+ void m() {
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterChar2.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterChar2.java
new file mode 100644
index 000000000000..6167c3873f85
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterChar2.java
@@ -0,0 +1,13 @@
+// "Surround annotation parameter value with quotes" "true"
+class X {
+
+ @interface MyAnnotation {
+ String value();
+ }
+
+ @MyAnnotation(value= "\n")
+ void m() {
+
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterLong.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterLong.java
new file mode 100644
index 000000000000..b434e4774a82
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/afterLong.java
@@ -0,0 +1,15 @@
+// "Surround annotation parameter value with quotes" "true"
+class X {
+
+ @interface MyAnnotation {
+ int value0();
+ String value();
+ long value1();
+ }
+
+ @MyAnnotation(value0 = 1, value= "1000L", value1 = 10L)
+ void m() {
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeBoolean.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeBoolean.java
new file mode 100644
index 000000000000..04bba2333bd8
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeBoolean.java
@@ -0,0 +1,13 @@
+// "Surround annotation parameter value with quotes" "true"
+class X {
+
+ @interface MyAnnotation {
+ String value();
+ }
+
+ @MyAnnotation(tr<caret>ue)
+ void m() {
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeChar.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeChar.java
new file mode 100644
index 000000000000..92dc9c53b345
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeChar.java
@@ -0,0 +1,13 @@
+// "Surround annotation parameter value with quotes" "true"
+class X {
+
+ @interface MyAnnotation {
+ String value();
+ }
+
+ @MyAnnotation(value='<caret>x')
+ void m() {
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeChar2.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeChar2.java
new file mode 100644
index 000000000000..1f988b4e4f91
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeChar2.java
@@ -0,0 +1,13 @@
+// "Surround annotation parameter value with quotes" "true"
+class X {
+
+ @interface MyAnnotation {
+ String value();
+ }
+
+ @MyAnnotation(value='<caret>\n')
+ void m() {
+
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeLong.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeLong.java
new file mode 100644
index 000000000000..9e8ee1565404
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeLong.java
@@ -0,0 +1,15 @@
+// "Surround annotation parameter value with quotes" "true"
+class X {
+
+ @interface MyAnnotation {
+ int value0();
+ String value();
+ long value1();
+ }
+
+ @MyAnnotation(value0 = 1, value=1<caret>000L, value1 = 10L)
+ void m() {
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable.java
new file mode 100644
index 000000000000..a03677e097a8
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable.java
@@ -0,0 +1,10 @@
+// "Surround annotation parameter value with quotes" "false"
+class X {
+
+ void m() {
+
+ String s = 123<caret>45;
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable2.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable2.java
new file mode 100644
index 000000000000..c5d5fd8115be
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable2.java
@@ -0,0 +1,13 @@
+// "Surround annotation parameter value with quotes" "false"
+class X {
+
+ @interface MyAnnotation {
+ int value();
+ }
+
+ @MyAnnotation(tr<caret>ue)
+ void m() {
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable3.java b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable3.java
new file mode 100644
index 000000000000..c04ce8f94a7c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/surroundWithQuotesStringAnnotationParameterValue/beforeNotAvailable3.java
@@ -0,0 +1,13 @@
+// "Surround annotation parameter value with quotes" "false"
+class X {
+
+ @interface MyAnnotation {
+ String c();
+ }
+
+ @MyAnnotation(tr<caret>ue)
+ void m() {
+
+ }
+
+}
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/assert/beforeAssignment.java b/java/java-tests/testData/codeInsight/template/postfix/templates/assert/beforeAssignment.java
new file mode 100644
index 000000000000..451aca185cdf
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/assert/beforeAssignment.java
@@ -0,0 +1,7 @@
+public class Foo {
+ void m(boolean b) {
+
+ b.assert<caret>
+ value = null;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/assert/beforeAssignment_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/assert/beforeAssignment_after.java
new file mode 100644
index 000000000000..e5ecf0627526
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/assert/beforeAssignment_after.java
@@ -0,0 +1,7 @@
+public class Foo {
+ void m(boolean b) {
+
+ assert b;<caret>
+ value = null;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/assert/simpleWithSemicolon.java b/java/java-tests/testData/codeInsight/template/postfix/templates/assert/simpleWithSemicolon.java
new file mode 100644
index 000000000000..7d92853b4e95
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/assert/simpleWithSemicolon.java
@@ -0,0 +1,9 @@
+public class Foo {
+ void m() {
+ is();.assert<caret>
+ }
+
+ boolean is() {
+ return false;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/assert/simpleWithSemicolon_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/assert/simpleWithSemicolon_after.java
new file mode 100644
index 000000000000..11e8bdefe6d0
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/assert/simpleWithSemicolon_after.java
@@ -0,0 +1,9 @@
+public class Foo {
+ void m() {
+ assert is();<caret>
+ }
+
+ boolean is() {
+ return false;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/if/beforeAssignment.java b/java/java-tests/testData/codeInsight/template/postfix/templates/if/beforeAssignment.java
new file mode 100644
index 000000000000..30ce3f4060b7
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/if/beforeAssignment.java
@@ -0,0 +1,7 @@
+public class Foo {
+ void m(boolean b) {
+
+ b.if<caret>
+ value = null;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/if/beforeAssignment_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/if/beforeAssignment_after.java
new file mode 100644
index 000000000000..342bfe01434a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/if/beforeAssignment_after.java
@@ -0,0 +1,9 @@
+public class Foo {
+ void m(boolean b) {
+
+ if (b) {
+ <caret>
+ }
+ value = null;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/if/simpleWithSemicolon.java b/java/java-tests/testData/codeInsight/template/postfix/templates/if/simpleWithSemicolon.java
new file mode 100644
index 000000000000..4d67eaa05b0f
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/if/simpleWithSemicolon.java
@@ -0,0 +1,9 @@
+public class Foo {
+ void m() {
+ is();.if<caret>
+ }
+
+ boolean is() {
+ return false;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/if/simpleWithSemicolon_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/if/simpleWithSemicolon_after.java
new file mode 100644
index 000000000000..a05e92eb1136
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/if/simpleWithSemicolon_after.java
@@ -0,0 +1,11 @@
+public class Foo {
+ void m() {
+ if (is()) {
+ <caret>
+ }
+ }
+
+ boolean is() {
+ return false;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/throw/beforeAssignment.java b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/beforeAssignment.java
new file mode 100644
index 000000000000..689f16d7dc02
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/beforeAssignment.java
@@ -0,0 +1,9 @@
+import java.lang.Exception;
+
+public class Foo {
+ void m(Exception e) {
+
+ e.throw<caret>
+ value = null
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/throw/beforeAssignment_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/beforeAssignment_after.java
new file mode 100644
index 000000000000..e6dbc1d08a27
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/beforeAssignment_after.java
@@ -0,0 +1,9 @@
+import java.lang.Exception;
+
+public class Foo {
+ void m(Exception e) {
+
+ throw e;<caret>
+ value = null
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/throw/notThrowable_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/notThrowable_after.java
index 900e720607eb..9ffb89507938 100644
--- a/java/java-tests/testData/codeInsight/template/postfix/templates/throw/notThrowable_after.java
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/notThrowable_after.java
@@ -1,5 +1,5 @@
public class Foo {
void m(Object o) {
- throw o;<caret>
+ o.throw <caret>
}
} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/throw/simpleWithSemicolon.java b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/simpleWithSemicolon.java
new file mode 100644
index 000000000000..75267946a8a6
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/simpleWithSemicolon.java
@@ -0,0 +1,7 @@
+import java.lang.RuntimeException;
+
+public class Foo {
+ void m() {
+ new RuntimeException("error");.throw<caret>
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/throw/simpleWithSemicolon_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/simpleWithSemicolon_after.java
new file mode 100644
index 000000000000..a0219e42ffc7
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/throw/simpleWithSemicolon_after.java
@@ -0,0 +1,7 @@
+import java.lang.RuntimeException;
+
+public class Foo {
+ void m() {
+ throw new RuntimeException("error");
+ }
+} \ No newline at end of file