diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FunctionDefinitionNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FunctionDefinitionNode.java index b59153173da7e361a83bbbca7f01c7750d4849fc..deeae0c09029ec750993a289b9287b4ad2ccd391 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FunctionDefinitionNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FunctionDefinitionNode.java @@ -238,7 +238,7 @@ public final class FunctionDefinitionNode extends RRootNode implements RSyntaxNo } catch (ReturnException ex) { returnProfile.enter(); int depth = ex.getDepth(); - if (depth != -1 && RArguments.getDepth(vf) != depth) { + if ((depth != -1 && RArguments.getDepth(vf) != depth) || (substituteFrame && this.description == RPromise.CLOSURE_WRAPPER_NAME)) { throw ex; } else { return ex.getResult(); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/S4/TestS4.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/S4/TestS4.java index c67c5169556fe3b15f489216c410db35215c98e1..841483337f558eeba372a8617c6242cd8830c321 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/S4/TestS4.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/S4/TestS4.java @@ -74,7 +74,7 @@ public class TestS4 extends TestBase { @Test public void testAllocation() { assertEval("{ new(\"numeric\") }"); - assertEval(Ignored.Unknown, "{ setClass(\"foo\", representation(j=\"numeric\")); new(\"foo\", j=42) }"); + assertEval("{ setClass(\"foo\", representation(j=\"numeric\")); new(\"foo\", j=42) }"); } @Test diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_eval.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_eval.java index 9be490b6c1c4c9b67ac56c5d628597f10fb521c6..02b466ede4ef00055977bbcd27c6cf9e5be61ac0 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_eval.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_eval.java @@ -27,8 +27,8 @@ public class TestBuiltin_eval extends TestBase { assertEval("{ f <- function(x) { eval(x) }; f(1) }"); assertEval("{ eval(x <- 1); ls() }"); assertEval("{ ne <- new.env(); eval(x <- 1, ne); ls() }"); - assertEval(Ignored.Unknown, "{ ne <- new.env(); evalq(x <- 1, ne); ls(ne) }"); - assertEval(Ignored.Unknown, "{ ne <- new.env(); evalq(envir=ne, expr=x <- 1); ls(ne) }"); + assertEval("{ ne <- new.env(); evalq(x <- 1, ne); ls(ne) }"); + assertEval("{ ne <- new.env(); evalq(envir=ne, expr=x <- 1); ls(ne) }"); assertEval("{ e1 <- new.env(); assign(\"x\", 100, e1); e2 <- new.env(parent = e1); evalq(x, e2) }"); assertEval("{ f <- function(z) {z}; e<-as.call(c(expression(f), 7)); eval(e) }"); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_identical.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_identical.java index fd95b5d695f19e87b43daf2cf408c4ec8fcd6da6..2bd330ee3a553c0db7772fa0fd83b4259113ccbd 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_identical.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_identical.java @@ -220,8 +220,8 @@ public class TestBuiltin_identical extends TestBase { assertEval("{ identical(quote(if(x) 42), quote(if(x) 42)) }"); assertEval("{ identical(function() 42, function() 42) }"); - assertEval(Ignored.Unknown, "{ setClass(\"foo\", representation(j=\"numeric\")); x<-new(\"foo\", j=42); y<-new(\"foo\", j=42); identical(x,y) }"); - assertEval(Ignored.Unknown, "{ setClass(\"foo\", representation(j=\"numeric\")); x<-new(\"foo\", j=42); y<-new(\"foo\", j=7); identical(x,y) }"); + assertEval("{ setClass(\"foo\", representation(j=\"numeric\")); x<-new(\"foo\", j=42); y<-new(\"foo\", j=42); identical(x,y) }"); + assertEval("{ setClass(\"foo\", representation(j=\"numeric\")); x<-new(\"foo\", j=42); y<-new(\"foo\", j=7); identical(x,y) }"); assertEval("{ x<-list(7); y<-list(7); identical(x,y) }"); assertEval("{ x<-list(7); y<-list(42); identical(x,y) }"); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_unclass.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_unclass.java index cd4bc19bf0e9a8ba2df2109f6fcb7ac78b807edc..d4e06608d87ddd335aaf0b9bf40dfbcae9aaeef9 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_unclass.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_unclass.java @@ -208,6 +208,6 @@ public class TestBuiltin_unclass extends TestBase { @Test public void testOther() { - assertEval(Ignored.Unknown, "{ setClass(\"foo\", representation(j=\"numeric\")); x<-new(\"foo\", j=42); unclass(x) }"); + assertEval("{ setClass(\"foo\", representation(j=\"numeric\")); x<-new(\"foo\", j=42); unclass(x) }"); } } diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestMiscBuiltins.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestMiscBuiltins.java index c78e92777cf4bb6a2b6d7e6a1ff3eaa2f3cbf020..a38e884ae6168311fdfc985e12e849ad2c4ce89a 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestMiscBuiltins.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestMiscBuiltins.java @@ -236,7 +236,7 @@ public class TestMiscBuiltins extends TestBase { @Test public void testLocal() { assertEval("{ kk <- local({k <- function(x) {x*2}}); kk(8)}"); - assertEval(Ignored.Unknown, "{ ne <- new.env(); local(a <- 1, ne); ls(ne) }"); + assertEval("{ ne <- new.env(); local(a <- 1, ne); ls(ne) }"); } @Test