Skip to content
Snippets Groups Projects
Commit 7bdd9acb authored by Mick Jordan's avatar Mick Jordan
Browse files

implement read functions on emptyenv

parent 6aad25d7
Branches
No related tags found
No related merge requests found
......@@ -1037,12 +1037,11 @@ public abstract class REnvironment extends RAttributeStorage implements RTypedVa
}
/**
* The empty environment has no runtime state and so can be allocated statically. TODO Attempts
* to assign should cause an R error, if not prevented in caller. TODO check.
* The empty environment has no runtime state and so can be allocated statically.
*/
private static final class Empty extends REnvironment {
public final static String EMPTY_ENV_NAME = "R_EmptyEnv";
public static final String EMPTY_ENV_NAME = "R_EmptyEnv";
private Empty() {
super(null, EMPTY_ENV_NAME, new REnvEmptyFrameAccess());
......
......@@ -31,6 +31,7 @@ import com.oracle.truffle.r.runtime.env.*;
import com.oracle.truffle.r.runtime.env.REnvironment.*;
public final class REnvEmptyFrameAccess extends REnvFrameAccess {
private static final RStringVector EMPTY = RDataFactory.createEmptyStringVector();
@Override
public MaterializedFrame getFrame() {
......@@ -39,7 +40,7 @@ public final class REnvEmptyFrameAccess extends REnvFrameAccess {
@Override
public Object get(String key) {
throw RInternalError.shouldNotReachHere();
return null;
}
@Override
......@@ -49,12 +50,12 @@ public final class REnvEmptyFrameAccess extends REnvFrameAccess {
@Override
public void rm(String key) throws PutException {
throw RInternalError.shouldNotReachHere();
throw new PutException(RError.Message.UNKNOWN_OBJECT, key);
}
@Override
public RStringVector ls(boolean allNames, Pattern pattern, boolean sorted) {
throw RInternalError.shouldNotReachHere();
return EMPTY;
}
@Override
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment