diff options
Diffstat (limited to 'src/library/scala/runtime')
108 files changed, 1635 insertions, 283 deletions
diff --git a/src/library/scala/runtime/AbstractPartialFunction.scala b/src/library/scala/runtime/AbstractPartialFunction.scala index 986cd0390f..630966d0d4 100644 --- a/src/library/scala/runtime/AbstractPartialFunction.scala +++ b/src/library/scala/runtime/AbstractPartialFunction.scala @@ -9,8 +9,6 @@ package scala package runtime -import scala.annotation.unspecialized - /** `AbstractPartialFunction` reformulates all operations of its supertrait `PartialFunction` * in terms of `isDefinedAt` and `applyOrElse`. * diff --git a/src/library/scala/runtime/ArrayRuntime.java b/src/library/scala/runtime/ArrayRuntime.java deleted file mode 100644 index 1a0f748931..0000000000 --- a/src/library/scala/runtime/ArrayRuntime.java +++ /dev/null @@ -1,26 +0,0 @@ -/* __ *\ -** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2002-2013, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** -** /____/\___/_/ |_/____/_/ | | ** -** |/ ** -\* */ - - - -package scala.runtime; - -/** - * Methods on Java arrays - */ -class ArrayRuntime { - static boolean[] cloneArray(boolean[] array) { return array.clone(); } - static byte[] cloneArray(byte[] array) { return array.clone(); } - static short[] cloneArray(short[] array) { return array.clone(); } - static char[] cloneArray(char[] array) { return array.clone(); } - static int[] cloneArray(int[] array) { return array.clone(); } - static long[] cloneArray(long[] array) { return array.clone(); } - static float[] cloneArray(float[] array) { return array.clone(); } - static double[] cloneArray(double[] array) { return array.clone(); } - static Object[] cloneArray(Object[] array) { return array.clone(); } -} diff --git a/src/library/scala/runtime/Boxed.scala b/src/library/scala/runtime/Boxed.scala deleted file mode 100644 index 933444773d..0000000000 --- a/src/library/scala/runtime/Boxed.scala +++ /dev/null @@ -1,12 +0,0 @@ -/* __ *\ -** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2013, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** -** /____/\___/_/ |_/____/_/ | | ** -** |/ ** -\* */ - -package scala -package runtime - -trait Boxed { } diff --git a/src/library/scala/runtime/BoxesRunTime.java b/src/library/scala/runtime/BoxesRunTime.java index 9cb1dee41c..6b3874fc1f 100644 --- a/src/library/scala/runtime/BoxesRunTime.java +++ b/src/library/scala/runtime/BoxesRunTime.java @@ -179,7 +179,7 @@ public final class BoxesRunTime return xc.equals(y); } - private static boolean equalsNumChar(java.lang.Number xn, java.lang.Character yc) { + public static boolean equalsNumChar(java.lang.Number xn, java.lang.Character yc) { if (yc == null) return xn == null; @@ -198,70 +198,6 @@ public final class BoxesRunTime } } - /** Hashcode algorithm is driven by the requirements imposed - * by primitive equality semantics, namely that equal objects - * have equal hashCodes. The first priority are the integral/char - * types, which already have the same hashCodes for the same - * values except for Long. So Long's hashCode is altered to - * conform to Int's for all values in Int's range. - * - * Float is problematic because it's far too small to hold - * all the Ints, so for instance Int.MaxValue.toFloat claims - * to be == to each of the largest 64 Ints. There is no way - * to preserve equals/hashCode alignment without compromising - * the hashCode distribution, so Floats are only guaranteed - * to have the same hashCode for whole Floats in the range - * Short.MinValue to Short.MaxValue (2^16 total.) - * - * Double has its hashCode altered to match the entire Int range, - * but is not guaranteed beyond that. (But could/should it be? - * The hashCode is only 32 bits so this is a more tractable - * issue than Float's, but it might be better simply to exclude it.) - * - * Note: BigInt and BigDecimal, being arbitrary precision, could - * be made consistent with all other types for the Int range, but - * as yet have not. - * - * Note: Among primitives, Float.NaN != Float.NaN, but the boxed - * versions are equal. This still needs reconciliation. - */ - public static int hashFromLong(java.lang.Long n) { - int iv = n.intValue(); - if (iv == n.longValue()) return iv; - else return n.hashCode(); - } - public static int hashFromDouble(java.lang.Double n) { - int iv = n.intValue(); - double dv = n.doubleValue(); - if (iv == dv) return iv; - - long lv = n.longValue(); - if (lv == dv) return java.lang.Long.valueOf(lv).hashCode(); - - float fv = n.floatValue(); - if (fv == dv) return java.lang.Float.valueOf(fv).hashCode(); - else return n.hashCode(); - } - public static int hashFromFloat(java.lang.Float n) { - int iv = n.intValue(); - float fv = n.floatValue(); - if (iv == fv) return iv; - - long lv = n.longValue(); - if (lv == fv) return java.lang.Long.valueOf(lv).hashCode(); - else return n.hashCode(); - } - public static int hashFromNumber(java.lang.Number n) { - if (n instanceof java.lang.Long) return hashFromLong((java.lang.Long)n); - else if (n instanceof java.lang.Double) return hashFromDouble((java.lang.Double)n); - else if (n instanceof java.lang.Float) return hashFromFloat((java.lang.Float)n); - else return n.hashCode(); - } - public static int hashFromObject(Object a) { - if (a instanceof Number) return hashFromNumber((Number)a); - else return a.hashCode(); - } - private static int unboxCharOrInt(Object arg1, int code) { if (code == CHAR) return ((java.lang.Character) arg1).charValue(); diff --git a/src/library/scala/runtime/LambdaDeserialize.java b/src/library/scala/runtime/LambdaDeserialize.java new file mode 100644 index 0000000000..4c5198cc48 --- /dev/null +++ b/src/library/scala/runtime/LambdaDeserialize.java @@ -0,0 +1,38 @@ +package scala.runtime; + + +import java.lang.invoke.*; +import java.util.HashMap; + +public final class LambdaDeserialize { + public static final MethodType DESERIALIZE_LAMBDA_MT = MethodType.fromMethodDescriptorString("(Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;", LambdaDeserialize.class.getClassLoader()); + + private MethodHandles.Lookup lookup; + private final HashMap<String, MethodHandle> cache = new HashMap<>(); + private final LambdaDeserializer$ l = LambdaDeserializer$.MODULE$; + private final HashMap<String, MethodHandle> targetMethodMap; + + private LambdaDeserialize(MethodHandles.Lookup lookup, MethodHandle[] targetMethods) { + this.lookup = lookup; + targetMethodMap = new HashMap<>(targetMethods.length); + for (MethodHandle targetMethod : targetMethods) { + MethodHandleInfo info = lookup.revealDirect(targetMethod); + String key = nameAndDescriptorKey(info.getName(), info.getMethodType().toMethodDescriptorString()); + targetMethodMap.put(key, targetMethod); + } + } + + public Object deserializeLambda(SerializedLambda serialized) { + return l.deserializeLambda(lookup, cache, targetMethodMap, serialized); + } + + public static CallSite bootstrap(MethodHandles.Lookup lookup, String invokedName, + MethodType invokedType, MethodHandle... targetMethods) throws Throwable { + MethodHandle deserializeLambda = lookup.findVirtual(LambdaDeserialize.class, "deserializeLambda", DESERIALIZE_LAMBDA_MT); + MethodHandle exact = deserializeLambda.bindTo(new LambdaDeserialize(lookup, targetMethods)).asType(invokedType); + return new ConstantCallSite(exact); + } + public static String nameAndDescriptorKey(String name, String descriptor) { + return name + descriptor; + } +} diff --git a/src/library/scala/runtime/LambdaDeserializer.scala b/src/library/scala/runtime/LambdaDeserializer.scala new file mode 100644 index 0000000000..25f41fd049 --- /dev/null +++ b/src/library/scala/runtime/LambdaDeserializer.scala @@ -0,0 +1,126 @@ +package scala.runtime + +import java.lang.invoke._ + +/** + * This class is only intended to be called by synthetic `$deserializeLambda$` method that the Scala 2.12 + * compiler will add to classes hosting lambdas. + * + * It is not intended to be consumed directly. + */ +object LambdaDeserializer { + /** + * Deserialize a lambda by calling `LambdaMetafactory.altMetafactory` to spin up a lambda class + * and instantiating this class with the captured arguments. + * + * A cache may be provided to ensure that subsequent deserialization of the same lambda expression + * is cheap, it amounts to a reflective call to the constructor of the previously created class. + * However, deserialization of the same lambda expression is not guaranteed to use the same class, + * concurrent deserialization of the same lambda expression may spin up more than one class. + * + * Assumptions: + * - No additional marker interfaces are required beyond `{java.io,scala.}Serializable`. These are + * not stored in `SerializedLambda`, so we can't reconstitute them. + * - No additional bridge methods are passed to `altMetafactory`. Again, these are not stored. + * + * @param lookup The factory for method handles. Must have access to the implementation method, the + * functional interface class, and `java.io.Serializable` or `scala.Serializable` as + * required. + * @param cache A cache used to avoid spinning up a class for each deserialization of a given lambda. May be `null` + * @param serialized The lambda to deserialize. Note that this is typically created by the `readResolve` + * member of the anonymous class created by `LambdaMetaFactory`. + * @return An instance of the functional interface + */ + def deserializeLambda(lookup: MethodHandles.Lookup, cache: java.util.Map[String, MethodHandle], + targetMethodMap: java.util.Map[String, MethodHandle], serialized: SerializedLambda): AnyRef = { + assert(targetMethodMap != null) + def slashDot(name: String) = name.replaceAll("/", ".") + val loader = lookup.lookupClass().getClassLoader + val implClass = loader.loadClass(slashDot(serialized.getImplClass)) + val key = LambdaDeserialize.nameAndDescriptorKey(serialized.getImplMethodName, serialized.getImplMethodSignature) + + def makeCallSite: CallSite = { + import serialized._ + def parseDescriptor(s: String) = + MethodType.fromMethodDescriptorString(s, loader) + + val funcInterfaceSignature = parseDescriptor(getFunctionalInterfaceMethodSignature) + val instantiated = parseDescriptor(getInstantiatedMethodType) + val functionalInterfaceClass = loader.loadClass(slashDot(getFunctionalInterfaceClass)) + + val implMethodSig = parseDescriptor(getImplMethodSignature) + // Construct the invoked type from the impl method type. This is the type of a factory + // that will be generated by the meta-factory. It is a method type, with param types + // coming form the types of the captures, and return type being the functional interface. + val invokedType: MethodType = { + // 1. Add receiver for non-static impl methods + val withReceiver = getImplMethodKind match { + case MethodHandleInfo.REF_invokeStatic | MethodHandleInfo.REF_newInvokeSpecial => + implMethodSig + case _ => + implMethodSig.insertParameterTypes(0, implClass) + } + // 2. Remove lambda parameters, leaving only captures. Note: the receiver may be a lambda parameter, + // such as in `Function<Object, String> s = Object::toString` + val lambdaArity = funcInterfaceSignature.parameterCount() + val from = withReceiver.parameterCount() - lambdaArity + val to = withReceiver.parameterCount() + + // 3. Drop the lambda return type and replace with the functional interface. + withReceiver.dropParameterTypes(from, to).changeReturnType(functionalInterfaceClass) + } + + // Lookup the implementation method + val implMethod: MethodHandle = try { + if (targetMethodMap.containsKey(key)) { + targetMethodMap.get(key) + } else { + throw new IllegalArgumentException("Illegal lambda deserialization") + } + } catch { + case e: ReflectiveOperationException => throw new IllegalArgumentException("Illegal lambda deserialization", e) + } + + val flags: Int = LambdaMetafactory.FLAG_SERIALIZABLE | LambdaMetafactory.FLAG_MARKERS + val isScalaFunction = functionalInterfaceClass.getName.startsWith("scala.Function") + val markerInterface: Class[_] = loader.loadClass(if (isScalaFunction) ScalaSerializable else JavaIOSerializable) + + LambdaMetafactory.altMetafactory( + lookup, getFunctionalInterfaceMethodName, invokedType, + + /* samMethodType = */ funcInterfaceSignature, + /* implMethod = */ implMethod, + /* instantiatedMethodType = */ instantiated, + /* flags = */ flags.asInstanceOf[AnyRef], + /* markerInterfaceCount = */ 1.asInstanceOf[AnyRef], + /* markerInterfaces[0] = */ markerInterface, + /* bridgeCount = */ 0.asInstanceOf[AnyRef] + ) + } + + val factory: MethodHandle = if (cache == null) { + makeCallSite.getTarget + } else cache.synchronized{ + cache.get(key) match { + case null => + val callSite = makeCallSite + val temp = callSite.getTarget + cache.put(key, temp) + temp + case target => target + } + } + + val captures = Array.tabulate(serialized.getCapturedArgCount)(n => serialized.getCapturedArg(n)) + factory.invokeWithArguments(captures: _*) + } + + private val ScalaSerializable = "scala.Serializable" + + private val JavaIOSerializable = { + // We could actually omit this marker interface as LambdaMetaFactory will add it if + // the FLAG_SERIALIZABLE is set and of the provided markers extend it. But the code + // is cleaner if we uniformly add a single marker, so I'm leaving it in place. + "java.io.Serializable" + } +} diff --git a/src/library/scala/runtime/LazyRef.scala b/src/library/scala/runtime/LazyRef.scala new file mode 100644 index 0000000000..5a0bd5442c --- /dev/null +++ b/src/library/scala/runtime/LazyRef.scala @@ -0,0 +1,157 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2016, LAMP/EPFL and Lightbend, Inc ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +package scala.runtime + +/** Classes used as holders for lazy vals defined in methods. */ + +class LazyRef[T] { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: T = _ + def value: T = _value + def initialize(value: T): T = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyRef ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyBoolean { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: Boolean = _ + def value: Boolean = _value + def initialize(value: Boolean): Boolean = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyBoolean ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyByte { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: Byte = _ + + def value: Byte = _value + + def initialize(value: Byte): Byte = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyByte ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyChar { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: Char = _ + def value: Char = _value + def initialize(value: Char): Char = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyChar ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyShort { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: Short = _ + def value: Short = _value + def initialize(value: Short): Short = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyShort ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyInt { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: Int = _ + def value: Int = _value + def initialize(value: Int): Int = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyInt ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyLong { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: Long = _ + def value: Long = _value + def initialize(value: Long): Long = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyLong ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyFloat { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: Float = _ + def value: Float = _value + def initialize(value: Float): Float = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyFloat ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyDouble { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + private[this] var _value: Double = _ + def value: Double = _value + def initialize(value: Double): Double = { + _value = value + _initialized = true + value + } + + override def toString = s"LazyDouble ${if (_initialized) s"of: ${_value}" else "thunk"}" +} + +class LazyUnit { + @volatile private[this] var _initialized: Boolean = _ + def initialized = _initialized + + def initialize(): Unit = _initialized = true + + override def toString = s"LazyUnit${if (_initialized) "" else " thunk"}" +} diff --git a/src/library/scala/runtime/RichException.scala b/src/library/scala/runtime/RichException.scala index f01788a4e9..2863fb6d7c 100644 --- a/src/library/scala/runtime/RichException.scala +++ b/src/library/scala/runtime/RichException.scala @@ -11,7 +11,7 @@ package runtime import scala.compat.Platform.EOL -@deprecated("Use Throwable#getStackTrace", "2.11.0") +@deprecated("use Throwable#getStackTrace", "2.11.0") final class RichException(exc: Throwable) { def getStackTraceString = exc.getStackTrace().mkString("", EOL, EOL) } diff --git a/src/library/scala/runtime/RichInt.scala b/src/library/scala/runtime/RichInt.scala index cda9d2907a..37d236dfe9 100644 --- a/src/library/scala/runtime/RichInt.scala +++ b/src/library/scala/runtime/RichInt.scala @@ -36,9 +36,9 @@ final class RichInt(val self: Int) extends AnyVal with ScalaNumberProxy[Int] wit override def max(that: Int): Int = math.max(self, that) override def min(that: Int): Int = math.min(self, that) override def signum: Int = math.signum(self) - + /** There is no reason to round an `Int`, but this method is provided to avoid accidental loss of precision from a detour through `Float`. */ - @deprecated("This is an integer type; there is no reason to round it. Perhaps you meant to call this on a floating-point value?", "2.11.0") + @deprecated("this is an integer type; there is no reason to round it. Perhaps you meant to call this on a floating-point value?", "2.11.0") def round: Int = self def toBinaryString: String = java.lang.Integer.toBinaryString(self) diff --git a/src/library/scala/runtime/RichLong.scala b/src/library/scala/runtime/RichLong.scala index b405fcda3d..233ce231b4 100644 --- a/src/library/scala/runtime/RichLong.scala +++ b/src/library/scala/runtime/RichLong.scala @@ -32,9 +32,9 @@ final class RichLong(val self: Long) extends AnyVal with IntegralProxy[Long] { override def max(that: Long): Long = math.max(self, that) override def min(that: Long): Long = math.min(self, that) override def signum: Int = math.signum(self).toInt - + /** There is no reason to round a `Long`, but this method is provided to avoid accidental conversion to `Int` through `Float`. */ - @deprecated("This is an integer type; there is no reason to round it. Perhaps you meant to call this on a floating-point value?", "2.11.0") + @deprecated("this is an integer type; there is no reason to round it. Perhaps you meant to call this on a floating-point value?", "2.11.0") def round: Long = self def toBinaryString: String = java.lang.Long.toBinaryString(self) diff --git a/src/library/scala/runtime/ScalaNumberProxy.scala b/src/library/scala/runtime/ScalaNumberProxy.scala index 5e4da24c0d..9b4899aef6 100644 --- a/src/library/scala/runtime/ScalaNumberProxy.scala +++ b/src/library/scala/runtime/ScalaNumberProxy.scala @@ -9,8 +9,8 @@ package scala package runtime -import scala.collection.{ mutable, immutable } -import scala.math.{ ScalaNumericConversions, ScalaNumericAnyConversions } +import scala.collection.immutable +import scala.math.ScalaNumericAnyConversions import immutable.NumericRange import Proxy.Typed diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala index 026d5edd29..b31a94576a 100644 --- a/src/library/scala/runtime/ScalaRunTime.scala +++ b/src/library/scala/runtime/ScalaRunTime.scala @@ -9,16 +9,14 @@ package scala package runtime -import scala.collection.{ Seq, IndexedSeq, TraversableView, AbstractIterator, GenIterable } +import scala.collection.{ TraversableView, AbstractIterator, GenIterable } import scala.collection.mutable.WrappedArray -import scala.collection.immutable.{ StringLike, NumericRange, List, Stream, Nil, :: } +import scala.collection.immutable.{ StringLike, NumericRange } import scala.collection.generic.{ Sorted, IsTraversableLike } import scala.reflect.{ ClassTag, classTag } -import scala.util.control.ControlThrowable import java.lang.{ Class => jClass } -import java.lang.Double.doubleToLongBits -import java.lang.reflect.{ Modifier, Method => JMethod } +import java.lang.reflect.{ Method => JMethod } /** The object ScalaRunTime provides support methods required by * the scala runtime. All these methods should be considered @@ -31,15 +29,6 @@ object ScalaRunTime { private def isArrayClass(clazz: jClass[_], atLevel: Int): Boolean = clazz.isArray && (atLevel == 1 || isArrayClass(clazz.getComponentType, atLevel - 1)) - def isValueClass(clazz: jClass[_]) = clazz.isPrimitive() - - // includes specialized subclasses and future proofed against hypothetical TupleN (for N > 22) - def isTuple(x: Any) = x != null && x.getClass.getName.startsWith("scala.Tuple") - def isAnyVal(x: Any) = x match { - case _: Byte | _: Short | _: Char | _: Int | _: Long | _: Float | _: Double | _: Boolean | _: Unit => true - case _ => false - } - // A helper method to make my life in the pattern matcher a lot easier. def drop[Repr](coll: Repr, num: Int)(implicit traversable: IsTraversableLike[Repr]): Repr = traversable conversion coll drop num @@ -52,15 +41,6 @@ object ScalaRunTime { else java.lang.reflect.Array.newInstance(clazz, 0).getClass } - /** Return the class object representing elements in arrays described by a given schematic. - */ - def arrayElementClass(schematic: Any): jClass[_] = schematic match { - case cls: jClass[_] => cls.getComponentType - case tag: ClassTag[_] => tag.runtimeClass - case _ => - throw new UnsupportedOperationException(s"unsupported schematic $schematic (${schematic.getClass})") - } - /** Return the class object representing an unboxed value type, * e.g., classOf[int], not classOf[java.lang.Integer]. The compiler * rewrites expressions like 5.getClass to come here. @@ -118,15 +98,15 @@ object ScalaRunTime { } def array_clone(xs: AnyRef): AnyRef = xs match { - case x: Array[AnyRef] => ArrayRuntime.cloneArray(x) - case x: Array[Int] => ArrayRuntime.cloneArray(x) - case x: Array[Double] => ArrayRuntime.cloneArray(x) - case x: Array[Long] => ArrayRuntime.cloneArray(x) - case x: Array[Float] => ArrayRuntime.cloneArray(x) - case x: Array[Char] => ArrayRuntime.cloneArray(x) - case x: Array[Byte] => ArrayRuntime.cloneArray(x) - case x: Array[Short] => ArrayRuntime.cloneArray(x) - case x: Array[Boolean] => ArrayRuntime.cloneArray(x) + case x: Array[AnyRef] => x.clone() + case x: Array[Int] => x.clone() + case x: Array[Double] => x.clone() + case x: Array[Long] => x.clone() + case x: Array[Float] => x.clone() + case x: Array[Char] => x.clone() + case x: Array[Byte] => x.clone() + case x: Array[Short] => x.clone() + case x: Array[Boolean] => x.clone() case x: Array[Unit] => x case null => throw new NullPointerException } @@ -159,9 +139,6 @@ object ScalaRunTime { // More background at ticket #2318. def ensureAccessible(m: JMethod): JMethod = scala.reflect.ensureAccessible(m) - def checkInitialized[T <: AnyRef](x: T): T = - if (x == null) throw new UninitializedError else x - def _toString(x: Product): String = x.productIterator.mkString(x.productPrefix + "(", ",", ")") @@ -181,71 +158,9 @@ object ScalaRunTime { } } - /** Fast path equality method for inlining; used when -optimise is set. - */ - @inline def inlinedEquals(x: Object, y: Object): Boolean = - if (x eq y) true - else if (x eq null) false - else if (x.isInstanceOf[java.lang.Number]) BoxesRunTime.equalsNumObject(x.asInstanceOf[java.lang.Number], y) - else if (x.isInstanceOf[java.lang.Character]) BoxesRunTime.equalsCharObject(x.asInstanceOf[java.lang.Character], y) - else x.equals(y) - - def _equals(x: Product, y: Any): Boolean = y match { - case y: Product if x.productArity == y.productArity => x.productIterator sameElements y.productIterator - case _ => false - } - - // hashcode ----------------------------------------------------------- - // - // Note that these are the implementations called by ##, so they - // must not call ## themselves. - - def hash(x: Any): Int = - if (x == null) 0 - else if (x.isInstanceOf[java.lang.Number]) BoxesRunTime.hashFromNumber(x.asInstanceOf[java.lang.Number]) - else x.hashCode - - def hash(dv: Double): Int = { - val iv = dv.toInt - if (iv == dv) return iv - - val lv = dv.toLong - if (lv == dv) return lv.hashCode - - val fv = dv.toFloat - if (fv == dv) fv.hashCode else dv.hashCode - } - def hash(fv: Float): Int = { - val iv = fv.toInt - if (iv == fv) return iv - - val lv = fv.toLong - if (lv == fv) hash(lv) - else fv.hashCode - } - def hash(lv: Long): Int = { - val low = lv.toInt - val lowSign = low >>> 31 - val high = (lv >>> 32).toInt - low ^ (high + lowSign) - } - def hash(x: Number): Int = runtime.BoxesRunTime.hashFromNumber(x) - - // The remaining overloads are here for completeness, but the compiler - // inlines these definitions directly so they're not generally used. - def hash(x: Int): Int = x - def hash(x: Short): Int = x.toInt - def hash(x: Byte): Int = x.toInt - def hash(x: Char): Int = x.toInt - def hash(x: Boolean): Int = if (x) true.hashCode else false.hashCode - def hash(x: Unit): Int = 0 - - /** A helper method for constructing case class equality methods, - * because existential types get in the way of a clean outcome and - * it's performing a series of Any/Any equals comparisons anyway. - * See ticket #2867 for specifics. - */ - def sameElements(xs1: scala.collection.Seq[Any], xs2: scala.collection.Seq[Any]) = xs1 sameElements xs2 + /** Old implementation of `##`. */ + @deprecated("Use scala.runtime.Statics.anyHash instead.", "2.12.0") + def hash(x: Any): Int = Statics.anyHash(x.asInstanceOf[Object]) /** Given any Scala value, convert it to a String. * @@ -268,6 +183,9 @@ object ScalaRunTime { def isScalaClass(x: AnyRef) = packageOf(x) startsWith "scala." def isScalaCompilerClass(x: AnyRef) = packageOf(x) startsWith "scala.tools.nsc." + // includes specialized subclasses and future proofed against hypothetical TupleN (for N > 22) + def isTuple(x: Any) = x != null && x.getClass.getName.startsWith("scala.Tuple") + // We use reflection because the scala.xml package might not be available def isSubClassOf(potentialSubClass: Class[_], ofClass: String) = try { @@ -347,17 +265,4 @@ object ScalaRunTime { nl + s + "\n" } - - def box[T](clazz: jClass[T]): jClass[_] = clazz match { - case java.lang.Byte.TYPE => classOf[java.lang.Byte] - case java.lang.Short.TYPE => classOf[java.lang.Short] - case java.lang.Character.TYPE => classOf[java.lang.Character] - case java.lang.Integer.TYPE => classOf[java.lang.Integer] - case java.lang.Long.TYPE => classOf[java.lang.Long] - case java.lang.Float.TYPE => classOf[java.lang.Float] - case java.lang.Double.TYPE => classOf[java.lang.Double] - case java.lang.Void.TYPE => classOf[scala.runtime.BoxedUnit] - case java.lang.Boolean.TYPE => classOf[java.lang.Boolean] - case _ => clazz - } } diff --git a/src/library/scala/runtime/SeqCharSequence.scala b/src/library/scala/runtime/SeqCharSequence.scala index 74e67bb9e7..7751bf815c 100644 --- a/src/library/scala/runtime/SeqCharSequence.scala +++ b/src/library/scala/runtime/SeqCharSequence.scala @@ -9,9 +9,7 @@ package scala package runtime -import java.util.Arrays.copyOfRange - -@deprecated("Use Predef.SeqCharSequence", "2.11.0") +@deprecated("use Predef.SeqCharSequence", "2.11.0") final class SeqCharSequence(val xs: scala.collection.IndexedSeq[Char]) extends CharSequence { def length: Int = xs.length def charAt(index: Int): Char = xs(index) diff --git a/src/library/scala/runtime/Statics.java b/src/library/scala/runtime/Statics.java index 485511ecbb..62390cb9d0 100644 --- a/src/library/scala/runtime/Statics.java +++ b/src/library/scala/runtime/Statics.java @@ -36,10 +36,11 @@ public final class Statics { } public static int longHash(long lv) { - if ((int)lv == lv) - return (int)lv; - else - return (int)(lv ^ (lv >>> 32)); + int iv = (int)lv; + if (iv == lv) + return iv; + + return java.lang.Long.hashCode(lv); } public static int doubleHash(double dv) { @@ -47,16 +48,15 @@ public final class Statics { if (iv == dv) return iv; - float fv = (float)dv; - if (fv == dv) - return java.lang.Float.floatToIntBits(fv); - long lv = (long)dv; if (lv == dv) - return (int)lv; + return java.lang.Long.hashCode(lv); + + float fv = (float)dv; + if (fv == dv) + return java.lang.Float.hashCode(fv); - lv = Double.doubleToLongBits(dv); - return (int)(lv ^ (lv >>> 32)); + return java.lang.Double.hashCode(dv); } public static int floatHash(float fv) { @@ -66,11 +66,39 @@ public final class Statics { long lv = (long)fv; if (lv == fv) - return (int)(lv^(lv>>>32)); + return java.lang.Long.hashCode(lv); - return java.lang.Float.floatToIntBits(fv); + return java.lang.Float.hashCode(fv); } + /** + * Hashcode algorithm is driven by the requirements imposed + * by primitive equality semantics, namely that equal objects + * have equal hashCodes. The first priority are the integral/char + * types, which already have the same hashCodes for the same + * values except for Long. So Long's hashCode is altered to + * conform to Int's for all values in Int's range. + * + * Float is problematic because it's far too small to hold + * all the Ints, so for instance Int.MaxValue.toFloat claims + * to be == to each of the largest 64 Ints. There is no way + * to preserve equals/hashCode alignment without compromising + * the hashCode distribution, so Floats are only guaranteed + * to have the same hashCode for whole Floats in the range + * Short.MinValue to Short.MaxValue (2^16 total.) + * + * Double has its hashCode altered to match the entire Int range, + * but is not guaranteed beyond that. (But could/should it be? + * The hashCode is only 32 bits so this is a more tractable + * issue than Float's, but it might be better simply to exclude it.) + * + * Note: BigInt and BigDecimal, being arbitrary precision, could + * be made consistent with all other types for the Int range, but + * as yet have not. + * + * Note: Among primitives, Float.NaN != Float.NaN, but the boxed + * versions are equal. This still needs reconciliation. + */ public static int anyHash(Object x) { if (x == null) return 0; diff --git a/src/library/scala/runtime/StringAdd.scala b/src/library/scala/runtime/StringAdd.scala index d5b51a6e92..37f077bcad 100644 --- a/src/library/scala/runtime/StringAdd.scala +++ b/src/library/scala/runtime/StringAdd.scala @@ -11,7 +11,7 @@ package runtime /** A wrapper class that adds string concatenation `+` to any value */ -@deprecated("Use Predef.StringAdd", "2.11.0") +@deprecated("use Predef.StringAdd", "2.11.0") final class StringAdd(val self: Any) extends AnyVal { def +(other: String) = String.valueOf(self) + other } diff --git a/src/library/scala/runtime/StringFormat.scala b/src/library/scala/runtime/StringFormat.scala index de32ac7e86..5376c3f982 100644 --- a/src/library/scala/runtime/StringFormat.scala +++ b/src/library/scala/runtime/StringFormat.scala @@ -12,7 +12,7 @@ package runtime /** A wrapper class that adds a `formatted` operation to any value */ -@deprecated("Use Predef.StringFormat", "2.11.0") +@deprecated("use Predef.StringFormat", "2.11.0") final class StringFormat(val self: Any) extends AnyVal { /** Returns string formatted according to given `format` string. * Format strings are as for `String.format` diff --git a/src/library/scala/runtime/StructuralCallSite.java b/src/library/scala/runtime/StructuralCallSite.java new file mode 100644 index 0000000000..f73b4f08e6 --- /dev/null +++ b/src/library/scala/runtime/StructuralCallSite.java @@ -0,0 +1,43 @@ +package scala.runtime; + + +import java.lang.invoke.*; +import java.lang.ref.SoftReference; +import java.lang.reflect.Method; + +public final class StructuralCallSite { + + private Class<?>[] parameterTypes; + private SoftReference<MethodCache> cache = new SoftReference<>(new EmptyMethodCache()); + + private StructuralCallSite(MethodType callType) { + parameterTypes = callType.parameterArray(); + } + + public MethodCache get() { + MethodCache cache = this.cache.get(); + if (cache == null) { + cache = new EmptyMethodCache(); + this.cache = new SoftReference<>(cache); + } + return cache; + } + + public Method find(Class<?> receiver) { + return get().find(receiver); + } + + public Method add(Class<?> receiver, Method m) { + cache = new SoftReference<MethodCache>(get().add(receiver, m)); + return m; + } + public Class<?>[] parameterTypes() { + return parameterTypes; + } + + public static CallSite bootstrap(MethodHandles.Lookup lookup, String invokedName, + MethodType invokedType, MethodType reflectiveCallType) throws Throwable { + StructuralCallSite structuralCallSite = new StructuralCallSite(reflectiveCallType); + return new ConstantCallSite(MethodHandles.constant(StructuralCallSite.class, structuralCallSite)); + } +} diff --git a/src/library/scala/runtime/SymbolLiteral.java b/src/library/scala/runtime/SymbolLiteral.java new file mode 100644 index 0000000000..09a66c83d5 --- /dev/null +++ b/src/library/scala/runtime/SymbolLiteral.java @@ -0,0 +1,20 @@ +package scala.runtime; + +import java.lang.invoke.*; +import java.util.regex.Pattern; + +public final class SymbolLiteral { + private SymbolLiteral() { + } + + public static CallSite bootstrap(MethodHandles.Lookup lookup, String invokedName, + MethodType invokedType, + String value) throws Throwable { + ClassLoader classLoader = lookup.lookupClass().getClassLoader(); + MethodType type = MethodType.fromMethodDescriptorString("(Ljava/lang/Object;)Ljava/lang/Object;", classLoader); + Class<?> symbolClass = Class.forName("scala.Symbol", false, classLoader); + MethodHandle factoryMethod = lookup.findStatic(symbolClass, "apply", type); + Object symbolValue = factoryMethod.invokeWithArguments(value); + return new ConstantCallSite(MethodHandles.constant(symbolClass, symbolValue)); + } +} diff --git a/src/library/scala/runtime/TraitSetter.java b/src/library/scala/runtime/TraitSetter.java index d9907c0ac0..d8dd8c6b04 100644 --- a/src/library/scala/runtime/TraitSetter.java +++ b/src/library/scala/runtime/TraitSetter.java @@ -2,5 +2,6 @@ package scala.runtime; /** A marker annotation to tag a setter of a mutable variable in a trait */ +@Deprecated public @interface TraitSetter { }
\ No newline at end of file diff --git a/src/library/scala/runtime/Tuple2Zipped.scala b/src/library/scala/runtime/Tuple2Zipped.scala index 4109f5cb4b..52dd1da09e 100644 --- a/src/library/scala/runtime/Tuple2Zipped.scala +++ b/src/library/scala/runtime/Tuple2Zipped.scala @@ -1,6 +1,6 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2002-2013, LAMP/EPFL ** +** / __/ __// _ | / / / _ | (c) 2002-2016, LAMP/EPFL ** ** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** @@ -34,14 +34,15 @@ object ZippedTraversable2 { } final class Tuple2Zipped[El1, Repr1, El2, Repr2](val colls: (TraversableLike[El1, Repr1], IterableLike[El2, Repr2])) extends AnyVal with ZippedTraversable2[El1, El2] { - // This would be better as "private def coll1 = colls._1" but - // SI-6215 precludes private methods in value classes. + private def coll1 = colls._1 + private def coll2 = colls._2 + def map[B, To](f: (El1, El2) => B)(implicit cbf: CBF[Repr1, B, To]): To = { - val b = cbf(colls._1.repr) - b.sizeHint(colls._1) - val elems2 = colls._2.iterator + val b = cbf(coll1.repr) + b.sizeHint(coll1) + val elems2 = coll2.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext) b += f(el1, elems2.next()) else @@ -52,10 +53,10 @@ final class Tuple2Zipped[El1, Repr1, El2, Repr2](val colls: (TraversableLike[El1 } def flatMap[B, To](f: (El1, El2) => TraversableOnce[B])(implicit cbf: CBF[Repr1, B, To]): To = { - val b = cbf(colls._1.repr) - val elems2 = colls._2.iterator + val b = cbf(coll1.repr) + val elems2 = coll2.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext) b ++= f(el1, elems2.next()) else @@ -66,11 +67,11 @@ final class Tuple2Zipped[El1, Repr1, El2, Repr2](val colls: (TraversableLike[El1 } def filter[To1, To2](f: (El1, El2) => Boolean)(implicit cbf1: CBF[Repr1, El1, To1], cbf2: CBF[Repr2, El2, To2]): (To1, To2) = { - val b1 = cbf1(colls._1.repr) - val b2 = cbf2(colls._2.repr) - val elems2 = colls._2.iterator + val b1 = cbf1(coll1.repr) + val b2 = cbf2(coll2.repr) + val elems2 = coll2.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext) { val el2 = elems2.next() if (f(el1, el2)) { @@ -85,9 +86,9 @@ final class Tuple2Zipped[El1, Repr1, El2, Repr2](val colls: (TraversableLike[El1 } def exists(@deprecatedName('f) p: (El1, El2) => Boolean): Boolean = { - val elems2 = colls._2.iterator + val elems2 = coll2.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext) { if (p(el1, elems2.next())) return true @@ -101,19 +102,21 @@ final class Tuple2Zipped[El1, Repr1, El2, Repr2](val colls: (TraversableLike[El1 !exists((x, y) => !p(x, y)) def foreach[U](f: (El1, El2) => U): Unit = { - val elems2 = colls._2.iterator + val elems2 = coll2.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext) f(el1, elems2.next()) else return } } + + override def toString = s"($coll1, $coll2).zipped" } object Tuple2Zipped { - final class Ops[T1, T2](val x: (T1, T2)) extends AnyVal { + final class Ops[T1, T2](private val x: (T1, T2)) extends AnyVal { def invert[El1, CC1[X] <: TraversableOnce[X], El2, CC2[X] <: TraversableOnce[X], That] (implicit w1: T1 <:< CC1[El1], w2: T2 <:< CC2[El2], diff --git a/src/library/scala/runtime/Tuple3Zipped.scala b/src/library/scala/runtime/Tuple3Zipped.scala index cde7699d40..a4a86f8e55 100644 --- a/src/library/scala/runtime/Tuple3Zipped.scala +++ b/src/library/scala/runtime/Tuple3Zipped.scala @@ -34,12 +34,16 @@ object ZippedTraversable3 { final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (TraversableLike[El1, Repr1], IterableLike[El2, Repr2], IterableLike[El3, Repr3])) extends AnyVal with ZippedTraversable3[El1, El2, El3] { + private def coll1 = colls._1 + private def coll2 = colls._2 + private def coll3 = colls._3 + def map[B, To](f: (El1, El2, El3) => B)(implicit cbf: CBF[Repr1, B, To]): To = { - val b = cbf(colls._1.repr) - val elems2 = colls._2.iterator - val elems3 = colls._3.iterator + val b = cbf(coll1.repr) + val elems2 = coll2.iterator + val elems3 = coll3.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext && elems3.hasNext) b += f(el1, elems2.next(), elems3.next()) else @@ -49,11 +53,11 @@ final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (Travers } def flatMap[B, To](f: (El1, El2, El3) => TraversableOnce[B])(implicit cbf: CBF[Repr1, B, To]): To = { - val b = cbf(colls._1.repr) - val elems2 = colls._2.iterator - val elems3 = colls._3.iterator + val b = cbf(coll1.repr) + val elems2 = coll2.iterator + val elems3 = coll3.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext && elems3.hasNext) b ++= f(el1, elems2.next(), elems3.next()) else @@ -66,14 +70,14 @@ final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (Travers implicit cbf1: CBF[Repr1, El1, To1], cbf2: CBF[Repr2, El2, To2], cbf3: CBF[Repr3, El3, To3]): (To1, To2, To3) = { - val b1 = cbf1(colls._1.repr) - val b2 = cbf2(colls._2.repr) - val b3 = cbf3(colls._3.repr) - val elems2 = colls._2.iterator - val elems3 = colls._3.iterator + val b1 = cbf1(coll1.repr) + val b2 = cbf2(coll2.repr) + val b3 = cbf3(coll3.repr) + val elems2 = coll2.iterator + val elems3 = coll3.iterator def result = (b1.result(), b2.result(), b3.result()) - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext && elems3.hasNext) { val el2 = elems2.next() val el3 = elems3.next() @@ -91,10 +95,10 @@ final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (Travers } def exists(@deprecatedName('f) p: (El1, El2, El3) => Boolean): Boolean = { - val elems2 = colls._2.iterator - val elems3 = colls._3.iterator + val elems2 = coll2.iterator + val elems3 = coll3.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext && elems3.hasNext) { if (p(el1, elems2.next(), elems3.next())) return true @@ -108,20 +112,22 @@ final class Tuple3Zipped[El1, Repr1, El2, Repr2, El3, Repr3](val colls: (Travers !exists((x, y, z) => !p(x, y, z)) def foreach[U](f: (El1, El2, El3) => U): Unit = { - val elems2 = colls._2.iterator - val elems3 = colls._3.iterator + val elems2 = coll2.iterator + val elems3 = coll3.iterator - for (el1 <- colls._1) { + for (el1 <- coll1) { if (elems2.hasNext && elems3.hasNext) f(el1, elems2.next(), elems3.next()) else return } } + + override def toString = s"($coll1, $coll2, $coll3).zipped" } object Tuple3Zipped { - final class Ops[T1, T2, T3](val x: (T1, T2, T3)) extends AnyVal { + final class Ops[T1, T2, T3](private val x: (T1, T2, T3)) extends AnyVal { def invert[El1, CC1[X] <: TraversableOnce[X], El2, CC2[X] <: TraversableOnce[X], El3, CC3[X] <: TraversableOnce[X], That] (implicit w1: T1 <:< CC1[El1], w2: T2 <:< CC2[El2], diff --git a/src/library/scala/runtime/java8/JFunction0$mcB$sp.java b/src/library/scala/runtime/java8/JFunction0$mcB$sp.java new file mode 100644 index 0000000000..622dbabcf1 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcB$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcB$sp extends scala.Function0, java.io.Serializable { + byte apply$mcB$sp(); + + default Object apply() { return scala.runtime.BoxesRunTime.boxToByte(apply$mcB$sp()); } +} diff --git a/src/library/scala/runtime/java8/JFunction0$mcC$sp.java b/src/library/scala/runtime/java8/JFunction0$mcC$sp.java new file mode 100644 index 0000000000..ad9a14ffa8 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcC$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcC$sp extends scala.Function0, java.io.Serializable { + char apply$mcC$sp(); + + default Object apply() { return scala.runtime.BoxesRunTime.boxToCharacter(apply$mcC$sp()); } +} diff --git a/src/library/scala/runtime/java8/JFunction0$mcD$sp.java b/src/library/scala/runtime/java8/JFunction0$mcD$sp.java new file mode 100644 index 0000000000..291b50db4b --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcD$sp extends scala.Function0, java.io.Serializable { + double apply$mcD$sp(); + + default Object apply() { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcD$sp()); } +} diff --git a/src/library/scala/runtime/java8/JFunction0$mcF$sp.java b/src/library/scala/runtime/java8/JFunction0$mcF$sp.java new file mode 100644 index 0000000000..73b31dea0f --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcF$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcF$sp extends scala.Function0, java.io.Serializable { + float apply$mcF$sp(); + + default Object apply() { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcF$sp()); } +} diff --git a/src/library/scala/runtime/java8/JFunction0$mcI$sp.java b/src/library/scala/runtime/java8/JFunction0$mcI$sp.java new file mode 100644 index 0000000000..f9b2d659ad --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcI$sp extends scala.Function0, java.io.Serializable { + int apply$mcI$sp(); + + default Object apply() { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcI$sp()); } +} diff --git a/src/library/scala/runtime/java8/JFunction0$mcJ$sp.java b/src/library/scala/runtime/java8/JFunction0$mcJ$sp.java new file mode 100644 index 0000000000..73c41976b7 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcJ$sp extends scala.Function0, java.io.Serializable { + long apply$mcJ$sp(); + + default Object apply() { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJ$sp()); } +} diff --git a/src/library/scala/runtime/java8/JFunction0$mcS$sp.java b/src/library/scala/runtime/java8/JFunction0$mcS$sp.java new file mode 100644 index 0000000000..5fbabb2358 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcS$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcS$sp extends scala.Function0, java.io.Serializable { + short apply$mcS$sp(); + + default Object apply() { return scala.runtime.BoxesRunTime.boxToShort(apply$mcS$sp()); } +} diff --git a/src/library/scala/runtime/java8/JFunction0$mcV$sp.java b/src/library/scala/runtime/java8/JFunction0$mcV$sp.java new file mode 100644 index 0000000000..735843796c --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcV$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcV$sp extends scala.Function0, java.io.Serializable { + void apply$mcV$sp(); + + default Object apply() { apply$mcV$sp(); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction0$mcZ$sp.java b/src/library/scala/runtime/java8/JFunction0$mcZ$sp.java new file mode 100644 index 0000000000..01234c1728 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction0$mcZ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction0$mcZ$sp extends scala.Function0, java.io.Serializable { + boolean apply$mcZ$sp(); + + default Object apply() { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZ$sp()); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcDD$sp.java b/src/library/scala/runtime/java8/JFunction1$mcDD$sp.java new file mode 100644 index 0000000000..07b85eed59 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcDD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcDD$sp extends scala.Function1, java.io.Serializable { + double apply$mcDD$sp(double v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDD$sp(scala.runtime.BoxesRunTime.unboxToDouble(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcDF$sp.java b/src/library/scala/runtime/java8/JFunction1$mcDF$sp.java new file mode 100644 index 0000000000..f09edd2ce2 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcDF$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcDF$sp extends scala.Function1, java.io.Serializable { + double apply$mcDF$sp(float v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDF$sp(scala.runtime.BoxesRunTime.unboxToFloat(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcDI$sp.java b/src/library/scala/runtime/java8/JFunction1$mcDI$sp.java new file mode 100644 index 0000000000..3cf40cb749 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcDI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcDI$sp extends scala.Function1, java.io.Serializable { + double apply$mcDI$sp(int v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDI$sp(scala.runtime.BoxesRunTime.unboxToInt(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcDJ$sp.java b/src/library/scala/runtime/java8/JFunction1$mcDJ$sp.java new file mode 100644 index 0000000000..4023f30bc0 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcDJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcDJ$sp extends scala.Function1, java.io.Serializable { + double apply$mcDJ$sp(long v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDJ$sp(scala.runtime.BoxesRunTime.unboxToLong(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcFD$sp.java b/src/library/scala/runtime/java8/JFunction1$mcFD$sp.java new file mode 100644 index 0000000000..d460895838 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcFD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcFD$sp extends scala.Function1, java.io.Serializable { + float apply$mcFD$sp(double v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFD$sp(scala.runtime.BoxesRunTime.unboxToDouble(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcFF$sp.java b/src/library/scala/runtime/java8/JFunction1$mcFF$sp.java new file mode 100644 index 0000000000..6c591800ca --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcFF$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcFF$sp extends scala.Function1, java.io.Serializable { + float apply$mcFF$sp(float v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFF$sp(scala.runtime.BoxesRunTime.unboxToFloat(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcFI$sp.java b/src/library/scala/runtime/java8/JFunction1$mcFI$sp.java new file mode 100644 index 0000000000..6669195914 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcFI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcFI$sp extends scala.Function1, java.io.Serializable { + float apply$mcFI$sp(int v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFI$sp(scala.runtime.BoxesRunTime.unboxToInt(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcFJ$sp.java b/src/library/scala/runtime/java8/JFunction1$mcFJ$sp.java new file mode 100644 index 0000000000..cd953677ae --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcFJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcFJ$sp extends scala.Function1, java.io.Serializable { + float apply$mcFJ$sp(long v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFJ$sp(scala.runtime.BoxesRunTime.unboxToLong(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcID$sp.java b/src/library/scala/runtime/java8/JFunction1$mcID$sp.java new file mode 100644 index 0000000000..37f6864936 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcID$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcID$sp extends scala.Function1, java.io.Serializable { + int apply$mcID$sp(double v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcID$sp(scala.runtime.BoxesRunTime.unboxToDouble(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcIF$sp.java b/src/library/scala/runtime/java8/JFunction1$mcIF$sp.java new file mode 100644 index 0000000000..8a7656a286 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcIF$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcIF$sp extends scala.Function1, java.io.Serializable { + int apply$mcIF$sp(float v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIF$sp(scala.runtime.BoxesRunTime.unboxToFloat(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcII$sp.java b/src/library/scala/runtime/java8/JFunction1$mcII$sp.java new file mode 100644 index 0000000000..792627b400 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcII$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcII$sp extends scala.Function1, java.io.Serializable { + int apply$mcII$sp(int v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcII$sp(scala.runtime.BoxesRunTime.unboxToInt(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcIJ$sp.java b/src/library/scala/runtime/java8/JFunction1$mcIJ$sp.java new file mode 100644 index 0000000000..01c47a67da --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcIJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcIJ$sp extends scala.Function1, java.io.Serializable { + int apply$mcIJ$sp(long v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIJ$sp(scala.runtime.BoxesRunTime.unboxToLong(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcJD$sp.java b/src/library/scala/runtime/java8/JFunction1$mcJD$sp.java new file mode 100644 index 0000000000..d8d5274ca1 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcJD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcJD$sp extends scala.Function1, java.io.Serializable { + long apply$mcJD$sp(double v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJD$sp(scala.runtime.BoxesRunTime.unboxToDouble(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcJF$sp.java b/src/library/scala/runtime/java8/JFunction1$mcJF$sp.java new file mode 100644 index 0000000000..cc1fad36d0 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcJF$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcJF$sp extends scala.Function1, java.io.Serializable { + long apply$mcJF$sp(float v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJF$sp(scala.runtime.BoxesRunTime.unboxToFloat(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcJI$sp.java b/src/library/scala/runtime/java8/JFunction1$mcJI$sp.java new file mode 100644 index 0000000000..fe941dd61a --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcJI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcJI$sp extends scala.Function1, java.io.Serializable { + long apply$mcJI$sp(int v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJI$sp(scala.runtime.BoxesRunTime.unboxToInt(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcJJ$sp.java b/src/library/scala/runtime/java8/JFunction1$mcJJ$sp.java new file mode 100644 index 0000000000..7034115bad --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcJJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcJJ$sp extends scala.Function1, java.io.Serializable { + long apply$mcJJ$sp(long v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJJ$sp(scala.runtime.BoxesRunTime.unboxToLong(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcVD$sp.java b/src/library/scala/runtime/java8/JFunction1$mcVD$sp.java new file mode 100644 index 0000000000..dde9f55722 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcVD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcVD$sp extends scala.Function1, java.io.Serializable { + void apply$mcVD$sp(double v1); + + default Object apply(Object t) { apply$mcVD$sp(scala.runtime.BoxesRunTime.unboxToDouble(t)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcVF$sp.java b/src/library/scala/runtime/java8/JFunction1$mcVF$sp.java new file mode 100644 index 0000000000..0ffd80621f --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcVF$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcVF$sp extends scala.Function1, java.io.Serializable { + void apply$mcVF$sp(float v1); + + default Object apply(Object t) { apply$mcVF$sp(scala.runtime.BoxesRunTime.unboxToFloat(t)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcVI$sp.java b/src/library/scala/runtime/java8/JFunction1$mcVI$sp.java new file mode 100644 index 0000000000..2543d23e31 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcVI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcVI$sp extends scala.Function1, java.io.Serializable { + void apply$mcVI$sp(int v1); + + default Object apply(Object t) { apply$mcVI$sp(scala.runtime.BoxesRunTime.unboxToInt(t)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcVJ$sp.java b/src/library/scala/runtime/java8/JFunction1$mcVJ$sp.java new file mode 100644 index 0000000000..7564175402 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcVJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcVJ$sp extends scala.Function1, java.io.Serializable { + void apply$mcVJ$sp(long v1); + + default Object apply(Object t) { apply$mcVJ$sp(scala.runtime.BoxesRunTime.unboxToLong(t)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcZD$sp.java b/src/library/scala/runtime/java8/JFunction1$mcZD$sp.java new file mode 100644 index 0000000000..ce5bd30029 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcZD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcZD$sp extends scala.Function1, java.io.Serializable { + boolean apply$mcZD$sp(double v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZD$sp(scala.runtime.BoxesRunTime.unboxToDouble(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcZF$sp.java b/src/library/scala/runtime/java8/JFunction1$mcZF$sp.java new file mode 100644 index 0000000000..baa691e548 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcZF$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcZF$sp extends scala.Function1, java.io.Serializable { + boolean apply$mcZF$sp(float v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZF$sp(scala.runtime.BoxesRunTime.unboxToFloat(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcZI$sp.java b/src/library/scala/runtime/java8/JFunction1$mcZI$sp.java new file mode 100644 index 0000000000..bf04b5922b --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcZI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcZI$sp extends scala.Function1, java.io.Serializable { + boolean apply$mcZI$sp(int v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZI$sp(scala.runtime.BoxesRunTime.unboxToInt(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction1$mcZJ$sp.java b/src/library/scala/runtime/java8/JFunction1$mcZJ$sp.java new file mode 100644 index 0000000000..808eea87b8 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction1$mcZJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction1$mcZJ$sp extends scala.Function1, java.io.Serializable { + boolean apply$mcZJ$sp(long v1); + + default Object apply(Object t) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZJ$sp(scala.runtime.BoxesRunTime.unboxToLong(t))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDDD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDDD$sp.java new file mode 100644 index 0000000000..80ab5203d9 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDDD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDDD$sp extends scala.Function2, java.io.Serializable { + double apply$mcDDD$sp(double v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDDD$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDDI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDDI$sp.java new file mode 100644 index 0000000000..8e92338b82 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDDI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDDI$sp extends scala.Function2, java.io.Serializable { + double apply$mcDDI$sp(double v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDDI$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDDJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDDJ$sp.java new file mode 100644 index 0000000000..3d4f4a7cde --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDDJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDDJ$sp extends scala.Function2, java.io.Serializable { + double apply$mcDDJ$sp(double v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDDJ$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDID$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDID$sp.java new file mode 100644 index 0000000000..bd6652e51a --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDID$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDID$sp extends scala.Function2, java.io.Serializable { + double apply$mcDID$sp(int v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDID$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDII$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDII$sp.java new file mode 100644 index 0000000000..d06a246d33 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDII$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDII$sp extends scala.Function2, java.io.Serializable { + double apply$mcDII$sp(int v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDII$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDIJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDIJ$sp.java new file mode 100644 index 0000000000..cda23c4dcd --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDIJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDIJ$sp extends scala.Function2, java.io.Serializable { + double apply$mcDIJ$sp(int v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDIJ$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDJD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDJD$sp.java new file mode 100644 index 0000000000..723efd8451 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDJD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDJD$sp extends scala.Function2, java.io.Serializable { + double apply$mcDJD$sp(long v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDJD$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDJI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDJI$sp.java new file mode 100644 index 0000000000..c90352ef30 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDJI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDJI$sp extends scala.Function2, java.io.Serializable { + double apply$mcDJI$sp(long v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDJI$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcDJJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcDJJ$sp.java new file mode 100644 index 0000000000..3361219787 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcDJJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcDJJ$sp extends scala.Function2, java.io.Serializable { + double apply$mcDJJ$sp(long v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToDouble(apply$mcDJJ$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFDD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFDD$sp.java new file mode 100644 index 0000000000..2b9236b5d1 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFDD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFDD$sp extends scala.Function2, java.io.Serializable { + float apply$mcFDD$sp(double v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFDD$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFDI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFDI$sp.java new file mode 100644 index 0000000000..2c564962a7 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFDI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFDI$sp extends scala.Function2, java.io.Serializable { + float apply$mcFDI$sp(double v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFDI$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFDJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFDJ$sp.java new file mode 100644 index 0000000000..a0785f4cd2 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFDJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFDJ$sp extends scala.Function2, java.io.Serializable { + float apply$mcFDJ$sp(double v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFDJ$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFID$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFID$sp.java new file mode 100644 index 0000000000..ba67ddb593 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFID$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFID$sp extends scala.Function2, java.io.Serializable { + float apply$mcFID$sp(int v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFID$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFII$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFII$sp.java new file mode 100644 index 0000000000..d58284b752 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFII$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFII$sp extends scala.Function2, java.io.Serializable { + float apply$mcFII$sp(int v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFII$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFIJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFIJ$sp.java new file mode 100644 index 0000000000..4bc6eeb908 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFIJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFIJ$sp extends scala.Function2, java.io.Serializable { + float apply$mcFIJ$sp(int v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFIJ$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFJD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFJD$sp.java new file mode 100644 index 0000000000..f2435e23f7 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFJD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFJD$sp extends scala.Function2, java.io.Serializable { + float apply$mcFJD$sp(long v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFJD$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFJI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFJI$sp.java new file mode 100644 index 0000000000..1362d00e94 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFJI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFJI$sp extends scala.Function2, java.io.Serializable { + float apply$mcFJI$sp(long v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFJI$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcFJJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcFJJ$sp.java new file mode 100644 index 0000000000..c9bcf515b7 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcFJJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcFJJ$sp extends scala.Function2, java.io.Serializable { + float apply$mcFJJ$sp(long v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToFloat(apply$mcFJJ$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIDD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIDD$sp.java new file mode 100644 index 0000000000..28693910a5 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIDD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIDD$sp extends scala.Function2, java.io.Serializable { + int apply$mcIDD$sp(double v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIDD$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIDI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIDI$sp.java new file mode 100644 index 0000000000..50c775fbd9 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIDI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIDI$sp extends scala.Function2, java.io.Serializable { + int apply$mcIDI$sp(double v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIDI$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIDJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIDJ$sp.java new file mode 100644 index 0000000000..3231aa7a88 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIDJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIDJ$sp extends scala.Function2, java.io.Serializable { + int apply$mcIDJ$sp(double v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIDJ$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIID$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIID$sp.java new file mode 100644 index 0000000000..01568b2fd6 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIID$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIID$sp extends scala.Function2, java.io.Serializable { + int apply$mcIID$sp(int v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIID$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIII$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIII$sp.java new file mode 100644 index 0000000000..e0fba76675 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIII$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIII$sp extends scala.Function2, java.io.Serializable { + int apply$mcIII$sp(int v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIII$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIIJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIIJ$sp.java new file mode 100644 index 0000000000..7155548e9f --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIIJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIIJ$sp extends scala.Function2, java.io.Serializable { + int apply$mcIIJ$sp(int v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIIJ$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIJD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIJD$sp.java new file mode 100644 index 0000000000..f541cfdef4 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIJD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIJD$sp extends scala.Function2, java.io.Serializable { + int apply$mcIJD$sp(long v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIJD$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIJI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIJI$sp.java new file mode 100644 index 0000000000..e484efe427 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIJI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIJI$sp extends scala.Function2, java.io.Serializable { + int apply$mcIJI$sp(long v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIJI$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcIJJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcIJJ$sp.java new file mode 100644 index 0000000000..ec3538779c --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcIJJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcIJJ$sp extends scala.Function2, java.io.Serializable { + int apply$mcIJJ$sp(long v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToInteger(apply$mcIJJ$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJDD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJDD$sp.java new file mode 100644 index 0000000000..b13502de5b --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJDD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJDD$sp extends scala.Function2, java.io.Serializable { + long apply$mcJDD$sp(double v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJDD$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJDI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJDI$sp.java new file mode 100644 index 0000000000..9ec9adda60 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJDI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJDI$sp extends scala.Function2, java.io.Serializable { + long apply$mcJDI$sp(double v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJDI$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJDJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJDJ$sp.java new file mode 100644 index 0000000000..68ef9ead14 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJDJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJDJ$sp extends scala.Function2, java.io.Serializable { + long apply$mcJDJ$sp(double v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJDJ$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJID$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJID$sp.java new file mode 100644 index 0000000000..29c9c5e3d3 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJID$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJID$sp extends scala.Function2, java.io.Serializable { + long apply$mcJID$sp(int v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJID$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJII$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJII$sp.java new file mode 100644 index 0000000000..bb23086125 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJII$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJII$sp extends scala.Function2, java.io.Serializable { + long apply$mcJII$sp(int v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJII$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJIJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJIJ$sp.java new file mode 100644 index 0000000000..649fe24325 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJIJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJIJ$sp extends scala.Function2, java.io.Serializable { + long apply$mcJIJ$sp(int v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJIJ$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJJD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJJD$sp.java new file mode 100644 index 0000000000..8e6071d448 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJJD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJJD$sp extends scala.Function2, java.io.Serializable { + long apply$mcJJD$sp(long v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJJD$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJJI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJJI$sp.java new file mode 100644 index 0000000000..61366ac26d --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJJI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJJI$sp extends scala.Function2, java.io.Serializable { + long apply$mcJJI$sp(long v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJJI$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcJJJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcJJJ$sp.java new file mode 100644 index 0000000000..a44e97318e --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcJJJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcJJJ$sp extends scala.Function2, java.io.Serializable { + long apply$mcJJJ$sp(long v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToLong(apply$mcJJJ$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVDD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVDD$sp.java new file mode 100644 index 0000000000..8e7cbd7d1b --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVDD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVDD$sp extends scala.Function2, java.io.Serializable { + void apply$mcVDD$sp(double v1, double v2); + + default Object apply(Object v1, Object v2) { apply$mcVDD$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVDI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVDI$sp.java new file mode 100644 index 0000000000..1dee353d6b --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVDI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVDI$sp extends scala.Function2, java.io.Serializable { + void apply$mcVDI$sp(double v1, int v2); + + default Object apply(Object v1, Object v2) { apply$mcVDI$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToInt(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVDJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVDJ$sp.java new file mode 100644 index 0000000000..0b95608684 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVDJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVDJ$sp extends scala.Function2, java.io.Serializable { + void apply$mcVDJ$sp(double v1, long v2); + + default Object apply(Object v1, Object v2) { apply$mcVDJ$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToLong(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVID$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVID$sp.java new file mode 100644 index 0000000000..f0ed7e7e97 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVID$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVID$sp extends scala.Function2, java.io.Serializable { + void apply$mcVID$sp(int v1, double v2); + + default Object apply(Object v1, Object v2) { apply$mcVID$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVII$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVII$sp.java new file mode 100644 index 0000000000..52d7922cc1 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVII$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVII$sp extends scala.Function2, java.io.Serializable { + void apply$mcVII$sp(int v1, int v2); + + default Object apply(Object v1, Object v2) { apply$mcVII$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToInt(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVIJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVIJ$sp.java new file mode 100644 index 0000000000..ac256bf163 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVIJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVIJ$sp extends scala.Function2, java.io.Serializable { + void apply$mcVIJ$sp(int v1, long v2); + + default Object apply(Object v1, Object v2) { apply$mcVIJ$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToLong(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVJD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVJD$sp.java new file mode 100644 index 0000000000..6e2dea3fbf --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVJD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVJD$sp extends scala.Function2, java.io.Serializable { + void apply$mcVJD$sp(long v1, double v2); + + default Object apply(Object v1, Object v2) { apply$mcVJD$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVJI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVJI$sp.java new file mode 100644 index 0000000000..d1cba439e6 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVJI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVJI$sp extends scala.Function2, java.io.Serializable { + void apply$mcVJI$sp(long v1, int v2); + + default Object apply(Object v1, Object v2) { apply$mcVJI$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToInt(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcVJJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcVJJ$sp.java new file mode 100644 index 0000000000..67f848a60e --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcVJJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcVJJ$sp extends scala.Function2, java.io.Serializable { + void apply$mcVJJ$sp(long v1, long v2); + + default Object apply(Object v1, Object v2) { apply$mcVJJ$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToLong(v2)); return scala.runtime.BoxedUnit.UNIT; } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZDD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZDD$sp.java new file mode 100644 index 0000000000..b430c5f134 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZDD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZDD$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZDD$sp(double v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZDD$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZDI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZDI$sp.java new file mode 100644 index 0000000000..01fb8ba003 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZDI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZDI$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZDI$sp(double v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZDI$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZDJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZDJ$sp.java new file mode 100644 index 0000000000..a7d28e3cfc --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZDJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZDJ$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZDJ$sp(double v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZDJ$sp(scala.runtime.BoxesRunTime.unboxToDouble(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZID$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZID$sp.java new file mode 100644 index 0000000000..e77719bf75 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZID$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZID$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZID$sp(int v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZID$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZII$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZII$sp.java new file mode 100644 index 0000000000..5f1f83aaf8 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZII$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZII$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZII$sp(int v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZII$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZIJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZIJ$sp.java new file mode 100644 index 0000000000..38fabd6f69 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZIJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZIJ$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZIJ$sp(int v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZIJ$sp(scala.runtime.BoxesRunTime.unboxToInt(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZJD$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZJD$sp.java new file mode 100644 index 0000000000..59c82cb01e --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZJD$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZJD$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZJD$sp(long v1, double v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZJD$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToDouble(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZJI$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZJI$sp.java new file mode 100644 index 0000000000..3e73b8a794 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZJI$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZJI$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZJI$sp(long v1, int v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZJI$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToInt(v2))); } +} diff --git a/src/library/scala/runtime/java8/JFunction2$mcZJJ$sp.java b/src/library/scala/runtime/java8/JFunction2$mcZJJ$sp.java new file mode 100644 index 0000000000..96a14e98a5 --- /dev/null +++ b/src/library/scala/runtime/java8/JFunction2$mcZJJ$sp.java @@ -0,0 +1,13 @@ + +/* + * Copyright (C) 2012-2015 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.runtime.java8; + +@FunctionalInterface +public interface JFunction2$mcZJJ$sp extends scala.Function2, java.io.Serializable { + boolean apply$mcZJJ$sp(long v1, long v2); + + default Object apply(Object v1, Object v2) { return scala.runtime.BoxesRunTime.boxToBoolean(apply$mcZJJ$sp(scala.runtime.BoxesRunTime.unboxToLong(v1), scala.runtime.BoxesRunTime.unboxToLong(v2))); } +} |