diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EvalFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EvalFunctions.java
index 03efc9ffa40a9d4cf311aac79a37706262b8a012..17360a86e823c63b391688369e5230c081a0b745 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EvalFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EvalFunctions.java
@@ -58,7 +58,7 @@ public class EvalFunctions {
         @CompilationFinal private RFunction function;
 
         @Override
-        public Object[] getParameterNames() {
+        public String[] getParameterNames() {
             return PARAMETER_NAMES;
         }
 
@@ -165,7 +165,7 @@ public class EvalFunctions {
         @SuppressWarnings("hiding") protected static final String[] PARAMETER_NAMES = new String[]{"expr", "envir"};
 
         @Override
-        public Object[] getParameterNames() {
+        public String[] getParameterNames() {
             return PARAMETER_NAMES;
         }
 
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ForeignFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ForeignFunctions.java
index bbbe49061dbc7086e51321f056ffa1e305383419..a1846172a4e524696bd4db61bcdf7bb9597ad020 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ForeignFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ForeignFunctions.java
@@ -47,7 +47,7 @@ public class ForeignFunctions {
         protected static final String[] PARAMETER_NAMES = new String[]{".NAME", "...", "NAOK", "DUP", "PACKAGE", "ENCODING"};
 
         @Override
-        public Object[] getParameterNames() {
+        public String[] getParameterNames() {
             return PARAMETER_NAMES;
         }
 
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsListFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsListFunctions.java
index c616e9e1b12166bfd40088c7f37fd5e89a23d1c0..e0b9e96189a2416b15b92b1b6a90565afa9ccd66 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsListFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsListFunctions.java
@@ -43,7 +43,7 @@ public class IsListFunctions {
         private static final String[] PARAMETER_NAMES = new String[]{"x"};
 
         @Override
-        public Object[] getParameterNames() {
+        public String[] getParameterNames() {
             return PARAMETER_NAMES;
         }
 
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeNode.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeNode.java
index 5369eda224507247b423260c7d036dcd3daf38bd..a37e195d8632bde46b5401d38ec8419a8001e73d 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeNode.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeNode.java
@@ -35,7 +35,7 @@ public abstract class IsTypeNode extends RBuiltinNode {
     private static final String[] PARAMETER_NAMES = new String[]{"x"};
 
     @Override
-    public Object[] getParameterNames() {
+    public String[] getParameterNames() {
         return PARAMETER_NAMES;
     }
 
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Prod.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Prod.java
index 682d58c8fdecc2ad4b84d0b6649d539a2363870f..367325b2c5311365435884ef48ce4954f1474ad0 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Prod.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Prod.java
@@ -23,10 +23,10 @@ import com.oracle.truffle.r.runtime.ops.*;
 @RBuiltin(name = "prod", kind = RBuiltinKind.PRIMITIVE, parameterNames = {"...", "na.rm"})
 public abstract class Prod extends RBuiltinNode {
 
-    private static final Object[] PARAMETER_NAMES = new Object[]{"..."};
+    private static final String[] PARAMETER_NAMES = new String[]{"..."};
 
     @Override
-    public Object[] getParameterNames() {
+    public String[] getParameterNames() {
         return PARAMETER_NAMES;
     }
 
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/WriteVariableNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/WriteVariableNode.java
index 0cef42dacd6a92aff2d7f6e7d2fbc53d874deb8b..f66abe95a854e21263b322609ffaadefba61ff25 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/WriteVariableNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/WriteVariableNode.java
@@ -150,10 +150,10 @@ public abstract class WriteVariableNode extends RNode implements VisibilityContr
 
     public abstract void execute(VirtualFrame frame, Object value);
 
-    @NodeFields({@NodeField(name = "symbol", type = Object.class), @NodeField(name = "mode", type = Mode.class)})
+    @NodeFields({@NodeField(name = "name", type = String.class), @NodeField(name = "mode", type = Mode.class)})
     public abstract static class UnresolvedWriteLocalVariableNode extends WriteVariableNode {
 
-        public abstract Object getSymbol();
+        public abstract String getName();
 
         public abstract Mode getMode();
 
@@ -183,7 +183,7 @@ public abstract class WriteVariableNode extends RNode implements VisibilityContr
 
         private void resolveAndSet(VirtualFrame frame, Object value, FrameSlotKind initialKind) {
             CompilerAsserts.neverPartOfCompilation();
-            FrameSlot frameSlot = frame.getFrameDescriptor().findOrAddFrameSlot(getSymbol(), initialKind);
+            FrameSlot frameSlot = frame.getFrameDescriptor().findOrAddFrameSlot(getName(), initialKind);
             replace(ResolvedWriteLocalVariableNode.create(getRhs(), this.isArgWrite(), frameSlot, getMode())).execute(frame, value);
         }
     }
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/RBuiltinNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/RBuiltinNode.java
index 48a2933110c605b455d6f411192d92dc71164da0..36bd47ad08cb99b865e31ead13d2c16eb7b96eef 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/RBuiltinNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/RBuiltinNode.java
@@ -71,7 +71,7 @@ public abstract class RBuiltinNode extends RCallNode implements VisibilityContro
      *
      * TODO This should go away once all builtins are converted to annotation based specification.
      */
-    protected Object[] getParameterNames() {
+    protected String[] getParameterNames() {
         RBuiltin builtin = getRBuiltin();
         return builtin == null ? null : builtin.parameterNames();
     }