Skip to content

Instantly share code, notes, and snippets.

@jedws
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jedws/2d9da705c21a1d1cdce2 to your computer and use it in GitHub Desktop.
Save jedws/2d9da705c21a1d1cdce2 to your computer and use it in GitHub Desktop.
import scala.runtime.AbstractFunction2
class Foo[A, B, C]
extends AbstractFunction2[String, Int, Int] with ((String, Int) => Int) {
def apply(a: String, i: Int) = 3
}
> test $ javap target/scala-2.10/classes/Foo.class
Compiled from "Foo.scala"
public class Foo<A, B, C> extends scala.runtime.AbstractFunction2<java.lang.String, java.lang.Object, java.lang.Object> implements scala.Function2<java.lang.String, java.lang.Object, java.lang.Object> {
public int apply(java.lang.String, int);
public java.lang.Object apply(java.lang.Object, java.lang.Object);
public Foo();
}
class Foo[A, B, C]
extends ((String, Int) => Int) {
def apply(a: String, i: Int) = 3
}
> test $ javap target/scala-2.10/classes/Foo.class
Compiled from "Foo.scala"
public class Foo<A, B, C> implements scala.Function2<java.lang.String, java.lang.Object, java.lang.Object> {
public boolean apply$mcZDD$sp(double, double);
public double apply$mcDDD$sp(double, double);
public float apply$mcFDD$sp(double, double);
public int apply$mcIDD$sp(double, double);
public long apply$mcJDD$sp(double, double);
public void apply$mcVDD$sp(double, double);
public boolean apply$mcZDI$sp(double, int);
public double apply$mcDDI$sp(double, int);
public float apply$mcFDI$sp(double, int);
public int apply$mcIDI$sp(double, int);
public long apply$mcJDI$sp(double, int);
public void apply$mcVDI$sp(double, int);
public boolean apply$mcZDJ$sp(double, long);
public double apply$mcDDJ$sp(double, long);
public float apply$mcFDJ$sp(double, long);
public int apply$mcIDJ$sp(double, long);
public long apply$mcJDJ$sp(double, long);
public void apply$mcVDJ$sp(double, long);
public boolean apply$mcZID$sp(int, double);
public double apply$mcDID$sp(int, double);
public float apply$mcFID$sp(int, double);
public int apply$mcIID$sp(int, double);
public long apply$mcJID$sp(int, double);
public void apply$mcVID$sp(int, double);
public boolean apply$mcZII$sp(int, int);
public double apply$mcDII$sp(int, int);
public float apply$mcFII$sp(int, int);
public int apply$mcIII$sp(int, int);
public long apply$mcJII$sp(int, int);
public void apply$mcVII$sp(int, int);
public boolean apply$mcZIJ$sp(int, long);
public double apply$mcDIJ$sp(int, long);
public float apply$mcFIJ$sp(int, long);
public int apply$mcIIJ$sp(int, long);
public long apply$mcJIJ$sp(int, long);
public void apply$mcVIJ$sp(int, long);
public boolean apply$mcZJD$sp(long, double);
public double apply$mcDJD$sp(long, double);
public float apply$mcFJD$sp(long, double);
public int apply$mcIJD$sp(long, double);
public long apply$mcJJD$sp(long, double);
public void apply$mcVJD$sp(long, double);
public boolean apply$mcZJI$sp(long, int);
public double apply$mcDJI$sp(long, int);
public float apply$mcFJI$sp(long, int);
public int apply$mcIJI$sp(long, int);
public long apply$mcJJI$sp(long, int);
public void apply$mcVJI$sp(long, int);
public boolean apply$mcZJJ$sp(long, long);
public double apply$mcDJJ$sp(long, long);
public float apply$mcFJJ$sp(long, long);
public int apply$mcIJJ$sp(long, long);
public long apply$mcJJJ$sp(long, long);
public void apply$mcVJJ$sp(long, long);
public scala.Function1<java.lang.String, scala.Function1<java.lang.Object, java.lang.Object>> curried();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZDD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDDD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFDD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIDD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJDD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVDD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZDI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDDI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFDI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIDI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJDI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVDI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZDJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDDJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFDJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIDJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJDJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVDJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZID$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDID$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFID$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIID$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJID$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVID$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZII$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDII$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFII$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIII$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJII$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVII$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZIJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDIJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFIJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIIJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJIJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVIJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZJD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDJD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFJD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIJD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJJD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVJD$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZJI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDJI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFJI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIJI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJJI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVJI$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcZJJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcDJJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcFJJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcIJJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, java.lang.Object>> curried$mcJJJ$sp();
public scala.Function1<java.lang.Object, scala.Function1<java.lang.Object, scala.runtime.BoxedUnit>> curried$mcVJJ$sp();
public scala.Function1<scala.Tuple2<java.lang.String, java.lang.Object>, java.lang.Object> tupled();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZDD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDDD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFDD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIDD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJDD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVDD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZDI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDDI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFDI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIDI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJDI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVDI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZDJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDDJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFDJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIDJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJDJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVDJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZID$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDID$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFID$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIID$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJID$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVID$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZII$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDII$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFII$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIII$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJII$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVII$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZIJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDIJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFIJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIIJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJIJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVIJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZJD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDJD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFJD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIJD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJJD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVJD$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZJI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDJI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFJI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIJI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJJI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVJI$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcZJJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcDJJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcFJJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcIJJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, java.lang.Object> tupled$mcJJJ$sp();
public scala.Function1<scala.Tuple2<java.lang.Object, java.lang.Object>, scala.runtime.BoxedUnit> tupled$mcVJJ$sp();
public java.lang.String toString();
public int apply(java.lang.String, int);
public java.lang.Object apply(java.lang.Object, java.lang.Object);
public Foo();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment