diff --git a/com.oracle.truffle.r.ffi.processor/src/com/oracle/truffle/r/ffi/processor/FFIProcessor.java b/com.oracle.truffle.r.ffi.processor/src/com/oracle/truffle/r/ffi/processor/FFIProcessor.java
index 7db79ec6624a50378bac7eea0ca02b7f10ba8319..e2086b05f7e568503714014e2aa1fb3637c249fc 100644
--- a/com.oracle.truffle.r.ffi.processor/src/com/oracle/truffle/r/ffi/processor/FFIProcessor.java
+++ b/com.oracle.truffle.r.ffi.processor/src/com/oracle/truffle/r/ffi/processor/FFIProcessor.java
@@ -237,7 +237,9 @@ public final class FFIProcessor extends AbstractProcessor {
         w.append("import com.oracle.truffle.api.interop.TruffleObject;\n");
         w.append("import com.oracle.truffle.api.nodes.RootNode;\n");
         w.append("import com.oracle.truffle.r.runtime.context.RContext;\n");
-        w.append("import com.oracle.truffle.r.runtime.data.RDataFactory;\n");
+        if (returnKind != TypeKind.VOID) {
+            w.append("import com.oracle.truffle.r.runtime.data.RDataFactory;\n");
+        }
         w.append("import com.oracle.truffle.r.runtime.ffi.CallRFFI.HandleUpCallExceptionNode;\n");
         w.append("import com.oracle.truffle.r.runtime.ffi.RFFIContext;\n");
         w.append("import com.oracle.truffle.r.ffi.impl.common.RFFIUtils;\n");
diff --git a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java
index 3e3e8bfe502b62660e2d555abb8018c44b11b027..6710cdd0e79c1046d05bf36659d86793ac6c98ff 100644
--- a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java
+++ b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java
@@ -27,7 +27,6 @@ import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
 import org.graalvm.options.OptionCategory;
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/LPoints.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/LPoints.java
index a83a14c965abd5bcac251a40c413dd2a97285694..9cb924d7feebfae7785c34cfac36b18726902bff 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/LPoints.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/LPoints.java
@@ -344,9 +344,5 @@ public abstract class LPoints extends RExternalBuiltinNode.Arg4 {
         public GridColor getFillColor() {
             return fillColor;
         }
-
-        private DrawingContext getWrapped() {
-            return inner;
-        }
     }
 }
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/device/SVGDevice.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/device/SVGDevice.java
index cd82ccda80a24cb1e6dbd302072400114130362b..e8370c11b8bdef15d1acba5576147d32db1de36e 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/device/SVGDevice.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/device/SVGDevice.java
@@ -351,7 +351,7 @@ public class SVGDevice implements GridDevice, FileGridDevice {
         return (180. / Math.PI) * -rotationAnticlockWise;
     }
 
