summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/runtime/DynamicDispatch.java-notyet42
1 files changed, 0 insertions, 42 deletions
diff --git a/src/library/scala/runtime/DynamicDispatch.java-notyet b/src/library/scala/runtime/DynamicDispatch.java-notyet
deleted file mode 100644
index 744ee79264..0000000000
--- a/src/library/scala/runtime/DynamicDispatch.java-notyet
+++ /dev/null
@@ -1,42 +0,0 @@
-package scala.runtime;
-
-import java.dyn.CallSite;
-import java.dyn.MethodHandle;
-
-/**
- * This class resolves calls through refinement types. The
- * bootstrap method is called when an invokedynamic is found
- * by the Java VM.
- *
- * Note: Requires Java 7 with invoke dynamic support (see JSR 292)
- *
- * @author Iulian Dragos
- * @see JSR292
- */
-public class DynamicDispatch {
-
- /**
- * Resolve an invoke dynamic in Scala code. invokedynamic calls appear
- * when a method defined by a refinement type is called. It is resolved
- * by looking up a method with the same name and types in the receiver
- * object. It is guaranteed by the type checker that such a method
- * exists.
- *
- * The current implementation is not correct, a call site being
- * always bootstrapped to a method handle. A bound call site should be
- * guarded by a test on the receiver type. Such code should either
- * be generated by the compiler, or by this bootstrap method using
- * one of the code combinators provided in java.dyn.*.
- *
- * ATM, they are not yet available in the JVM.
- */
- public static Object bootstrapInvokeDynamic(CallSite cs, Object... args) {
- println(cs);
-
- MethodHandle mh = MethodHandles.findVirtual(cs.callerClass(),
- cs.name(),
- cs.type());
- cs.setTarget(mh);
- return mh(args);
- }
-}