summaryrefslogtreecommitdiff
path: root/test/files/run/indy-via-macro-with-dynamic-args/Bootstrap.java
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-02-12 11:57:21 +1000
committerJason Zaugg <jzaugg@gmail.com>2016-02-12 11:57:21 +1000
commita80f6a00a8519766599e5ca0db61570b7252b584 (patch)
tree9f758cc64badd074f526b040c233a01af49b95b3 /test/files/run/indy-via-macro-with-dynamic-args/Bootstrap.java
parent6d09a1ba5fffadd1d886afb66ab4496291fda3dd (diff)
parentdf0d105f90816960b711c35a3289ff460295d1cc (diff)
downloadscala-a80f6a00a8519766599e5ca0db61570b7252b584.tar.gz
scala-a80f6a00a8519766599e5ca0db61570b7252b584.tar.bz2
scala-a80f6a00a8519766599e5ca0db61570b7252b584.zip
Merge pull request #4896 from retronym/topic/indy-all-the-things
Use invokedynamic for structural calls, symbol literals, lambda ser.
Diffstat (limited to 'test/files/run/indy-via-macro-with-dynamic-args/Bootstrap.java')
-rw-r--r--test/files/run/indy-via-macro-with-dynamic-args/Bootstrap.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/files/run/indy-via-macro-with-dynamic-args/Bootstrap.java b/test/files/run/indy-via-macro-with-dynamic-args/Bootstrap.java
new file mode 100644
index 0000000000..5c9ce01cf4
--- /dev/null
+++ b/test/files/run/indy-via-macro-with-dynamic-args/Bootstrap.java
@@ -0,0 +1,17 @@
+package test;
+
+import java.lang.invoke.*;
+import java.util.regex.Pattern;
+
+public final class Bootstrap {
+ private Bootstrap() {
+ }
+
+ /** Pre-compile a regex */
+ public static CallSite bootstrap(MethodHandles.Lookup lookup, String invokedName,
+ MethodType invokedType,
+ String value) throws Throwable {
+ MethodHandle Pattern_matcher = MethodHandles.lookup().findVirtual(java.util.regex.Pattern.class, "matcher", MethodType.fromMethodDescriptorString("(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;", lookup.lookupClass().getClassLoader()));
+ return new ConstantCallSite(Pattern_matcher.bindTo(Pattern.compile(value)));
+ }
+}