summaryrefslogtreecommitdiff
path: root/src/cli/runtime/PersistentListMap.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli/runtime/PersistentListMap.cs')
-rw-r--r--src/cli/runtime/PersistentListMap.cs40
1 files changed, 11 insertions, 29 deletions
diff --git a/src/cli/runtime/PersistentListMap.cs b/src/cli/runtime/PersistentListMap.cs
index 714dfe38..f0c55492 100644
--- a/src/cli/runtime/PersistentListMap.cs
+++ b/src/cli/runtime/PersistentListMap.cs
@@ -27,7 +27,7 @@ namespace clojure.lang
*
* null keys and values are ok, but you won't be able to distinguish a null value via get - use contains/find
*/
-public class PersistentListMap : Obj, IPersistentMap, IMapEntry, ISeq, IPersistentCollection
+public class PersistentListMap : APersistentMap, IMapEntry, ISeq
{
static public PersistentListMap EMPTY = new PersistentListMap();
@@ -35,13 +35,7 @@ static public PersistentListMap EMPTY = new PersistentListMap();
static public PersistentListMap create(Object key, Object val){
return new Tail(key, val,null);
}
-
-public override Obj withMeta(IPersistentMap meta)
- {
- Obj ret = (Obj)MemberwiseClone();
- ret._meta = meta;
- return ret;
- }
+
public virtual Object key(){
return null;
@@ -55,38 +49,34 @@ internal virtual PersistentListMap next(){
return this;
}
-public virtual int count(){
+override public int count(){
return 0;
}
-public virtual bool contains(Object key){
+override public bool contains(Object key){
return false;
}
-public virtual IMapEntry find(Object key){
+override public IMapEntry find(Object key){
return null;
}
-public virtual IPersistentMap assocEx(Object key, Object val){
+override public IPersistentMap assocEx(Object key, Object val){
return (IPersistentMap)assoc(key, val);
}
-public virtual Associative assoc(Object key, Object val){
+override public Associative assoc(Object key, Object val){
return new Tail(key, val, _meta);
}
-public virtual IPersistentMap without(Object key){
+override public IPersistentMap without(Object key){
return this;
}
-public virtual Object get(Object key){
+override public Object get(Object key){
return null;
}
-public virtual int capacity(){
- return 0;
-}
-
virtual public Object first()
{
return null;
@@ -97,7 +87,7 @@ virtual public ISeq rest()
return null;
}
-virtual public ISeq seq()
+override public ISeq seq()
{
return null;
}
@@ -136,7 +126,7 @@ public void Reset()
#endregion
}
-public IEnumerator GetEnumerator(){
+override public IEnumerator GetEnumerator(){
return new Iter(this);
}
@@ -166,11 +156,6 @@ internal class Tail : PersistentListMap {
return null;
}
- override public int capacity()
- {
- return 1;
- }
-
override public Object key()
{
return _key;
@@ -322,9 +307,6 @@ internal class Link : PersistentListMap {
return null;
}
- override public int capacity(){
- return count();
- }
override public Object first()
{