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/clsHighlighting/IDEA121866.java5
-rw-r--r--java/java-tests/testData/codeInsight/clsHighlighting/libs/IDEA121866.jarbin0 -> 373 bytes
-rw-r--r--java/java-tests/testData/codeInsight/completion/smartType/DiamondsInsideMethodCall-out.java12
-rw-r--r--java/java-tests/testData/codeInsight/completion/smartType/DiamondsInsideMethodCall.java12
-rw-r--r--java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionNameSubstitution-out.java9
-rw-r--r--java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionNameSubstitution.java9
-rw-r--r--java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionSingleParam-out.java9
-rw-r--r--java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionSingleParam.java9
-rw-r--r--java/java-tests/testData/codeInsight/completion/smartType/InstanceofedInsideAnonymous-out.java2
-rw-r--r--java/java-tests/testData/codeInsight/completion/variables/locals/TestResult4.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/TryWithResources.java29
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEA91626.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/IDEA97294.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/Varargs.java26
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/IncorporationWithEqualsBoundsSubstitution.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/OuterCallConflictResolution.java23
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/VarargsOnNonPertinentPlace.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityRawGenerics.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityReturnValueResolution1.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ConflictResolution.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/BothVarargs.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA121884.java17
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA121999.java21
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/MostSpecificForSameFunctionalTypes.java33
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NestedLambdaSpecifics.java19
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NestedVarargs.java46
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA118965comment.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA121315.java22
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/AmbiguityVarargs.java20
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/ExactMethodReferencePertinentToApplicabilityCheck.java30
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/RawInnerClassQualifier.java26
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/SuperClassPotentiallyApplicableMembers.java39
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterConflict.java15
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterImportPresent.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterImportPresent2.java9
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterOwnMember.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleImportPresent.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleIncompleteCode.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleMethod.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleSuperMethod.java17
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeConflict.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeImportPresent.java9
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeImportPresent2.java9
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeOwnMember.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleImportPresent.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleIncompleteCode.java6
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleMethod.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleSuperMethod.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/afterLambdaInternal.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/beforeLambdaExternal.java9
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/beforeLambdaInternal.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoArray.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoPrimitive.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoRefType.java5
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoTypeParam.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoValued.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoWildcard.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoPrimitive.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoRefType.java5
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoTypeParam.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoValued.java12
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoWildcard.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/implementMethods/afterTypeAnnotated.java17
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/implementMethods/beforeTypeAnnotated.java13
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4junit.java2
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterCollectArrayListComment.java16
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterCollectArrayListNonTrivialInitializer.java20
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterNormalComments.java11
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeCollectArrayListComment.java18
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeCollectArrayListNonTrivialInitializer.java21
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeNormalComments.java13
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/cast/insideString.java5
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/cast/insideString_after.java5
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/cast/singleArgument.java5
-rw-r--r--java/java-tests/testData/codeInsight/template/postfix/templates/cast/singleArgument_after.java5
77 files changed, 741 insertions, 183 deletions
diff --git a/java/java-tests/testData/codeInsight/clsHighlighting/IDEA121866.java b/java/java-tests/testData/codeInsight/clsHighlighting/IDEA121866.java
new file mode 100644
index 000000000000..fe3235c55df9
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/clsHighlighting/IDEA121866.java
@@ -0,0 +1,5 @@
+class IDEA121866 {
+ {
+ A<String> a = new A<>();
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/clsHighlighting/libs/IDEA121866.jar b/java/java-tests/testData/codeInsight/clsHighlighting/libs/IDEA121866.jar
new file mode 100644
index 000000000000..0151e3545391
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/clsHighlighting/libs/IDEA121866.jar
Binary files differ
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/DiamondsInsideMethodCall-out.java b/java/java-tests/testData/codeInsight/completion/smartType/DiamondsInsideMethodCall-out.java
new file mode 100644
index 000000000000..f8768f665909
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/smartType/DiamondsInsideMethodCall-out.java
@@ -0,0 +1,12 @@
+class A<T> {
+ A(T... t) {
+ }
+
+ {
+ bar(new A<>(<caret>) );
+ }
+
+ <T> void bar(A<T> s) {}
+
+
+}
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/DiamondsInsideMethodCall.java b/java/java-tests/testData/codeInsight/completion/smartType/DiamondsInsideMethodCall.java
new file mode 100644
index 000000000000..9e776bb6baba
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/smartType/DiamondsInsideMethodCall.java
@@ -0,0 +1,12 @@
+class A<T> {
+ A(T... t) {
+ }
+
+ {
+ bar(new <caret> );
+ }
+
+ <T> void bar(A<T> s) {}
+
+
+}
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionNameSubstitution-out.java b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionNameSubstitution-out.java
new file mode 100644
index 000000000000..5412eabcf355
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionNameSubstitution-out.java
@@ -0,0 +1,9 @@
+interface I<T> {
+ void m(T t);
+}
+
+class Test {
+ public static void main(String[] args) {
+ I<String> i = s -> <caret>
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionNameSubstitution.java b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionNameSubstitution.java
new file mode 100644
index 000000000000..6e57fe289d79
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionNameSubstitution.java
@@ -0,0 +1,9 @@
+interface I<T> {
+ void m(T t);
+}
+
+class Test {
+ public static void main(String[] args) {
+ I<String> i = <caret>
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionSingleParam-out.java b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionSingleParam-out.java
new file mode 100644
index 000000000000..96fd5f16074b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionSingleParam-out.java
@@ -0,0 +1,9 @@
+interface I {
+ void m(int x);
+}
+
+class Test {
+ public static void main(String[] args) {
+ I i = x -> <caret>
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionSingleParam.java b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionSingleParam.java
new file mode 100644
index 000000000000..7de98c3770c7
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPositionSingleParam.java
@@ -0,0 +1,9 @@
+interface I {
+ void m(int x);
+}
+
+class Test {
+ public static void main(String[] args) {
+ I i = <caret>
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/smartType/InstanceofedInsideAnonymous-out.java b/java/java-tests/testData/codeInsight/completion/smartType/InstanceofedInsideAnonymous-out.java
index 3cfb17dfc9a6..7b4d91ff6e20 100644
--- a/java/java-tests/testData/codeInsight/completion/smartType/InstanceofedInsideAnonymous-out.java
+++ b/java/java-tests/testData/codeInsight/completion/smartType/InstanceofedInsideAnonymous-out.java
@@ -1,6 +1,6 @@
class C{
{
- Object o;
+ final Object o;
if (o instanceof Foo) {
new Runnable() {
public void run() {
diff --git a/java/java-tests/testData/codeInsight/completion/variables/locals/TestResult4.java b/java/java-tests/testData/codeInsight/completion/variables/locals/TestResult4.java
index cc417f518b5d..fa9a5487bedd 100644
--- a/java/java-tests/testData/codeInsight/completion/variables/locals/TestResult4.java
+++ b/java/java-tests/testData/codeInsight/completion/variables/locals/TestResult4.java
@@ -10,7 +10,7 @@ package codeInsight.completion.variables.locals;
public class TestSource4 {
int aaa = 0;
public static void foo(){
- int abc = 0;
+ final int abc = 0;
class Inner1{
int sbe=abc<caret>
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/TryWithResources.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/TryWithResources.java
index b21f42ccaf4c..289dc6167f68 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/TryWithResources.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/TryWithResources.java
@@ -1,18 +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.
- */
class C {
static class E extends Exception { }
static class E1 extends E { }
@@ -25,7 +10,15 @@ class C {
@Override public void close() throws E3 { }
}
- static interface I extends AutoCloseable { }
+ interface I extends AutoCloseable { }
+
+ interface Gen<E extends Exception> extends AutoCloseable {
+ @Override void close() throws E;
+
+ class Impl implements Gen<E2> {
+ @Override public void close() throws E2 { }
+ }
+ }
void m1() {
try (MyResource r = new MyResource()) { r.doSomething(); }
@@ -90,4 +83,8 @@ class C {
MyResource r;
try (MyResource r1 = <error descr="Variable 'r' might not have been initialized">r</error>) { }
}
+
+ void m5() {
+ try (<error descr="Unhandled exception from auto-closeable resource: C.E2">Gen<E2> gen = new Gen.Impl()</error>) { }
+ }
} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEA91626.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEA91626.java
index ff29729bc977..d8db681dd0de 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEA91626.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEA91626.java
@@ -11,7 +11,7 @@ class Test {
}
static void foo2(final A<? extends Integer> bar) {
- bar._<error descr="'_(capture<? extends java.lang.Integer>...)' in 'Test.A' cannot be applied to '(java.lang.String)'">("")</error>;
+ bar._<error descr="Cannot resolve method '_(java.lang.String)'">("")</error>;
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/IDEA97294.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/IDEA97294.java
index 04fd969b5309..525afaa530e0 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/IDEA97294.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/IDEA97294.java
@@ -13,12 +13,12 @@ class SortedOp<T> implements StatefulOp<T, T> {
}
}
-class Usage<T> {
- public <E, S extends BaseStream<E>> S pipeline(IntermediateOp<T, E> newOp) { return null; }
- public <R> R pipeline(TerminalOp<T, R> terminal) { return null;}
+class Usage<Ts> {
+ public <E, S extends BaseStream<E>> S pipeline(IntermediateOp<Ts, E> newOp) { return null; }
+ public <R> R pipeline(TerminalOp<Ts, R> terminal) { return null;}
- public Stream<T> sorted(Comparator<? super T> comparator) {
+ public Stream<Ts> sorted(Comparator<? super Ts> comparator) {
return pipeline(new SortedOp<>(comparator));
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/Varargs.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/Varargs.java
new file mode 100644
index 000000000000..2826e5802e91
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/Varargs.java
@@ -0,0 +1,26 @@
+class A<T> {
+ A(T... t) {
+ }
+
+ {
+ A<String> a = new A<>("a", "b");
+ foo(new A<>("", ""));
+ bar(new A<>("", ""));
+ bar(new A<>(get()));
+ //bar(new A<>(get( ), ""));
+ }
+
+ void foo(A<String> s) {}
+ <T> void bar(A<T> s) {}
+
+ <K> K get() {return null;}
+
+ <M> A<M> s(M... m) {
+ return null;
+ }
+
+ {
+ bar(s(get()));
+ bar(s(get(), ""));
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/IncorporationWithEqualsBoundsSubstitution.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/IncorporationWithEqualsBoundsSubstitution.java
new file mode 100644
index 000000000000..5f85bc0d79eb
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/IncorporationWithEqualsBoundsSubstitution.java
@@ -0,0 +1,14 @@
+abstract class Test {
+ abstract <Tf extends String> Tf foo(Class<Tf> c);
+ abstract <Tf1> Tf1 foo1(Class<Tf1> c);
+
+ abstract <U> Class<? extends U> bar(Class<U> clazz);
+ abstract <U1> Class<U1> bar1(Class<U1> clazz);
+
+ {
+ foo(bar(String.class));
+ foo(bar1(String.class));
+ foo1(bar(String.class));
+ foo1(bar1(String.class));
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/OuterCallConflictResolution.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/OuterCallConflictResolution.java
new file mode 100644
index 000000000000..dd04a51b2703
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/OuterCallConflictResolution.java
@@ -0,0 +1,23 @@
+import java.util.*;
+
+class Test {
+
+
+ void m(Runnable p) { }
+ void m(List<Runnable> p) { }
+
+ {
+ m(foo());
+ m<error descr="Cannot resolve method 'm(java.lang.Object)'">(bar())</error>;
+ }
+
+ <T> List<T> foo() {
+ return null;
+ }
+
+ <T> T bar() {
+ return null;
+ }
+
+
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/VarargsOnNonPertinentPlace.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/VarargsOnNonPertinentPlace.java
new file mode 100644
index 000000000000..4d10bd47b5eb
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/graphInference/VarargsOnNonPertinentPlace.java
@@ -0,0 +1,8 @@
+abstract class Im {
+ public static final Class[] EMPTY_CLASS_ARRAY = new Class[0];
+ public abstract <T> T createProxy(final Class<T> superClass, final Class... otherInterfaces);
+
+ void f(Class<?> implementation, Class rawType, boolean isInterface) {
+ createProxy(implementation, isInterface ? new Class[]{rawType} : EMPTY_CLASS_ARRAY);
+ }
+}
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 6c664dd9e65a..595787704437 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(I1)' and 'AmbiguityRawGenerics.foo(I2)' match">(()-> { throw new RuntimeException(); })</error>;
+ foo<error descr="Ambiguous method call: both 'AmbiguityRawGenerics.foo(I)' and 'AmbiguityRawGenerics.foo(I1)' match">(()-> { throw new RuntimeException(); })</error>;
}
} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityReturnValueResolution1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityReturnValueResolution1.java
index fab979466120..a6abf3db299a 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityReturnValueResolution1.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/AmbiguityReturnValueResolution1.java
@@ -1,4 +1,4 @@
-public class Test {
+class Test {
interface II {
int _();
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ConflictResolution.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ConflictResolution.java
index 2c39efa13400..0cc3741e0f61 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ConflictResolution.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/ConflictResolution.java
@@ -1,7 +1,7 @@
class Demo {
public void f1() {
- f2<error descr="'f2()' in 'Demo' cannot be applied to '(int, <lambda expression>)'">(2, input -> input)</error>;
+ f2(2, <error descr="Target type of a lambda conversion must be an interface">input -> input</error>);
}
public void f2() {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/BothVarargs.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/BothVarargs.java
new file mode 100644
index 000000000000..c4cfbcdd426c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/BothVarargs.java
@@ -0,0 +1,14 @@
+import java.util.List;
+
+abstract class StreamMain {
+ public abstract <T> Iterable<T> concat(final Iterable<? extends T>... iterables);
+ public abstract <T> Iterable<T> concat(final List<? extends T>... iterables);
+
+
+ public final List<String> errorFixesToShow = null;
+ public final List<String> inspectionFixesToShow = null;
+
+ {
+ concat(errorFixesToShow, inspectionFixesToShow);
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA121884.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA121884.java
new file mode 100644
index 000000000000..e823de324ef5
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA121884.java
@@ -0,0 +1,17 @@
+class Main {
+ interface MyCall {
+ void call(int n);
+ }
+ interface MyCallRet {
+ int call(int n);
+ }
+ public static void caller(MyCall c) {
+ c.call(2);
+ }
+ public static void caller(MyCallRet c) {
+ c.call(3);
+ }
+ public static void main(String[] args) {
+ caller( (int n) -> { System.out.println(" " + n); } );
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA121999.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA121999.java
new file mode 100644
index 000000000000..79994326c61a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/IDEA121999.java
@@ -0,0 +1,21 @@
+import java.util.function.Supplier;
+
+class LambdaTest {
+
+ static {
+ int <warning descr="Variable 'i' is never used">i</warning> = doSync(() -> foo());
+ int <warning descr="Variable 'i1' is never used">i1</warning> = doSync(LambdaTest::foo);
+ }
+
+ public static <T> T doSync(Supplier<T> <warning descr="Parameter 'block' is never used">block</warning>) {
+ return null;
+ }
+
+ public static void doSync(Runnable <warning descr="Parameter 'block' is never used">block</warning>) {
+ }
+
+ public static int foo() {
+ return 0;
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/MostSpecificForSameFunctionalTypes.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/MostSpecificForSameFunctionalTypes.java
new file mode 100644
index 000000000000..14cba01e1550
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/MostSpecificForSameFunctionalTypes.java
@@ -0,0 +1,33 @@
+abstract class HighlightTestInfo {
+ protected final String[] filePaths;
+ public HighlightTestInfo(Disposable <warning descr="Parameter 'buf' is never used">buf</warning>, String... filePaths) {
+ this.filePaths = filePaths;
+ }
+
+ protected abstract HighlightTestInfo doTest();
+}
+
+class StreamMain {
+ private Disposable <warning descr="Private field 'testRootDisposable' is never assigned">testRootDisposable</warning>;
+
+ public HighlightTestInfo testFile(String... filePath) {
+ return new HighlightTestInfo(getTestRootDisposable(), filePath) {
+ public HighlightTestInfo doTest() {
+ return this;
+ }
+ };
+ }
+
+ public Disposable getTestRootDisposable() {
+ return testRootDisposable;
+ }
+}
+
+interface Disposable {
+ void dispose();
+
+ interface Parent extends Disposable {
+ void beforeTreeDispose();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NestedLambdaSpecifics.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NestedLambdaSpecifics.java
new file mode 100644
index 000000000000..be47ffbc83b8
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NestedLambdaSpecifics.java
@@ -0,0 +1,19 @@
+class Test {
+
+ interface A<T> {
+ T a();
+ }
+
+ interface B<T> {
+ T b();
+ }
+
+ private void m(A<Integer> <warning descr="Parameter 'a' is never used">a</warning>) { }
+ private void <warning descr="Private method 'm(Test.B<java.lang.String>)' is never used">m</warning>(B<String> <warning descr="Parameter 'b' is never used">b</warning>) { }
+
+ {
+ m((() -> 42));
+ m(true ? () -> 42 : () -> 42);
+ m(true ? null : (() -> 42));
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NestedVarargs.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NestedVarargs.java
new file mode 100644
index 000000000000..55f2e00f76ba
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NestedVarargs.java
@@ -0,0 +1,46 @@
+import java.util.List;
+
+abstract class StreamMain {
+ public abstract <T> Iterable<T> concat(final Iterable<? extends T>... iterables);
+ public abstract <T> Iterable<T> concat(final List<? extends T>... iterables);
+
+ public final List<String> errorFixesToShow = null;
+ public final List<String> inspectionFixesToShow = null;
+
+ void foo() {
+ exists(concat(errorFixesToShow, inspectionFixesToShow), "");
+ }
+
+ public abstract <T> boolean exists(T[] iterable, T t);
+ public abstract <T> boolean exists(Iterable<T> iterable, T t);
+
+}
+
+
+abstract class StreamMainComplexSecendArgument {
+ public abstract <T> Iterable<T> concat(final Iterable<? extends T>... iterables);
+ public abstract <T> Iterable<T> concat(final List<? extends T>... iterables);
+
+
+ public final List<String> errorFixesToShow = null;
+ public final List<String> inspectionFixesToShow = null;
+
+ void foo() {
+ Condition<String> condition = new Condition<String>() {
+ @Override
+ public boolean value(String s) {
+ return false;
+ }
+ };
+ exists(concat(errorFixesToShow, inspectionFixesToShow), condition);
+ }
+
+ public abstract <T> boolean exists(T[] iterable, Condition<T> condition);
+
+ public abstract <T> boolean exists(Iterable<T> iterable, Condition<T> condition);
+
+
+ interface Condition<T> {
+ boolean value(T t);
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA118965comment.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA118965comment.java
new file mode 100644
index 000000000000..501e5f8d51cc
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA118965comment.java
@@ -0,0 +1,13 @@
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+class IDEA118965 {
+ {
+ Stream<String> words = Arrays.asList("one", "one", "two").stream();
+ List<Map.Entry<String,Integer>> res = words.collect(Collectors.toMap(w -> w, w -> 1, (a, b) -> a + b))
+ .entrySet().stream().filter(e -> e.getValue() > 1).collect(Collectors.toList());
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA121315.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA121315.java
new file mode 100644
index 000000000000..1c22302f2523
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA121315.java
@@ -0,0 +1,22 @@
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class IDEA121315 {
+ class Issue {
+ Long getId() {
+ return 1l;
+ }
+ }
+
+ <T> T id(T i) {
+ return i;
+ }
+
+ void foo(Stream<Issue> map){
+ Map<Long, Issue> id2Issue = map.collect(Collectors.toMap(null, p -> id(p)));
+ Map<Long, Issue> id2Issue1 = map.collect(Collectors.toMap(null, p -> p));
+ Map<Long, Issue> id2Issue2 = map.collect(Collectors.toMap(null, this::id));
+
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/AmbiguityVarargs.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/AmbiguityVarargs.java
new file mode 100644
index 000000000000..bb3a6432e895
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/AmbiguityVarargs.java
@@ -0,0 +1,20 @@
+class Test {
+
+ interface IntMapper {
+ int map();
+ }
+
+ interface LongMapper {
+ long map();
+ }
+
+ void m(IntMapper im1, IntMapper... im) { }
+ void m(LongMapper... lm) { }
+
+ {
+ m<error descr="Ambiguous method call: both 'Test.m(IntMapper, IntMapper...)' and 'Test.m(LongMapper...)' match">(this ::ii)</error>;
+ }
+
+ int ii() {return 0;}
+
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/ExactMethodReferencePertinentToApplicabilityCheck.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/ExactMethodReferencePertinentToApplicabilityCheck.java
new file mode 100644
index 000000000000..c76e109aa0ff
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/ExactMethodReferencePertinentToApplicabilityCheck.java
@@ -0,0 +1,30 @@
+
+import java.util.*;
+
+class Test {
+ {
+ List<UnaryOperator<String>> a = asList(String::intern);
+ }
+
+ public static <Ta> List<Ta> asList(Ta a) {
+ return null;
+ }
+
+ interface UnaryOperator<T> {
+ T apply(T t);
+ }
+}
+
+class TestVarargs {
+ {
+ List<UnaryOperator<String>> a = asList(String::intern);
+ }
+
+ public static <Ta> List<Ta> asList(Ta... a) {
+ return null;
+ }
+
+ interface UnaryOperator<T> {
+ T apply(T t);
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/RawInnerClassQualifier.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/RawInnerClassQualifier.java
new file mode 100644
index 000000000000..25b85d7de9a9
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/RawInnerClassQualifier.java
@@ -0,0 +1,26 @@
+import java.util.Collections;
+import java.util.Map;
+import java.util.Optional;
+
+
+class StreamMain {
+ public static void main(final String... args) {
+ x(Collections.<Integer, String>emptyMap().entrySet().stream().
+ filter(entry -> 0 == entry.getKey() % 2).
+ findFirst().
+ map(Map.Entry::getValue).
+ orElse("Bob!"), true);
+ }
+
+ public static void x(final String s, final boolean b) {
+ System.out.println(s);
+ }
+}
+
+class StreamMainSimplified {
+ public static void main(Optional<Map.Entry<Integer, String>> first) {
+ String s = first.map(Map.Entry::getValue).orElse("Bob!");
+ String s1 = first.map((e) -> e.getValue()).orElse("Bob!");
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/SuperClassPotentiallyApplicableMembers.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/SuperClassPotentiallyApplicableMembers.java
new file mode 100644
index 000000000000..d9f05fb8a075
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/SuperClassPotentiallyApplicableMembers.java
@@ -0,0 +1,39 @@
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+interface Base {
+ int getInt(String a);
+ int getInt();
+
+ void foo();
+}
+
+abstract class ABase implements Base {
+ @Override
+ public int getInt(String a) {
+ return 0;
+ }
+
+ @Override
+ public int getInt() {
+ return 0;
+ }
+}
+
+class Impl extends ABase {
+ @Override
+ public int getInt() {
+ return 0;
+ }
+
+ @Override
+ public void foo() {
+ List<String> strs = Arrays.asList("one", "two");
+
+ List<Integer> withMethodRef = strs
+ .stream()
+ .map(this::getInt)
+ .collect( Collectors.toList());
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterConflict.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterConflict.java
deleted file mode 100644
index fe1cbb4cfcf2..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterConflict.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// "Add on demand static import for 'test.Bar'" "true"
-package test;
-
-import static test.Bar.*;
-
-class Bar {
- public static final void f() {}
-}
-public class Foo {
- public static final void f(int i) {}
-
- {
- <caret>Bar.f(); // invoke 'add on demand static import' for Bar class here. The call is now done to other method.
- }
-} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterImportPresent.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterImportPresent.java
new file mode 100644
index 000000000000..3da923ad88c8
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterImportPresent.java
@@ -0,0 +1,10 @@
+// "Add on demand static import for 'java.lang.Math'" "true"
+package test;
+
+import static java.lang.Math.*;
+import static java.lang.Math.abs;
+
+public class C {{
+ abs(1.0);
+ max(1, 2);
+}} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterImportPresent2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterImportPresent2.java
new file mode 100644
index 000000000000..987661ba26bd
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterImportPresent2.java
@@ -0,0 +1,9 @@
+// "Add on demand static import for 'java.lang.Math'" "true"
+package test;
+
+import static java.lang.Math.*;
+
+public class C {{
+ abs(1.0);
+ max(1, 2);
+}} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterOwnMember.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterOwnMember.java
new file mode 100644
index 000000000000..926689ce7891
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterOwnMember.java
@@ -0,0 +1,10 @@
+// "Add on demand static import for 'test.Foo'" "true"
+package test;
+
+class Foo {
+ public static void m() {}
+
+ public static void main(String[] args) {
+ m();
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleImportPresent.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleImportPresent.java
new file mode 100644
index 000000000000..aeb54782cd2c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleImportPresent.java
@@ -0,0 +1,8 @@
+// "Add static import for 'java.lang.Math.abs'" "true"
+package test;
+
+import static java.lang.Math.abs;
+
+public class X {{
+ abs(1.0);
+}} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleIncompleteCode.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleIncompleteCode.java
new file mode 100644
index 000000000000..b0b13008d588
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleIncompleteCode.java
@@ -0,0 +1,8 @@
+// "Add static import for 'java.lang.Math.abs'" "true"
+package test;
+
+import static java.lang.Math.abs;
+
+class X {{
+ abs();
+}} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleMethod.java
deleted file mode 100644
index 7a212101e730..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleMethod.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// "Add static import for 'test.Bar.f'" "true"
-package test;
-
-import static test.Bar.f;
-
-class Bar {
- public static final void f() {}
-}
-public class Foo {
- public static final void f(int i) {}
- {
- Bar.<caret>f();
- }
-} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleSuperMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleSuperMethod.java
deleted file mode 100644
index f408a05c9e60..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/afterSingleSuperMethod.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// "Add static import for 'test.Bar.f'" "true"
-package test;
-
-import static test.Bar.f;
-
-class Bar {
- public static final void f() {}
-}
-public class Foo extends FooSuper{
- {
- Bar.<caret>f();
- }
-}
-
-class FooSuper {
- public static final void f(int i) {}
-} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeConflict.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeConflict.java
index 09af9dce48f1..e9da55cac8ff 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeConflict.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeConflict.java
@@ -1,4 +1,4 @@
-// "Add on demand static import for 'test.Bar'" "true"
+// "Add on demand static import for 'test.Bar'" "false"
package test;
class Bar {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeImportPresent.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeImportPresent.java
new file mode 100644
index 000000000000..9a8cb7547c2e
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeImportPresent.java
@@ -0,0 +1,9 @@
+// "Add on demand static import for 'java.lang.Math'" "true"
+package test;
+
+import static java.lang.Math.abs;
+
+public class C {{
+ abs(1.0);
+ <caret>Math.max(1, 2);
+}} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeImportPresent2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeImportPresent2.java
new file mode 100644
index 000000000000..6ba0ba6a840d
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeImportPresent2.java
@@ -0,0 +1,9 @@
+// "Add on demand static import for 'java.lang.Math'" "true"
+package test;
+
+import static java.lang.Math.*;
+
+public class C {{
+ abs(1.0);
+ <caret>Math.max(1, 2);
+}} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeOwnMember.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeOwnMember.java
new file mode 100644
index 000000000000..fba407683654
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeOwnMember.java
@@ -0,0 +1,10 @@
+// "Add on demand static import for 'test.Foo'" "true"
+package test;
+
+class Foo {
+ public static void m() {}
+
+ public static void main(String[] args) {
+ Foo<caret>.m();
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleImportPresent.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleImportPresent.java
new file mode 100644
index 000000000000..1636ec79b66e
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleImportPresent.java
@@ -0,0 +1,8 @@
+// "Add static import for 'java.lang.Math.abs'" "true"
+package test;
+
+import static java.lang.Math.abs;
+
+public class X {{
+ Math.abs<caret>(1.0);
+}} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleIncompleteCode.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleIncompleteCode.java
new file mode 100644
index 000000000000..462713c98f66
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleIncompleteCode.java
@@ -0,0 +1,6 @@
+// "Add static import for 'java.lang.Math.abs'" "true"
+package test;
+
+class X {{
+ Math.abs<caret>();
+}} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleMethod.java
index e199b822fbee..db823f144fe3 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleMethod.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleMethod.java
@@ -1,4 +1,4 @@
-// "Add static import for 'test.Bar.f'" "true"
+// "Add static import for 'test.Bar.f'" "false"
package test;
class Bar {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleSuperMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleSuperMethod.java
index e6cdb19c0d79..bfa85a2dca1e 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleSuperMethod.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleSuperMethod.java
@@ -1,4 +1,4 @@
-// "Add static import for 'test.Bar.f'" "true"
+// "Add static import for 'test.Bar.f'" "false"
package test;
class Bar {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/afterLambdaInternal.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/afterLambdaInternal.java
new file mode 100644
index 000000000000..056c098fcf7e
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/afterLambdaInternal.java
@@ -0,0 +1,12 @@
+// "Add Exception to Method Signature" "true"
+class C {
+ interface I {
+ void a() throws InterruptedException;
+ }
+
+ {
+ I i = () -> {
+ Thread.sleep(2000);
+ };
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/beforeLambdaExternal.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/beforeLambdaExternal.java
new file mode 100644
index 000000000000..5aac457b22ef
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/beforeLambdaExternal.java
@@ -0,0 +1,9 @@
+// "Add Exception to Method Signature" "false"
+class C {
+
+ public static void main(String[] args) throws InterruptedException {
+ new Thread(( ) -> {
+ Thread.sl<caret>eep(2000);
+ }).start();
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/beforeLambdaInternal.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/beforeLambdaInternal.java
new file mode 100644
index 000000000000..9c62d2b6cff1
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addToThrows/beforeLambdaInternal.java
@@ -0,0 +1,12 @@
+// "Add Exception to Method Signature" "true"
+class C {
+ interface I {
+ void a();
+ }
+
+ {
+ I i = () -> {
+ Thread.sl<caret>eep(2000);
+ };
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoArray.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoArray.java
index 659a3bb0b844..dc9c06ca5329 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoArray.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoArray.java
@@ -7,6 +7,6 @@ import static java.lang.annotation.ElementType.*;
class C {
{
Object o = null;
- @TA int @TA [] a = (@TA int @TA[]) o;
+ @TA int @TA [] a = (int[]) o;
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoPrimitive.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoPrimitive.java
deleted file mode 100644
index 8cd2a01d46e8..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoPrimitive.java
+++ /dev/null
@@ -1,12 +0,0 @@
-// "Cast to 'int'" "true"
-import java.lang.annotation.*;
-import static java.lang.annotation.ElementType.*;
-
-@Target({TYPE_USE}) @interface TA { }
-
-class C {
- {
- Object o = null;
- @TA <caret>int i = (@TA int) o;
- }
-}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoRefType.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoRefType.java
index 28420d1f46ea..d1b92436866a 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoRefType.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoRefType.java
@@ -1,5 +1,6 @@
-// "Cast to 'java.lang.Integer'" "true"
+// "Cast to 'java.util.List<java.lang.Integer>'" "true"
import java.lang.annotation.*;
+import java.util.*;
import static java.lang.annotation.ElementType.*;
@Target({TYPE_USE}) @interface TA { }
@@ -7,6 +8,6 @@ import static java.lang.annotation.ElementType.*;
class C {
{
Object o = null;
- @TA <caret>Integer i = (@TA Integer) o;
+ @TA List<@TA Integer> i = (List<Integer>) o;
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoTypeParam.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoTypeParam.java
deleted file mode 100644
index 6fa421e10993..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoTypeParam.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// "Cast to 'java.util.List<java.lang.String>'" "true"
-import java.lang.annotation.*;
-import java.util.List;
-import static java.lang.annotation.ElementType.*;
-
-@Target({TYPE_USE}) @interface TA { }
-
-class C {
- {
- Object o = null;
- @TA <caret>List<@TA String> l = (@TA List<@TA String>) o;
- }
-}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoValued.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoValued.java
deleted file mode 100644
index bfedf89bc35f..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoValued.java
+++ /dev/null
@@ -1,12 +0,0 @@
-// "Cast to 'int'" "true"
-import java.lang.annotation.*;
-import static java.lang.annotation.ElementType.*;
-
-@Target({TYPE_USE}) @interface TA { String value() default ""; }
-
-class C {
- {
- Object o = null;
- @TA("wtf") <caret>int i = (@TA("wtf") int) o;
- }
-}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoWildcard.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoWildcard.java
deleted file mode 100644
index a114746c145d..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterTypeAnnoWildcard.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// "Cast to 'java.util.List<? extends java.lang.String>'" "true"
-import java.lang.annotation.*;
-import java.util.List;
-import static java.lang.annotation.ElementType.*;
-
-@Target({TYPE_USE}) @interface TA { }
-
-class C {
- {
- Object o = null;
- @TA List<@TA ? extends @TA String> l = (@TA List<@TA ? extends @TA String>) o;
- }
-}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoPrimitive.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoPrimitive.java
deleted file mode 100644
index 5d17c26ca97a..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoPrimitive.java
+++ /dev/null
@@ -1,12 +0,0 @@
-// "Cast to 'int'" "true"
-import java.lang.annotation.*;
-import static java.lang.annotation.ElementType.*;
-
-@Target({TYPE_USE}) @interface TA { }
-
-class C {
- {
- Object o = null;
- @TA <caret>int i = o;
- }
-}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoRefType.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoRefType.java
index 7948738bb264..7c95d5eae896 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoRefType.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoRefType.java
@@ -1,5 +1,6 @@
-// "Cast to 'java.lang.Integer'" "true"
+// "Cast to 'java.util.List<java.lang.Integer>'" "true"
import java.lang.annotation.*;
+import java.util.*;
import static java.lang.annotation.ElementType.*;
@Target({TYPE_USE}) @interface TA { }
@@ -7,6 +8,6 @@ import static java.lang.annotation.ElementType.*;
class C {
{
Object o = null;
- @TA <caret>Integer i = o;
+ @TA <caret>List<@TA Integer> i = o;
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoTypeParam.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoTypeParam.java
deleted file mode 100644
index 33b2d0be44da..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoTypeParam.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// "Cast to 'java.util.List<java.lang.String>'" "true"
-import java.lang.annotation.*;
-import java.util.List;
-import static java.lang.annotation.ElementType.*;
-
-@Target({TYPE_USE}) @interface TA { }
-
-class C {
- {
- Object o = null;
- @TA <caret>List<@TA String> l = o;
- }
-}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoValued.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoValued.java
deleted file mode 100644
index 726856c931b7..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoValued.java
+++ /dev/null
@@ -1,12 +0,0 @@
-// "Cast to 'int'" "true"
-import java.lang.annotation.*;
-import static java.lang.annotation.ElementType.*;
-
-@Target({TYPE_USE}) @interface TA { String value() default ""; }
-
-class C {
- {
- Object o = null;
- @TA("wtf") <caret>int i = o;
- }
-}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoWildcard.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoWildcard.java
deleted file mode 100644
index 84a9df6fad0a..000000000000
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeTypeAnnoWildcard.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// "Cast to 'java.util.List<? extends java.lang.String>'" "true"
-import java.lang.annotation.*;
-import java.util.List;
-import static java.lang.annotation.ElementType.*;
-
-@Target({TYPE_USE}) @interface TA { }
-
-class C {
- {
- Object o = null;
- @TA <caret>List<@TA ? extends @TA String> l = o;
- }
-}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/implementMethods/afterTypeAnnotated.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/implementMethods/afterTypeAnnotated.java
new file mode 100644
index 000000000000..9e123de77cae
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/implementMethods/afterTypeAnnotated.java
@@ -0,0 +1,17 @@
+// "Implement Methods" "true"
+import java.lang.annotation.*;
+import java.util.*;
+
+@Target(ElementType.TYPE_USE)
+@interface TA { int value() default 0; }
+
+interface I {
+ @TA List<@TA String> i(@TA int p1, @TA(1) int @TA(2) [] p2 @TA(3) []) throws @TA IllegalArgumentException;
+}
+
+class C implements I {
+ @Override
+ public @TA List<@TA String> i(@TA int p1, @TA(1) int @TA(2) [] @TA(3) [] p2) throws @TA IllegalArgumentException {
+ return null;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/implementMethods/beforeTypeAnnotated.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/implementMethods/beforeTypeAnnotated.java
new file mode 100644
index 000000000000..f19a1097082a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/implementMethods/beforeTypeAnnotated.java
@@ -0,0 +1,13 @@
+// "Implement Methods" "true"
+import java.lang.annotation.*;
+import java.util.*;
+
+@Target(ElementType.TYPE_USE)
+@interface TA { int value() default 0; }
+
+interface I {
+ @TA List<@TA String> i(@TA int p1, @TA(1) int @TA(2) [] p2 @TA(3) []) throws @TA IllegalArgumentException;
+}
+
+<caret>class C implements I {
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest.java
index 2421a3518dbe..8c5e48133c24 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest.java
@@ -1,4 +1,4 @@
-// "Add 'junit.jar' to classpath" "true"
+// "Add junit to classpath" "true"
package x;
public class DoTest extends TestCase<caret>{
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4.java
index 9856b2d9b0f3..6747302b815b 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4.java
@@ -1,4 +1,4 @@
-// "Add 'junit.jar' to classpath" "true"
+// "Add junit to classpath" "true"
package x;
public class DoTest4 {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4junit.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4junit.java
index 8a776a67fffd..d196e93cb9ea 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4junit.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/orderEntry/A/src/x/DoTest4junit.java
@@ -1,4 +1,4 @@
-// "Add 'junit.jar' to classpath" "true"
+// "Add junit to classpath" "true"
package x;
public class DoTest4junit {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterCollectArrayListComment.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterCollectArrayListComment.java
new file mode 100644
index 000000000000..a9b24a5a2005
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterCollectArrayListComment.java
@@ -0,0 +1,16 @@
+// "Replace with collect" "true"
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class Collect {
+ class Person {
+ String getName() {
+ return "";
+ }
+ }
+
+ void collectNames(List<Person> persons){
+ List<String> names = persons.stream().map(Person::getName).collect(Collectors.toList());
+ //some comment
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterCollectArrayListNonTrivialInitializer.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterCollectArrayListNonTrivialInitializer.java
new file mode 100644
index 000000000000..641617eb642b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterCollectArrayListNonTrivialInitializer.java
@@ -0,0 +1,20 @@
+// "Replace with collect" "true"
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class Collect {
+ class Person {
+ String getName() {
+ return "";
+ }
+ }
+
+ ArrayList<String> foo() {
+ return new ArrayList<>();
+ }
+
+ void collectNames(List<Person> persons){
+ List<String> names = foo();
+ names.addAll(persons.stream().map(Person::getName).collect(Collectors.toList()));
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterNormalComments.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterNormalComments.java
new file mode 100644
index 000000000000..c1bbf0a0924b
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterNormalComments.java
@@ -0,0 +1,11 @@
+// "Replace with forEach" "true"
+import java.util.ArrayList;
+import java.util.List;
+
+class Sample {
+ List<String> foo = new ArrayList<>();
+ {
+ //some comment
+ foo.forEach(System.out::println);
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeCollectArrayListComment.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeCollectArrayListComment.java
new file mode 100644
index 000000000000..c26fa6954bd6
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeCollectArrayListComment.java
@@ -0,0 +1,18 @@
+// "Replace with collect" "true"
+import java.util.*;
+
+public class Collect {
+ class Person {
+ String getName() {
+ return "";
+ }
+ }
+
+ void collectNames(List<Person> persons){
+ List<String> names = new ArrayList<>();
+ for (Person person : pers<caret>ons) {
+ //some comment
+ names.add(person.getName());
+ }
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeCollectArrayListNonTrivialInitializer.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeCollectArrayListNonTrivialInitializer.java
new file mode 100644
index 000000000000..6a276c0033ce
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeCollectArrayListNonTrivialInitializer.java
@@ -0,0 +1,21 @@
+// "Replace with collect" "true"
+import java.util.*;
+
+public class Collect {
+ class Person {
+ String getName() {
+ return "";
+ }
+ }
+
+ ArrayList<String> foo() {
+ return new ArrayList<>();
+ }
+
+ void collectNames(List<Person> persons){
+ List<String> names = foo();
+ for (Person person : pers<caret>ons) {
+ names.add(person.getName());
+ }
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeNormalComments.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeNormalComments.java
new file mode 100644
index 000000000000..f394dd7d9696
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeNormalComments.java
@@ -0,0 +1,13 @@
+// "Replace with forEach" "true"
+import java.util.ArrayList;
+import java.util.List;
+
+class Sample {
+ List<String> foo = new ArrayList<>();
+ {
+ for (String s : fo<caret>o) {
+ //some comment
+ System.out.println(s);
+ }
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/cast/insideString.java b/java/java-tests/testData/codeInsight/template/postfix/templates/cast/insideString.java
new file mode 100644
index 000000000000..8e2d4d8e59cb
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/cast/insideString.java
@@ -0,0 +1,5 @@
+public class Foo {
+ void m(Object o) {
+ Integer string = (Integer.parseInt("test.test.cast<caret>"));
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/cast/insideString_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/cast/insideString_after.java
new file mode 100644
index 000000000000..f51c17698074
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/cast/insideString_after.java
@@ -0,0 +1,5 @@
+public class Foo {
+ void m(Object o) {
+ Integer string = (Integer.parseInt("test.test.cast <caret>"));
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/cast/singleArgument.java b/java/java-tests/testData/codeInsight/template/postfix/templates/cast/singleArgument.java
new file mode 100644
index 000000000000..29bd8830d679
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/cast/singleArgument.java
@@ -0,0 +1,5 @@
+public class Foo {
+ void m(Object o) {
+ Integer string = (Integer.parseInt("test.test".cast<caret>));
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/template/postfix/templates/cast/singleArgument_after.java b/java/java-tests/testData/codeInsight/template/postfix/templates/cast/singleArgument_after.java
new file mode 100644
index 000000000000..61720cad312a
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/template/postfix/templates/cast/singleArgument_after.java
@@ -0,0 +1,5 @@
+public class Foo {
+ void m(Object o) {
+ Integer string = (Integer.parseInt((() "test.test")<caret>));
+ }
+} \ No newline at end of file