-    private int trRound(double value) {
+    private static int trRound(double value) {
         return (int) Math.round(value * COORD_FACTOR);
     }
 
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/utils/Download.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/utils/Download.java
index 34b8a9e3503cb1c951bdc62355a1d8ca7b801018..7e1bd9efb207351c692d0ee6efcba115148fb2b0 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/utils/Download.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/utils/Download.java
@@ -37,7 +37,6 @@ import com.oracle.truffle.r.runtime.RError;
 import com.oracle.truffle.r.runtime.RError.Message;
 import com.oracle.truffle.r.runtime.builtins.RBuiltin;
 import com.oracle.truffle.r.runtime.conn.StdConnections;
-import com.oracle.truffle.r.runtime.nodes.builtin.RBuiltinBaseNode;
 
 /**
  * Support for the "internal"method of "utils::download.file". TODO take note of "quiet", "mode" and
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java
index cd05c3e209b81ab639ace33becbb10feb053fcad..918b90d8a73874e6b4d40e940319883a68682b76 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java
@@ -26,7 +26,6 @@ import java.util.function.Supplier;
 
 import com.oracle.truffle.api.frame.MaterializedFrame;
 import com.oracle.truffle.r.library.fastrGrid.DoSetViewPortBuiltin;
-import com.oracle.truffle.r.library.utils.Download;
 import com.oracle.truffle.r.library.utils.Download.CurlDownload;
 import com.oracle.truffle.r.library.utils.DownloadNodeGen.CurlDownloadNodeGen;
 import com.oracle.truffle.r.nodes.RRootNode;
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Lengths.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Lengths.java
index 3cdee98c3ab7bbddc2172a4a94612bb92c94f538..5a856bb999ed55467898819056bf23dd273e6d15 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Lengths.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Lengths.java
@@ -33,7 +33,6 @@ import static com.oracle.truffle.r.runtime.builtins.RBuiltinKind.INTERNAL;
 import java.util.Arrays;
 
 import com.oracle.truffle.api.CompilerDirectives;
-import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
 import com.oracle.truffle.api.dsl.Specialization;
 import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
 import com.oracle.truffle.r.nodes.control.RLengthNode;
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/OptionsFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/OptionsFunctions.java
index 27deb99948450b5b52e7f1084238b4ba342e1c98..43d5493d06ba6c9e958597448d8b78aad39c9420 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/OptionsFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/OptionsFunctions.java
@@ -41,7 +41,6 @@ import com.oracle.truffle.r.nodes.function.visibility.SetVisibilityNode;
 import com.oracle.truffle.r.runtime.ArgumentsSignature;
 import com.oracle.truffle.r.runtime.RError;
 import com.oracle.truffle.r.runtime.RError.Message;
-import com.oracle.truffle.r.runtime.RInternalError;
 import com.oracle.truffle.r.runtime.ROptions;
 import com.oracle.truffle.r.runtime.ROptions.OptionsException;
 import com.oracle.truffle.r.runtime.builtins.RBuiltin;
diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/test/BinaryArithmeticNodeTest.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/test/BinaryArithmeticNodeTest.java
index d3316f4917c56db00491c69aae8914c03a29575b..285845a82e7a1937886bc9016be8dbf157a3ddc7 100644
--- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/test/BinaryArithmeticNodeTest.java
+++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/test/BinaryArithmeticNodeTest.java
@@ -68,10 +68,8 @@ import com.oracle.truffle.api.object.DynamicObject;
 import com.oracle.truffle.r.nodes.binary.BinaryArithmeticNode;
 import com.oracle.truffle.r.nodes.test.TestUtilities.NodeHandle;
 import com.oracle.truffle.r.runtime.RType;
-import com.oracle.truffle.r.runtime.RError.Message;
 import com.oracle.truffle.r.runtime.data.RAttributesLayout;
 import com.oracle.truffle.r.runtime.data.RComplex;
-import com.oracle.truffle.r.runtime.data.RDataFactory;
 import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.data.RScalarVector;
 import com.oracle.truffle.r.runtime.data.RSequence;
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryArithmeticNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryArithmeticNode.java
index 9afbc9bc10cdad62c86bead33ff590111d26bd38..47ddd3aebaf2961f79fc163b427d45e022b8d646 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryArithmeticNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryArithmeticNode.java
@@ -27,9 +27,7 @@ import com.oracle.truffle.api.CompilerDirectives;
 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
 import com.oracle.truffle.api.dsl.Cached;
 import com.oracle.truffle.api.dsl.Fallback;
-import com.oracle.truffle.api.dsl.ImportStatic;
 import com.oracle.truffle.api.dsl.Specialization;
-import com.oracle.truffle.api.nodes.Node.Child;
 import com.oracle.truffle.api.profiles.ValueProfile;
 import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
 import com.oracle.truffle.r.nodes.primitive.BinaryMapNode;
@@ -38,7 +36,6 @@ import com.oracle.truffle.r.nodes.unary.UnaryArithmeticNode;
 import com.oracle.truffle.r.nodes.unary.UnaryArithmeticNodeGen;
 import com.oracle.truffle.r.runtime.RError;
 import com.oracle.truffle.r.runtime.RError.Message;
-import com.oracle.truffle.r.runtime.RRuntime;
 import com.oracle.truffle.r.runtime.RType;
 import com.oracle.truffle.r.runtime.data.RDataFactory;
 import com.oracle.truffle.r.runtime.data.RMissing;
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryArithmeticSpecial.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryArithmeticSpecial.java
index a35b919b17ee51e4d26ec7b30108bb033cedbb0d..359c4d349a6aac92bd30229eb106616ef9170248 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryArithmeticSpecial.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryArithmeticSpecial.java
@@ -32,15 +32,7 @@ import com.oracle.truffle.r.nodes.binary.BinaryArithmeticSpecialNodeGen.IntegerB
 import com.oracle.truffle.r.nodes.unary.UnaryArithmeticSpecialNodeGen;
 import com.oracle.truffle.r.runtime.RRuntime;
 import com.oracle.truffle.r.runtime.RType;
-import com.oracle.truffle.r.runtime.RError.Message;
 import com.oracle.truffle.r.runtime.builtins.RSpecialFactory;
-import com.oracle.truffle.r.runtime.data.RComplex;
-import com.oracle.truffle.r.runtime.data.RComplexVector;
-import com.oracle.truffle.r.runtime.data.RDataFactory;
-import com.oracle.truffle.r.runtime.data.RTypedValue;
-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.RAbstractLogicalVector;
 import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.nodes.RNode;
 import com.oracle.truffle.r.runtime.ops.BinaryArithmetic;
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/NativeDataAccess.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/NativeDataAccess.java
index 1cc771dbdda5b6758e4d971d56db995e50dd8f1b..ae2352a003309b444b9785463df222760936d39d 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/NativeDataAccess.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/NativeDataAccess.java
@@ -232,7 +232,7 @@ public final class NativeDataAccess {
     @TruffleBoundary
     private static void registerAllocationSite(Object arg, NativeMirror mirror) {
         String argInfo;
-        if (arg instanceof RVector<?> && ((RVector) arg).hasNativeMemoryData()) {
+        if (arg instanceof RVector<?> && ((RVector<?>) arg).hasNativeMemoryData()) {
             // this must be vector created by fromNative factory method, it has data == null, but
             // does not have its address assigned yet
             argInfo = "[empty]";
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractVector.java
index 3237fd6d0a6c2f1cedf69358c78692cbd5a8ea76..e5fe39c6a8072bf343a0f169dfe81af770a1acd1 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractVector.java
@@ -90,7 +90,7 @@ public interface RAbstractVector extends RAbstractContainer {
      *
      * @see RType#getPrecedence()
      */
-    default RAbstractVector castSafe(RType type, @SuppressWarnings("unused") ConditionProfile isNAProfile, @SuppressWarnings("unused") boolean keepAttributes) {
+    default RAbstractVector castSafe(RType type, ConditionProfile isNAProfile, boolean keepAttributes) {
         if (type == getRType()) {
             return this;
         } else {
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataAt.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataAt.java
index 1c4c4d158b7265726749f16ee489f2f9eeb1c0f8..72827019f4ab86f92e5087bc710fcf845dd38a4e 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataAt.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataAt.java
@@ -267,6 +267,7 @@ public abstract class GetDataAt extends Node {
             return RComplex.valueOf(store[index * 2], store[index * 2 + 1]);
         }
 
+        @SuppressWarnings("unused")
         @Specialization(guards = "isNativeMirror(store)")
         protected RComplex doRVector(RComplexVector vector, Object store, int index) {
             throw RInternalError.unimplemented();
@@ -310,6 +311,7 @@ public abstract class GetDataAt extends Node {
             return store[index];
         }
 
+        @SuppressWarnings("unused")
         @Specialization(guards = "isNativeMirror(store)")
         protected java.lang.String doRVector(RStringVector vector, Object store, int index) {
             throw RInternalError.unimplemented();
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataStore.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataStore.java
index e71c46520180ad35a1f37e6df90ed518ebb9d8a2..2d07058cbdd0aa0ec50d217f5544e440a8c69f00 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataStore.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/nodes/GetDataStore.java
@@ -65,7 +65,7 @@ public abstract class GetDataStore extends Node {
     }
 
     protected static boolean noNativeMemoryData(RAbstractVector vector) {
-        return !(vector instanceof RVector<?>) || !((RVector) vector).hasNativeMemoryData();
+        return !(vector instanceof RVector<?>) || !((RVector<?>) vector).hasNativeMemoryData();
     }
 
     protected static Class<?> getStoreClass(RAbstractVector vector) {
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/shell/TestJLineConsoleCompleter.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/shell/TestJLineConsoleCompleter.java
index b14ce7f9e45813d1b6c6e9e4276fc51ce1459abb..f197deb07718fbc92a4783fe34a67ff966a679de 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/shell/TestJLineConsoleCompleter.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/shell/TestJLineConsoleCompleter.java
@@ -29,16 +29,15 @@ import java.io.File;
 import java.util.LinkedList;
 
 import org.graalvm.polyglot.Context;
+import org.graalvm.polyglot.Source;
+import org.graalvm.polyglot.Value;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import com.oracle.truffle.r.launcher.JLineConsoleCompleter;
-import java.io.IOException;
-import org.graalvm.polyglot.Source;
-import org.graalvm.polyglot.Value;
-import org.junit.Ignore;
 
 public class TestJLineConsoleCompleter {
 
@@ -158,12 +157,12 @@ public class TestJLineConsoleCompleter {
 
     @Ignore
     @Test
-    public void testPathCompl() throws IOException {
+    public void testPathCompl() {
         testPathCompl('"');
         testPathCompl('\'');
     }
 
-    private void testPathCompl(char quote) throws IOException {
+    private void testPathCompl(char quote) {
         File testDir = getTestDir();
         String testDirPath = testDir.getAbsolutePath() + File.separator;
 
@@ -227,7 +226,7 @@ public class TestJLineConsoleCompleter {
         }
     }
 
-    private File getTestDir() throws IOException {
+    private File getTestDir() {
         String testPath = getTestPath();
         if (testPath != null) {
             File f = new File(testPath);
@@ -240,7 +239,7 @@ public class TestJLineConsoleCompleter {
         return null;
     }
 
-    private String getTestPath() {
+    private static String getTestPath() {
         String tmpDir = System.getProperty("java.io.tmpdir");
         if (tmpDir != null) {
             return tmpDir + File.separator + TEST_PATH;
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 cf202fb7f3a447c94bea7332e671c265c41f7e4d..51202bc863a7ce279be157742da5e89520cf9604 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
@@ -342,7 +342,7 @@ public class TestJavaInterop extends TestBase {
     }
 
     @Test
-    public void testCombineForeignObjects() throws IllegalAccessException, IllegalArgumentException {
+    public void testCombineForeignObjects() throws IllegalArgumentException {
 
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " class(c(to))", "'list'");
         assertEvalFastR("tc <- new.java.class('" + TEST_CLASS + "'); t <- new.external(tc); t1 <- new.external(tc); class(c(t, t1))", "'list'");
@@ -1441,7 +1441,7 @@ public class TestJavaInterop extends TestBase {
         return toRVector(l, null);
     }
 
-    private List<?> list(Object o) {
+    private static List<?> list(Object o) {
         if (o.getClass().isArray()) {
             List<Object> l = new ArrayList<>();
             for (int i = 0; i < Array.getLength(o); i++) {