From b27a6f72bd8802fa07fb74cdf1252a612f50cb33 Mon Sep 17 00:00:00 2001 From: Rich Hickey Date: Sat, 3 Jun 2006 19:35:36 +0000 Subject: brought compiler and runtime back in sync --- src/cli/runtime/Accessor.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/cli/runtime') diff --git a/src/cli/runtime/Accessor.cs b/src/cli/runtime/Accessor.cs index 2a26ce32..b63e5e7c 100644 --- a/src/cli/runtime/Accessor.cs +++ b/src/cli/runtime/Accessor.cs @@ -14,12 +14,13 @@ namespace org.clojure.runtime { public class Accessor :Symbol, IFn { - internal Accessor(String name) :base(name) { } + String memberName; internal Accessor(String name) :base(name) { memberName = name.Substring(1); } public Object invoke(ThreadLocalData tld) /*throws Exception*/ { return AFn.throwArity(); - } /** * Indexer implements IFn for attr access * This single arg version is the getter * @param tld * @param obj - must be AMap * @return the value of the attr or nil if not found * @throws Exception */ public Object invoke(ThreadLocalData tld, Object obj) //throws Exception { - return Reflector.invokeInstanceMember(name, obj); } /** * Indexer implements IFn for attr access * This two arg version is the setter * @param tld * @param obj - must be AMap * @param val * @return val * @throws Exception */ public Object invoke(ThreadLocalData tld, Object obj, Object val) //throws Exception { return Reflector.invokeInstanceMember(name,obj,val); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3) //throws Exception { return Reflector.invokeInstanceMember(name,arg1,arg2,arg3); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4) //throws Exception { return Reflector.invokeInstanceMember(name,arg1,arg2,arg3,arg4); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) //throws Exception { return Reflector.invokeInstanceMember(name,arg1,arg2,arg3,arg4,arg5); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args) //throws Exception { return Reflector.invokeInstanceMember(name,arg1,arg2,arg3,arg4,arg5,args); } + } /** * Indexer implements IFn for attr access * This single arg version is the getter * @param tld * @param obj - must be AMap * @return the value of the attr or nil if not found * @throws Exception */ public Object invoke(ThreadLocalData tld, Object obj) //throws Exception { + + return Reflector.invokeInstanceMember(memberName, obj); } /** * Indexer implements IFn for attr access * This two arg version is the setter * @param tld * @param obj - must be AMap * @param val * @return val * @throws Exception */ public Object invoke(ThreadLocalData tld, Object obj, Object val) //throws Exception { return Reflector.invokeInstanceMember(memberName,obj,val); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5,args); } public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/ { return AFn.applyToHelper(this, tld, arglist); -- cgit v1.2.3-70-g09d2