diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Reflector.java | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/lang/Reflector.java index 13c9125d..100fc226 100644 --- a/src/jvm/clojure/lang/Reflector.java +++ b/src/jvm/clojure/lang/Reflector.java @@ -291,21 +291,13 @@ static public List getMethods(Class c, int arity, String name, boolean getStatic ArrayList methods = new ArrayList(); for(int i = 0; i < allmethods.length; i++) { - try + final Method method = allmethods[i]; + if(name.equals(method.getName()) + && Modifier.isStatic(method.getModifiers()) == getStatics + && method.getParameterTypes().length == arity + && !method.isSynthetic()) { - if(name.equals(allmethods[i].getName()) - && Modifier.isStatic(allmethods[i].getModifiers()) == getStatics - && allmethods[i].getParameterTypes().length == arity - && (!Modifier.isVolatile(allmethods[i].getModifiers()) - || c.getMethod(allmethods[i].getName(), allmethods[i].getParameterTypes()) - .equals(allmethods[i]))) - { - methods.add(allmethods[i]); - } - } - catch(NoSuchMethodException e) - { - throw new RuntimeException(e); + methods.add(method); } } if(!getStatics && c.isInterface()) |