diff options
Diffstat (limited to 'java/java-tests/testData/codeInsight')
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 Binary files differnew file mode 100644 index 000000000000..0151e3545391 --- /dev/null +++ b/java/java-tests/testData/codeInsight/clsHighlighting/libs/IDEA121866.jar 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 |