diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-05-01 13:32:13 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-05-01 13:32:13 +0000 |
commit | 81eae9c78fadbcaf455a621022283ffc48689af3 (patch) | |
tree | ec117fe35c200d15b460eb05cf62874420d07237 /src | |
parent | 1f4466a7a54f26f78f47d4fa3f5b6e6d786aefcc (diff) |
trimmed some checkcasts in code gen
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index c1df1537..a3542eef 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -1010,7 +1010,8 @@ static class InstanceMethodExpr extends MethodExpr{ { Type type = Type.getType(method.getDeclaringClass()); target.emit(C.EXPRESSION, fn, gen); - gen.checkCast(type); + if(!method.getDeclaringClass().isInterface()) + gen.checkCast(type); MethodExpr.emitTypedArgs(fn, gen, method.getParameterTypes(), args); if(context == C.RETURN) { @@ -2395,7 +2396,7 @@ static class InvokeExpr implements Expr{ public void emit(C context, FnExpr fn, GeneratorAdapter gen){ gen.visitLineNumber(line, gen.mark()); fexpr.emit(C.EXPRESSION, fn, gen); - gen.checkCast(IFN_TYPE); + //gen.checkCast(IFN_TYPE); for(int i = 0; i < Math.min(MAX_POSITIONAL_ARITY, args.count()); i++) { Expr e = (Expr) args.nth(i); |