diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharTr.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharTr.java
index 6c81776bedc9f22a2ed489768891dce428f84897..b354a949115daff2c94b7805669ed7d95393eb29 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharTr.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharTr.java
@@ -94,9 +94,10 @@ public abstract class CharTr extends RBuiltinNode.Arg3 {
         if (newEnd - newStart < oldEnd - oldStart) {
             throw error(X_LONGER_THAN_Y, "old", "new");
         }
+        String replacedValue = value;
         for (int rangeIdx = 0; rangeIdx <= oldEnd - oldStart; rangeIdx++) {
-            value = value.replace((char) (oldStart + rangeIdx), (char) (newStart + rangeIdx));
+            replacedValue = value.replace((char) (oldStart + rangeIdx), (char) (newStart + rangeIdx));
         }
-        return value;
+        return replacedValue;
     }
 }
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CompileFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CompileFunctions.java
index 383554e3ac42e46081f99ee0ccdb061ce7a5d32a..bf269cdd993347017074d3eefc8641571ae845e0 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CompileFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CompileFunctions.java
@@ -69,6 +69,7 @@ public class CompileFunctions {
     }
 
     @RBuiltin(name = "mkCode", kind = INTERNAL, parameterNames = {"bytes", "consts"}, behavior = PURE)
+    @SuppressWarnings("unused")
     public abstract static class MkCode extends RBuiltinNode.Arg2 {
 
         static {
@@ -96,7 +97,8 @@ public class CompileFunctions {
         }
 
         @Specialization
-        protected Object bcClose(@SuppressWarnings("unused") Object forms, Object body, @SuppressWarnings("unused") Object env) {
+        @SuppressWarnings("unused")
+        protected Object bcClose(Object forms, Object body, Object env) {
             return RNull.instance; // Body
         }
     }
@@ -130,6 +132,7 @@ public class CompileFunctions {
     }
 
     @RBuiltin(name = "bcVersion", kind = INTERNAL, parameterNames = {}, behavior = PURE)
+    @SuppressWarnings("unused")
     public abstract static class BcVersion extends RBuiltinNode.Arg0 {
 
         static {
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EncodeString.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EncodeString.java
index 3feb26bd40ed44046a9738be0352a6de7c17342e..9fe3d1452275081b70e808f932655b1cde53ab51 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EncodeString.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EncodeString.java
@@ -24,7 +24,6 @@ import static com.oracle.truffle.r.runtime.builtins.RBuiltinKind.INTERNAL;
 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
 import com.oracle.truffle.api.dsl.Cached;
 import com.oracle.truffle.api.dsl.Specialization;
-import com.oracle.truffle.api.profiles.BranchProfile;
 import com.oracle.truffle.api.profiles.ConditionProfile;
 import com.oracle.truffle.r.nodes.attributes.UnaryCopyAttributesNode;
 import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
@@ -47,7 +46,6 @@ public abstract class EncodeString extends RBuiltinNode.Arg5 {
     }
 
     private final NACheck na = NACheck.create();
-    private final BranchProfile everSeenNA = BranchProfile.create();
 
     static {
         Casts casts = new Casts(EncodeString.class);
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/NChar.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/NChar.java
index 8c6b7d81d146cc79ab669752db13765b6742b111..a9b767a2be16d0c3bfe87321b1dedbf798b052bf 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/NChar.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/NChar.java
@@ -53,9 +53,6 @@ import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector;
 @RBuiltin(name = "nchar", kind = INTERNAL, parameterNames = {"x", "type", "allowNA", "keepNA"}, behavior = PURE)
 public abstract class NChar extends RBuiltinNode.Arg4 {
     private static final String[] TYPES = new String[]{"bytes", "chars", "width"};
-    private static final int TYPE_BYTES = 0;
-    private static final int TYPE_CHARS = 1;
-    private static final int TYPE_WIDTH = 2;
 
     static {
         Casts casts = new Casts(NChar.class);
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/PMatch.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/PMatch.java
index 56edbde21bfcb951cc63a5704dfa59951b95d8a1..23c393d948b3e9cf83ccbbbf0f14ad0af659fcc1 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/PMatch.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/PMatch.java
@@ -40,6 +40,7 @@ import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector;
 
 @RBuiltin(name = "pmatch", kind = INTERNAL, parameterNames = {"x", "table", "nomatch", "duplicates.ok"}, behavior = PURE)
+@SuppressWarnings("unused")
 public abstract class PMatch extends RBuiltinNode.Arg4 {
 
     private final ConditionProfile nomatchNA = ConditionProfile.createBinaryProfile();
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Strrep.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Strrep.java
index 43dd6c789ac6620c2c3d9d76ee27d188606bbd4c..3b6723a2e2c6484921ae9e4b423055e90d8689ee 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Strrep.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Strrep.java
@@ -91,12 +91,14 @@ public abstract class Strrep extends RBuiltinNode.Arg2 {
     }
 
     @Specialization
+    @SuppressWarnings("unused")
     protected Object strrep(RNull xVec, RAbstractIntVector timesVec) {
         return RDataFactory.createEmptyStringVector(); // GnuR fails with segfault; return value
                                                        // adheres to non-internal strrep() result
     }
 
     @Specialization
+    @SuppressWarnings("unused")
     protected Object strrep(RAbstractStringVector xVec, RNull timesVec) {
         return RDataFactory.createEmptyStringVector(); // GnuR - infinite loop; return value adheres
                                                        // to non-internal strrep() result
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Switch.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Switch.java
index e266bceac2765ababb0878140efd737a41bff344..dbcc505daa559df10188669a5aac0e9035bd35f0 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Switch.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Switch.java
@@ -81,7 +81,8 @@ public abstract class Switch extends RBuiltinNode.Arg2 {
     // could be interpreted as integer
 
     @Specialization
-    protected Object doSwitchList(VirtualFrame frame, RList list, @SuppressWarnings("unused") RArgsValuesAndNames optionalArgs) {
+    @SuppressWarnings("unused")
+    protected Object doSwitchList(VirtualFrame frame, RList list, RArgsValuesAndNames optionalArgs) {
         return prepareResult(frame, null);
     }
 
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/ListPrinter.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/ListPrinter.java
index 344a27d78998400ac0dd6cf9d31d386994d762b2..7c84d1caf7a79c2145c6ad528bd222ee4e6ed597 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/ListPrinter.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/ListPrinter.java
@@ -30,7 +30,6 @@ import com.oracle.truffle.r.runtime.data.RLanguage;
 import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.data.RStringVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractComplexVector;
-import com.oracle.truffle.r.runtime.data.model.RAbstractContainer;
 import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractListVector;
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/attributes/SpecialAttributesFunctions.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/attributes/SpecialAttributesFunctions.java
index 814b3c6f6e324ee9af106229a09be0c709778256..2e6c5c264963c3b02f1eb8209d60905983f46399 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/attributes/SpecialAttributesFunctions.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/attributes/SpecialAttributesFunctions.java
@@ -897,7 +897,6 @@ public final class SpecialAttributesFunctions {
 
     public abstract static class InitDimsNamesDimNamesNode extends RBaseNode {
 
-        private final ConditionProfile oldAttrsNullProfile = ConditionProfile.createBinaryProfile();
         private final ConditionProfile doAnythingProfile = ConditionProfile.createBinaryProfile();
 
         @Child private GetDimAttributeNode getDimNode;
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RCleanUp.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RCleanUp.java
index d33648e88f25646b17a93d579f973f4e91c46b12..37065d16a16fe7a968856635a928b9ceace872c6 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RCleanUp.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RCleanUp.java
@@ -82,7 +82,6 @@ public class RCleanUp {
                  * we save always
                  */
                 RContext.getEngine().checkAndRunStartupShutdownFunction("sys.save.image", new String[]{"\".RData\""});
-                String history = RContext.getInstance().getConsole().getHistory();
                 // TODO: write out history
                 break;
             case NOSAVE:
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/ChildContextInfo.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/ChildContextInfo.java
index a40ce96e9b708b299c5697038600e8ca607a74ae..931b59fd2ad37b18af07cefc88851216fa83cc45 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/ChildContextInfo.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/ChildContextInfo.java
@@ -119,7 +119,7 @@ public final class ChildContextInfo {
         return this.truffleContext;
     }
 
-    public TruffleContext createVM(ChildContextInfo childContextInfo) {
+    public TruffleContext createVM(@SuppressWarnings("unused") ChildContextInfo childContextInfo) {
         this.truffleContext = RContext.getInstance().getEnv().newContextBuilder().config("parentContext", parent.getVM()).config(CONFIG_KEY, this).build();
         return this.truffleContext;
     }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataCopy.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataCopy.java
index f5b86c65dd6a62a1516f8a386f9af4ef2d544776..ebd66da59d1822a94aeefb09136854dd9f081673 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataCopy.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataCopy.java
@@ -83,7 +83,7 @@ public abstract class GetDataCopy {
         }
 
         @Specialization(guards = "vec.hasNativeMemoryData()")
-        protected java.lang.String[] doManagedRVector(RStringVector vec) {
+        protected java.lang.String[] doManagedRVector(@SuppressWarnings("unused") RStringVector vec) {
             throw RInternalError.unimplemented("string vectors backed by native memory");
         }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/SetDataAt.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/SetDataAt.java
index 46f7a849bc3efd49e51de9ea55b635ff53891a7d..297b29b932ac9b31d16537c4dc78d3c7f2a9d1d8 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/SetDataAt.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/SetDataAt.java
@@ -41,6 +41,7 @@ public abstract class SetDataAt extends Node {
     public abstract void setDataAtAsObject(RVector<?> vector, Object store, int index, Object value);
 
     @ImportStatic(NativeDataAccess.class)
+    @SuppressWarnings("unused")
     public abstract static class Double extends SetDataAt {
 
         @Override
@@ -70,6 +71,7 @@ public abstract class SetDataAt extends Node {
     }
 
     @ImportStatic(NativeDataAccess.class)
+    @SuppressWarnings("unused")
     public abstract static class Int extends SetDataAt {
 
         @Override
@@ -99,6 +101,7 @@ public abstract class SetDataAt extends Node {
     }
 
     @ImportStatic(NativeDataAccess.class)
+    @SuppressWarnings("unused")
     public abstract static class Logical extends SetDataAt {
 
         @Override
@@ -128,6 +131,7 @@ public abstract class SetDataAt extends Node {
     }
 
     @ImportStatic(NativeDataAccess.class)
+    @SuppressWarnings("unused")
     public abstract static class Raw extends SetDataAt {
 
         @Override
@@ -157,6 +161,7 @@ public abstract class SetDataAt extends Node {
     }
 
     @ImportStatic(NativeDataAccess.class)
+    @SuppressWarnings("unused")
     public abstract static class Complex extends SetDataAt {
 
         @Override
@@ -188,6 +193,7 @@ public abstract class SetDataAt extends Node {
     }
 
     @ImportStatic(NativeDataAccess.class)
+    @SuppressWarnings("unused")
     public abstract static class String extends SetDataAt {
 
         @Override
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/SNorm.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/SNorm.java
index 7549bbc4924ea6a7b4401d9d53bca33fb6c39555..d6250e1f5b191c1ebb0c236d77a9bd7db617efb1 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/SNorm.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/SNorm.java
@@ -111,6 +111,7 @@ public final class SNorm {
         // only static members
     }
 
+    @SuppressWarnings("unused")
     public static double normRand(RandomNumberGenerator rand, NormKind normKind) {
         double s;
         double u1;
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
index 3454f3d7ba20a1cf4e18f8cd0aff8b9712811f65..c44cfb173ad9a76f1d0dcf4434f580da03e22822 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
@@ -91,7 +91,7 @@ public abstract class AbstractMRTest {
         return false;
     }
 
-    protected boolean testToNative(TruffleObject obj) {
+    protected boolean testToNative(@SuppressWarnings("unused") TruffleObject obj) {
         return true;
     }
 
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestJavaInterop.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestJavaInterop.java
index ad80239ab65b27287f05fd591b93272cae55e0a4..58f375d43e239a8579c514272dc81fe6f2b8a0e8 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestJavaInterop.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestJavaInterop.java
@@ -913,7 +913,7 @@ public class TestJavaInterop extends TestBase {
         }
     }
 
-    private String getRLikeCoordinates(final List<Integer> dims) {
+    private static String getRLikeCoordinates(final List<Integer> dims) {
         StringBuilder cor = new StringBuilder();
         cor.append("[");
         for (int i = 0; i < dims.size(); i++) {
@@ -926,7 +926,7 @@ public class TestJavaInterop extends TestBase {
         return cor.toString();
     }
 
-    private String getJavaLikeCoordinates(final List<Integer> dims) {
+    private static String getJavaLikeCoordinates(final List<Integer> dims) {
         StringBuilder cor = new StringBuilder();
         for (int i = 0; i < dims.size(); i++) {
             cor.append("[");
@@ -1565,7 +1565,7 @@ public class TestJavaInterop extends TestBase {
         return sb.toString();
     }
 
-    private String errorIn(String left, String right) {
+    private static String errorIn(String left, String right) {
         String errorIn = "Error in ";
         String delim = " :";