diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RListMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RListMR.java index 13c996f9c47386138b4d4d3fc77ee0e73e2ecbc8..f75ff54701cbcb000eadd1ac4d708a269c7af6d5 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RListMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RListMR.java @@ -41,6 +41,7 @@ import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.context.RContext.RCloseable; import com.oracle.truffle.r.runtime.data.RFunction; import com.oracle.truffle.r.runtime.data.RList; +import com.oracle.truffle.r.runtime.data.RNull; import com.oracle.truffle.r.runtime.data.RStringVector; @MessageResolution(receiverType = RList.class, language = TruffleRLanguage.class) @@ -75,7 +76,8 @@ public class RListMR { @SuppressWarnings("try") protected Object access(VirtualFrame frame, RList receiver, String field) { try (RCloseable c = RContext.withinContext(TruffleRLanguage.INSTANCE.actuallyFindContext0(findContext))) { - return extract.applyAccessField(frame, receiver, field); + Object applyAccessField = extract.applyAccessField(frame, receiver, field); + return applyAccessField; } } } @@ -103,7 +105,8 @@ public class RListMR { @SuppressWarnings("try") protected Object access(RList receiver) { try (RCloseable c = RContext.withinContext(TruffleRLanguage.INSTANCE.actuallyFindContext0(findContext))) { - return getNamesNode.getNames(receiver); + RStringVector names = getNamesNode.getNames(receiver); + return names != null ? names : RNull.instance; } } }