--- 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");
+ }
}