summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-05-18 18:31:18 +0000
committerRich Hickey <richhickey@gmail.com>2009-05-18 18:31:18 +0000
commit2cdd5ec3aa03204722a84d86841011a1b0d8d764 (patch)
tree39b214ec3c556be98fad5ecc3a3a72b65c31c1e5 /src
parentdbb85aafafc90a9b6021ef58c5cd4bd8a20600fc (diff)
enhanced message for Can't call public method of non-public class
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/Reflector.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/lang/Reflector.java
index b62ef7f0..4a7061f4 100644
--- a/src/jvm/clojure/lang/Reflector.java
+++ b/src/jvm/clojure/lang/Reflector.java
@@ -79,10 +79,12 @@ static Object invokeMatchingMethod(String methodName, List methods, Object targe
if(!Modifier.isPublic(m.getDeclaringClass().getModifiers()))
{
//public method of non-public class, try to find it in hierarchy
+ Method oldm = m;
m = getAsMethodOfPublicBase(m.getDeclaringClass(), m);
+ if(m == null)
+ throw new IllegalArgumentException("Can't call public method of non-public class: " +
+ oldm.toString());
}
- if(m == null)
- throw new IllegalArgumentException(noMethodReport(methodName,target));
try
{
return prepRet(m.invoke(target, boxedArgs));