diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/CachedReplaceVectorNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/CachedReplaceVectorNode.java index ac985c1a1189b938f93d676c091318aa4e3b57c9..76de77faaab09c7b3e66c2edec3fea6de04b6f73 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/CachedReplaceVectorNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/CachedReplaceVectorNode.java @@ -341,6 +341,9 @@ final class CachedReplaceVectorNode extends CachedVectorNode { case PairList: vector = RType.List; break; + case Environment: + vector = RType.List; + break; default: vector = this.vectorType; break; diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test index b34ed25ea9f25a70ff69ec75eb4382bdc7619657..3a09e444bf63776181974d2bd2edc57ec6eddacf 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test @@ -100260,6 +100260,14 @@ NULL [1] FALSE +##com.oracle.truffle.r.test.library.base.TestSimpleVectors.testScalarUpdate +#{ e < new.env(); e[["abc"]] <- 3} +Error: object 'e' not found + +##com.oracle.truffle.r.test.library.base.TestSimpleVectors.testScalarUpdate +#{ e < new.env(); e[["abc"]] <- NULL} +Error: object 'e' not found + ##com.oracle.truffle.r.test.library.base.TestSimpleVectors.testScalarUpdate #{ f <- function() { a[3] <- 4 } ; f() } Error in a[3] <- 4 : object 'a' not found diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleVectors.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleVectors.java index 7be447ea80c3ebcece8ee9e82e6d441dbeeea5a6..3582fb18d40494af8a2a1ef6324e413a7af576fd 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleVectors.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleVectors.java @@ -1383,6 +1383,8 @@ public class TestSimpleVectors extends TestBase { assertEval("{ b <- c(\"a\",\"b\") ; z <- b ; b[[3L]] <- \"xx\" ; b }"); assertEval("{ x <- as.list(1:2) ; x[[\"z\"]] <- NULL ; x }"); + assertEval("{ e < new.env(); e[[\"abc\"]] <- 3}"); + assertEval("{ e < new.env(); e[[\"abc\"]] <- NULL}"); assertEval("{ x<-5:1; x[0-2]<-1000; x }"); assertEval("{ x<-c(); x[[TRUE]] <- 2; x }");