summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-05-25 23:59:52 +0000
committerRich Hickey <richhickey@gmail.com>2009-05-25 23:59:52 +0000
commit92ae58a35e3d2efbfc8f9cf4ba3767a32aaec29f (patch)
tree2a77e6ce699ff2a466930c8d09197e9e4ce0cb28
parent1084d899a6d751ccd9bc5056ab9d8e4db0ffbc36 (diff)
trap instance method calls to known nil targets at compile time
-rw-r--r--src/jvm/clojure/lang/Compiler.java2
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;