testdata for IDEA-144386
authorAnna Kozlova <anna.kozlova@jetbrains.com>
Thu, 3 Sep 2015 13:15:54 +0000 (16:15 +0300)
committerAnna Kozlova <anna.kozlova@jetbrains.com>
Thu, 3 Sep 2015 14:22:25 +0000 (17:22 +0300)
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/expressions/AdditionalConstraintsBasedOnLambdaResolutionForNestedLambdas.java [new file with mode: 0644]
java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/Java8ExpressionsCheckTest.java

diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/expressions/AdditionalConstraintsBasedOnLambdaResolutionForNestedLambdas.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/expressions/AdditionalConstraintsBasedOnLambdaResolutionForNestedLambdas.java
new file mode 100644 (file)
index 0000000..5ec77ef
--- /dev/null
@@ -0,0 +1,26 @@
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+class Main {
+  public static <T1, T2> T2 safeGet(T1 value,
+                                    Function<? super T1, ? extends T2> extractor) {
+    return value == null ? null : extractor.apply(value);
+  }
+
+  public static class Data {
+    public java.util.Date date() {
+      return new java.util.Date();
+    }
+  }
+
+  public static void main(String[] args) {
+    List<Data> list = Collections.emptyList();
+    Map<Long, Data> map1 = list.stream().collect(Collectors.toMap(data -> data.date().getTime(), Function.identity()));
+    Map<Long, Data> map2 = safeGet(list,
+                                   li -> li.stream().collect(Collectors.toMap(data -> data.date().getTime(), Function.identity())));
+  }
+}
\ No newline at end of file
index 07be9f2b553f129ee088f20a8701757dd44a7898..99b4a647fe11033ca0ad86ab01e369022159d714 100644 (file)
@@ -87,6 +87,10 @@ public class Java8ExpressionsCheckTest extends LightDaemonAnalyzerTestCase {
   public void testAdditionalConstraintsBasedOnLambdaResolution() throws Exception {
     doTestAllMethodCallExpressions();
   }
+  
+  public void testAdditionalConstraintsBasedOnLambdaResolutionForNestedLambdas() throws Exception {
+    doTestAllMethodCallExpressions();
+  }
 
   private void doTestAllMethodCallExpressions() {
     configureByFile(BASE_PATH + "/" + getTestName(false) + ".java");