summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/genclass.clj4
-rw-r--r--src/jvm/clojure/lang/APersistentSet.java6
-rw-r--r--src/jvm/clojure/lang/IPersistentSet.java1
-rw-r--r--src/jvm/clojure/lang/RT.java5
4 files changed, 10 insertions, 6 deletions
diff --git a/src/genclass.clj b/src/genclass.clj
index c63da8fd..6a305cdc 100644
--- a/src/genclass.clj
+++ b/src/genclass.clj
@@ -91,7 +91,7 @@
:init name
If supplied, names a function that will be called with the arguments
- to the constructor. Must return [[superclass-constructor-args] state]
+ to the constructor. Must return [ [superclass-constructor-args] state]
If not supplied, the constructor args are passed directly to
the superclass constructor and the state will be nil
@@ -104,7 +104,7 @@
constructor signature. When you supply this, you must supply an :init
specifier.
- :methods [[name [param-types] return-type], ...]
+ :methods [ [name [param-types] return-type], ...]
The generated class automatically defines all of the non-private
methods of its superclasses/interfaces. This parameter can be used
diff --git a/src/jvm/clojure/lang/APersistentSet.java b/src/jvm/clojure/lang/APersistentSet.java
index a3fffa70..e0c5400a 100644
--- a/src/jvm/clojure/lang/APersistentSet.java
+++ b/src/jvm/clojure/lang/APersistentSet.java
@@ -28,6 +28,10 @@ public boolean contains(Object key){
return impl.containsKey(key);
}
+public Object get(Object key){
+ return impl.valAt(key);
+}
+
public int count(){
return impl.count();
}
@@ -37,7 +41,7 @@ public ISeq seq(){
}
public Object invoke(Object arg1) throws Exception{
- return contains(arg1) ? arg1 : null;
+ return get(arg1);
}
public boolean equals(Object obj){
diff --git a/src/jvm/clojure/lang/IPersistentSet.java b/src/jvm/clojure/lang/IPersistentSet.java
index 0aeebf06..00bccc52 100644
--- a/src/jvm/clojure/lang/IPersistentSet.java
+++ b/src/jvm/clojure/lang/IPersistentSet.java
@@ -15,4 +15,5 @@ package clojure.lang;
public interface IPersistentSet extends IPersistentCollection{
public IPersistentSet disjoin(Object key) throws Exception;
public boolean contains(Object key);
+ public Object get(Object key);
}
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index d52fe02a..6784e4aa 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -470,8 +470,7 @@ static public Object get(Object coll, Object key){
else if(coll instanceof IPersistentSet)
{
IPersistentSet set = (IPersistentSet) coll;
- if(set.contains(key))
- return key;
+ return set.get(key);
}
else if(key instanceof Number && (coll instanceof String || coll.getClass().isArray()))
{
@@ -501,7 +500,7 @@ static public Object get(Object coll, Object key, Object notFound){
{
IPersistentSet set = (IPersistentSet) coll;
if(set.contains(key))
- return key;
+ return set.get(key);
return notFound;
}
else if(key instanceof Number && (coll instanceof String || coll.getClass().isArray()))