test/jdk/java/net/httpclient/LineAdaptersCompileOnly.java
branchhttp-client-branch
changeset 56159 039ab5a71a5c
parent 56089 42208b2f224e
child 56167 96fa4f49a9ff
--- a/test/jdk/java/net/httpclient/LineAdaptersCompileOnly.java	Tue Feb 20 10:16:00 2018 +0000
+++ b/test/jdk/java/net/httpclient/LineAdaptersCompileOnly.java	Tue Feb 20 14:52:06 2018 +0000
@@ -21,11 +21,12 @@
  * questions.
  */
 
-import java.nio.charset.StandardCharsets;
 import java.util.concurrent.Flow;
 import java.util.function.Function;
 import java.net.http.HttpResponse.BodyHandler;
 import java.net.http.HttpResponse.BodySubscriber;
+import static java.util.function.Function.identity;
+import static java.nio.charset.StandardCharsets.*;
 
 /*
  * @test
@@ -40,36 +41,27 @@
     }
 
     static void makesSureDifferentGenericSignaturesCompile() {
-
         BodyHandler.fromLineSubscriber(new StringSubscriber());
         BodyHandler.fromLineSubscriber(new CharSequenceSubscriber());
         BodyHandler.fromLineSubscriber(new ObjectSubscriber());
 
-
         BodySubscriber.fromLineSubscriber(new StringSubscriber());
         BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber());
         BodySubscriber.fromLineSubscriber(new ObjectSubscriber());
 
-
-        BodyHandler.fromLineSubscriber(new StringSubscriber(), Function.identity(), "\n");
-        BodyHandler.fromLineSubscriber(new CharSequenceSubscriber(), Function.identity(),  "\r\n");
-        BodyHandler.fromLineSubscriber(new ObjectSubscriber(), Function.identity(), "\n");
-        BodyHandler.fromLineSubscriber(new StringSubscriber(), Function.identity(), null);
-        BodyHandler.fromLineSubscriber(new CharSequenceSubscriber(), Function.identity(),  null);
-        BodyHandler.fromLineSubscriber(new ObjectSubscriber(), Function.identity(), null);
+        BodyHandler.fromLineSubscriber(new StringSubscriber(),       identity(), "\n");
+        BodyHandler.fromLineSubscriber(new CharSequenceSubscriber(), identity(), "\r\n");
+        BodyHandler.fromLineSubscriber(new ObjectSubscriber(),       identity(), "\n");
+        BodyHandler.fromLineSubscriber(new StringSubscriber(),       identity(), null);
+        BodyHandler.fromLineSubscriber(new CharSequenceSubscriber(), identity(), null);
+        BodyHandler.fromLineSubscriber(new ObjectSubscriber(),       identity(), null);
 
-        BodySubscriber.fromLineSubscriber(new StringSubscriber(), Function.identity(),
-                StandardCharsets.UTF_8, "\n");
-        BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber(), Function.identity(),
-                StandardCharsets.UTF_16, "\r\n");
-        BodySubscriber.fromLineSubscriber(new ObjectSubscriber(), Function.identity(),
-                StandardCharsets.US_ASCII, "\n");
-        BodySubscriber.fromLineSubscriber(new StringSubscriber(), Function.identity(),
-                StandardCharsets.UTF_8, null);
-        BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber(), Function.identity(),
-                StandardCharsets.UTF_16, null);
-        BodySubscriber.fromLineSubscriber(new ObjectSubscriber(), Function.identity(),
-                StandardCharsets.US_ASCII, null);
+        BodySubscriber.fromLineSubscriber(new StringSubscriber(),       identity(), UTF_8,    "\n");
+        BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber(), identity(), UTF_16,   "\r\n");
+        BodySubscriber.fromLineSubscriber(new ObjectSubscriber(),       identity(), US_ASCII, "\n");
+        BodySubscriber.fromLineSubscriber(new StringSubscriber(),       identity(), UTF_8,    null);
+        BodySubscriber.fromLineSubscriber(new CharSequenceSubscriber(), identity(), UTF_16,   null);
+        BodySubscriber.fromLineSubscriber(new ObjectSubscriber(),       identity(), US_ASCII, null);
     }
 
     static class StringSubscriber implements Flow.Subscriber<String> {
@@ -92,4 +84,45 @@
         @Override public void onError(Throwable throwable) { }
         @Override public void onComplete() { }
     }
+
+    // ---
+
+    static final Function<StringSubscriber,Integer> f1 = subscriber -> 1;
+    static final Function<StringSubscriber,Number> f2 = subscriber -> 2;
+    static final Function<StringSubscriberX,Integer> f3 = subscriber -> 3;
+    static final Function<StringSubscriberX,Number> f4 = subscriber -> 4;
+
+    static class StringSubscriberX extends StringSubscriber {
+        int getIntegerX() { return 5; }
+    }
+
+    static void makesSureDifferentGenericFunctionSignaturesCompile() {
+        BodyHandler<Integer> bh01 = BodyHandler.fromLineSubscriber(new StringSubscriber(), s -> 6, "\n");
+        BodyHandler<Number>  bh02 = BodyHandler.fromLineSubscriber(new StringSubscriber(), s -> 7, "\n");
+        BodyHandler<Integer> bh03 = BodyHandler.fromLineSubscriber(new StringSubscriber(), f1, "\n");
+        BodyHandler<Number>  bh04 = BodyHandler.fromLineSubscriber(new StringSubscriber(), f1, "\n");
+        BodyHandler<Number>  bh05 = BodyHandler.fromLineSubscriber(new StringSubscriber(), f2, "\n");
+        BodyHandler<Integer> bh06 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f1, "\n");
+        BodyHandler<Number>  bh07 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f1, "\n");
+        BodyHandler<Number>  bh08 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f2, "\n");
+        BodyHandler<Integer> bh09 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), StringSubscriberX::getIntegerX, "\n");
+        BodyHandler<Number>  bh10 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), StringSubscriberX::getIntegerX, "\n");
+        BodyHandler<Integer> bh11 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f3, "\n");
+        BodyHandler<Number>  bh12 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f3, "\n");
+        BodyHandler<Number>  bh13 = BodyHandler.fromLineSubscriber(new StringSubscriberX(), f4, "\n");
+
+        BodySubscriber<Integer> bs01 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), s -> 6, UTF_8, "\n");
+        BodySubscriber<Number>  bs02 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), s -> 7, UTF_8, "\n");
+        BodySubscriber<Integer> bs03 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), f1, UTF_8, "\n");
+        BodySubscriber<Number>  bs04 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), f1, UTF_8, "\n");
+        BodySubscriber<Number>  bs05 = BodySubscriber.fromLineSubscriber(new StringSubscriber(), f2, UTF_8, "\n");
+        BodySubscriber<Integer> bs06 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f1, UTF_8, "\n");
+        BodySubscriber<Number>  bs07 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f1, UTF_8, "\n");
+        BodySubscriber<Number>  bs08 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f2, UTF_8, "\n");
+        BodySubscriber<Integer> bs09 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), StringSubscriberX::getIntegerX, UTF_8, "\n");
+        BodySubscriber<Number>  bs10 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), StringSubscriberX::getIntegerX, UTF_8, "\n");
+        BodySubscriber<Integer> bs11 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f3, UTF_8, "\n");
+        BodySubscriber<Number>  bs12 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f3, UTF_8, "\n");
+        BodySubscriber<Number>  bs13 = BodySubscriber.fromLineSubscriber(new StringSubscriberX(), f4, UTF_8, "\n");
+    }
 }