Skip to content

Instantly share code, notes, and snippets.

@gerritjvv
Created November 23, 2014 17: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 gerritjvv/3b0e938bdcf91d2a450d to your computer and use it in GitHub Desktop.
Save gerritjvv/3b0e938bdcf91d2a450d to your computer and use it in GitHub Desktop.
NPETypeHintFix
(defn safe-inc [l ^long x]
(if l
(+ ^long l x)
x))
// Compiled from form-init2140241509718408406.clj (version 1.5 : 49.0, super bit)
public final class no.disassemble$eval1752$safe_inc__1753 extends clojure.lang.AFunction implements clojure.lang.IFn$OLO {
// Field descriptor #9 Lclojure/lang/Var;
public static final clojure.lang.Var const__0;
// Method descriptor #11 ()V
// Stack: 2, Locals: 0
public static {};
0 ldc <String "clojure.core"> [13]
2 ldc <String "+"> [15]
4 invokestatic clojure.lang.RT.var(java.lang.String, java.lang.String) : clojure.lang.Var [21]
7 checkcast clojure.lang.Var [23]
10 putstatic no.disassemble$eval1752$safe_inc__1753.const__0 : clojure.lang.Var [25]
13 return
Line numbers:
[pc: 0, line: 1]
// Method descriptor #11 ()V
// Stack: 1, Locals: 1
public disassemble$eval1752$safe_inc__1753();
0 aload_0 [this]
1 invokespecial clojure.lang.AFunction() [28]
4 return
Line numbers:
[pc: 0, line: 1]
// Method descriptor #30 (Ljava/lang/Object;J)Ljava/lang/Object;
// Stack: 4, Locals: 4
public final java.lang.Object invokePrim(java.lang.Object l, long x);
0 aload_1 [l]
1 dup
2 ifnull 30
5 getstatic java.lang.Boolean.FALSE : java.lang.Boolean [36]
8 if_acmpeq 31
11 aload_1 [l]
12 aconst_null
13 astore_1 [l]
14 checkcast java.lang.Number [38]
17 invokestatic clojure.lang.RT.longCast(java.lang.Object) : long [42]
20 lload_2 [x]
21 invokestatic clojure.lang.Numbers.add(long, long) : long [48]
24 invokestatic clojure.lang.Numbers.num(long) : java.lang.Number [52]
27 goto 35
30 pop
31 lload_2 [x]
32 invokestatic clojure.lang.Numbers.num(long) : java.lang.Number [52]
35 areturn
Line numbers:
[pc: 0, line: 1]
[pc: 0, line: 2]
[pc: 11, line: 3]
Local variable table:
[pc: 0, pc: 35] local: this index: 0 type: java.lang.Object
[pc: 0, pc: 35] local: l index: 1 type: java.lang.Object
[pc: 0, pc: 35] local: x index: 2 type: long
// Method descriptor #59 (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
// Stack: 4, Locals: 3
public java.lang.Object invoke(java.lang.Object arg0, java.lang.Object arg1);
0 aload_0 [this]
1 aload_1 [arg0]
2 aload_2 [arg1]
3 checkcast java.lang.Number [38]
6 invokestatic clojure.lang.RT.longCast(java.lang.Object) : long [42]
9 invokeinterface clojure.lang.IFn$OLO.invokePrim(java.lang.Object, long) : java.lang.Object [61] [nargs: 4]
14 areturn
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment