From f10a2544abe1cdbf6827513c6c6055c4b495c149 Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Sat, 6 Apr 2024 04:43:17 +0900 Subject: [PATCH] Enable more compiler lints Leave serialization lints off; we don't care about serialization but sometimes derive from serializable classes. Enable all other lints. Fix missing type parameters in superclass specifications in GUI code. Suppress warnings for restricted methods in OpenSlideFFM, which is expected to use them. Suppress a this-escape warning in OpenSlideView caused by calls to superclass methods and not really of interest to us. Signed-off-by: Benjamin Gilbert --- meson.build | 2 +- org/openslide/OpenSlideFFM.java | 1 + org/openslide/gui/DefaultSelectionListModel.java | 4 ++-- org/openslide/gui/OpenSlideView.java | 1 + org/openslide/gui/SelectionListModel.java | 3 ++- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index fe27d65..4c91882 100644 --- a/meson.build +++ b/meson.build @@ -27,7 +27,7 @@ jar = find_program( add_project_arguments( '-source', java_ver, '-target', java_ver, - '-Xlint:-options', + '-Xlint:all,-serial', language : 'java', ) diff --git a/org/openslide/OpenSlideFFM.java b/org/openslide/OpenSlideFFM.java index e38c6ab..2ce019a 100644 --- a/org/openslide/OpenSlideFFM.java +++ b/org/openslide/OpenSlideFFM.java @@ -25,6 +25,7 @@ import static java.lang.foreign.ValueLayout.*; import java.lang.invoke.*; +@SuppressWarnings("restricted") class OpenSlideFFM { private static final Arena LIBRARY_ARENA = Arena.ofAuto(); diff --git a/org/openslide/gui/DefaultSelectionListModel.java b/org/openslide/gui/DefaultSelectionListModel.java index 0098bec..1f54475 100644 --- a/org/openslide/gui/DefaultSelectionListModel.java +++ b/org/openslide/gui/DefaultSelectionListModel.java @@ -27,8 +27,8 @@ import javax.swing.AbstractListModel; -public class DefaultSelectionListModel extends AbstractListModel implements - SelectionListModel { +public class DefaultSelectionListModel extends AbstractListModel + implements SelectionListModel { private final List list = new ArrayList(); diff --git a/org/openslide/gui/OpenSlideView.java b/org/openslide/gui/OpenSlideView.java index 5e45e31..88eebbf 100644 --- a/org/openslide/gui/OpenSlideView.java +++ b/org/openslide/gui/OpenSlideView.java @@ -84,6 +84,7 @@ public OpenSlideView(OpenSlide w, boolean startWithZoomFit) { this(w, 1.2, 40, startWithZoomFit); } + @SuppressWarnings("this-escape") public OpenSlideView(OpenSlide w, double downsampleBase, int maxDownsampleExponent, boolean startWithZoomFit) { // TODO support w > 2^31 and h > 2^31 diff --git a/org/openslide/gui/SelectionListModel.java b/org/openslide/gui/SelectionListModel.java index e0db229..db9e66c 100644 --- a/org/openslide/gui/SelectionListModel.java +++ b/org/openslide/gui/SelectionListModel.java @@ -23,7 +23,8 @@ import javax.swing.ListModel; -public interface SelectionListModel extends ListModel, Iterable { +public interface SelectionListModel extends ListModel, + Iterable { void add(Annotation annotation); boolean isEmpty();