diff options
Diffstat (limited to 'java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/resolve/IDEA122406.java')
-rw-r--r-- | java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/resolve/IDEA122406.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/resolve/IDEA122406.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/resolve/IDEA122406.java new file mode 100644 index 000000000000..b40ccbcd5c56 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/resolve/IDEA122406.java @@ -0,0 +1,41 @@ +import java.util.*; +import java.util.function.Predicate; + +abstract class Test { + public long countTweetsLongerThan(int numberOfChars, final List<String> tweetList) { + //numberOfChars = 100; //TODO uncomment to show it must be effectively final + + long totalByFor = 0; + for (String tweet : tweetList) { + if (tweet.length() > numberOfChars) { + totalByFor++; + } + } + + final ArrayList<String> guavaList = newArrayList(fil<ref>ter(tweetList, new Predicate<String>() { + @Override + public boolean test(String tweet) { + return false; + } + })); + final long totalFromGuava = guavaList.size(); + + + final long totalFromLambda = tweetList.stream() + .filter(t -> t.length() > numberOfChars) + .count(); + + if (totalByFor != totalFromLambda | totalByFor != totalFromGuava) { + throw new RuntimeException(""); + } + return totalFromLambda; + } + + abstract <E> ArrayList<E> newArrayList(Iterable<? extends E> elements); + abstract <E> ArrayList<E> newArrayList(); + abstract <E> ArrayList<E> newArrayList(E... elements); + + abstract <T> Iterable<T> filter(Iterable<T> unfiltered, Predicate<? super T> predicate); + abstract <T> Iterable<T> filter(Iterable<?> unfiltered, Class<T> type); + +} |