diff src/luan/LuanFunction.java @ 1563:8fbcc4747091

remove LuanFunction.luan
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 09 Nov 2020 01:37:57 -0700
parents e1a13e707bf3
children
line wrap: on
line diff
--- a/src/luan/LuanFunction.java	Sun Nov 08 16:50:59 2020 -0700
+++ b/src/luan/LuanFunction.java	Mon Nov 09 01:37:57 2020 -0700
@@ -1,73 +1,9 @@
 package luan;
 
 
-public abstract class LuanFunction implements LuanCloneable, Cloneable {
-	private Luan luan;
-	private LuanCloner cloner;
-	private boolean clone;
-
-	public LuanFunction(Luan luan) {
-		if( luan==null )  throw new NullPointerException();
-		this.luan = luan;
-		this.clone = true;
-	}
-
-	public LuanFunction(boolean clone) {
-		this.clone = clone;
-	}
-
-	// for LuanJavaFunction
-	void dontClone() {
-		luan = null;
-		clone = false;
-	}
-
-	@Override public LuanFunction shallowClone() {
-		if( !clone )
-			return this;
-		check();
-		try {
-			return (LuanFunction)clone();
-		} catch(CloneNotSupportedException e) {
-			throw new RuntimeException(e);
-		}
-	}
+public abstract class LuanFunction {
 
-	private void check() {
-		if( cloner != null ) {
-			completeClone(this,cloner);
-			cloner = null;
-		}
-	}
-
-	@Override public void deepenClone(LuanCloneable dc,LuanCloner cloner) {
-		if( !clone )
-			return;
-		LuanFunction clone = (LuanFunction)dc;
-		switch( cloner.type ) {
-		case COMPLETE:
-			completeClone(clone,cloner);
-			return;
-		case INCREMENTAL:
-			clone.cloner = cloner;
-			return;
-		}
-	}
-
-	protected void completeClone(LuanFunction clone,LuanCloner cloner) {
-		clone.luan = (Luan)cloner.clone(luan);
-	}
-
-	@Override public void makeImmutable(LuanImmutabler immutabler) throws LuanException {
-		immutabler.makeImmutable(luan);
-	}
-
-	public Luan luan() {
-		check();
-		return luan;
-	}
-
-	public abstract Object call(Object... args) throws LuanException;
+	public abstract Object call(Luan luan,Object... args) throws LuanException;
 
 	public static final Object[] NOTHING = new Object[0];