diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-05-25 23:59:52 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-05-25 23:59:52 +0000 |
commit | 92ae58a35e3d2efbfc8f9cf4ba3767a32aaec29f (patch) | |
tree | 2a77e6ce699ff2a466930c8d09197e9e4ce0cb28 | |
parent | 1084d899a6d751ccd9bc5056ab9d8e4db0ffbc36 (diff) |
trap instance method calls to known nil targets at compile time
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index 52c392cb..ecdda8ab 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -1139,6 +1139,8 @@ static class InstanceMethodExpr extends MethodExpr{ this.target = target; if(target.hasJavaClass()) { + if(target.getJavaClass() == null) + throw new IllegalArgumentException("Attempt to call instance method '" + methodName + "' on nil"); List methods = Reflector.getMethods(target.getJavaClass(), args.count(), methodName, false); if(methods.isEmpty()) method = null; |