diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaAwt.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaAwt.java index e31dcf4a9d..200afde21d 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaAwt.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaAwt.java @@ -32,12 +32,14 @@ import java.util.EventListener; import java.util.Locale; import java.util.Set; + import javax.accessibility.AccessibleContext; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.NotModified; + import io.codelaser.maddi.annotation.Commutable; import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.method.GetSet; public class JavaAwt { @@ -756,8 +758,8 @@ protected void finalize() { } class ItemSelectable$ { // a modifying method, declared so (generated from the assumed-defaults list) - @Modified void addItemListener(java.awt.event.ItemListener p0) { } - @Modified void removeItemListener(java.awt.event.ItemListener p0) { } + @Modified void addItemListener(ItemListener p0) { } + @Modified void removeItemListener(ItemListener p0) { } // a query, declared so (generated from the assumed-defaults list) @NotModified Object[] getSelectedObjects() { return null; } @@ -765,10 +767,10 @@ class ItemSelectable$ { class MenuContainer$ { // a modifying method, declared so (generated from the assumed-defaults list) - @Modified void remove(java.awt.MenuComponent p0) { } + @Modified void remove(MenuComponent p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.awt.Font getFont() { return null; } + @NotModified Font getFont() { return null; } } class Transparency$ { diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaIo.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaIo.java index faca767e21..4a57036de7 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaIo.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaIo.java @@ -22,18 +22,22 @@ import java.nio.CharBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import java.nio.file.Path; +import java.security.Permission; +import java.util.Enumeration; +import java.util.List; import java.util.Locale; import java.util.stream.Stream; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.annotation.rare.AllowsInterrupt; public class JavaIo { public static final String PACKAGE_NAME = "java.io"; @@ -738,12 +742,12 @@ void close() { } @Modified @AllowsInterrupt long transferTo(/*@Independent[T]*/ @NotNull Writer out) { return 0L; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Reader$(@NotNull java.lang.Object p0) { } - static java.io.Reader of(@NotNull java.lang.CharSequence p0) { return null; } + Reader$(@NotNull Object p0) { } + static Reader of(@NotNull CharSequence p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified String readAllAsString() { return null; } - @Modified java.util.List readAllLines() { return null; } + @Modified List readAllLines() { return null; } } //public interface Serializable @ImmutableContainer(hc = true) @Independent class Serializable$ { } @@ -797,7 +801,7 @@ Writer append( @Modified void close() { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Writer$(@NotNull java.lang.Object p0) { } + Writer$(@NotNull Object p0) { } } // null contracts (docs/design/nullability.md M2), formerly the analyzer's LibraryNullness @@ -826,17 +830,17 @@ class DataInput$ { //public java.io.BufferedInputStream (shadow created for its nullability, generated) class BufferedInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - BufferedInputStream$(@NotNull java.io.InputStream p0) { } - BufferedInputStream$(@NotNull java.io.InputStream p0, int p1) { } + BufferedInputStream$(@NotNull InputStream p0) { } + BufferedInputStream$(@NotNull InputStream p0, int p1) { } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } - @Modified long transferTo(@NotNull java.io.OutputStream p0) { return 0; } + @Modified long transferTo(@NotNull OutputStream p0) { return 0; } } //public java.io.BufferedOutputStream (shadow created for its nullability, generated) class BufferedOutputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - BufferedOutputStream$(@NotNull java.io.OutputStream p0) { } - BufferedOutputStream$(@NotNull java.io.OutputStream p0, int p1) { } + BufferedOutputStream$(@NotNull OutputStream p0) { } + BufferedOutputStream$(@NotNull OutputStream p0, int p1) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } } @@ -845,18 +849,18 @@ class CharArrayReader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) CharArrayReader$(@NotNull char[] p0) { } CharArrayReader$(@NotNull char[] p0, int p1, int p2) { } - @Modified int read(@NotNull java.nio.CharBuffer p0) { return 0; } + @Modified int read(@NotNull CharBuffer p0) { return 0; } @Modified int read(@NotNull char[] p0, int p1, int p2) { return 0; } } //public java.io.CharArrayWriter (shadow created for its nullability, generated) class CharArrayWriter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified java.io.CharArrayWriter append(@Nullable java.lang.CharSequence p0) { return null; } - @Modified java.io.CharArrayWriter append(@Nullable java.lang.CharSequence p0, int p1, int p2) { return null; } - @Modified void write(@NotNull java.lang.String p0, int p1, int p2) { } + @Modified CharArrayWriter append(@Nullable CharSequence p0) { return null; } + @Modified CharArrayWriter append(@Nullable CharSequence p0, int p1, int p2) { return null; } + @Modified void write(@NotNull String p0, int p1, int p2) { } @Modified void write(@NotNull char[] p0, int p1, int p2) { } - @Modified void writeTo(@NotNull java.io.Writer p0) { } + @Modified void writeTo(@NotNull Writer p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void reset() { } @@ -869,35 +873,35 @@ class CharArrayWriter$ { //public java.io.Console (shadow created for its nullability, generated) class Console$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.io.Console format(@Nullable java.util.Locale p0, @NotNull java.lang.String p1, @NotNull(nullableArguments = 0) java.lang.Object... p2) { return null; } - java.io.Console format(@NotNull java.lang.String p0, @NotNull(nullableArguments = 0) java.lang.Object... p1) { return null; } - java.io.Console printf(@Nullable java.util.Locale p0, @NotNull java.lang.String p1, @NotNull(nullableArguments = 0) java.lang.Object... p2) { return null; } - java.io.Console printf(@NotNull java.lang.String p0, @NotNull(nullableArguments = 0) java.lang.Object... p1) { return null; } - @Modified @Nullable java.lang.String readLine() { return null; } - @Modified @Nullable java.lang.String readLine(@Nullable java.util.Locale p0, @NotNull java.lang.String p1, @NotNull(nullableArguments = 0) java.lang.Object... p2) { return null; } - @Modified @Nullable java.lang.String readLine(@NotNull java.lang.String p0, @NotNull(nullableArguments = 0) java.lang.Object... p1) { return null; } + Console format(@Nullable Locale p0, @NotNull String p1, @NotNull(nullableArguments = 0) Object... p2) { return null; } + Console format(@NotNull String p0, @NotNull(nullableArguments = 0) Object... p1) { return null; } + Console printf(@Nullable Locale p0, @NotNull String p1, @NotNull(nullableArguments = 0) Object... p2) { return null; } + Console printf(@NotNull String p0, @NotNull(nullableArguments = 0) Object... p1) { return null; } + @Modified @Nullable String readLine() { return null; } + @Modified @Nullable String readLine(@Nullable Locale p0, @NotNull String p1, @NotNull(nullableArguments = 0) Object... p2) { return null; } + @Modified @Nullable String readLine(@NotNull String p0, @NotNull(nullableArguments = 0) Object... p1) { return null; } @Modified @Nullable char[] readPassword() { return null; } - @Modified @Nullable char[] readPassword(@Nullable java.util.Locale p0, @NotNull java.lang.String p1, @NotNull(nullableArguments = 0) java.lang.Object... p2) { return null; } - @Modified @Nullable char[] readPassword(@NotNull java.lang.String p0, @NotNull(nullableArguments = 0) java.lang.Object... p1) { return null; } + @Modified @Nullable char[] readPassword(@Nullable Locale p0, @NotNull String p1, @NotNull(nullableArguments = 0) Object... p2) { return null; } + @Modified @Nullable char[] readPassword(@NotNull String p0, @NotNull(nullableArguments = 0) Object... p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void flush() { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.nio.charset.Charset charset() { return null; } + @NotModified Charset charset() { return null; } @NotModified boolean isTerminal() { return false; } } //public java.io.DataInputStream (shadow created for its nullability, generated) class DataInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - DataInputStream$(@Nullable java.io.InputStream p0) { } + DataInputStream$(@Nullable InputStream p0) { } @Modified int read(@NotNull byte[] p0) { return 0; } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } @Modified void readFully(@NotNull byte[] p0) { } @Modified void readFully(@NotNull byte[] p0, int p1, int p2) { } - @Modified @Nullable java.lang.String readLine() { return null; } - static java.lang.String readUTF(@NotNull java.io.DataInput p0) { return null; } + @Modified @Nullable String readLine() { return null; } + static String readUTF(@NotNull DataInput p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean readBoolean() { return false; } @@ -919,9 +923,9 @@ class DataOutput$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) @Modified void write(@NotNull byte[] p0) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } - @Modified void writeBytes(@NotNull java.lang.String p0) { } - @Modified void writeChars(@NotNull java.lang.String p0) { } - @Modified void writeUTF(@NotNull java.lang.String p0) { } + @Modified void writeBytes(@NotNull String p0) { } + @Modified void writeChars(@NotNull String p0) { } + @Modified void writeUTF(@NotNull String p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void write(int p0) { } @@ -938,11 +942,11 @@ class DataOutput$ { //public java.io.DataOutputStream (shadow created for its nullability, generated) class DataOutputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - DataOutputStream$(@NotNull java.io.OutputStream p0) { } + DataOutputStream$(@NotNull OutputStream p0) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } - @Modified void writeBytes(@NotNull java.lang.String p0) { } - @Modified void writeChars(@NotNull java.lang.String p0) { } - @Modified void writeUTF(@NotNull java.lang.String p0) { } + @Modified void writeBytes(@NotNull String p0) { } + @Modified void writeChars(@NotNull String p0) { } + @Modified void writeUTF(@NotNull String p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void writeBoolean(boolean p0) { } @@ -961,37 +965,37 @@ class DataOutputStream$ { //public java.io.Externalizable (shadow created for its nullability, generated) class Externalizable$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void readExternal(@NotNull java.io.ObjectInput p0) { } - @Modified void writeExternal(@NotNull java.io.ObjectOutput p0) { } + @Modified void readExternal(@NotNull ObjectInput p0) { } + @Modified void writeExternal(@NotNull ObjectOutput p0) { } } //public java.io.FileFilter (shadow created for its nullability, generated) class FileFilter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean accept(@NotNull java.io.File p0) { return false; } + boolean accept(@NotNull File p0) { return false; } } //public java.io.FileOutputStream (shadow created for its nullability, generated) class FileOutputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - FileOutputStream$(@NotNull java.io.File p0) { } - FileOutputStream$(@NotNull java.io.File p0, boolean p1) { } - FileOutputStream$(@NotNull java.io.FileDescriptor p0) { } - FileOutputStream$(@NotNull java.lang.String p0) { } - FileOutputStream$(@NotNull java.lang.String p0, boolean p1) { } + FileOutputStream$(@NotNull File p0) { } + FileOutputStream$(@NotNull File p0, boolean p1) { } + FileOutputStream$(@NotNull FileDescriptor p0) { } + FileOutputStream$(@NotNull String p0) { } + FileOutputStream$(@NotNull String p0, boolean p1) { } @Modified void write(@NotNull byte[] p0) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.nio.channels.FileChannel getChannel() { return null; } - @NotModified java.io.FileDescriptor getFD() { return null; } + @NotModified FileChannel getChannel() { return null; } + @NotModified FileDescriptor getFD() { return null; } } //public java.io.FilePermission (shadow created for its nullability, generated) class FilePermission$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - FilePermission$(@NotNull java.lang.String p0, @NotNull java.lang.String p1) { } - boolean implies(@Nullable java.security.Permission p0) { return false; } + FilePermission$(@NotNull String p0, @NotNull String p1) { } + boolean implies(@Nullable Permission p0) { return false; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getActions() { return null; } @@ -1000,23 +1004,23 @@ class FilePermission$ { //public java.io.FileReader (shadow created for its nullability, generated) class FileReader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - FileReader$(@NotNull java.io.File p0) { } - FileReader$(@NotNull java.io.File p0, @NotNull java.nio.charset.Charset p1) { } - FileReader$(@NotNull java.io.FileDescriptor p0) { } - FileReader$(@NotNull java.lang.String p0) { } - FileReader$(@NotNull java.lang.String p0, @NotNull java.nio.charset.Charset p1) { } + FileReader$(@NotNull File p0) { } + FileReader$(@NotNull File p0, @NotNull Charset p1) { } + FileReader$(@NotNull FileDescriptor p0) { } + FileReader$(@NotNull String p0) { } + FileReader$(@NotNull String p0, @NotNull Charset p1) { } } //public java.io.FilenameFilter (shadow created for its nullability, generated) class FilenameFilter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean accept(@NotNull java.io.File p0, @NotNull java.lang.String p1) { return false; } + boolean accept(@NotNull File p0, @NotNull String p1) { return false; } } //public java.io.FilterInputStream (shadow created for its nullability, generated) class FilterInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - FilterInputStream$(@Nullable java.io.InputStream p0) { } + FilterInputStream$(@Nullable InputStream p0) { } @Modified int read(@NotNull byte[] p0) { return 0; } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } } @@ -1024,50 +1028,50 @@ class FilterInputStream$ { //public java.io.FilterReader (shadow created for its nullability, generated) class FilterReader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - FilterReader$(@NotNull java.io.Reader p0) { } + FilterReader$(@NotNull Reader p0) { } @Modified int read(@NotNull char[] p0, int p1, int p2) { return 0; } } //public java.io.FilterWriter (shadow created for its nullability, generated) class FilterWriter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - FilterWriter$(@NotNull java.io.Writer p0) { } - @Modified void write(@NotNull java.lang.String p0, int p1, int p2) { } + FilterWriter$(@NotNull Writer p0) { } + @Modified void write(@NotNull String p0, int p1, int p2) { } @Modified void write(@NotNull char[] p0, int p1, int p2) { } } //public java.io.InputStreamReader (shadow created for its nullability, generated) class InputStreamReader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InputStreamReader$(@NotNull java.io.InputStream p0) { } - InputStreamReader$(@NotNull java.io.InputStream p0, @NotNull java.nio.charset.Charset p1) { } - InputStreamReader$(@NotNull java.io.InputStream p0, @NotNull java.nio.charset.CharsetDecoder p1) { } - InputStreamReader$(@NotNull java.io.InputStream p0, @NotNull java.lang.String p1) { } - @NotModified @Nullable java.lang.String getEncoding() { return null; } - @Modified int read(@NotNull java.nio.CharBuffer p0) { return 0; } + InputStreamReader$(@NotNull InputStream p0) { } + InputStreamReader$(@NotNull InputStream p0, @NotNull Charset p1) { } + InputStreamReader$(@NotNull InputStream p0, @NotNull CharsetDecoder p1) { } + InputStreamReader$(@NotNull InputStream p0, @NotNull String p1) { } + @NotModified @Nullable String getEncoding() { return null; } + @Modified int read(@NotNull CharBuffer p0) { return 0; } @Modified int read(@NotNull char[] p0, int p1, int p2) { return 0; } } //public java.io.InterruptedIOException (shadow created for its nullability, generated) class InterruptedIOException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InterruptedIOException$(@Nullable java.lang.String p0) { } + InterruptedIOException$(@Nullable String p0) { } } //public java.io.InvalidObjectException (shadow created for its nullability, generated) class InvalidObjectException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InvalidObjectException$(@Nullable java.lang.String p0) { } - InvalidObjectException$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1) { } + InvalidObjectException$(@Nullable String p0) { } + InvalidObjectException$(@Nullable String p0, @Nullable Throwable p1) { } } //public java.io.LineNumberReader (shadow created for its nullability, generated) class LineNumberReader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - LineNumberReader$(@NotNull java.io.Reader p0) { } - LineNumberReader$(@NotNull java.io.Reader p0, int p1) { } + LineNumberReader$(@NotNull Reader p0) { } + LineNumberReader$(@NotNull Reader p0, int p1) { } @Modified int read(@NotNull char[] p0, int p1, int p2) { return 0; } - @Modified @Nullable java.lang.String readLine() { return null; } + @Modified @Nullable String readLine() { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setLineNumber(int p0) { } @@ -1095,44 +1099,44 @@ class ObjectInput$ { //public java.io.ObjectInputFilter (shadow created for its nullability, generated) class ObjectInputFilter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.io.ObjectInputFilter merge(java.io.ObjectInputFilter p0, @Nullable java.io.ObjectInputFilter p1) { return null; } + static ObjectInputFilter merge(ObjectInputFilter p0, @Nullable ObjectInputFilter p1) { return null; } //public java.io.ObjectInputFilter.FilterInfo (shadow created for its nullability, generated) class FilterInfo { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.lang.Class serialClass() { return null; } + @Nullable Class serialClass() { return null; } } } //public java.io.ObjectInputStream (shadow created for its nullability, generated) class ObjectInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ObjectInputStream$(@NotNull java.io.InputStream p0) { } - @NotModified @Nullable java.io.ObjectInputFilter getObjectInputFilter() { return null; } + ObjectInputStream$(@NotNull InputStream p0) { } + @NotModified @Nullable ObjectInputFilter getObjectInputFilter() { return null; } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } @Modified void readFully(@NotNull byte[] p0) { } @Modified void readFully(@NotNull byte[] p0, int p1, int p2) { } - @Modified @Nullable java.lang.String readLine() { return null; } - @Nullable java.lang.Object readObjectOverride() { return null; } - @Modified void registerValidation(@NotNull java.io.ObjectInputValidation p0, int p1) { } - java.lang.Class resolveClass(@NotNull java.io.ObjectStreamClass p0) { return null; } - java.lang.Object resolveObject(@NotNull java.lang.Object p0) { return null; } - java.lang.Class resolveProxyClass(@NotNull java.lang.String[] p0) { return null; } - @Modified void setObjectInputFilter(@Nullable java.io.ObjectInputFilter p0) { } + @Modified @Nullable String readLine() { return null; } + @Nullable Object readObjectOverride() { return null; } + @Modified void registerValidation(@NotNull ObjectInputValidation p0, int p1) { } + Class resolveClass(@NotNull ObjectStreamClass p0) { return null; } + Object resolveObject(@NotNull Object p0) { return null; } + Class resolveProxyClass(@NotNull String[] p0) { return null; } + @Modified void setObjectInputFilter(@Nullable ObjectInputFilter p0) { } //public java.io.ObjectInputStream.GetField (shadow created for its nullability, generated) class GetField { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean defaulted(@NotNull java.lang.String p0) { return false; } - @NotModified java.lang.Object get(@NotNull java.lang.String p0, @Nullable java.lang.Object p1) { return null; } - @NotModified boolean get(@NotNull java.lang.String p0, boolean p1) { return false; } - @NotModified byte get(@NotNull java.lang.String p0, byte p1) { return 0; } - @NotModified char get(@NotNull java.lang.String p0, char p1) { return 0; } - @NotModified double get(@NotNull java.lang.String p0, double p1) { return 0; } - @NotModified float get(@NotNull java.lang.String p0, float p1) { return 0; } - @NotModified int get(@NotNull java.lang.String p0, int p1) { return 0; } - @NotModified long get(@NotNull java.lang.String p0, long p1) { return 0; } - @NotModified short get(@NotNull java.lang.String p0, short p1) { return 0; } + boolean defaulted(@NotNull String p0) { return false; } + @NotModified Object get(@NotNull String p0, @Nullable Object p1) { return null; } + @NotModified boolean get(@NotNull String p0, boolean p1) { return false; } + @NotModified byte get(@NotNull String p0, byte p1) { return 0; } + @NotModified char get(@NotNull String p0, char p1) { return 0; } + @NotModified double get(@NotNull String p0, double p1) { return 0; } + @NotModified float get(@NotNull String p0, float p1) { return 0; } + @NotModified int get(@NotNull String p0, int p1) { return 0; } + @NotModified long get(@NotNull String p0, long p1) { return 0; } + @NotModified short get(@NotNull String p0, short p1) { return 0; } } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1140,7 +1144,7 @@ class GetField { @Modified byte readByte() { return 0; } @Modified char readChar() { return 0; } @Modified double readDouble() { return 0; } - @Modified java.io.ObjectInputStream.GetField readFields() { return null; } + @Modified ObjectInputStream.GetField readFields() { return null; } @Modified float readFloat() { return 0; } @Modified int readInt() { return 0; } @Modified long readLong() { return 0; } @@ -1158,7 +1162,7 @@ class ObjectOutput$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) @Modified void write(@NotNull byte[] p0) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } - @Modified void writeObject(@Nullable java.lang.Object p0) { } + @Modified void writeObject(@Nullable Object p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void close() { } @@ -1169,37 +1173,37 @@ class ObjectOutput$ { //public java.io.ObjectOutputStream (shadow created for its nullability, generated) class ObjectOutputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ObjectOutputStream$(@NotNull java.io.OutputStream p0) { } - void annotateClass(@NotNull java.lang.Class p0) { } - void annotateProxyClass(@NotNull java.lang.Class p0) { } - java.lang.Object replaceObject(@NotNull java.lang.Object p0) { return null; } + ObjectOutputStream$(@NotNull OutputStream p0) { } + void annotateClass(@NotNull Class p0) { } + void annotateProxyClass(@NotNull Class p0) { } + Object replaceObject(@NotNull Object p0) { return null; } @Modified void write(@NotNull byte[] p0) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } - @Modified void writeBytes(@NotNull java.lang.String p0) { } - @Modified void writeChars(@NotNull java.lang.String p0) { } - void writeClassDescriptor(@NotNull java.io.ObjectStreamClass p0) { } - @Modified void writeObject(@Nullable java.lang.Object p0) { } - void writeObjectOverride(@Nullable java.lang.Object p0) { } - @Modified void writeUTF(@NotNull java.lang.String p0) { } - @Modified void writeUnshared(@Nullable java.lang.Object p0) { } + @Modified void writeBytes(@NotNull String p0) { } + @Modified void writeChars(@NotNull String p0) { } + void writeClassDescriptor(@NotNull ObjectStreamClass p0) { } + @Modified void writeObject(@Nullable Object p0) { } + void writeObjectOverride(@Nullable Object p0) { } + @Modified void writeUTF(@NotNull String p0) { } + @Modified void writeUnshared(@Nullable Object p0) { } //public java.io.ObjectOutputStream.PutField (shadow created for its nullability, generated) class PutField { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void put(@NotNull java.lang.String p0, @Nullable java.lang.Object p1) { } - @Modified void put(@NotNull java.lang.String p0, boolean p1) { } - @Modified void put(@NotNull java.lang.String p0, byte p1) { } - @Modified void put(@NotNull java.lang.String p0, char p1) { } - @Modified void put(@NotNull java.lang.String p0, double p1) { } - @Modified void put(@NotNull java.lang.String p0, float p1) { } - @Modified void put(@NotNull java.lang.String p0, int p1) { } - @Modified void put(@NotNull java.lang.String p0, long p1) { } - @Modified void put(@NotNull java.lang.String p0, short p1) { } - @Modified void write(@NotNull java.io.ObjectOutput p0) { } + @Modified void put(@NotNull String p0, @Nullable Object p1) { } + @Modified void put(@NotNull String p0, boolean p1) { } + @Modified void put(@NotNull String p0, byte p1) { } + @Modified void put(@NotNull String p0, char p1) { } + @Modified void put(@NotNull String p0, double p1) { } + @Modified void put(@NotNull String p0, float p1) { } + @Modified void put(@NotNull String p0, int p1) { } + @Modified void put(@NotNull String p0, long p1) { } + @Modified void put(@NotNull String p0, short p1) { } + @Modified void write(@NotNull ObjectOutput p0) { } } // a modifying method, declared so (generated from the assumed-defaults list) - @Modified java.io.ObjectOutputStream.PutField putFields() { return null; } + @Modified ObjectOutputStream.PutField putFields() { return null; } @Modified void reset() { } @Modified void writeBoolean(boolean p0) { } @Modified void writeByte(int p0) { } @@ -1215,13 +1219,13 @@ class PutField { //public java.io.ObjectStreamClass (shadow created for its nullability, generated) class ObjectStreamClass$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.lang.Class forClass() { return null; } - @NotModified @Nullable java.io.ObjectStreamField getField(@NotNull java.lang.String p0) { return null; } - @Nullable static java.io.ObjectStreamClass lookup(@NotNull java.lang.Class p0) { return null; } - static java.io.ObjectStreamClass lookupAny(@NotNull java.lang.Class p0) { return null; } + @Nullable Class forClass() { return null; } + @NotModified @Nullable ObjectStreamField getField(@NotNull String p0) { return null; } + @Nullable static ObjectStreamClass lookup(@NotNull Class p0) { return null; } + static ObjectStreamClass lookupAny(@NotNull Class p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.io.ObjectStreamField[] getFields() { return null; } + @NotModified ObjectStreamField[] getFields() { return null; } @NotModified String getName() { return null; } @NotModified long getSerialVersionUID() { return 0; } } @@ -1229,18 +1233,18 @@ class ObjectStreamClass$ { //public java.io.ObjectStreamException (shadow created for its nullability, generated) class ObjectStreamException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ObjectStreamException$(@Nullable java.lang.String p0) { } - ObjectStreamException$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1) { } - ObjectStreamException$(@Nullable java.lang.Throwable p0) { } + ObjectStreamException$(@Nullable String p0) { } + ObjectStreamException$(@Nullable String p0, @Nullable Throwable p1) { } + ObjectStreamException$(@Nullable Throwable p0) { } } //public java.io.ObjectStreamField (shadow created for its nullability, generated) class ObjectStreamField$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ObjectStreamField$(@NotNull java.lang.String p0, @NotNull java.lang.Class p1) { } - ObjectStreamField$(@NotNull java.lang.String p0, @NotNull java.lang.Class p1, boolean p2) { } - int compareTo(@NotNull java.lang.Object p0) { return 0; } - @NotModified @Nullable java.lang.String getTypeString() { return null; } + ObjectStreamField$(@NotNull String p0, @NotNull Class p1) { } + ObjectStreamField$(@NotNull String p0, @NotNull Class p1, boolean p2) { } + int compareTo(@NotNull Object p0) { return 0; } + @NotModified @Nullable String getTypeString() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getName() { return null; } @@ -1254,56 +1258,56 @@ class ObjectStreamField$ { //public java.io.PipedOutputStream (shadow created for its nullability, generated) class PipedOutputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PipedOutputStream$(@NotNull java.io.PipedInputStream p0) { } - void connect(@NotNull java.io.PipedInputStream p0) { } + PipedOutputStream$(@NotNull PipedInputStream p0) { } + void connect(@NotNull PipedInputStream p0) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } } //public java.io.PipedReader (shadow created for its nullability, generated) class PipedReader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PipedReader$(@NotNull java.io.PipedWriter p0) { } - PipedReader$(@NotNull java.io.PipedWriter p0, int p1) { } - void connect(@NotNull java.io.PipedWriter p0) { } + PipedReader$(@NotNull PipedWriter p0) { } + PipedReader$(@NotNull PipedWriter p0, int p1) { } + void connect(@NotNull PipedWriter p0) { } @Modified int read(@NotNull char[] p0, int p1, int p2) { return 0; } } //public java.io.PipedWriter (shadow created for its nullability, generated) class PipedWriter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PipedWriter$(@NotNull java.io.PipedReader p0) { } - void connect(@NotNull java.io.PipedReader p0) { } + PipedWriter$(@NotNull PipedReader p0) { } + void connect(@NotNull PipedReader p0) { } @Modified void write(@NotNull char[] p0, int p1, int p2) { } } //public java.io.PrintWriter (shadow created for its nullability, generated) class PrintWriter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PrintWriter$(@NotNull java.io.File p0) { } - PrintWriter$(@NotNull java.io.File p0, @NotNull java.nio.charset.Charset p1) { } - PrintWriter$(@NotNull java.io.File p0, @NotNull java.lang.String p1) { } - PrintWriter$(@NotNull java.io.OutputStream p0) { } - PrintWriter$(@NotNull java.io.OutputStream p0, boolean p1) { } - PrintWriter$(@NotNull java.io.OutputStream p0, boolean p1, @NotNull java.nio.charset.Charset p2) { } - PrintWriter$(@NotNull java.lang.String p0) { } - PrintWriter$(@NotNull java.lang.String p0, @NotNull java.nio.charset.Charset p1) { } - PrintWriter$(@NotNull java.lang.String p0, @NotNull java.lang.String p1) { } - PrintWriter$(@NotNull java.io.Writer p0) { } - PrintWriter$(@NotNull java.io.Writer p0, boolean p1) { } - @Modified java.io.PrintWriter append(@Nullable java.lang.CharSequence p0) { return null; } - @Modified java.io.PrintWriter append(@Nullable java.lang.CharSequence p0, int p1, int p2) { return null; } - java.io.PrintWriter format(@Nullable java.util.Locale p0, @NotNull java.lang.String p1, @NotNull(nullableArguments = 0) java.lang.Object... p2) { return null; } - java.io.PrintWriter format(@NotNull java.lang.String p0, @NotNull(nullableArguments = 0) java.lang.Object... p1) { return null; } - void print(@Nullable java.lang.Object p0) { } - void print(@Nullable java.lang.String p0) { } + PrintWriter$(@NotNull File p0) { } + PrintWriter$(@NotNull File p0, @NotNull Charset p1) { } + PrintWriter$(@NotNull File p0, @NotNull String p1) { } + PrintWriter$(@NotNull OutputStream p0) { } + PrintWriter$(@NotNull OutputStream p0, boolean p1) { } + PrintWriter$(@NotNull OutputStream p0, boolean p1, @NotNull Charset p2) { } + PrintWriter$(@NotNull String p0) { } + PrintWriter$(@NotNull String p0, @NotNull Charset p1) { } + PrintWriter$(@NotNull String p0, @NotNull String p1) { } + PrintWriter$(@NotNull Writer p0) { } + PrintWriter$(@NotNull Writer p0, boolean p1) { } + @Modified PrintWriter append(@Nullable CharSequence p0) { return null; } + @Modified PrintWriter append(@Nullable CharSequence p0, int p1, int p2) { return null; } + PrintWriter format(@Nullable Locale p0, @NotNull String p1, @NotNull(nullableArguments = 0) Object... p2) { return null; } + PrintWriter format(@NotNull String p0, @NotNull(nullableArguments = 0) Object... p1) { return null; } + void print(@Nullable Object p0) { } + void print(@Nullable String p0) { } void print(@NotNull char[] p0) { } - java.io.PrintWriter printf(@Nullable java.util.Locale p0, @NotNull java.lang.String p1, @NotNull(nullableArguments = 0) java.lang.Object... p2) { return null; } - java.io.PrintWriter printf(@NotNull java.lang.String p0, @NotNull(nullableArguments = 0) java.lang.Object... p1) { return null; } - void println(@Nullable java.lang.Object p0) { } - void println(@Nullable java.lang.String p0) { } + PrintWriter printf(@Nullable Locale p0, @NotNull String p1, @NotNull(nullableArguments = 0) Object... p2) { return null; } + PrintWriter printf(@NotNull String p0, @NotNull(nullableArguments = 0) Object... p1) { return null; } + void println(@Nullable Object p0) { } + void println(@Nullable String p0) { } void println(@NotNull char[] p0) { } - @Modified void write(@NotNull java.lang.String p0) { } - @Modified void write(@NotNull java.lang.String p0, int p1, int p2) { } + @Modified void write(@NotNull String p0) { } + @Modified void write(@NotNull String p0, int p1, int p2) { } @Modified void write(@NotNull char[] p0) { } @Modified void write(@NotNull char[] p0, int p1, int p2) { } } @@ -1311,10 +1315,10 @@ void println(@NotNull char[] p0) { } //public java.io.PushbackInputStream (shadow created for its nullability, generated) class PushbackInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PushbackInputStream$(@NotNull java.io.InputStream p0) { } - PushbackInputStream$(@NotNull java.io.InputStream p0, int p1) { } + PushbackInputStream$(@NotNull InputStream p0) { } + PushbackInputStream$(@NotNull InputStream p0, int p1) { } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } - @Modified long transferTo(@NotNull java.io.OutputStream p0) { return 0; } + @Modified long transferTo(@NotNull OutputStream p0) { return 0; } @Modified void unread(@NotNull byte[] p0) { } @Modified void unread(@NotNull byte[] p0, int p1, int p2) { } @@ -1325,8 +1329,8 @@ class PushbackInputStream$ { //public java.io.PushbackReader (shadow created for its nullability, generated) class PushbackReader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PushbackReader$(@NotNull java.io.Reader p0) { } - PushbackReader$(@NotNull java.io.Reader p0, int p1) { } + PushbackReader$(@NotNull Reader p0) { } + PushbackReader$(@NotNull Reader p0, int p1) { } @Modified int read(@NotNull char[] p0, int p1, int p2) { return 0; } @Modified void unread(@NotNull char[] p0) { } @Modified void unread(@NotNull char[] p0, int p1, int p2) { } @@ -1338,24 +1342,24 @@ class PushbackReader$ { //public java.io.SequenceInputStream (shadow created for its nullability, generated) class SequenceInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - SequenceInputStream$(@NotNull java.util.Enumeration p0) { } - SequenceInputStream$(@NotNull java.io.InputStream p0, @NotNull java.io.InputStream p1) { } + SequenceInputStream$(@NotNull Enumeration p0) { } + SequenceInputStream$(@NotNull InputStream p0, @NotNull InputStream p1) { } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } - @Modified long transferTo(@NotNull java.io.OutputStream p0) { return 0; } + @Modified long transferTo(@NotNull OutputStream p0) { return 0; } } //public java.io.SerializablePermission (shadow created for its nullability, generated) class SerializablePermission$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - SerializablePermission$(@NotNull java.lang.String p0) { } - SerializablePermission$(@NotNull java.lang.String p0, @Nullable java.lang.String p1) { } + SerializablePermission$(@NotNull String p0) { } + SerializablePermission$(@NotNull String p0, @Nullable String p1) { } } //public java.io.StreamTokenizer (shadow created for its nullability, generated) class StreamTokenizer$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - StreamTokenizer$(@NotNull java.io.InputStream p0) { } - StreamTokenizer$(@NotNull java.io.Reader p0) { } + StreamTokenizer$(@NotNull InputStream p0) { } + StreamTokenizer$(@NotNull Reader p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified int nextToken() { return 0; } @@ -1366,24 +1370,24 @@ class StreamTokenizer$ { //public java.io.StringBufferInputStream (shadow created for its nullability, generated) class StringBufferInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - StringBufferInputStream$(@NotNull java.lang.String p0) { } + StringBufferInputStream$(@NotNull String p0) { } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } } //public java.io.StringReader (shadow created for its nullability, generated) class StringReader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - StringReader$(@NotNull java.lang.String p0) { } + StringReader$(@NotNull String p0) { } @Modified int read(@NotNull char[] p0, int p1, int p2) { return 0; } } //public java.io.StringWriter (shadow created for its nullability, generated) class StringWriter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified java.io.StringWriter append(@Nullable java.lang.CharSequence p0) { return null; } - @Modified java.io.StringWriter append(@Nullable java.lang.CharSequence p0, int p1, int p2) { return null; } - @Modified void write(@NotNull java.lang.String p0) { } - @Modified void write(@NotNull java.lang.String p0, int p1, int p2) { } + @Modified StringWriter append(@Nullable CharSequence p0) { return null; } + @Modified StringWriter append(@Nullable CharSequence p0, int p1, int p2) { return null; } + @Modified void write(@NotNull String p0) { } + @Modified void write(@NotNull String p0, int p1, int p2) { } @Modified void write(@NotNull char[] p0, int p1, int p2) { } // a query, declared so (generated from the assumed-defaults list) @@ -1393,6 +1397,6 @@ class StringWriter$ { //public java.io.UnsupportedEncodingException (shadow created for its nullability, generated) class UnsupportedEncodingException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - UnsupportedEncodingException$(@Nullable java.lang.String p0) { } + UnsupportedEncodingException$(@Nullable String p0) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLang.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLang.java index c68062b7d1..fa5187d69f 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLang.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLang.java @@ -21,23 +21,29 @@ import java.lang.constant.ClassDesc; import java.lang.constant.DynamicConstantDesc; import java.lang.invoke.MethodHandles; +import java.lang.module.Configuration; +import java.lang.module.ModuleDescriptor; import java.lang.reflect.*; +import java.net.InetAddress; import java.net.URL; +import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.channels.Channel; import java.nio.charset.Charset; +import java.security.Permission; import java.security.ProtectionDomain; import java.time.Duration; import java.time.Instant; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadFactory; +import java.util.concurrent.TimeUnit; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.IntStream; import java.util.stream.Stream; -import io.codelaser.maddi.annotation.Nullable; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.annotation.Immutable; @@ -46,6 +52,7 @@ import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.annotation.rare.StaticSideEffects; import io.codelaser.maddi.annotation.type.UtilityClass; @@ -158,13 +165,13 @@ class Boolean$ { @ImmutableContainer class Byte$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Byte$(@NotNull java.lang.String p0) { } - int compareTo(@NotNull java.lang.Byte p0) { return 0; } - static java.lang.Byte decode(@NotNull java.lang.String p0) { return null; } - static byte parseByte(@NotNull java.lang.String p0) { return 0; } - static byte parseByte(@NotNull java.lang.String p0, int p1) { return 0; } - static java.lang.Byte valueOf(@NotNull java.lang.String p0) { return null; } - static java.lang.Byte valueOf(@NotNull java.lang.String p0, int p1) { return null; } + Byte$(@NotNull String p0) { } + int compareTo(@NotNull Byte p0) { return 0; } + static Byte decode(@NotNull String p0) { return null; } + static byte parseByte(@NotNull String p0) { return 0; } + static byte parseByte(@NotNull String p0, int p1) { return 0; } + static Byte valueOf(@NotNull String p0) { return null; } + static Byte valueOf(@NotNull String p0, int p1) { return null; } } //public interface CharSequence @@ -216,36 +223,36 @@ class Character$ { //public java.lang.Character.Subset (shadow created for its nullability, generated) class Subset { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Subset(@NotNull java.lang.String p0) { } + Subset(@NotNull String p0) { } } //public java.lang.Character.UnicodeBlock (shadow created for its nullability, generated) class UnicodeBlock { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.lang.Character.UnicodeBlock forName(@NotNull java.lang.String p0) { return null; } - @Nullable static java.lang.Character.UnicodeBlock of(char p0) { return null; } - @Nullable static java.lang.Character.UnicodeBlock of(int p0) { return null; } + static Character.UnicodeBlock forName(@NotNull String p0) { return null; } + @Nullable static Character.UnicodeBlock of(char p0) { return null; } + @Nullable static Character.UnicodeBlock of(int p0) { return null; } } //public java.lang.Character.UnicodeScript (shadow created for its nullability, generated) class UnicodeScript { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.lang.Character.UnicodeScript forName(@NotNull java.lang.String p0) { return null; } + static Character.UnicodeScript forName(@NotNull String p0) { return null; } } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static int codePointAt(@NotNull java.lang.CharSequence p0, int p1) { return 0; } + static int codePointAt(@NotNull CharSequence p0, int p1) { return 0; } static int codePointAt(@NotModified @NotNull char[] p0, int p1) { return 0; } static int codePointAt(@NotModified @NotNull char[] p0, int p1, int p2) { return 0; } - static int codePointBefore(@NotNull java.lang.CharSequence p0, int p1) { return 0; } + static int codePointBefore(@NotNull CharSequence p0, int p1) { return 0; } static int codePointBefore(@NotModified @NotNull char[] p0, int p1) { return 0; } static int codePointBefore(@NotModified @NotNull char[] p0, int p1, int p2) { return 0; } - static int codePointCount(@NotNull java.lang.CharSequence p0, int p1, int p2) { return 0; } + static int codePointCount(@NotNull CharSequence p0, int p1, int p2) { return 0; } static int codePointCount(@NotModified @NotNull char[] p0, int p1, int p2) { return 0; } - static int codePointOf(@NotNull java.lang.String p0) { return 0; } - int compareTo(@NotNull java.lang.Character p0) { return 0; } - @Nullable static java.lang.String getName(int p0) { return null; } - static int offsetByCodePoints(@NotNull java.lang.CharSequence p0, int p1, int p2) { return 0; } + static int codePointOf(@NotNull String p0) { return 0; } + int compareTo(@NotNull Character p0) { return 0; } + @Nullable static String getName(int p0) { return null; } + static int offsetByCodePoints(@NotNull CharSequence p0, int p1, int p2) { return 0; } static int offsetByCodePoints(@NotModified @NotNull char[] p0, int p1, int p2, int p3, int p4) { return 0; } static int toChars(int p0, @NotNull char[] p1, int p2) { return 0; } } @@ -708,7 +715,7 @@ class EnumDesc> { static > T valueOf(@NotNull Class enumClass, @NotNull String name) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Enum$(@NotNull java.lang.String p0, int p1) { } + Enum$(@NotNull String p0, int p1) { } } //public class Error extends Throwable @@ -720,7 +727,7 @@ class Error$ { Error$(@Nullable @NotModified Throwable cause) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Error$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1, boolean p2, boolean p3) { } + Error$(@Nullable String p0, @Nullable Throwable p1, boolean p2, boolean p3) { } } //public class Exception extends Throwable @@ -738,7 +745,7 @@ class Exception$ { Exception$(@Nullable @NotModified Throwable cause) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Exception$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1, boolean p2, boolean p3) { } + Exception$(@Nullable String p0, @Nullable Throwable p1, boolean p2, boolean p3) { } } //public final class Float extends Number implements Comparable, Constable, ConstantDesc @@ -1779,7 +1786,7 @@ class RuntimeException$ { RuntimeException$(@Nullable @NotModified Throwable cause) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - RuntimeException$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1, boolean p2, boolean p3) { } + RuntimeException$(@Nullable String p0, @Nullable Throwable p1, boolean p2, boolean p3) { } } //public final class String implements Serializable, Comparable, CharSequence, Constable, ConstantDesc @@ -2124,34 +2131,34 @@ static String format(/*@Independent[T]*/ @Nullable Locale l, @NotNull String for String resolveConstantDesc(/*@Independent[M]*/ @NotNull MethodHandles.Lookup lookup) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - int compareToFoldCase(@NotNull java.lang.String p0) { return 0; } - int encodedLength(@NotNull java.nio.charset.Charset p0) { return 0; } - boolean equalsFoldCase(@Nullable java.lang.String p0) { return false; } + int compareToFoldCase(@NotNull String p0) { return 0; } + int encodedLength(@NotNull Charset p0) { return 0; } + boolean equalsFoldCase(@Nullable String p0) { return false; } } //public final class Short extends Number implements Comparable, Constable @ImmutableContainer class Short$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Short$(@NotNull java.lang.String p0) { } - int compareTo(@NotNull java.lang.Short p0) { return 0; } - static java.lang.Short decode(@NotNull java.lang.String p0) { return null; } - static short parseShort(@NotNull java.lang.String p0) { return 0; } - static short parseShort(@NotNull java.lang.String p0, int p1) { return 0; } - static java.lang.Short valueOf(@NotNull java.lang.String p0) { return null; } - static java.lang.Short valueOf(@NotNull java.lang.String p0, int p1) { return null; } + Short$(@NotNull String p0) { } + int compareTo(@NotNull Short p0) { return 0; } + static Short decode(@NotNull String p0) { return null; } + static short parseShort(@NotNull String p0) { return 0; } + static short parseShort(@NotNull String p0, int p1) { return 0; } + static Short valueOf(@NotNull String p0) { return null; } + static Short valueOf(@NotNull String p0, int p1) { return null; } } //public final class StackTraceElement implements Serializable @ImmutableContainer class StackTraceElement$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - StackTraceElement$(@Nullable java.lang.String p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @NotNull java.lang.String p3, @NotNull java.lang.String p4, @Nullable java.lang.String p5, int p6) { } - StackTraceElement$(@NotNull java.lang.String p0, @NotNull java.lang.String p1, @Nullable java.lang.String p2, int p3) { } - @Nullable java.lang.String getClassLoaderName() { return null; } - @Nullable java.lang.String getFileName() { return null; } - @Nullable java.lang.String getModuleName() { return null; } - @Nullable java.lang.String getModuleVersion() { return null; } + StackTraceElement$(@Nullable String p0, @Nullable String p1, @Nullable String p2, @NotNull String p3, @NotNull String p4, @Nullable String p5, int p6) { } + StackTraceElement$(@NotNull String p0, @NotNull String p1, @Nullable String p2, int p3) { } + @Nullable String getClassLoaderName() { return null; } + @Nullable String getFileName() { return null; } + @Nullable String getModuleName() { return null; } + @Nullable String getModuleVersion() { return null; } } //public final class StringBuffer extends AbstractStringBuilder implements Appendable, Serializable, Comparable, CharSequence @@ -2377,8 +2384,8 @@ void getChars(int p0, int p1, @NotNull char[] p2, int p3) { } @NotModified int codePointBefore(int p0) { return 0; } @NotModified int codePointCount(int p0, int p1) { return 0; } @NotModified int offsetByCodePoints(int p0, int p1) { return 0; } - @NotModified java.lang.String substring(int p0) { return null; } - @NotModified java.lang.String substring(int p0, int p1) { return null; } + @NotModified String substring(int p0) { return null; } + @NotModified String substring(int p0, int p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void ensureCapacity(int p0) { } @@ -2919,7 +2926,7 @@ class Throwable$ { @NotModified Throwable [] getSuppressed() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Throwable$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1, boolean p2, boolean p3) { } + Throwable$(@Nullable String p0, @Nullable Throwable p1, boolean p2, boolean p3) { } } // null contracts (docs/design/nullability.md M2), formerly the analyzer's LibraryNullness @@ -2927,7 +2934,7 @@ class ThreadLocal$ { @NotModified @Nullable T get() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.lang.ThreadLocal withInitial(@NotNull java.util.function.Supplier p0) { return null; } + static ThreadLocal withInitial(@NotNull Supplier p0) { return null; } // get() initializes the current thread's value on first use, in the thread's map: no change a caller of // this object can observe. set and remove are the changes. @@ -2938,85 +2945,85 @@ class ThreadLocal$ { //public java.lang.AbstractMethodError (shadow created for its nullability, generated) class AbstractMethodError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - AbstractMethodError$(@Nullable java.lang.String p0) { } + AbstractMethodError$(@Nullable String p0) { } } //public java.lang.ArithmeticException (shadow created for its nullability, generated) class ArithmeticException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ArithmeticException$(@Nullable java.lang.String p0) { } + ArithmeticException$(@Nullable String p0) { } } //public java.lang.ArrayIndexOutOfBoundsException (shadow created for its nullability, generated) class ArrayIndexOutOfBoundsException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ArrayIndexOutOfBoundsException$(@Nullable java.lang.String p0) { } + ArrayIndexOutOfBoundsException$(@Nullable String p0) { } } //public java.lang.ArrayStoreException (shadow created for its nullability, generated) class ArrayStoreException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ArrayStoreException$(@Nullable java.lang.String p0) { } + ArrayStoreException$(@Nullable String p0) { } } //public java.lang.ClassCastException (shadow created for its nullability, generated) class ClassCastException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ClassCastException$(@Nullable java.lang.String p0) { } + ClassCastException$(@Nullable String p0) { } } //public java.lang.ClassCircularityError (shadow created for its nullability, generated) class ClassCircularityError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ClassCircularityError$(@Nullable java.lang.String p0) { } + ClassCircularityError$(@Nullable String p0) { } } //public java.lang.ClassFormatError (shadow created for its nullability, generated) class ClassFormatError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ClassFormatError$(@Nullable java.lang.String p0) { } + ClassFormatError$(@Nullable String p0) { } } //public java.lang.ClassLoader (shadow created for its nullability, generated) class ClassLoader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ClassLoader$(@Nullable java.lang.ClassLoader p0) { } - ClassLoader$(@Nullable java.lang.String p0, @Nullable java.lang.ClassLoader p1) { } - java.lang.Class defineClass(@Nullable java.lang.String p0, @NotNull java.nio.ByteBuffer p1, @Nullable java.security.ProtectionDomain p2) { return null; } - java.lang.Class defineClass(@Nullable java.lang.String p0, @NotNull byte[] p1, int p2, int p3) { return null; } - java.lang.Class defineClass(@Nullable java.lang.String p0, @NotNull byte[] p1, int p2, int p3, @Nullable java.security.ProtectionDomain p4) { return null; } - java.lang.Class defineClass(@NotNull byte[] p0, int p1, int p2) { return null; } - java.lang.Package definePackage(@NotNull java.lang.String p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3, @Nullable java.lang.String p4, @Nullable java.lang.String p5, @Nullable java.lang.String p6, @Nullable java.net.URL p7) { return null; } - java.lang.Class findClass(@NotNull java.lang.String p0) { return null; } - @Nullable java.lang.Class findClass(@Nullable java.lang.String p0, @NotNull java.lang.String p1) { return null; } - @Nullable java.lang.String findLibrary(@NotNull java.lang.String p0) { return null; } - @Nullable java.lang.Class findLoadedClass(@NotNull java.lang.String p0) { return null; } - @Nullable java.net.URL findResource(@NotNull java.lang.String p0) { return null; } - @Nullable java.net.URL findResource(@Nullable java.lang.String p0, @NotNull java.lang.String p1) { return null; } - java.util.Enumeration findResources(@NotNull java.lang.String p0) { return null; } - java.lang.Class findSystemClass(@NotNull java.lang.String p0) { return null; } - java.lang.Object getClassLoadingLock(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.lang.Package getDefinedPackage(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.lang.String getName() { return null; } - @Nullable java.lang.Package getPackage(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.lang.ClassLoader getParent() { return null; } - @NotModified @Nullable java.net.URL getResource(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.io.InputStream getResourceAsStream(@NotNull java.lang.String p0) { return null; } - @NotModified java.util.Enumeration getResources(@NotNull java.lang.String p0) { return null; } - @Nullable static java.net.URL getSystemResource(@NotNull java.lang.String p0) { return null; } - @Nullable static java.io.InputStream getSystemResourceAsStream(@NotNull java.lang.String p0) { return null; } - static java.util.Enumeration getSystemResources(@NotNull java.lang.String p0) { return null; } - @NotModified java.lang.Class loadClass(@NotNull java.lang.String p0) { return null; } - @NotModified java.lang.Class loadClass(@NotNull java.lang.String p0, boolean p1) { return null; } - void resolveClass(@NotNull java.lang.Class p0) { } - @NotModified java.util.stream.Stream resources(@NotNull java.lang.String p0) { return null; } - @Modified void setClassAssertionStatus(@NotNull java.lang.String p0, boolean p1) { } - @Modified void setPackageAssertionStatus(@Nullable java.lang.String p0, boolean p1) { } - void setSigners(@NotNull java.lang.Class p0, @NotNull java.lang.Object[] p1) { } + ClassLoader$(@Nullable ClassLoader p0) { } + ClassLoader$(@Nullable String p0, @Nullable ClassLoader p1) { } + Class defineClass(@Nullable String p0, @NotNull ByteBuffer p1, @Nullable ProtectionDomain p2) { return null; } + Class defineClass(@Nullable String p0, @NotNull byte[] p1, int p2, int p3) { return null; } + Class defineClass(@Nullable String p0, @NotNull byte[] p1, int p2, int p3, @Nullable ProtectionDomain p4) { return null; } + Class defineClass(@NotNull byte[] p0, int p1, int p2) { return null; } + Package definePackage(@NotNull String p0, @Nullable String p1, @Nullable String p2, @Nullable String p3, @Nullable String p4, @Nullable String p5, @Nullable String p6, @Nullable URL p7) { return null; } + Class findClass(@NotNull String p0) { return null; } + @Nullable Class findClass(@Nullable String p0, @NotNull String p1) { return null; } + @Nullable String findLibrary(@NotNull String p0) { return null; } + @Nullable Class findLoadedClass(@NotNull String p0) { return null; } + @Nullable URL findResource(@NotNull String p0) { return null; } + @Nullable URL findResource(@Nullable String p0, @NotNull String p1) { return null; } + Enumeration findResources(@NotNull String p0) { return null; } + Class findSystemClass(@NotNull String p0) { return null; } + Object getClassLoadingLock(@NotNull String p0) { return null; } + @NotModified @Nullable Package getDefinedPackage(@NotNull String p0) { return null; } + @NotModified @Nullable String getName() { return null; } + @Nullable Package getPackage(@NotNull String p0) { return null; } + @NotModified @Nullable ClassLoader getParent() { return null; } + @NotModified @Nullable URL getResource(@NotNull String p0) { return null; } + @NotModified @Nullable InputStream getResourceAsStream(@NotNull String p0) { return null; } + @NotModified Enumeration getResources(@NotNull String p0) { return null; } + @Nullable static URL getSystemResource(@NotNull String p0) { return null; } + @Nullable static InputStream getSystemResourceAsStream(@NotNull String p0) { return null; } + static Enumeration getSystemResources(@NotNull String p0) { return null; } + @NotModified Class loadClass(@NotNull String p0) { return null; } + @NotModified Class loadClass(@NotNull String p0, boolean p1) { return null; } + void resolveClass(@NotNull Class p0) { } + @NotModified Stream resources(@NotNull String p0) { return null; } + @Modified void setClassAssertionStatus(@NotNull String p0, boolean p1) { } + @Modified void setPackageAssertionStatus(@Nullable String p0, boolean p1) { } + void setSigners(@NotNull Class p0, @NotNull Object[] p1) { } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.lang.Package[] getDefinedPackages() { return null; } - @NotModified java.lang.Module getUnnamedModule() { return null; } + @NotModified Package[] getDefinedPackages() { return null; } + @NotModified Module getUnnamedModule() { return null; } @NotModified boolean isRegisteredAsParallelCapable() { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -3027,159 +3034,159 @@ void setSigners(@NotNull java.lang.Class p0, @NotNull java.lang.Object[] p1) //public java.lang.ClassNotFoundException (shadow created for its nullability, generated) class ClassNotFoundException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ClassNotFoundException$(@Nullable java.lang.String p0) { } - ClassNotFoundException$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } + ClassNotFoundException$(@Nullable String p0) { } + ClassNotFoundException$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.lang.Throwable getException() { return null; } + @NotModified Throwable getException() { return null; } } //public java.lang.ClassValue (shadow created for its nullability, generated) class ClassValue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - T computeValue(@NotNull java.lang.Class p0) { return null; } - @NotModified T get(@NotNull java.lang.Class p0) { return null; } - @Modified void remove(@NotNull java.lang.Class p0) { } + T computeValue(@NotNull Class p0) { return null; } + @NotModified T get(@NotNull Class p0) { return null; } + @Modified void remove(@NotNull Class p0) { } } //public java.lang.CloneNotSupportedException (shadow created for its nullability, generated) class CloneNotSupportedException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - CloneNotSupportedException$(@Nullable java.lang.String p0) { } + CloneNotSupportedException$(@Nullable String p0) { } } //public java.lang.EnumConstantNotPresentException (shadow created for its nullability, generated) class EnumConstantNotPresentException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - EnumConstantNotPresentException$(@NotNull java.lang.Class p0, @NotNull java.lang.String p1) { } + EnumConstantNotPresentException$(@NotNull Class p0, @NotNull String p1) { } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.lang.String constantName() { return null; } - @NotModified java.lang.Class enumType() { return null; } + @NotModified String constantName() { return null; } + @NotModified Class enumType() { return null; } } //public java.lang.ExceptionInInitializerError (shadow created for its nullability, generated) class ExceptionInInitializerError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ExceptionInInitializerError$(@Nullable java.lang.String p0) { } - ExceptionInInitializerError$(@NotModified @Nullable java.lang.Throwable p0) { } - @NotModified @Nullable java.lang.Throwable getException() { return null; } + ExceptionInInitializerError$(@Nullable String p0) { } + ExceptionInInitializerError$(@NotModified @Nullable Throwable p0) { } + @NotModified @Nullable Throwable getException() { return null; } } //public java.lang.IO (shadow created for its nullability, generated) class IO$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static void print(@Nullable java.lang.Object p0) { } - static void println(@Nullable java.lang.Object p0) { } - @Nullable static java.lang.String readln() { return null; } - @Nullable static java.lang.String readln(@Nullable java.lang.String p0) { return null; } + static void print(@Nullable Object p0) { } + static void println(@Nullable Object p0) { } + @Nullable static String readln() { return null; } + @Nullable static String readln(@Nullable String p0) { return null; } } //public java.lang.IllegalAccessError (shadow created for its nullability, generated) class IllegalAccessError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - IllegalAccessError$(@Nullable java.lang.String p0) { } + IllegalAccessError$(@Nullable String p0) { } } //public java.lang.IllegalAccessException (shadow created for its nullability, generated) class IllegalAccessException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - IllegalAccessException$(@Nullable java.lang.String p0) { } + IllegalAccessException$(@Nullable String p0) { } } //public java.lang.IllegalCallerException (shadow created for its nullability, generated) class IllegalCallerException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - IllegalCallerException$(@Nullable java.lang.String p0) { } - IllegalCallerException$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } - IllegalCallerException$(@NotModified @Nullable java.lang.Throwable p0) { } + IllegalCallerException$(@Nullable String p0) { } + IllegalCallerException$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } + IllegalCallerException$(@NotModified @Nullable Throwable p0) { } } //public java.lang.IllegalMonitorStateException (shadow created for its nullability, generated) class IllegalMonitorStateException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - IllegalMonitorStateException$(@Nullable java.lang.String p0) { } + IllegalMonitorStateException$(@Nullable String p0) { } } //public java.lang.IllegalThreadStateException (shadow created for its nullability, generated) class IllegalThreadStateException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - IllegalThreadStateException$(@Nullable java.lang.String p0) { } + IllegalThreadStateException$(@Nullable String p0) { } } //public java.lang.IncompatibleClassChangeError (shadow created for its nullability, generated) class IncompatibleClassChangeError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - IncompatibleClassChangeError$(@Nullable java.lang.String p0) { } + IncompatibleClassChangeError$(@Nullable String p0) { } } //public java.lang.IndexOutOfBoundsException (shadow created for its nullability, generated) class IndexOutOfBoundsException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - IndexOutOfBoundsException$(@Nullable java.lang.String p0) { } + IndexOutOfBoundsException$(@Nullable String p0) { } } //public java.lang.InstantiationError (shadow created for its nullability, generated) class InstantiationError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InstantiationError$(@Nullable java.lang.String p0) { } + InstantiationError$(@Nullable String p0) { } } //public java.lang.InstantiationException (shadow created for its nullability, generated) class InstantiationException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InstantiationException$(@Nullable java.lang.String p0) { } + InstantiationException$(@Nullable String p0) { } } //public java.lang.InternalError (shadow created for its nullability, generated) class InternalError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InternalError$(@Nullable java.lang.String p0) { } - InternalError$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } - InternalError$(@NotModified @Nullable java.lang.Throwable p0) { } + InternalError$(@Nullable String p0) { } + InternalError$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } + InternalError$(@NotModified @Nullable Throwable p0) { } } //public java.lang.InterruptedException (shadow created for its nullability, generated) class InterruptedException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InterruptedException$(@Nullable java.lang.String p0) { } + InterruptedException$(@Nullable String p0) { } } //public java.lang.LinkageError (shadow created for its nullability, generated) class LinkageError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - LinkageError$(@Nullable java.lang.String p0) { } - LinkageError$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } + LinkageError$(@Nullable String p0) { } + LinkageError$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } } //public java.lang.MatchException (shadow created for its nullability, generated) class MatchException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - MatchException$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } + MatchException$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } } //public java.lang.Module (shadow created for its nullability, generated) class Module$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified java.lang.Module addExports(@NotNull java.lang.String p0, @NotModified @NotNull java.lang.Module p1) { return null; } - @Modified java.lang.Module addOpens(@NotNull java.lang.String p0, @NotModified @NotNull java.lang.Module p1) { return null; } - @Modified java.lang.Module addReads(@NotModified @NotNull java.lang.Module p0) { return null; } - @Modified java.lang.Module addUses(@NotNull java.lang.Class p0) { return null; } - @NotModified boolean canRead(@NotModified @NotNull java.lang.Module p0) { return false; } - @NotModified boolean canUse(@NotNull java.lang.Class p0) { return false; } - @Nullable T getAnnotation(@NotNull java.lang.Class p0) { return null; } - @NotModified @Nullable java.lang.ClassLoader getClassLoader() { return null; } - @NotModified @Nullable java.lang.module.ModuleDescriptor getDescriptor() { return null; } - @NotModified @Nullable java.lang.ModuleLayer getLayer() { return null; } - @NotModified @Nullable java.lang.String getName() { return null; } - @NotModified @Nullable java.io.InputStream getResourceAsStream(@NotNull java.lang.String p0) { return null; } - @NotModified boolean isExported(@NotNull java.lang.String p0) { return false; } - @NotModified boolean isExported(@NotNull java.lang.String p0, @NotModified @NotNull java.lang.Module p1) { return false; } - @NotModified boolean isOpen(@NotNull java.lang.String p0) { return false; } - @NotModified boolean isOpen(@NotNull java.lang.String p0, @NotModified @NotNull java.lang.Module p1) { return false; } + @Modified Module addExports(@NotNull String p0, @NotModified @NotNull Module p1) { return null; } + @Modified Module addOpens(@NotNull String p0, @NotModified @NotNull Module p1) { return null; } + @Modified Module addReads(@NotModified @NotNull Module p0) { return null; } + @Modified Module addUses(@NotNull Class p0) { return null; } + @NotModified boolean canRead(@NotModified @NotNull Module p0) { return false; } + @NotModified boolean canUse(@NotNull Class p0) { return false; } + @Nullable T getAnnotation(@NotNull Class p0) { return null; } + @NotModified @Nullable ClassLoader getClassLoader() { return null; } + @NotModified @Nullable ModuleDescriptor getDescriptor() { return null; } + @NotModified @Nullable ModuleLayer getLayer() { return null; } + @NotModified @Nullable String getName() { return null; } + @NotModified @Nullable InputStream getResourceAsStream(@NotNull String p0) { return null; } + @NotModified boolean isExported(@NotNull String p0) { return false; } + @NotModified boolean isExported(@NotNull String p0, @NotModified @NotNull Module p1) { return false; } + @NotModified boolean isOpen(@NotNull String p0) { return false; } + @NotModified boolean isOpen(@NotNull String p0, @NotModified @NotNull Module p1) { return false; } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.util.Set getPackages() { return null; } + @NotModified Set getPackages() { return null; } @NotModified boolean isNamed() { return false; } @NotModified boolean isNativeAccessEnabled() { return false; } } @@ -3187,203 +3194,203 @@ class Module$ { //public java.lang.ModuleLayer (shadow created for its nullability, generated) class ModuleLayer$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable static java.lang.ModuleLayer boot() { return null; } - @NotModified java.lang.ModuleLayer defineModules(@NotNull java.lang.module.Configuration p0, @NotNull java.util.function.Function p1) { return null; } - static java.lang.ModuleLayer.Controller defineModules(@NotNull java.lang.module.Configuration p0, @NotNull java.util.List p1, @NotNull java.util.function.Function p2) { return null; } - @NotModified java.lang.ModuleLayer defineModulesWithManyLoaders(@NotNull java.lang.module.Configuration p0, @Nullable java.lang.ClassLoader p1) { return null; } - static java.lang.ModuleLayer.Controller defineModulesWithManyLoaders(@NotNull java.lang.module.Configuration p0, @NotNull java.util.List p1, @Nullable java.lang.ClassLoader p2) { return null; } - @NotModified java.lang.ModuleLayer defineModulesWithOneLoader(@NotNull java.lang.module.Configuration p0, @Nullable java.lang.ClassLoader p1) { return null; } - static java.lang.ModuleLayer.Controller defineModulesWithOneLoader(@NotNull java.lang.module.Configuration p0, @NotNull java.util.List p1, @Nullable java.lang.ClassLoader p2) { return null; } - @NotModified @Nullable java.lang.ClassLoader findLoader(@NotNull java.lang.String p0) { return null; } - @NotModified java.util.Optional findModule(@NotNull java.lang.String p0) { return null; } + @Nullable static ModuleLayer boot() { return null; } + @NotModified ModuleLayer defineModules(@NotNull Configuration p0, @NotNull Function p1) { return null; } + static ModuleLayer.Controller defineModules(@NotNull Configuration p0, @NotNull List p1, @NotNull Function p2) { return null; } + @NotModified ModuleLayer defineModulesWithManyLoaders(@NotNull Configuration p0, @Nullable ClassLoader p1) { return null; } + static ModuleLayer.Controller defineModulesWithManyLoaders(@NotNull Configuration p0, @NotNull List p1, @Nullable ClassLoader p2) { return null; } + @NotModified ModuleLayer defineModulesWithOneLoader(@NotNull Configuration p0, @Nullable ClassLoader p1) { return null; } + static ModuleLayer.Controller defineModulesWithOneLoader(@NotNull Configuration p0, @NotNull List p1, @Nullable ClassLoader p2) { return null; } + @NotModified @Nullable ClassLoader findLoader(@NotNull String p0) { return null; } + @NotModified Optional findModule(@NotNull String p0) { return null; } //public java.lang.ModuleLayer.Controller (shadow created for its nullability, generated) class Controller { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified java.lang.ModuleLayer.Controller addExports(@NotNull java.lang.Module p0, @NotNull java.lang.String p1, @NotNull java.lang.Module p2) { return null; } - @Modified java.lang.ModuleLayer.Controller addOpens(@NotNull java.lang.Module p0, @NotNull java.lang.String p1, @NotNull java.lang.Module p2) { return null; } - @Modified java.lang.ModuleLayer.Controller addReads(@NotNull java.lang.Module p0, @NotNull java.lang.Module p1) { return null; } - java.lang.ModuleLayer.Controller enableNativeAccess(@NotNull java.lang.Module p0) { return null; } + @Modified ModuleLayer.Controller addExports(@NotNull Module p0, @NotNull String p1, @NotNull Module p2) { return null; } + @Modified ModuleLayer.Controller addOpens(@NotNull Module p0, @NotNull String p1, @NotNull Module p2) { return null; } + @Modified ModuleLayer.Controller addReads(@NotNull Module p0, @NotNull Module p1) { return null; } + ModuleLayer.Controller enableNativeAccess(@NotNull Module p0) { return null; } } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.lang.module.Configuration configuration() { return null; } - @NotModified java.util.Set modules() { return null; } - @NotModified java.util.List parents() { return null; } + @NotModified Configuration configuration() { return null; } + @NotModified Set modules() { return null; } + @NotModified List parents() { return null; } } //public java.lang.NegativeArraySizeException (shadow created for its nullability, generated) class NegativeArraySizeException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NegativeArraySizeException$(@Nullable java.lang.String p0) { } + NegativeArraySizeException$(@Nullable String p0) { } } //public java.lang.NoClassDefFoundError (shadow created for its nullability, generated) class NoClassDefFoundError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NoClassDefFoundError$(@Nullable java.lang.String p0) { } + NoClassDefFoundError$(@Nullable String p0) { } } //public java.lang.NoSuchFieldError (shadow created for its nullability, generated) class NoSuchFieldError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NoSuchFieldError$(@Nullable java.lang.String p0) { } + NoSuchFieldError$(@Nullable String p0) { } } //public java.lang.NoSuchFieldException (shadow created for its nullability, generated) class NoSuchFieldException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NoSuchFieldException$(@Nullable java.lang.String p0) { } + NoSuchFieldException$(@Nullable String p0) { } } //public java.lang.NoSuchMethodError (shadow created for its nullability, generated) class NoSuchMethodError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NoSuchMethodError$(@Nullable java.lang.String p0) { } + NoSuchMethodError$(@Nullable String p0) { } } //public java.lang.NoSuchMethodException (shadow created for its nullability, generated) class NoSuchMethodException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NoSuchMethodException$(@Nullable java.lang.String p0) { } + NoSuchMethodException$(@Nullable String p0) { } } //public java.lang.NullPointerException (shadow created for its nullability, generated) class NullPointerException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NullPointerException$(@Nullable java.lang.String p0) { } - @Nullable java.lang.String getMessage() { return null; } + NullPointerException$(@Nullable String p0) { } + @Nullable String getMessage() { return null; } } //public java.lang.NumberFormatException (shadow created for its nullability, generated) class NumberFormatException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NumberFormatException$(@Nullable java.lang.String p0) { } + NumberFormatException$(@Nullable String p0) { } } //public java.lang.OutOfMemoryError (shadow created for its nullability, generated) class OutOfMemoryError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - OutOfMemoryError$(@Nullable java.lang.String p0) { } + OutOfMemoryError$(@Nullable String p0) { } } //public java.lang.Package (shadow created for its nullability, generated) class Package$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable A getAnnotation(@NotNull java.lang.Class p0) { return null; } - A[] getAnnotationsByType(@NotNull java.lang.Class p0) { return null; } - @Nullable A getDeclaredAnnotation(@NotNull java.lang.Class p0) { return null; } - A[] getDeclaredAnnotationsByType(@NotNull java.lang.Class p0) { return null; } - @NotModified @Nullable java.lang.String getImplementationTitle() { return null; } - @NotModified @Nullable java.lang.String getImplementationVendor() { return null; } - @NotModified @Nullable java.lang.String getImplementationVersion() { return null; } - @Nullable static java.lang.Package getPackage(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.lang.String getSpecificationTitle() { return null; } - @NotModified @Nullable java.lang.String getSpecificationVendor() { return null; } - @NotModified @Nullable java.lang.String getSpecificationVersion() { return null; } - boolean isAnnotationPresent(@NotNull java.lang.Class p0) { return false; } - @NotModified boolean isCompatibleWith(@NotNull java.lang.String p0) { return false; } - @NotModified boolean isSealed(@NotNull java.net.URL p0) { return false; } + @Nullable A getAnnotation(@NotNull Class p0) { return null; } + A[] getAnnotationsByType(@NotNull Class p0) { return null; } + @Nullable A getDeclaredAnnotation(@NotNull Class p0) { return null; } + A[] getDeclaredAnnotationsByType(@NotNull Class p0) { return null; } + @NotModified @Nullable String getImplementationTitle() { return null; } + @NotModified @Nullable String getImplementationVendor() { return null; } + @NotModified @Nullable String getImplementationVersion() { return null; } + @Nullable static Package getPackage(@NotNull String p0) { return null; } + @NotModified @Nullable String getSpecificationTitle() { return null; } + @NotModified @Nullable String getSpecificationVendor() { return null; } + @NotModified @Nullable String getSpecificationVersion() { return null; } + boolean isAnnotationPresent(@NotNull Class p0) { return false; } + @NotModified boolean isCompatibleWith(@NotNull String p0) { return false; } + @NotModified boolean isSealed(@NotNull URL p0) { return false; } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.lang.String getName() { return null; } + @NotModified String getName() { return null; } @NotModified boolean isSealed() { return false; } } //public java.lang.Process (shadow created for its nullability, generated) class Process$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified java.io.BufferedReader errorReader(@NotNull java.nio.charset.Charset p0) { return null; } - @NotModified java.io.BufferedReader inputReader(@NotNull java.nio.charset.Charset p0) { return null; } - @NotModified java.io.BufferedWriter outputWriter(@NotNull java.nio.charset.Charset p0) { return null; } - @NotModified boolean waitFor(@NotNull java.time.Duration p0) { return false; } - @NotModified boolean waitFor(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return false; } + @NotModified BufferedReader errorReader(@NotNull Charset p0) { return null; } + @NotModified BufferedReader inputReader(@NotNull Charset p0) { return null; } + @NotModified BufferedWriter outputWriter(@NotNull Charset p0) { return null; } + @NotModified boolean waitFor(@NotNull Duration p0) { return false; } + @NotModified boolean waitFor(long p0, @NotNull TimeUnit p1) { return false; } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.util.stream.Stream children() { return null; } - @NotModified java.util.stream.Stream descendants() { return null; } - @NotModified java.io.InputStream getErrorStream() { return null; } - @NotModified java.io.InputStream getInputStream() { return null; } - @NotModified java.io.OutputStream getOutputStream() { return null; } - @NotModified java.lang.ProcessHandle.Info info() { return null; } + @NotModified Stream children() { return null; } + @NotModified Stream descendants() { return null; } + @NotModified InputStream getErrorStream() { return null; } + @NotModified InputStream getInputStream() { return null; } + @NotModified OutputStream getOutputStream() { return null; } + @NotModified ProcessHandle.Info info() { return null; } @NotModified boolean isAlive() { return false; } @NotModified long pid() { return 0; } @NotModified boolean supportsNormalTermination() { return false; } - @NotModified java.lang.ProcessHandle toHandle() { return null; } + @NotModified ProcessHandle toHandle() { return null; } @NotModified int exitValue() { return 0; } - @NotModified java.util.concurrent.CompletableFuture onExit() { return null; } - @NotModified java.io.BufferedReader errorReader() { return null; } - @NotModified java.io.BufferedReader inputReader() { return null; } - @NotModified java.io.BufferedWriter outputWriter() { return null; } + @NotModified CompletableFuture onExit() { return null; } + @NotModified BufferedReader errorReader() { return null; } + @NotModified BufferedReader inputReader() { return null; } + @NotModified BufferedWriter outputWriter() { return null; } @NotModified int waitFor() { return 0; } } //public java.lang.ProcessBuilder (shadow created for its nullability, generated) class ProcessBuilder$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ProcessBuilder$(@NotModified @NotNull java.util.List p0) { } - ProcessBuilder$(@NotNull @NotModified java.lang.String... p0) { } - java.lang.ProcessBuilder command(@NotModified @NotNull java.util.List p0) { return null; } - java.lang.ProcessBuilder command(@NotNull @NotModified java.lang.String... p0) { return null; } - @NotModified @Nullable java.io.File directory() { return null; } - java.lang.ProcessBuilder directory(@Nullable java.io.File p0) { return null; } - java.lang.ProcessBuilder redirectError(@NotNull java.io.File p0) { return null; } - java.lang.ProcessBuilder redirectError(@NotModified @NotNull java.lang.ProcessBuilder.Redirect p0) { return null; } - java.lang.ProcessBuilder redirectInput(@NotNull java.io.File p0) { return null; } - java.lang.ProcessBuilder redirectInput(@NotModified @NotNull java.lang.ProcessBuilder.Redirect p0) { return null; } - java.lang.ProcessBuilder redirectOutput(@NotNull java.io.File p0) { return null; } - java.lang.ProcessBuilder redirectOutput(@NotModified @NotNull java.lang.ProcessBuilder.Redirect p0) { return null; } - static java.util.List startPipeline(@NotModified @NotNull java.util.List p0) { return null; } + ProcessBuilder$(@NotModified @NotNull List p0) { } + ProcessBuilder$(@NotNull @NotModified String... p0) { } + ProcessBuilder command(@NotModified @NotNull List p0) { return null; } + ProcessBuilder command(@NotNull @NotModified String... p0) { return null; } + @NotModified @Nullable File directory() { return null; } + ProcessBuilder directory(@Nullable File p0) { return null; } + ProcessBuilder redirectError(@NotNull File p0) { return null; } + ProcessBuilder redirectError(@NotModified @NotNull ProcessBuilder.Redirect p0) { return null; } + ProcessBuilder redirectInput(@NotNull File p0) { return null; } + ProcessBuilder redirectInput(@NotModified @NotNull ProcessBuilder.Redirect p0) { return null; } + ProcessBuilder redirectOutput(@NotNull File p0) { return null; } + ProcessBuilder redirectOutput(@NotModified @NotNull ProcessBuilder.Redirect p0) { return null; } + static List startPipeline(@NotModified @NotNull List p0) { return null; } //public java.lang.ProcessBuilder.Redirect (shadow created for its nullability, generated) class Redirect { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.lang.ProcessBuilder.Redirect appendTo(@NotNull java.io.File p0) { return null; } - @Nullable java.io.File file() { return null; } - static java.lang.ProcessBuilder.Redirect from(@NotNull java.io.File p0) { return null; } - static java.lang.ProcessBuilder.Redirect to(@NotNull java.io.File p0) { return null; } + static ProcessBuilder.Redirect appendTo(@NotNull File p0) { return null; } + @Nullable File file() { return null; } + static ProcessBuilder.Redirect from(@NotNull File p0) { return null; } + static ProcessBuilder.Redirect to(@NotNull File p0) { return null; } } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.lang.Process start() { return null; } + @NotModified Process start() { return null; } @NotModified boolean redirectErrorStream() { return false; } - @NotModified java.util.Map environment() { return null; } - @NotModified java.util.List command() { return null; } - @NotModified java.lang.ProcessBuilder.Redirect redirectError() { return null; } - @NotModified java.lang.ProcessBuilder.Redirect redirectInput() { return null; } - @NotModified java.lang.ProcessBuilder.Redirect redirectOutput() { return null; } + @NotModified Map environment() { return null; } + @NotModified List command() { return null; } + @NotModified ProcessBuilder.Redirect redirectError() { return null; } + @NotModified ProcessBuilder.Redirect redirectInput() { return null; } + @NotModified ProcessBuilder.Redirect redirectOutput() { return null; } } //public java.lang.ReflectiveOperationException (shadow created for its nullability, generated) class ReflectiveOperationException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ReflectiveOperationException$(@Nullable java.lang.String p0) { } - ReflectiveOperationException$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } - ReflectiveOperationException$(@NotModified @Nullable java.lang.Throwable p0) { } + ReflectiveOperationException$(@Nullable String p0) { } + ReflectiveOperationException$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } + ReflectiveOperationException$(@NotModified @Nullable Throwable p0) { } } //public java.lang.Runtime (shadow created for its nullability, generated) class Runtime$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void addShutdownHook(@NotNull java.lang.Thread p0) { } - @NotModified java.lang.Process exec(@NotNull java.lang.String p0) { return null; } - @NotModified java.lang.Process exec(@NotNull java.lang.String p0, @NotModified @Nullable java.lang.String[] p1) { return null; } - @NotModified java.lang.Process exec(@NotNull java.lang.String p0, @NotModified @Nullable java.lang.String[] p1, @Nullable java.io.File p2) { return null; } - @NotModified java.lang.Process exec(@NotModified @NotNull java.lang.String[] p0) { return null; } - @NotModified java.lang.Process exec(@NotModified @NotNull java.lang.String[] p0, @NotModified @Nullable java.lang.String[] p1) { return null; } - @NotModified java.lang.Process exec(@NotModified @NotNull java.lang.String[] p0, @NotModified @Nullable java.lang.String[] p1, @Nullable java.io.File p2) { return null; } - @Modified void load(@NotNull java.lang.String p0) { } - @Modified void loadLibrary(@NotNull java.lang.String p0) { } - @Modified boolean removeShutdownHook(@NotNull java.lang.Thread p0) { return false; } + @Modified void addShutdownHook(@NotNull Thread p0) { } + @NotModified Process exec(@NotNull String p0) { return null; } + @NotModified Process exec(@NotNull String p0, @NotModified @Nullable String[] p1) { return null; } + @NotModified Process exec(@NotNull String p0, @NotModified @Nullable String[] p1, @Nullable File p2) { return null; } + @NotModified Process exec(@NotModified @NotNull String[] p0) { return null; } + @NotModified Process exec(@NotModified @NotNull String[] p0, @NotModified @Nullable String[] p1) { return null; } + @NotModified Process exec(@NotModified @NotNull String[] p0, @NotModified @Nullable String[] p1, @Nullable File p2) { return null; } + @Modified void load(@NotNull String p0) { } + @Modified void loadLibrary(@NotNull String p0) { } + @Modified boolean removeShutdownHook(@NotNull Thread p0) { return false; } //public java.lang.Runtime.Version (shadow created for its nullability, generated) @ImmutableContainer class Version { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - int compareTo(@NotNull java.lang.Runtime.Version p0) { return 0; } - int compareToIgnoreOptional(@NotNull java.lang.Runtime.Version p0) { return 0; } - boolean equalsIgnoreOptional(@NotNull java.lang.Object p0) { return false; } - static java.lang.Runtime.Version parse(@NotNull java.lang.String p0) { return null; } + int compareTo(@NotNull Runtime.Version p0) { return 0; } + int compareToIgnoreOptional(@NotNull Runtime.Version p0) { return 0; } + boolean equalsIgnoreOptional(@NotNull Object p0) { return false; } + static Runtime.Version parse(@NotNull String p0) { return null; } } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) @@ -3396,42 +3403,42 @@ class Version { //public java.lang.RuntimePermission (shadow created for its nullability, generated) class RuntimePermission$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - RuntimePermission$(@NotNull java.lang.String p0) { } - RuntimePermission$(@NotNull java.lang.String p0, @Nullable java.lang.String p1) { } + RuntimePermission$(@NotNull String p0) { } + RuntimePermission$(@NotNull String p0, @Nullable String p1) { } } //public java.lang.SecurityException (shadow created for its nullability, generated) class SecurityException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - SecurityException$(@Nullable java.lang.String p0) { } - SecurityException$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } - SecurityException$(@NotModified @Nullable java.lang.Throwable p0) { } + SecurityException$(@Nullable String p0) { } + SecurityException$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } + SecurityException$(@NotModified @Nullable Throwable p0) { } } //public java.lang.SecurityManager (shadow created for its nullability, generated) class SecurityManager$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified void checkAccept(@NotNull java.lang.String p0, int p1) { } - @NotModified void checkAccess(@NotModified @NotNull java.lang.Thread p0) { } - @NotModified void checkAccess(@NotModified @NotNull java.lang.ThreadGroup p0) { } - @NotModified void checkConnect(@NotNull java.lang.String p0, int p1) { } - @NotModified void checkConnect(@NotNull java.lang.String p0, int p1, @NotNull java.lang.Object p2) { } - @NotModified void checkDelete(@NotNull java.lang.String p0) { } - @NotModified void checkExec(@NotNull java.lang.String p0) { } - @NotModified void checkLink(@NotNull java.lang.String p0) { } - @NotModified void checkMulticast(@NotNull java.net.InetAddress p0) { } - @NotModified void checkMulticast(@NotNull java.net.InetAddress p0, byte p1) { } - @NotModified void checkPackageAccess(@NotNull java.lang.String p0) { } - @NotModified void checkPackageDefinition(@NotNull java.lang.String p0) { } - @NotModified void checkPermission(@NotModified @NotNull java.security.Permission p0) { } - @NotModified void checkPermission(@NotModified @NotNull java.security.Permission p0, @NotNull java.lang.Object p1) { } - @NotModified void checkPropertyAccess(@NotNull java.lang.String p0) { } - @NotModified void checkRead(@NotModified @NotNull java.io.FileDescriptor p0) { } - @NotModified void checkRead(@NotNull java.lang.String p0) { } - @NotModified void checkRead(@NotNull java.lang.String p0, @NotNull java.lang.Object p1) { } - @NotModified void checkSecurityAccess(@NotNull java.lang.String p0) { } - @NotModified void checkWrite(@NotModified @NotNull java.io.FileDescriptor p0) { } - @NotModified void checkWrite(@NotNull java.lang.String p0) { } + @NotModified void checkAccept(@NotNull String p0, int p1) { } + @NotModified void checkAccess(@NotModified @NotNull Thread p0) { } + @NotModified void checkAccess(@NotModified @NotNull ThreadGroup p0) { } + @NotModified void checkConnect(@NotNull String p0, int p1) { } + @NotModified void checkConnect(@NotNull String p0, int p1, @NotNull Object p2) { } + @NotModified void checkDelete(@NotNull String p0) { } + @NotModified void checkExec(@NotNull String p0) { } + @NotModified void checkLink(@NotNull String p0) { } + @NotModified void checkMulticast(@NotNull InetAddress p0) { } + @NotModified void checkMulticast(@NotNull InetAddress p0, byte p1) { } + @NotModified void checkPackageAccess(@NotNull String p0) { } + @NotModified void checkPackageDefinition(@NotNull String p0) { } + @NotModified void checkPermission(@NotModified @NotNull Permission p0) { } + @NotModified void checkPermission(@NotModified @NotNull Permission p0, @NotNull Object p1) { } + @NotModified void checkPropertyAccess(@NotNull String p0) { } + @NotModified void checkRead(@NotModified @NotNull FileDescriptor p0) { } + @NotModified void checkRead(@NotNull String p0) { } + @NotModified void checkRead(@NotNull String p0, @NotNull Object p1) { } + @NotModified void checkSecurityAccess(@NotNull String p0) { } + @NotModified void checkWrite(@NotModified @NotNull FileDescriptor p0) { } + @NotModified void checkWrite(@NotNull String p0) { } // a query, declared so (generated from the assumed-defaults list) @NotModified Object getSecurityContext() { return null; } @@ -3441,47 +3448,47 @@ class SecurityManager$ { //public java.lang.StackOverflowError (shadow created for its nullability, generated) class StackOverflowError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - StackOverflowError$(@Nullable java.lang.String p0) { } + StackOverflowError$(@Nullable String p0) { } } //public java.lang.StackWalker (shadow created for its nullability, generated) class StackWalker$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified void forEach(@NotNull java.util.function.Consumer p0) { } - static java.lang.StackWalker getInstance(@NotNull java.lang.StackWalker.Option p0) { return null; } - static java.lang.StackWalker getInstance(@NotNull java.util.Set p0) { return null; } - static java.lang.StackWalker getInstance(@NotNull java.util.Set p0, int p1) { return null; } - @NotModified T walk(@NotNull java.util.function.Function, ? extends T> p0) { return null; } + @NotModified void forEach(@NotNull Consumer p0) { } + static StackWalker getInstance(@NotNull StackWalker.Option p0) { return null; } + static StackWalker getInstance(@NotNull Set p0) { return null; } + static StackWalker getInstance(@NotNull Set p0, int p1) { return null; } + @NotModified T walk(@NotNull Function, ? extends T> p0) { return null; } //public java.lang.StackWalker.StackFrame (shadow created for its nullability, generated) class StackFrame { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.lang.String getFileName() { return null; } + @NotModified @Nullable String getFileName() { return null; } } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.lang.Class getCallerClass() { return null; } + @NotModified Class getCallerClass() { return null; } } //public java.lang.StringIndexOutOfBoundsException (shadow created for its nullability, generated) class StringIndexOutOfBoundsException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - StringIndexOutOfBoundsException$(@Nullable java.lang.String p0) { } + StringIndexOutOfBoundsException$(@Nullable String p0) { } } //public java.lang.ThreadGroup (shadow created for its nullability, generated) class ThreadGroup$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ThreadGroup$(@Nullable java.lang.String p0) { } - ThreadGroup$(@NotNull java.lang.ThreadGroup p0, @Nullable java.lang.String p1) { } - @NotModified int enumerate(@NotNull(nullableArguments = 0) java.lang.ThreadGroup[] p0) { return 0; } - @NotModified int enumerate(@NotNull(nullableArguments = 0) java.lang.ThreadGroup[] p0, boolean p1) { return 0; } - @NotModified int enumerate(@NotNull(nullableArguments = 0) java.lang.Thread[] p0) { return 0; } - @NotModified int enumerate(@NotNull(nullableArguments = 0) java.lang.Thread[] p0, boolean p1) { return 0; } - @NotModified @Nullable java.lang.String getName() { return null; } - @NotModified @Nullable java.lang.ThreadGroup getParent() { return null; } - @NotModified boolean parentOf(@NotModified @NotNull java.lang.ThreadGroup p0) { return false; } - @NotModified void uncaughtException(@NotModified @NotNull java.lang.Thread p0, @NotModified @NotNull java.lang.Throwable p1) { } + ThreadGroup$(@Nullable String p0) { } + ThreadGroup$(@NotNull ThreadGroup p0, @Nullable String p1) { } + @NotModified int enumerate(@NotNull(nullableArguments = 0) ThreadGroup[] p0) { return 0; } + @NotModified int enumerate(@NotNull(nullableArguments = 0) ThreadGroup[] p0, boolean p1) { return 0; } + @NotModified int enumerate(@NotNull(nullableArguments = 0) Thread[] p0) { return 0; } + @NotModified int enumerate(@NotNull(nullableArguments = 0) Thread[] p0, boolean p1) { return 0; } + @NotModified @Nullable String getName() { return null; } + @NotModified @Nullable ThreadGroup getParent() { return null; } + @NotModified boolean parentOf(@NotModified @NotNull ThreadGroup p0) { return false; } + @NotModified void uncaughtException(@NotModified @NotNull Thread p0, @NotModified @NotNull Throwable p1) { } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) @NotModified int activeCount() { return 0; } @@ -3501,49 +3508,49 @@ class ThreadGroup$ { //public java.lang.TypeNotPresentException (shadow created for its nullability, generated) class TypeNotPresentException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - TypeNotPresentException$(@NotNull java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } + TypeNotPresentException$(@NotNull String p0, @NotModified @Nullable Throwable p1) { } // a query of this object, not a change of it (java.lang audit, 2026-10-29: the unannotated default is modifying) - @NotModified java.lang.String typeName() { return null; } + @NotModified String typeName() { return null; } } //public java.lang.UnknownError (shadow created for its nullability, generated) class UnknownError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - UnknownError$(@Nullable java.lang.String p0) { } + UnknownError$(@Nullable String p0) { } } //public java.lang.UnsatisfiedLinkError (shadow created for its nullability, generated) class UnsatisfiedLinkError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - UnsatisfiedLinkError$(@Nullable java.lang.String p0) { } + UnsatisfiedLinkError$(@Nullable String p0) { } } //public java.lang.UnsupportedClassVersionError (shadow created for its nullability, generated) class UnsupportedClassVersionError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - UnsupportedClassVersionError$(@Nullable java.lang.String p0) { } + UnsupportedClassVersionError$(@Nullable String p0) { } } //public java.lang.UnsupportedOperationException (shadow created for its nullability, generated) class UnsupportedOperationException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - UnsupportedOperationException$(@Nullable java.lang.String p0) { } - UnsupportedOperationException$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } - UnsupportedOperationException$(@NotModified @Nullable java.lang.Throwable p0) { } + UnsupportedOperationException$(@Nullable String p0) { } + UnsupportedOperationException$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } + UnsupportedOperationException$(@NotModified @Nullable Throwable p0) { } } //public java.lang.VerifyError (shadow created for its nullability, generated) class VerifyError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - VerifyError$(@Nullable java.lang.String p0) { } + VerifyError$(@Nullable String p0) { } } //public java.lang.VirtualMachineError (shadow created for its nullability, generated) class VirtualMachineError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - VirtualMachineError$(@Nullable java.lang.String p0) { } - VirtualMachineError$(@Nullable java.lang.String p0, @NotModified @Nullable java.lang.Throwable p1) { } - VirtualMachineError$(@NotModified @Nullable java.lang.Throwable p0) { } + VirtualMachineError$(@Nullable String p0) { } + VirtualMachineError$(@Nullable String p0, @NotModified @Nullable Throwable p1) { } + VirtualMachineError$(@NotModified @Nullable Throwable p0) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangAnnotation.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangAnnotation.java index c8436c6fa1..9544eb746f 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangAnnotation.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangAnnotation.java @@ -16,15 +16,15 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.ImmutableContainer; -import io.codelaser.maddi.annotation.NotModified; - import java.lang.annotation.Annotation; import java.lang.annotation.ElementType; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; -import io.codelaser.maddi.annotation.Nullable; + +import io.codelaser.maddi.annotation.ImmutableContainer; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaLangAnnotation { public static final String PACKAGE_NAME = "java.lang.annotation"; @@ -52,7 +52,7 @@ class AnnotationTypeMismatchException$ { @Nullable @NotModified String foundType() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - AnnotationTypeMismatchException$(@Nullable java.lang.reflect.Method p0, @Nullable java.lang.String p1) { } + AnnotationTypeMismatchException$(@Nullable Method p0, @Nullable String p1) { } } //public enum ElementType extends Enum @@ -69,7 +69,7 @@ class IncompleteAnnotationException$ { @NotModified String elementName() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - IncompleteAnnotationException$(@NotNull java.lang.Class p0, @NotNull java.lang.String p1) { } + IncompleteAnnotationException$(@NotNull Class p0, @NotNull String p1) { } } //public enum RetentionPolicy extends Enum @@ -82,8 +82,8 @@ class RetentionPolicy$ { //public java.lang.annotation.AnnotationFormatError (shadow created for its nullability, generated) class AnnotationFormatError$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - AnnotationFormatError$(@Nullable java.lang.String p0) { } - AnnotationFormatError$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1) { } - AnnotationFormatError$(@Nullable java.lang.Throwable p0) { } + AnnotationFormatError$(@Nullable String p0) { } + AnnotationFormatError$(@Nullable String p0, @Nullable Throwable p1) { } + AnnotationFormatError$(@Nullable Throwable p0) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangConstant.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangConstant.java index b51d2762c7..5c4ab395b4 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangConstant.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangConstant.java @@ -16,14 +16,15 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.ImmutableContainer; -import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.NotNull; - +import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDesc; import java.lang.invoke.MethodHandles; import java.util.Optional; + +import io.codelaser.maddi.annotation.ImmutableContainer; +import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.NotModified; +import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.annotation.Nullable; public class JavaLangConstant { @@ -49,7 +50,7 @@ class Constable$ { //public java.lang.constant.ClassDesc (shadow created for its nullability, generated) class ClassDesc$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.lang.constant.ClassDesc componentType() { return null; } + @Nullable ClassDesc componentType() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified boolean isArray() { return false; } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangRef.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangRef.java index 628a5f3548..9d94dc7748 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangRef.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangRef.java @@ -18,10 +18,15 @@ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.NotModified; +import java.lang.ref.Cleaner; +import java.lang.ref.Reference; +import java.lang.ref.ReferenceQueue; +import java.util.concurrent.ThreadFactory; + import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.Nullable; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaLangRef { public static final String PACKAGE_NAME = "java.lang.ref"; @@ -30,7 +35,7 @@ class Reference$ { @NotModified @Nullable T get() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static void reachabilityFence(@Nullable java.lang.Object p0) { } + static void reachabilityFence(@Nullable Object p0) { } boolean refersTo(@Nullable T p0) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -44,32 +49,32 @@ static void reachabilityFence(@Nullable java.lang.Object p0) { } //public java.lang.ref.Cleaner (shadow created for its nullability, generated) class Cleaner$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.lang.ref.Cleaner create(@NotNull java.util.concurrent.ThreadFactory p0) { return null; } - @Modified java.lang.ref.Cleaner.Cleanable register(@NotNull java.lang.Object p0, @NotNull java.lang.Runnable p1) { return null; } + static Cleaner create(@NotNull ThreadFactory p0) { return null; } + @Modified Cleaner.Cleanable register(@NotNull Object p0, @NotNull Runnable p1) { return null; } } //public java.lang.ref.PhantomReference (shadow created for its nullability, generated) class PhantomReference$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PhantomReference$(@Nullable T p0, @Nullable java.lang.ref.ReferenceQueue p1) { } + PhantomReference$(@Nullable T p0, @Nullable ReferenceQueue p1) { } @NotModified @Nullable T get() { return null; } } //public java.lang.ref.ReferenceQueue (shadow created for its nullability, generated) class ReferenceQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified @Nullable java.lang.ref.Reference poll() { return null; } - @Modified @Nullable java.lang.ref.Reference remove(long p0) { return null; } + @Modified @Nullable Reference poll() { return null; } + @Modified @Nullable Reference remove(long p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) - @Modified java.lang.ref.Reference remove() { return null; } + @Modified Reference remove() { return null; } } //public java.lang.ref.SoftReference (shadow created for its nullability, generated) class SoftReference$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) SoftReference$(@Nullable T p0) { } - SoftReference$(@Nullable T p0, @Nullable java.lang.ref.ReferenceQueue p1) { } + SoftReference$(@Nullable T p0, @Nullable ReferenceQueue p1) { } @NotModified @Nullable T get() { return null; } } @@ -77,6 +82,6 @@ class SoftReference$ { class WeakReference$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) WeakReference$(@Nullable T p0) { } - WeakReference$(@Nullable T p0, @Nullable java.lang.ref.ReferenceQueue p1) { } + WeakReference$(@Nullable T p0, @Nullable ReferenceQueue p1) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangReflect.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangReflect.java index 8f4d654a75..6cf1cac515 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangReflect.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaLangReflect.java @@ -17,14 +17,22 @@ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.Nullable; +import java.lang.annotation.Annotation; +import java.lang.reflect.AccessibleObject; +import java.lang.reflect.AnnotatedType; +import java.lang.reflect.Executable; +import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; +import java.lang.reflect.Parameter; +import java.lang.reflect.Type; + import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.type.UtilityClass; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; +import io.codelaser.maddi.annotation.type.UtilityClass; public class JavaLangReflect { public static final String PACKAGE_NAME = "java.lang.reflect"; @@ -38,18 +46,18 @@ interface GenericDeclaration$ { interface AnnotatedElement$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable default T getAnnotation(@NotNull java.lang.Class p0) { return null; } - default T[] getAnnotationsByType(@NotNull java.lang.Class p0) { return null; } - @Nullable default T getDeclaredAnnotation(@NotNull java.lang.Class p0) { return null; } - default T[] getDeclaredAnnotationsByType(@NotNull java.lang.Class p0) { return null; } - default boolean isAnnotationPresent(@NotNull java.lang.Class p0) { return false; } + @Nullable default T getAnnotation(@NotNull Class p0) { return null; } + default T[] getAnnotationsByType(@NotNull Class p0) { return null; } + @Nullable default T getDeclaredAnnotation(@NotNull Class p0) { return null; } + default T[] getDeclaredAnnotationsByType(@NotNull Class p0) { return null; } + default boolean isAnnotationPresent(@NotNull Class p0) { return false; } } @ImmutableContainer interface AnnotatedType$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable default java.lang.reflect.AnnotatedType getAnnotatedOwnerType() { return null; } + @Nullable default AnnotatedType getAnnotatedOwnerType() { return null; } } @ImmutableContainer @@ -62,13 +70,13 @@ interface AccessibleObject$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified default boolean canAccess(@Nullable java.lang.Object p0) { return false; } - @Nullable default T getAnnotation(@NotNull java.lang.Class p0) { return null; } - default T[] getAnnotationsByType(@NotNull java.lang.Class p0) { return null; } - @Nullable default T getDeclaredAnnotation(@NotNull java.lang.Class p0) { return null; } - default T[] getDeclaredAnnotationsByType(@NotNull java.lang.Class p0) { return null; } - default boolean isAnnotationPresent(@NotNull java.lang.Class p0) { return false; } - static void setAccessible(@NotNull java.lang.reflect.AccessibleObject[] p0, boolean p1) { } + @NotModified default boolean canAccess(@Nullable Object p0) { return false; } + @Nullable default T getAnnotation(@NotNull Class p0) { return null; } + default T[] getAnnotationsByType(@NotNull Class p0) { return null; } + @Nullable default T getDeclaredAnnotation(@NotNull Class p0) { return null; } + default T[] getDeclaredAnnotationsByType(@NotNull Class p0) { return null; } + default boolean isAnnotationPresent(@NotNull Class p0) { return false; } + static void setAccessible(@NotNull AccessibleObject[] p0, boolean p1) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified default void setAccessible(boolean p0) { } @@ -178,34 +186,34 @@ class InvocationHandler$ { @Nullable Object invoke(@NotNull Object proxy, @NotNull Method method, @Nullable(nullableArguments = 0) Object[] args) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable static java.lang.Object invokeDefault(@NotNull java.lang.Object p0, @NotNull java.lang.reflect.Method p1, @Nullable(nullableArguments = 0) java.lang.Object... p2) { return null; } + @Nullable static Object invokeDefault(@NotNull Object p0, @NotNull Method p1, @Nullable(nullableArguments = 0) Object... p2) { return null; } } //public java.lang.reflect.ClassFileFormatVersion (shadow created for its nullability, generated) class ClassFileFormatVersion$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.lang.Runtime.Version runtimeVersion() { return null; } + @Nullable Runtime.Version runtimeVersion() { return null; } } //public java.lang.reflect.Constructor (shadow created for its nullability, generated) class Constructor$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.lang.reflect.AnnotatedType getAnnotatedReceiverType() { return null; } - @Nullable T getAnnotation(@NotNull java.lang.Class p0) { return null; } - T newInstance(@Nullable(nullableArguments = 0) java.lang.Object... p0) { return null; } + @NotModified @Nullable AnnotatedType getAnnotatedReceiverType() { return null; } + @Nullable T getAnnotation(@NotNull Class p0) { return null; } + T newInstance(@Nullable(nullableArguments = 0) Object... p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setAccessible(boolean p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.lang.reflect.AnnotatedType getAnnotatedReturnType() { return null; } + @NotModified AnnotatedType getAnnotatedReturnType() { return null; } @NotModified Class getDeclaringClass() { return null; } @NotModified Class[] getExceptionTypes() { return null; } - @NotModified java.lang.reflect.Type[] getGenericExceptionTypes() { return null; } - @NotModified java.lang.reflect.Type[] getGenericParameterTypes() { return null; } + @NotModified Type[] getGenericExceptionTypes() { return null; } + @NotModified Type[] getGenericParameterTypes() { return null; } @NotModified int getModifiers() { return 0; } @NotModified String getName() { return null; } - @NotModified java.lang.annotation.Annotation[][] getParameterAnnotations() { return null; } + @NotModified Annotation[][] getParameterAnnotations() { return null; } @NotModified int getParameterCount() { return 0; } @NotModified Class[] getParameterTypes() { return null; } @NotModified boolean isSynthetic() { return false; } @@ -216,24 +224,24 @@ class Constructor$ { //public java.lang.reflect.Executable (shadow created for its nullability, generated) class Executable$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.lang.reflect.AnnotatedType getAnnotatedReceiverType() { return null; } - @Nullable T getAnnotation(@NotNull java.lang.Class p0) { return null; } - T[] getAnnotationsByType(@NotNull java.lang.Class p0) { return null; } + @NotModified @Nullable AnnotatedType getAnnotatedReceiverType() { return null; } + @Nullable T getAnnotation(@NotNull Class p0) { return null; } + T[] getAnnotationsByType(@NotNull Class p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.lang.reflect.AnnotatedType[] getAnnotatedExceptionTypes() { return null; } - @NotModified java.lang.reflect.AnnotatedType[] getAnnotatedParameterTypes() { return null; } - @NotModified java.lang.reflect.AnnotatedType getAnnotatedReturnType() { return null; } + @NotModified AnnotatedType[] getAnnotatedExceptionTypes() { return null; } + @NotModified AnnotatedType[] getAnnotatedParameterTypes() { return null; } + @NotModified AnnotatedType getAnnotatedReturnType() { return null; } @NotModified Class getDeclaringClass() { return null; } @NotModified Class[] getExceptionTypes() { return null; } - @NotModified java.lang.reflect.Type[] getGenericExceptionTypes() { return null; } - @NotModified java.lang.reflect.Type[] getGenericParameterTypes() { return null; } + @NotModified Type[] getGenericExceptionTypes() { return null; } + @NotModified Type[] getGenericParameterTypes() { return null; } @NotModified int getModifiers() { return 0; } @NotModified String getName() { return null; } - @NotModified java.lang.annotation.Annotation[][] getParameterAnnotations() { return null; } + @NotModified Annotation[][] getParameterAnnotations() { return null; } @NotModified int getParameterCount() { return 0; } @NotModified Class[] getParameterTypes() { return null; } - @NotModified java.lang.reflect.Parameter[] getParameters() { return null; } + @NotModified Parameter[] getParameters() { return null; } @NotModified boolean isSynthetic() { return false; } @NotModified boolean isVarArgs() { return false; } @NotModified String toGenericString() { return null; } @@ -242,34 +250,34 @@ class Executable$ { //public java.lang.reflect.Field (shadow created for its nullability, generated) class Field$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.lang.Object get(@Nullable java.lang.Object p0) { return null; } - @Nullable T getAnnotation(@NotNull java.lang.Class p0) { return null; } - T[] getAnnotationsByType(@NotNull java.lang.Class p0) { return null; } - @NotModified boolean getBoolean(@Nullable java.lang.Object p0) { return false; } - @NotModified byte getByte(@Nullable java.lang.Object p0) { return 0; } - @NotModified char getChar(@Nullable java.lang.Object p0) { return 0; } - @NotModified double getDouble(@Nullable java.lang.Object p0) { return 0; } - @NotModified float getFloat(@Nullable java.lang.Object p0) { return 0; } - @NotModified int getInt(@Nullable java.lang.Object p0) { return 0; } - @NotModified long getLong(@Nullable java.lang.Object p0) { return 0; } - @NotModified short getShort(@Nullable java.lang.Object p0) { return 0; } - @Modified void set(@Nullable java.lang.Object p0, @Nullable java.lang.Object p1) { } - @Modified void setBoolean(@Nullable java.lang.Object p0, boolean p1) { } - @Modified void setByte(@Nullable java.lang.Object p0, byte p1) { } - @Modified void setChar(@Nullable java.lang.Object p0, char p1) { } - @Modified void setDouble(@Nullable java.lang.Object p0, double p1) { } - @Modified void setFloat(@Nullable java.lang.Object p0, float p1) { } - @Modified void setInt(@Nullable java.lang.Object p0, int p1) { } - @Modified void setLong(@Nullable java.lang.Object p0, long p1) { } - @Modified void setShort(@Nullable java.lang.Object p0, short p1) { } + @NotModified @Nullable Object get(@Nullable Object p0) { return null; } + @Nullable T getAnnotation(@NotNull Class p0) { return null; } + T[] getAnnotationsByType(@NotNull Class p0) { return null; } + @NotModified boolean getBoolean(@Nullable Object p0) { return false; } + @NotModified byte getByte(@Nullable Object p0) { return 0; } + @NotModified char getChar(@Nullable Object p0) { return 0; } + @NotModified double getDouble(@Nullable Object p0) { return 0; } + @NotModified float getFloat(@Nullable Object p0) { return 0; } + @NotModified int getInt(@Nullable Object p0) { return 0; } + @NotModified long getLong(@Nullable Object p0) { return 0; } + @NotModified short getShort(@Nullable Object p0) { return 0; } + @Modified void set(@Nullable Object p0, @Nullable Object p1) { } + @Modified void setBoolean(@Nullable Object p0, boolean p1) { } + @Modified void setByte(@Nullable Object p0, byte p1) { } + @Modified void setChar(@Nullable Object p0, char p1) { } + @Modified void setDouble(@Nullable Object p0, double p1) { } + @Modified void setFloat(@Nullable Object p0, float p1) { } + @Modified void setInt(@Nullable Object p0, int p1) { } + @Modified void setLong(@Nullable Object p0, long p1) { } + @Modified void setShort(@Nullable Object p0, short p1) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setAccessible(boolean p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.lang.reflect.AnnotatedType getAnnotatedType() { return null; } + @NotModified AnnotatedType getAnnotatedType() { return null; } @NotModified Class getDeclaringClass() { return null; } - @NotModified java.lang.reflect.Type getGenericType() { return null; } + @NotModified Type getGenericType() { return null; } @NotModified int getModifiers() { return 0; } @NotModified String getName() { return null; } @NotModified Class getType() { return null; } @@ -281,32 +289,32 @@ class Field$ { //public java.lang.reflect.InvocationTargetException (shadow created for its nullability, generated) class InvocationTargetException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InvocationTargetException$(@Nullable java.lang.Throwable p0) { } - InvocationTargetException$(@Nullable java.lang.Throwable p0, @Nullable java.lang.String p1) { } - @Nullable java.lang.Throwable getCause() { return null; } - @NotModified @Nullable java.lang.Throwable getTargetException() { return null; } + InvocationTargetException$(@Nullable Throwable p0) { } + InvocationTargetException$(@Nullable Throwable p0, @Nullable String p1) { } + @Nullable Throwable getCause() { return null; } + @NotModified @Nullable Throwable getTargetException() { return null; } } //public java.lang.reflect.Method (shadow created for its nullability, generated) class Method$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable T getAnnotation(@NotNull java.lang.Class p0) { return null; } - @NotModified @Nullable java.lang.Object getDefaultValue() { return null; } - @Nullable java.lang.Object invoke(@Nullable java.lang.Object p0, @Nullable(nullableArguments = 0) java.lang.Object... p1) { return null; } + @Nullable T getAnnotation(@NotNull Class p0) { return null; } + @NotModified @Nullable Object getDefaultValue() { return null; } + @Nullable Object invoke(@Nullable Object p0, @Nullable(nullableArguments = 0) Object... p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setAccessible(boolean p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.lang.reflect.AnnotatedType getAnnotatedReturnType() { return null; } + @NotModified AnnotatedType getAnnotatedReturnType() { return null; } @NotModified Class getDeclaringClass() { return null; } @NotModified Class[] getExceptionTypes() { return null; } - @NotModified java.lang.reflect.Type[] getGenericExceptionTypes() { return null; } - @NotModified java.lang.reflect.Type[] getGenericParameterTypes() { return null; } - @NotModified java.lang.reflect.Type getGenericReturnType() { return null; } + @NotModified Type[] getGenericExceptionTypes() { return null; } + @NotModified Type[] getGenericParameterTypes() { return null; } + @NotModified Type getGenericReturnType() { return null; } @NotModified int getModifiers() { return 0; } @NotModified String getName() { return null; } - @NotModified java.lang.annotation.Annotation[][] getParameterAnnotations() { return null; } + @NotModified Annotation[][] getParameterAnnotations() { return null; } @NotModified int getParameterCount() { return 0; } @NotModified Class[] getParameterTypes() { return null; } @NotModified Class getReturnType() { return null; } @@ -320,17 +328,17 @@ class Method$ { //public java.lang.reflect.Parameter (shadow created for its nullability, generated) class Parameter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable T getAnnotation(@NotNull java.lang.Class p0) { return null; } - T[] getAnnotationsByType(@NotNull java.lang.Class p0) { return null; } - @Nullable T getDeclaredAnnotation(@NotNull java.lang.Class p0) { return null; } - T[] getDeclaredAnnotationsByType(@NotNull java.lang.Class p0) { return null; } + @Nullable T getAnnotation(@NotNull Class p0) { return null; } + T[] getAnnotationsByType(@NotNull Class p0) { return null; } + @Nullable T getDeclaredAnnotation(@NotNull Class p0) { return null; } + T[] getDeclaredAnnotationsByType(@NotNull Class p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.lang.reflect.AnnotatedType getAnnotatedType() { return null; } - @NotModified java.lang.reflect.Executable getDeclaringExecutable() { return null; } + @NotModified AnnotatedType getAnnotatedType() { return null; } + @NotModified Executable getDeclaringExecutable() { return null; } @NotModified int getModifiers() { return 0; } @NotModified String getName() { return null; } - @NotModified java.lang.reflect.Type getParameterizedType() { return null; } + @NotModified Type getParameterizedType() { return null; } @NotModified Class getType() { return null; } @NotModified boolean isImplicit() { return false; } @NotModified boolean isNamePresent() { return false; } @@ -341,34 +349,34 @@ class Parameter$ { //public java.lang.reflect.ParameterizedType (shadow created for its nullability, generated) class ParameterizedType$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.lang.reflect.Type getOwnerType() { return null; } + @NotModified @Nullable Type getOwnerType() { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.lang.reflect.Type[] getActualTypeArguments() { return null; } - @NotModified java.lang.reflect.Type getRawType() { return null; } + @NotModified Type[] getActualTypeArguments() { return null; } + @NotModified Type getRawType() { return null; } } //public java.lang.reflect.Proxy (shadow created for its nullability, generated) class Proxy$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Proxy$(@NotNull java.lang.reflect.InvocationHandler p0) { } - static java.lang.reflect.InvocationHandler getInvocationHandler(@NotNull java.lang.Object p0) { return null; } - static java.lang.Class getProxyClass(@Nullable java.lang.ClassLoader p0, @NotNull java.lang.Class... p1) { return null; } - static boolean isProxyClass(@NotNull java.lang.Class p0) { return false; } - static java.lang.Object newProxyInstance(@Nullable java.lang.ClassLoader p0, @NotNull java.lang.Class[] p1, @NotNull java.lang.reflect.InvocationHandler p2) { return null; } + Proxy$(@NotNull InvocationHandler p0) { } + static InvocationHandler getInvocationHandler(@NotNull Object p0) { return null; } + static Class getProxyClass(@Nullable ClassLoader p0, @NotNull Class... p1) { return null; } + static boolean isProxyClass(@NotNull Class p0) { return false; } + static Object newProxyInstance(@Nullable ClassLoader p0, @NotNull Class[] p1, @NotNull InvocationHandler p2) { return null; } } //public java.lang.reflect.RecordComponent (shadow created for its nullability, generated) class RecordComponent$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable T getAnnotation(@NotNull java.lang.Class p0) { return null; } - @NotModified @Nullable java.lang.String getGenericSignature() { return null; } + @Nullable T getAnnotation(@NotNull Class p0) { return null; } + @NotModified @Nullable String getGenericSignature() { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.lang.reflect.Method getAccessor() { return null; } - @NotModified java.lang.reflect.AnnotatedType getAnnotatedType() { return null; } + @NotModified Method getAccessor() { return null; } + @NotModified AnnotatedType getAnnotatedType() { return null; } @NotModified Class getDeclaringRecord() { return null; } - @NotModified java.lang.reflect.Type getGenericType() { return null; } + @NotModified Type getGenericType() { return null; } @NotModified String getName() { return null; } @NotModified Class getType() { return null; } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaMath.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaMath.java index fb86194378..35ae1de2aa 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaMath.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaMath.java @@ -129,7 +129,7 @@ class BigDecimal$ { static BigDecimal valueOf(long unscaledVal, int i) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.math.BigDecimal rootn(int p0, @NotNull java.math.MathContext p1) { return null; } + BigDecimal rootn(int p0, @NotNull MathContext p1) { return null; } } //public class BigInteger extends Number implements Comparable diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNet.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNet.java index 48915bfc20..ddcc6c1b08 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNet.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNet.java @@ -17,14 +17,28 @@ package io.codelaser.maddi.aapi.archive.jdk; import java.io.InputStream; +import java.io.OutputStream; import java.net.*; +import java.nio.channels.DatagramChannel; +import java.nio.channels.ServerSocketChannel; +import java.nio.channels.SocketChannel; import java.nio.charset.Charset; +import java.security.CodeSource; +import java.security.Permission; +import java.security.PermissionCollection; +import java.security.cert.Certificate; +import java.util.Enumeration; +import java.util.List; +import java.util.Map; +import java.util.jar.Attributes; +import java.util.jar.JarEntry; +import java.util.jar.Manifest; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.ImmutableContainer; -import io.codelaser.maddi.annotation.Nullable; +import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaNet { public static final String PACKAGE_NAME = "java.net"; @@ -190,97 +204,97 @@ class URLEncoder$ { //public java.net.Authenticator (shadow created for its nullability, generated) class Authenticator$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.net.PasswordAuthentication getPasswordAuthentication() { return null; } - @Nullable static java.net.PasswordAuthentication requestPasswordAuthentication(java.net.Authenticator p0, java.lang.String p1, java.net.InetAddress p2, int p3, java.lang.String p4, java.lang.String p5, java.lang.String p6, java.net.URL p7, java.net.Authenticator.RequestorType p8) { return null; } - @Nullable static java.net.PasswordAuthentication requestPasswordAuthentication(java.net.InetAddress p0, int p1, java.lang.String p2, java.lang.String p3, java.lang.String p4) { return null; } - @Nullable static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String p0, java.net.InetAddress p1, int p2, java.lang.String p3, java.lang.String p4, java.lang.String p5) { return null; } - @Nullable static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String p0, java.net.InetAddress p1, int p2, java.lang.String p3, java.lang.String p4, java.lang.String p5, java.net.URL p6, java.net.Authenticator.RequestorType p7) { return null; } + @Nullable PasswordAuthentication getPasswordAuthentication() { return null; } + @Nullable static PasswordAuthentication requestPasswordAuthentication(Authenticator p0, String p1, InetAddress p2, int p3, String p4, String p5, String p6, URL p7, Authenticator.RequestorType p8) { return null; } + @Nullable static PasswordAuthentication requestPasswordAuthentication(InetAddress p0, int p1, String p2, String p3, String p4) { return null; } + @Nullable static PasswordAuthentication requestPasswordAuthentication(String p0, InetAddress p1, int p2, String p3, String p4, String p5) { return null; } + @Nullable static PasswordAuthentication requestPasswordAuthentication(String p0, InetAddress p1, int p2, String p3, String p4, String p5, URL p6, Authenticator.RequestorType p7) { return null; } } //public java.net.BindException (shadow created for its nullability, generated) class BindException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - BindException$(@Nullable java.lang.String p0) { } + BindException$(@Nullable String p0) { } } //public java.net.ConnectException (shadow created for its nullability, generated) class ConnectException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ConnectException$(@Nullable java.lang.String p0) { } + ConnectException$(@Nullable String p0) { } } //public java.net.ContentHandler (shadow created for its nullability, generated) class ContentHandler$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.lang.Object getContent(java.net.URLConnection p0, java.lang.Class[] p1) { return null; } + @NotModified @Nullable Object getContent(URLConnection p0, Class[] p1) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified Object getContent(java.net.URLConnection p0) { return null; } + @NotModified Object getContent(URLConnection p0) { return null; } } //public java.net.CookieHandler (shadow created for its nullability, generated) class CookieHandler$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified java.util.Map> get(@NotNull java.net.URI p0, @NotNull java.util.Map> p1) { return null; } - @Nullable static java.net.CookieHandler getDefault() { return null; } - @Modified void put(@NotNull java.net.URI p0, @NotNull java.util.Map> p1) { } - static void setDefault(@Nullable java.net.CookieHandler p0) { } + @NotModified Map> get(@NotNull URI p0, @NotNull Map> p1) { return null; } + @Nullable static CookieHandler getDefault() { return null; } + @Modified void put(@NotNull URI p0, @NotNull Map> p1) { } + static void setDefault(@Nullable CookieHandler p0) { } } //public java.net.CookieManager (shadow created for its nullability, generated) class CookieManager$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - CookieManager$(@Nullable java.net.CookieStore p0, @Nullable java.net.CookiePolicy p1) { } - @NotModified java.util.Map> get(@NotNull java.net.URI p0, @NotNull java.util.Map> p1) { return null; } - @Modified void put(@NotNull java.net.URI p0, @NotNull java.util.Map> p1) { } - @Modified void setCookiePolicy(@Nullable java.net.CookiePolicy p0) { } + CookieManager$(@Nullable CookieStore p0, @Nullable CookiePolicy p1) { } + @NotModified Map> get(@NotNull URI p0, @NotNull Map> p1) { return null; } + @Modified void put(@NotNull URI p0, @NotNull Map> p1) { } + @Modified void setCookiePolicy(@Nullable CookiePolicy p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.net.CookieStore getCookieStore() { return null; } + @NotModified CookieStore getCookieStore() { return null; } } //public java.net.CookiePolicy (shadow created for its nullability, generated) class CookiePolicy$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean shouldAccept(@NotNull java.net.URI p0, @NotNull java.net.HttpCookie p1) { return false; } + boolean shouldAccept(@NotNull URI p0, @NotNull HttpCookie p1) { return false; } } //public java.net.CookieStore (shadow created for its nullability, generated) class CookieStore$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void add(@Nullable java.net.URI p0, @NotNull java.net.HttpCookie p1) { } - @NotModified java.util.List get(@NotNull java.net.URI p0) { return null; } - @Modified boolean remove(@Nullable java.net.URI p0, @NotNull java.net.HttpCookie p1) { return false; } + @Modified void add(@Nullable URI p0, @NotNull HttpCookie p1) { } + @NotModified List get(@NotNull URI p0) { return null; } + @Modified boolean remove(@Nullable URI p0, @NotNull HttpCookie p1) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean removeAll() { return false; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.util.List getCookies() { return null; } - @NotModified java.util.List getURIs() { return null; } + @NotModified List getCookies() { return null; } + @NotModified List getURIs() { return null; } } //public java.net.DatagramSocket (shadow created for its nullability, generated) class DatagramSocket$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - DatagramSocket$(@NotNull java.net.DatagramSocketImpl p0) { } - DatagramSocket$(@Nullable java.net.SocketAddress p0) { } - DatagramSocket$(int p0, @Nullable java.net.InetAddress p1) { } - void bind(@Nullable java.net.SocketAddress p0) { } - void connect(@NotNull java.net.InetAddress p0, int p1) { } - void connect(@NotNull java.net.SocketAddress p0) { } - @NotModified @Nullable java.nio.channels.DatagramChannel getChannel() { return null; } - @NotModified @Nullable java.net.InetAddress getInetAddress() { return null; } - @NotModified @Nullable java.net.InetAddress getLocalAddress() { return null; } - @NotModified @Nullable java.net.SocketAddress getLocalSocketAddress() { return null; } - @NotModified T getOption(@NotNull java.net.SocketOption p0) { return null; } - @NotModified @Nullable java.net.SocketAddress getRemoteSocketAddress() { return null; } - void joinGroup(@NotNull java.net.SocketAddress p0, @Nullable java.net.NetworkInterface p1) { } - void leaveGroup(@NotNull java.net.SocketAddress p0, @Nullable java.net.NetworkInterface p1) { } - void receive(@NotNull java.net.DatagramPacket p0) { } - void send(@NotNull java.net.DatagramPacket p0) { } - static void setDatagramSocketImplFactory(@NotNull java.net.DatagramSocketImplFactory p0) { } - @Modified java.net.DatagramSocket setOption(@NotNull java.net.SocketOption p0, T p1) { return null; } + DatagramSocket$(@NotNull DatagramSocketImpl p0) { } + DatagramSocket$(@Nullable SocketAddress p0) { } + DatagramSocket$(int p0, @Nullable InetAddress p1) { } + void bind(@Nullable SocketAddress p0) { } + void connect(@NotNull InetAddress p0, int p1) { } + void connect(@NotNull SocketAddress p0) { } + @NotModified @Nullable DatagramChannel getChannel() { return null; } + @NotModified @Nullable InetAddress getInetAddress() { return null; } + @NotModified @Nullable InetAddress getLocalAddress() { return null; } + @NotModified @Nullable SocketAddress getLocalSocketAddress() { return null; } + @NotModified T getOption(@NotNull SocketOption p0) { return null; } + @NotModified @Nullable SocketAddress getRemoteSocketAddress() { return null; } + void joinGroup(@NotNull SocketAddress p0, @Nullable NetworkInterface p1) { } + void leaveGroup(@NotNull SocketAddress p0, @Nullable NetworkInterface p1) { } + void receive(@NotNull DatagramPacket p0) { } + void send(@NotNull DatagramPacket p0) { } + static void setDatagramSocketImplFactory(@NotNull DatagramSocketImplFactory p0) { } + @Modified DatagramSocket setOption(@NotNull SocketOption p0, T p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setBroadcast(boolean p0) { } @@ -307,18 +321,18 @@ static void setDatagramSocketImplFactory(@NotNull java.net.DatagramSocketImplFac //public java.net.HttpCookie (shadow created for its nullability, generated) class HttpCookie$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static boolean domainMatches(@Nullable java.lang.String p0, @Nullable java.lang.String p1) { return false; } - @NotModified @Nullable java.lang.String getComment() { return null; } - @NotModified @Nullable java.lang.String getCommentURL() { return null; } - @NotModified @Nullable java.lang.String getDomain() { return null; } - @NotModified @Nullable java.lang.String getPath() { return null; } - @NotModified @Nullable java.lang.String getPortlist() { return null; } - static java.util.List parse(@NotNull java.lang.String p0) { return null; } - @Modified void setComment(@Nullable java.lang.String p0) { } - @Modified void setCommentURL(@Nullable java.lang.String p0) { } - @Modified void setDomain(@Nullable java.lang.String p0) { } - @Modified void setPath(@Nullable java.lang.String p0) { } - @Modified void setPortlist(@Nullable java.lang.String p0) { } + static boolean domainMatches(@Nullable String p0, @Nullable String p1) { return false; } + @NotModified @Nullable String getComment() { return null; } + @NotModified @Nullable String getCommentURL() { return null; } + @NotModified @Nullable String getDomain() { return null; } + @NotModified @Nullable String getPath() { return null; } + @NotModified @Nullable String getPortlist() { return null; } + static List parse(@NotNull String p0) { return null; } + @Modified void setComment(@Nullable String p0) { } + @Modified void setCommentURL(@Nullable String p0) { } + @Modified void setDomain(@Nullable String p0) { } + @Modified void setPath(@Nullable String p0) { } + @Modified void setPortlist(@Nullable String p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setDiscard(boolean p0) { } @@ -342,12 +356,12 @@ class HttpCookie$ { //public java.net.HttpURLConnection (shadow created for its nullability, generated) class HttpURLConnection$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.io.InputStream getErrorStream() { return null; } - @Nullable java.lang.String getHeaderField(int p0) { return null; } - @Nullable java.lang.String getHeaderFieldKey(int p0) { return null; } + @Nullable InputStream getErrorStream() { return null; } + @Nullable String getHeaderField(int p0) { return null; } + @Nullable String getHeaderFieldKey(int p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) - @Modified void setAuthenticator(java.net.Authenticator p0) { } + @Modified void setAuthenticator(Authenticator p0) { } @Modified void setChunkedStreamingMode(int p0) { } @Modified void setFixedLengthStreamingMode(int p0) { } @Modified void setFixedLengthStreamingMode(long p0) { } @@ -356,24 +370,24 @@ class HttpURLConnection$ { // a query, declared so (generated from the assumed-defaults list) @NotModified boolean getInstanceFollowRedirects() { return false; } - @NotModified java.security.Permission getPermission() { return null; } + @NotModified Permission getPermission() { return null; } @NotModified String getRequestMethod() { return null; } } //public java.net.Inet4Address (shadow created for its nullability, generated) class Inet4Address$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.net.Inet4Address ofLiteral(@NotNull java.lang.String p0) { return null; } - static java.net.Inet4Address ofPosixLiteral(@NotNull java.lang.String p0) { return null; } + static Inet4Address ofLiteral(@NotNull String p0) { return null; } + static Inet4Address ofPosixLiteral(@NotNull String p0) { return null; } } //public java.net.Inet6Address (shadow created for its nullability, generated) class Inet6Address$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.net.Inet6Address getByAddress(@Nullable java.lang.String p0, @NotNull byte[] p1, @Nullable java.net.NetworkInterface p2) { return null; } - static java.net.Inet6Address getByAddress(@Nullable java.lang.String p0, @NotNull byte[] p1, int p2) { return null; } - @NotModified @Nullable java.net.NetworkInterface getScopedInterface() { return null; } - static java.net.InetAddress ofLiteral(@NotNull java.lang.String p0) { return null; } + static Inet6Address getByAddress(@Nullable String p0, @NotNull byte[] p1, @Nullable NetworkInterface p2) { return null; } + static Inet6Address getByAddress(@Nullable String p0, @NotNull byte[] p1, int p2) { return null; } + @NotModified @Nullable NetworkInterface getScopedInterface() { return null; } + static InetAddress ofLiteral(@NotNull String p0) { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified int getScopeId() { return 0; } @@ -383,10 +397,10 @@ class Inet6Address$ { //public java.net.InetSocketAddress (shadow created for its nullability, generated) class InetSocketAddress$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InetSocketAddress$(@Nullable java.net.InetAddress p0, int p1) { } - InetSocketAddress$(@NotNull java.lang.String p0, int p1) { } - static java.net.InetSocketAddress createUnresolved(@NotNull java.lang.String p0, int p1) { return null; } - @NotModified @Nullable java.net.InetAddress getAddress() { return null; } + InetSocketAddress$(@Nullable InetAddress p0, int p1) { } + InetSocketAddress$(@NotNull String p0, int p1) { } + static InetSocketAddress createUnresolved(@NotNull String p0, int p1) { return null; } + @NotModified @Nullable InetAddress getAddress() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getHostName() { return null; } @@ -398,62 +412,62 @@ class InetSocketAddress$ { //public java.net.JarURLConnection (shadow created for its nullability, generated) class JarURLConnection$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.util.jar.Attributes getAttributes() { return null; } - @Nullable java.security.cert.Certificate[] getCertificates() { return null; } - @Nullable java.util.jar.JarEntry getJarEntry() { return null; } - @Nullable java.util.jar.Attributes getMainAttributes() { return null; } - @Nullable java.util.jar.Manifest getManifest() { return null; } + @Nullable Attributes getAttributes() { return null; } + @Nullable Certificate[] getCertificates() { return null; } + @Nullable JarEntry getJarEntry() { return null; } + @Nullable Attributes getMainAttributes() { return null; } + @Nullable Manifest getManifest() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getEntryName() { return null; } - @NotModified java.net.URL getJarFileURL() { return null; } + @NotModified URL getJarFileURL() { return null; } } //public java.net.MalformedURLException (shadow created for its nullability, generated) class MalformedURLException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - MalformedURLException$(@Nullable java.lang.String p0) { } + MalformedURLException$(@Nullable String p0) { } } //public java.net.MulticastSocket (shadow created for its nullability, generated) class MulticastSocket$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - MulticastSocket$(@Nullable java.net.SocketAddress p0) { } - void joinGroup(@NotNull java.net.InetAddress p0) { } - void joinGroup(@NotNull java.net.SocketAddress p0, @Nullable java.net.NetworkInterface p1) { } - void leaveGroup(@NotNull java.net.InetAddress p0) { } - void leaveGroup(@NotNull java.net.SocketAddress p0, @Nullable java.net.NetworkInterface p1) { } + MulticastSocket$(@Nullable SocketAddress p0) { } + void joinGroup(@NotNull InetAddress p0) { } + void joinGroup(@NotNull SocketAddress p0, @Nullable NetworkInterface p1) { } + void leaveGroup(@NotNull InetAddress p0) { } + void leaveGroup(@NotNull SocketAddress p0, @Nullable NetworkInterface p1) { } // a modifying method, declared so (generated from the assumed-defaults list) - @Modified void setInterface(java.net.InetAddress p0) { } + @Modified void setInterface(InetAddress p0) { } @Modified void setLoopbackMode(boolean p0) { } - @Modified void setNetworkInterface(java.net.NetworkInterface p0) { } + @Modified void setNetworkInterface(NetworkInterface p0) { } @Modified void setTimeToLive(int p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.net.InetAddress getInterface() { return null; } + @NotModified InetAddress getInterface() { return null; } @NotModified boolean getLoopbackMode() { return false; } - @NotModified java.net.NetworkInterface getNetworkInterface() { return null; } + @NotModified NetworkInterface getNetworkInterface() { return null; } @NotModified int getTimeToLive() { return 0; } } //public java.net.NetworkInterface (shadow created for its nullability, generated) class NetworkInterface$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable static java.net.NetworkInterface getByIndex(int p0) { return null; } - @Nullable static java.net.NetworkInterface getByInetAddress(@NotNull java.net.InetAddress p0) { return null; } - @Nullable static java.net.NetworkInterface getByName(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.lang.String getDisplayName() { return null; } + @Nullable static NetworkInterface getByIndex(int p0) { return null; } + @Nullable static NetworkInterface getByInetAddress(@NotNull InetAddress p0) { return null; } + @Nullable static NetworkInterface getByName(@NotNull String p0) { return null; } + @NotModified @Nullable String getDisplayName() { return null; } @NotModified @Nullable byte[] getHardwareAddress() { return null; } - @NotModified @Nullable java.net.NetworkInterface getParent() { return null; } + @NotModified @Nullable NetworkInterface getParent() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified int getIndex() { return 0; } - @NotModified java.util.Enumeration getInetAddresses() { return null; } - @NotModified java.util.List getInterfaceAddresses() { return null; } + @NotModified Enumeration getInetAddresses() { return null; } + @NotModified List getInterfaceAddresses() { return null; } @NotModified int getMTU() { return 0; } @NotModified String getName() { return null; } - @NotModified java.util.Enumeration getSubInterfaces() { return null; } + @NotModified Enumeration getSubInterfaces() { return null; } @NotModified boolean isLoopback() { return false; } @NotModified boolean isPointToPoint() { return false; } @NotModified boolean isUp() { return false; } @@ -463,35 +477,35 @@ class NetworkInterface$ { //public java.net.NoRouteToHostException (shadow created for its nullability, generated) class NoRouteToHostException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - NoRouteToHostException$(@Nullable java.lang.String p0) { } + NoRouteToHostException$(@Nullable String p0) { } } //public java.net.PortUnreachableException (shadow created for its nullability, generated) class PortUnreachableException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PortUnreachableException$(@Nullable java.lang.String p0) { } + PortUnreachableException$(@Nullable String p0) { } } //public java.net.ProtocolException (shadow created for its nullability, generated) class ProtocolException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ProtocolException$(@Nullable java.lang.String p0) { } + ProtocolException$(@Nullable String p0) { } } //public java.net.ServerSocket (shadow created for its nullability, generated) class ServerSocket$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ServerSocket$(@NotNull java.net.SocketImpl p0) { } - ServerSocket$(int p0, int p1, @Nullable java.net.InetAddress p2) { } - void bind(@Nullable java.net.SocketAddress p0) { } - void bind(@Nullable java.net.SocketAddress p0, int p1) { } - @NotModified @Nullable java.nio.channels.ServerSocketChannel getChannel() { return null; } - @NotModified @Nullable java.net.InetAddress getInetAddress() { return null; } - @NotModified @Nullable java.net.SocketAddress getLocalSocketAddress() { return null; } - @NotModified T getOption(@NotNull java.net.SocketOption p0) { return null; } - void implAccept(@NotNull java.net.Socket p0) { } - @Modified java.net.ServerSocket setOption(@NotNull java.net.SocketOption p0, T p1) { return null; } - static void setSocketFactory(@NotNull java.net.SocketImplFactory p0) { } + ServerSocket$(@NotNull SocketImpl p0) { } + ServerSocket$(int p0, int p1, @Nullable InetAddress p2) { } + void bind(@Nullable SocketAddress p0) { } + void bind(@Nullable SocketAddress p0, int p1) { } + @NotModified @Nullable ServerSocketChannel getChannel() { return null; } + @NotModified @Nullable InetAddress getInetAddress() { return null; } + @NotModified @Nullable SocketAddress getLocalSocketAddress() { return null; } + @NotModified T getOption(@NotNull SocketOption p0) { return null; } + void implAccept(@NotNull Socket p0) { } + @Modified ServerSocket setOption(@NotNull SocketOption p0, T p1) { return null; } + static void setSocketFactory(@NotNull SocketImplFactory p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setPerformancePreferences(int p0, int p1, int p2) { } @@ -511,24 +525,24 @@ static void setSocketFactory(@NotNull java.net.SocketImplFactory p0) { } //public java.net.Socket (shadow created for its nullability, generated) class Socket$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Socket$(@NotNull java.net.InetAddress p0, int p1) { } - Socket$(@NotNull java.net.InetAddress p0, int p1, @Nullable java.net.InetAddress p2, int p3) { } - Socket$(@NotNull java.net.InetAddress p0, int p1, boolean p2) { } - Socket$(@NotNull java.net.Proxy p0) { } - Socket$(@Nullable java.net.SocketImpl p0) { } - Socket$(@Nullable java.lang.String p0, int p1) { } - Socket$(@Nullable java.lang.String p0, int p1, @Nullable java.net.InetAddress p2, int p3) { } - Socket$(@Nullable java.lang.String p0, int p1, boolean p2) { } - void bind(@Nullable java.net.SocketAddress p0) { } - void connect(@NotNull java.net.SocketAddress p0) { } - void connect(@NotNull java.net.SocketAddress p0, int p1) { } - @NotModified @Nullable java.nio.channels.SocketChannel getChannel() { return null; } - @NotModified @Nullable java.net.InetAddress getInetAddress() { return null; } - @NotModified @Nullable java.net.SocketAddress getLocalSocketAddress() { return null; } - @NotModified T getOption(@NotNull java.net.SocketOption p0) { return null; } - @NotModified @Nullable java.net.SocketAddress getRemoteSocketAddress() { return null; } - @Modified java.net.Socket setOption(@NotNull java.net.SocketOption p0, T p1) { return null; } - static void setSocketImplFactory(@Nullable java.net.SocketImplFactory p0) { } + Socket$(@NotNull InetAddress p0, int p1) { } + Socket$(@NotNull InetAddress p0, int p1, @Nullable InetAddress p2, int p3) { } + Socket$(@NotNull InetAddress p0, int p1, boolean p2) { } + Socket$(@NotNull Proxy p0) { } + Socket$(@Nullable SocketImpl p0) { } + Socket$(@Nullable String p0, int p1) { } + Socket$(@Nullable String p0, int p1, @Nullable InetAddress p2, int p3) { } + Socket$(@Nullable String p0, int p1, boolean p2) { } + void bind(@Nullable SocketAddress p0) { } + void connect(@NotNull SocketAddress p0) { } + void connect(@NotNull SocketAddress p0, int p1) { } + @NotModified @Nullable SocketChannel getChannel() { return null; } + @NotModified @Nullable InetAddress getInetAddress() { return null; } + @NotModified @Nullable SocketAddress getLocalSocketAddress() { return null; } + @NotModified T getOption(@NotNull SocketOption p0) { return null; } + @NotModified @Nullable SocketAddress getRemoteSocketAddress() { return null; } + @Modified Socket setOption(@NotNull SocketOption p0, T p1) { return null; } + static void setSocketImplFactory(@Nullable SocketImplFactory p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setKeepAlive(boolean p0) { } @@ -545,12 +559,12 @@ static void setSocketImplFactory(@Nullable java.net.SocketImplFactory p0) { } @Modified void shutdownOutput() { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.io.InputStream getInputStream() { return null; } + @NotModified InputStream getInputStream() { return null; } @NotModified boolean getKeepAlive() { return false; } - @NotModified java.net.InetAddress getLocalAddress() { return null; } + @NotModified InetAddress getLocalAddress() { return null; } @NotModified int getLocalPort() { return 0; } @NotModified boolean getOOBInline() { return false; } - @NotModified java.io.OutputStream getOutputStream() { return null; } + @NotModified OutputStream getOutputStream() { return null; } @NotModified int getPort() { return 0; } @NotModified int getReceiveBufferSize() { return 0; } @NotModified boolean getReuseAddress() { return false; } @@ -569,22 +583,22 @@ static void setSocketImplFactory(@Nullable java.net.SocketImplFactory p0) { } //public java.net.SocketException (shadow created for its nullability, generated) class SocketException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - SocketException$(@Nullable java.lang.String p0) { } - SocketException$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1) { } - SocketException$(@Nullable java.lang.Throwable p0) { } + SocketException$(@Nullable String p0) { } + SocketException$(@Nullable String p0, @Nullable Throwable p1) { } + SocketException$(@Nullable Throwable p0) { } } //public java.net.SocketTimeoutException (shadow created for its nullability, generated) class SocketTimeoutException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - SocketTimeoutException$(@Nullable java.lang.String p0) { } + SocketTimeoutException$(@Nullable String p0) { } } //public java.net.URISyntaxException (shadow created for its nullability, generated) class URISyntaxException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - URISyntaxException$(@NotNull java.lang.String p0, @NotNull java.lang.String p1) { } - URISyntaxException$(@NotNull java.lang.String p0, @NotNull java.lang.String p1, int p2) { } + URISyntaxException$(@NotNull String p0, @NotNull String p1) { } + URISyntaxException$(@NotNull String p0, @NotNull String p1, int p2) { } // a query, declared so (generated from the assumed-defaults list) @NotModified int getIndex() { return 0; } @@ -595,38 +609,38 @@ class URISyntaxException$ { //public java.net.URLClassLoader (shadow created for its nullability, generated) class URLClassLoader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - URLClassLoader$(@Nullable java.lang.String p0, @NotNull java.net.URL[] p1, @Nullable java.lang.ClassLoader p2) { } - URLClassLoader$(@Nullable java.lang.String p0, @NotNull java.net.URL[] p1, @Nullable java.lang.ClassLoader p2, @Nullable java.net.URLStreamHandlerFactory p3) { } - URLClassLoader$(@NotNull java.net.URL[] p0) { } - URLClassLoader$(@NotNull java.net.URL[] p0, @Nullable java.lang.ClassLoader p1) { } - URLClassLoader$(@NotNull java.net.URL[] p0, @Nullable java.lang.ClassLoader p1, @Nullable java.net.URLStreamHandlerFactory p2) { } - void addURL(@Nullable java.net.URL p0) { } - java.lang.Package definePackage(@NotNull java.lang.String p0, @NotNull java.util.jar.Manifest p1, @Nullable java.net.URL p2) { return null; } - java.lang.Class findClass(@NotNull java.lang.String p0) { return null; } - @Nullable java.net.URL findResource(@NotNull java.lang.String p0) { return null; } - java.util.Enumeration findResources(@NotNull java.lang.String p0) { return null; } - java.security.PermissionCollection getPermissions(@NotNull java.security.CodeSource p0) { return null; } - @Nullable java.io.InputStream getResourceAsStream(@NotNull java.lang.String p0) { return null; } - static java.net.URLClassLoader newInstance(@NotNull java.net.URL[] p0) { return null; } - static java.net.URLClassLoader newInstance(@NotNull java.net.URL[] p0, @Nullable java.lang.ClassLoader p1) { return null; } + URLClassLoader$(@Nullable String p0, @NotNull URL[] p1, @Nullable ClassLoader p2) { } + URLClassLoader$(@Nullable String p0, @NotNull URL[] p1, @Nullable ClassLoader p2, @Nullable URLStreamHandlerFactory p3) { } + URLClassLoader$(@NotNull URL[] p0) { } + URLClassLoader$(@NotNull URL[] p0, @Nullable ClassLoader p1) { } + URLClassLoader$(@NotNull URL[] p0, @Nullable ClassLoader p1, @Nullable URLStreamHandlerFactory p2) { } + void addURL(@Nullable URL p0) { } + Package definePackage(@NotNull String p0, @NotNull Manifest p1, @Nullable URL p2) { return null; } + Class findClass(@NotNull String p0) { return null; } + @Nullable URL findResource(@NotNull String p0) { return null; } + Enumeration findResources(@NotNull String p0) { return null; } + PermissionCollection getPermissions(@NotNull CodeSource p0) { return null; } + @Nullable InputStream getResourceAsStream(@NotNull String p0) { return null; } + static URLClassLoader newInstance(@NotNull URL[] p0) { return null; } + static URLClassLoader newInstance(@NotNull URL[] p0, @Nullable ClassLoader p1) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.net.URL[] getURLs() { return null; } + @NotModified URL[] getURLs() { return null; } } //public java.net.URLConnection (shadow created for its nullability, generated) class URLConnection$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.lang.Object getContent(java.lang.Class[] p0) { return null; } - @Nullable java.lang.String getContentEncoding() { return null; } - @Nullable java.lang.String getContentType() { return null; } - @Nullable static java.lang.String getDefaultRequestProperty(java.lang.String p0) { return null; } - @Nullable java.lang.String getHeaderField(java.lang.String p0) { return null; } - @Nullable java.lang.String getHeaderField(int p0) { return null; } - @Nullable java.lang.String getHeaderFieldKey(int p0) { return null; } - @NotModified @Nullable java.security.Permission getPermission() { return null; } - @NotModified @Nullable java.lang.String getRequestProperty(java.lang.String p0) { return null; } - @Nullable static java.lang.String guessContentTypeFromStream(java.io.InputStream p0) { return null; } + @Nullable Object getContent(Class[] p0) { return null; } + @Nullable String getContentEncoding() { return null; } + @Nullable String getContentType() { return null; } + @Nullable static String getDefaultRequestProperty(String p0) { return null; } + @Nullable String getHeaderField(String p0) { return null; } + @Nullable String getHeaderField(int p0) { return null; } + @Nullable String getHeaderFieldKey(int p0) { return null; } + @NotModified @Nullable Permission getPermission() { return null; } + @NotModified @Nullable String getRequestProperty(String p0) { return null; } + @Nullable static String guessContentTypeFromStream(InputStream p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void addRequestProperty(String p0, String p1) { } @@ -648,26 +662,26 @@ class URLConnection$ { @NotModified boolean getDoOutput() { return false; } @NotModified long getIfModifiedSince() { return 0; } @NotModified int getReadTimeout() { return 0; } - @NotModified java.util.Map> getRequestProperties() { return null; } - @NotModified java.net.URL getURL() { return null; } + @NotModified Map> getRequestProperties() { return null; } + @NotModified URL getURL() { return null; } @NotModified boolean getUseCaches() { return false; } } //public java.net.URLStreamHandlerFactory (shadow created for its nullability, generated) class URLStreamHandlerFactory$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.net.URLStreamHandler createURLStreamHandler(@NotNull java.lang.String p0) { return null; } + @Nullable URLStreamHandler createURLStreamHandler(@NotNull String p0) { return null; } } //public java.net.UnknownHostException (shadow created for its nullability, generated) class UnknownHostException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - UnknownHostException$(@Nullable java.lang.String p0) { } + UnknownHostException$(@Nullable String p0) { } } //public java.net.UnknownServiceException (shadow created for its nullability, generated) class UnknownServiceException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - UnknownServiceException$(@Nullable java.lang.String p0) { } + UnknownServiceException$(@Nullable String p0) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNetHttp.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNetHttp.java index 54a13bdac6..bba70c7eac 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNetHttp.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNetHttp.java @@ -16,9 +16,6 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.*; -import io.codelaser.maddi.annotation.method.GetSet; - import java.io.InputStream; import java.net.URI; import java.net.http.HttpClient; @@ -36,6 +33,9 @@ import java.util.function.BiPredicate; import java.util.function.Supplier; +import io.codelaser.maddi.annotation.*; +import io.codelaser.maddi.annotation.method.GetSet; + public class JavaNetHttp { public static final String PACKAGE_NAME = "java.net.http"; //public abstract class HttpRequest diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNioCharset.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNioCharset.java index c09b351299..09a5c3a286 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNioCharset.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNioCharset.java @@ -26,8 +26,8 @@ import java.util.SortedMap; import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaNioCharset { public static final String PACKAGE_NAME = "java.nio.charset"; @@ -73,6 +73,6 @@ class Charset$ { public String toString() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Charset$(@NotNull java.lang.String p0, @Nullable java.lang.String[] p1) { } + Charset$(@NotNull String p0, @Nullable String[] p1) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNioFile.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNioFile.java index 081966daf2..73c73be395 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNioFile.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaNioFile.java @@ -16,24 +16,24 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.Nullable; -import io.codelaser.maddi.annotation.rare.AllowsInterrupt; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; - import java.io.*; import java.net.URI; import java.nio.channels.SeekableByteChannel; import java.nio.charset.Charset; import java.nio.file.*; +import java.nio.file.FileSystem; import java.nio.file.attribute.*; import java.util.*; import java.util.function.BiPredicate; import java.util.stream.Stream; +import io.codelaser.maddi.annotation.Immutable; +import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; +import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; +import io.codelaser.maddi.annotation.rare.AllowsInterrupt; + public class JavaNioFile { public static final String PACKAGE_NAME = "java.nio.file"; //public final class Files @@ -412,29 +412,29 @@ class Watchable$ { //public java.nio.file.DirectoryIteratorException (shadow created for its nullability, generated) class DirectoryIteratorException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - DirectoryIteratorException$(@NotNull java.io.IOException p0) { } + DirectoryIteratorException$(@NotNull IOException p0) { } } //public java.nio.file.FileSystemException (shadow created for its nullability, generated) class FileSystemException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - FileSystemException$(@Nullable java.lang.String p0) { } - FileSystemException$(@Nullable java.lang.String p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2) { } - @NotModified @Nullable java.lang.String getFile() { return null; } - @Nullable java.lang.String getMessage() { return null; } - @NotModified @Nullable java.lang.String getOtherFile() { return null; } - @NotModified @Nullable java.lang.String getReason() { return null; } + FileSystemException$(@Nullable String p0) { } + FileSystemException$(@Nullable String p0, @Nullable String p1, @Nullable String p2) { } + @NotModified @Nullable String getFile() { return null; } + @Nullable String getMessage() { return null; } + @NotModified @Nullable String getOtherFile() { return null; } + @NotModified @Nullable String getReason() { return null; } } //public java.nio.file.FileSystems (shadow created for its nullability, generated) class FileSystems$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.nio.file.FileSystem getFileSystem(@NotNull java.net.URI p0) { return null; } - static java.nio.file.FileSystem newFileSystem(@NotNull java.nio.file.Path p0) { return null; } - static java.nio.file.FileSystem newFileSystem(@NotNull java.nio.file.Path p0, @Nullable java.lang.ClassLoader p1) { return null; } - static java.nio.file.FileSystem newFileSystem(@NotNull java.nio.file.Path p0, @NotNull java.util.Map p1) { return null; } - static java.nio.file.FileSystem newFileSystem(@NotNull java.nio.file.Path p0, @NotNull java.util.Map p1, @Nullable java.lang.ClassLoader p2) { return null; } - static java.nio.file.FileSystem newFileSystem(@NotNull java.net.URI p0, @NotNull java.util.Map p1) { return null; } - static java.nio.file.FileSystem newFileSystem(@NotNull java.net.URI p0, @NotNull java.util.Map p1, @Nullable java.lang.ClassLoader p2) { return null; } + static FileSystem getFileSystem(@NotNull URI p0) { return null; } + static FileSystem newFileSystem(@NotNull Path p0) { return null; } + static FileSystem newFileSystem(@NotNull Path p0, @Nullable ClassLoader p1) { return null; } + static FileSystem newFileSystem(@NotNull Path p0, @NotNull Map p1) { return null; } + static FileSystem newFileSystem(@NotNull Path p0, @NotNull Map p1, @Nullable ClassLoader p2) { return null; } + static FileSystem newFileSystem(@NotNull URI p0, @NotNull Map p1) { return null; } + static FileSystem newFileSystem(@NotNull URI p0, @NotNull Map p1, @Nullable ClassLoader p2) { return null; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaSecurity.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaSecurity.java index 65ea56c188..befb15ddd4 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaSecurity.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaSecurity.java @@ -16,17 +16,32 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.ImmutableContainer; -import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.NotModified; - +import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URI; +import java.net.URL; import java.nio.ByteBuffer; import java.security.*; +import java.security.cert.Certificate; +import java.security.spec.AlgorithmParameterSpec; +import java.time.Instant; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.BiFunction; + +import javax.crypto.SecretKey; import javax.security.auth.Subject; -import io.codelaser.maddi.annotation.Nullable; +import javax.security.auth.callback.CallbackHandler; + +import io.codelaser.maddi.annotation.Container; +import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaSecurity { public static final String PACKAGE_NAME = "java.security"; @@ -59,7 +74,7 @@ class MessageDigest$ { protected Object clone() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - MessageDigest$(@NotNull java.lang.String p0) { } + MessageDigest$(@NotNull String p0) { } } //public interface Principal @@ -124,43 +139,43 @@ void reseed(SecureRandomParameters params) { } //public java.security.AsymmetricKey (shadow created for its nullability, generated) class AsymmetricKey$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.security.spec.AlgorithmParameterSpec getParams() { return null; } + @NotModified @Nullable AlgorithmParameterSpec getParams() { return null; } } //public java.security.CodeSource (shadow created for its nullability, generated) class CodeSource$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - CodeSource$(@Nullable java.net.URL p0, @Nullable java.security.cert.Certificate[] p1) { } - CodeSource$(@Nullable java.net.URL p0, @Nullable java.security.CodeSigner[] p1) { } - @NotModified @Nullable java.security.cert.Certificate[] getCertificates() { return null; } - @NotModified @Nullable java.security.CodeSigner[] getCodeSigners() { return null; } - @NotModified @Nullable java.net.URL getLocation() { return null; } - boolean implies(@Nullable java.security.CodeSource p0) { return false; } + CodeSource$(@Nullable URL p0, @Nullable Certificate[] p1) { } + CodeSource$(@Nullable URL p0, @Nullable CodeSigner[] p1) { } + @NotModified @Nullable Certificate[] getCertificates() { return null; } + @NotModified @Nullable CodeSigner[] getCodeSigners() { return null; } + @NotModified @Nullable URL getLocation() { return null; } + boolean implies(@Nullable CodeSource p0) { return false; } } //public java.security.DomainLoadStoreParameter (shadow created for its nullability, generated) class DomainLoadStoreParameter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.security.KeyStore.ProtectionParameter getProtectionParameter() { return null; } + @NotModified @Nullable KeyStore.ProtectionParameter getProtectionParameter() { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.net.URI getConfiguration() { return null; } - @NotModified java.util.Map getProtectionParams() { return null; } + @NotModified URI getConfiguration() { return null; } + @NotModified Map getProtectionParams() { return null; } } //public java.security.GeneralSecurityException (shadow created for its nullability, generated) class GeneralSecurityException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - GeneralSecurityException$(@Nullable java.lang.String p0) { } - GeneralSecurityException$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1) { } - GeneralSecurityException$(@Nullable java.lang.Throwable p0) { } + GeneralSecurityException$(@Nullable String p0) { } + GeneralSecurityException$(@Nullable String p0, @Nullable Throwable p1) { } + GeneralSecurityException$(@Nullable Throwable p0) { } } //public java.security.Key (shadow created for its nullability, generated) class Key$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) @NotModified @Nullable byte[] getEncoded() { return null; } - @NotModified @Nullable java.lang.String getFormat() { return null; } + @NotModified @Nullable String getFormat() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getAlgorithm() { return null; } @@ -169,83 +184,83 @@ class Key$ { //public java.security.KeyStore (shadow created for its nullability, generated) class KeyStore$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - KeyStore$(@NotNull java.security.KeyStoreSpi p0, java.security.Provider p1, @NotNull java.lang.String p2) { } - @NotModified boolean containsAlias(@NotNull java.lang.String p0) { return false; } - @Modified void deleteEntry(@NotNull java.lang.String p0) { } - boolean entryInstanceOf(@NotNull java.lang.String p0, @NotNull java.lang.Class p1) { return false; } - @NotModified java.util.Set getAttributes(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.security.cert.Certificate getCertificate(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.lang.String getCertificateAlias(@NotNull java.security.cert.Certificate p0) { return null; } - @NotModified @Nullable java.security.cert.Certificate[] getCertificateChain(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.util.Date getCreationDate(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.time.Instant getCreationInstant(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.security.KeyStore.Entry getEntry(@NotNull java.lang.String p0, @Nullable java.security.KeyStore.ProtectionParameter p1) { return null; } - static java.security.KeyStore getInstance(@NotNull java.io.File p0, @Nullable java.security.KeyStore.LoadStoreParameter p1) { return null; } - static java.security.KeyStore getInstance(@NotNull java.io.File p0, @Nullable char[] p1) { return null; } - static java.security.KeyStore getInstance(@NotNull java.lang.String p0) { return null; } - static java.security.KeyStore getInstance(@NotNull java.lang.String p0, @NotNull java.security.Provider p1) { return null; } - static java.security.KeyStore getInstance(@NotNull java.lang.String p0, @NotNull java.lang.String p1) { return null; } - @NotModified @Nullable java.security.Key getKey(@NotNull java.lang.String p0, @Nullable char[] p1) { return null; } - @NotModified boolean isCertificateEntry(@NotNull java.lang.String p0) { return false; } - @NotModified boolean isKeyEntry(@NotNull java.lang.String p0) { return false; } - @Modified void load(@Nullable java.io.InputStream p0, @Nullable char[] p1) { } - @Modified void load(@Nullable java.security.KeyStore.LoadStoreParameter p0) { } - @Modified void setCertificateEntry(@NotNull java.lang.String p0, @NotNull java.security.cert.Certificate p1) { } - @Modified void setEntry(@NotNull java.lang.String p0, @NotNull java.security.KeyStore.Entry p1, @Nullable java.security.KeyStore.ProtectionParameter p2) { } - @Modified void setKeyEntry(@NotNull java.lang.String p0, @NotNull java.security.Key p1, @Nullable char[] p2, @Nullable java.security.cert.Certificate[] p3) { } - @Modified void setKeyEntry(@NotNull java.lang.String p0, @NotNull byte[] p1, @Nullable java.security.cert.Certificate[] p2) { } - void store(@Nullable java.security.KeyStore.LoadStoreParameter p0) { } - void store(@NotNull java.io.OutputStream p0, @Nullable char[] p1) { } + KeyStore$(@NotNull KeyStoreSpi p0, Provider p1, @NotNull String p2) { } + @NotModified boolean containsAlias(@NotNull String p0) { return false; } + @Modified void deleteEntry(@NotNull String p0) { } + boolean entryInstanceOf(@NotNull String p0, @NotNull Class p1) { return false; } + @NotModified Set getAttributes(@NotNull String p0) { return null; } + @NotModified @Nullable Certificate getCertificate(@NotNull String p0) { return null; } + @NotModified @Nullable String getCertificateAlias(@NotNull Certificate p0) { return null; } + @NotModified @Nullable Certificate[] getCertificateChain(@NotNull String p0) { return null; } + @NotModified @Nullable Date getCreationDate(@NotNull String p0) { return null; } + @NotModified @Nullable Instant getCreationInstant(@NotNull String p0) { return null; } + @NotModified @Nullable KeyStore.Entry getEntry(@NotNull String p0, @Nullable KeyStore.ProtectionParameter p1) { return null; } + static KeyStore getInstance(@NotNull File p0, @Nullable KeyStore.LoadStoreParameter p1) { return null; } + static KeyStore getInstance(@NotNull File p0, @Nullable char[] p1) { return null; } + static KeyStore getInstance(@NotNull String p0) { return null; } + static KeyStore getInstance(@NotNull String p0, @NotNull Provider p1) { return null; } + static KeyStore getInstance(@NotNull String p0, @NotNull String p1) { return null; } + @NotModified @Nullable Key getKey(@NotNull String p0, @Nullable char[] p1) { return null; } + @NotModified boolean isCertificateEntry(@NotNull String p0) { return false; } + @NotModified boolean isKeyEntry(@NotNull String p0) { return false; } + @Modified void load(@Nullable InputStream p0, @Nullable char[] p1) { } + @Modified void load(@Nullable KeyStore.LoadStoreParameter p0) { } + @Modified void setCertificateEntry(@NotNull String p0, @NotNull Certificate p1) { } + @Modified void setEntry(@NotNull String p0, @NotNull KeyStore.Entry p1, @Nullable KeyStore.ProtectionParameter p2) { } + @Modified void setKeyEntry(@NotNull String p0, @NotNull Key p1, @Nullable char[] p2, @Nullable Certificate[] p3) { } + @Modified void setKeyEntry(@NotNull String p0, @NotNull byte[] p1, @Nullable Certificate[] p2) { } + void store(@Nullable KeyStore.LoadStoreParameter p0) { } + void store(@NotNull OutputStream p0, @Nullable char[] p1) { } //public java.security.KeyStore.Builder (shadow created for its nullability, generated) class Builder { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified java.security.KeyStore.ProtectionParameter getProtectionParameter(@NotNull java.lang.String p0) { return null; } - static java.security.KeyStore.Builder newInstance(@NotNull java.io.File p0, @NotNull java.security.KeyStore.ProtectionParameter p1) { return null; } - static java.security.KeyStore.Builder newInstance(@NotNull java.security.KeyStore p0, @NotNull java.security.KeyStore.ProtectionParameter p1) { return null; } - static java.security.KeyStore.Builder newInstance(@NotNull java.lang.String p0, @Nullable java.security.Provider p1, @NotNull java.io.File p2, @NotNull java.security.KeyStore.ProtectionParameter p3) { return null; } - static java.security.KeyStore.Builder newInstance(@NotNull java.lang.String p0, @Nullable java.security.Provider p1, @NotNull java.security.KeyStore.ProtectionParameter p2) { return null; } + @NotModified KeyStore.ProtectionParameter getProtectionParameter(@NotNull String p0) { return null; } + static KeyStore.Builder newInstance(@NotNull File p0, @NotNull KeyStore.ProtectionParameter p1) { return null; } + static KeyStore.Builder newInstance(@NotNull KeyStore p0, @NotNull KeyStore.ProtectionParameter p1) { return null; } + static KeyStore.Builder newInstance(@NotNull String p0, @Nullable Provider p1, @NotNull File p2, @NotNull KeyStore.ProtectionParameter p3) { return null; } + static KeyStore.Builder newInstance(@NotNull String p0, @Nullable Provider p1, @NotNull KeyStore.ProtectionParameter p2) { return null; } } //public java.security.KeyStore.CallbackHandlerProtection (shadow created for its nullability, generated) class CallbackHandlerProtection { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - CallbackHandlerProtection(@NotNull javax.security.auth.callback.CallbackHandler p0) { } + CallbackHandlerProtection(@NotNull CallbackHandler p0) { } } //public java.security.KeyStore.LoadStoreParameter (shadow created for its nullability, generated) class LoadStoreParameter { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.security.KeyStore.ProtectionParameter getProtectionParameter() { return null; } + @NotModified @Nullable KeyStore.ProtectionParameter getProtectionParameter() { return null; } } //public java.security.KeyStore.PasswordProtection (shadow created for its nullability, generated) class PasswordProtection { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) PasswordProtection(@Nullable char[] p0) { } - PasswordProtection(@Nullable char[] p0, @NotNull java.lang.String p1, @Nullable java.security.spec.AlgorithmParameterSpec p2) { } + PasswordProtection(@Nullable char[] p0, @NotNull String p1, @Nullable AlgorithmParameterSpec p2) { } @NotModified @Nullable char[] getPassword() { return null; } - @NotModified @Nullable java.lang.String getProtectionAlgorithm() { return null; } - @NotModified @Nullable java.security.spec.AlgorithmParameterSpec getProtectionParameters() { return null; } + @NotModified @Nullable String getProtectionAlgorithm() { return null; } + @NotModified @Nullable AlgorithmParameterSpec getProtectionParameters() { return null; } } //public java.security.KeyStore.PrivateKeyEntry (shadow created for its nullability, generated) class PrivateKeyEntry { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PrivateKeyEntry(@NotNull java.security.PrivateKey p0, @NotNull java.security.cert.Certificate[] p1) { } - PrivateKeyEntry(@NotNull java.security.PrivateKey p0, @NotNull java.security.cert.Certificate[] p1, @NotNull java.util.Set p2) { } + PrivateKeyEntry(@NotNull PrivateKey p0, @NotNull Certificate[] p1) { } + PrivateKeyEntry(@NotNull PrivateKey p0, @NotNull Certificate[] p1, @NotNull Set p2) { } } //public java.security.KeyStore.SecretKeyEntry (shadow created for its nullability, generated) class SecretKeyEntry { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - SecretKeyEntry(@NotNull javax.crypto.SecretKey p0) { } - SecretKeyEntry(@NotNull javax.crypto.SecretKey p0, @NotNull java.util.Set p1) { } + SecretKeyEntry(@NotNull SecretKey p0) { } + SecretKeyEntry(@NotNull SecretKey p0, @NotNull Set p1) { } } //public java.security.KeyStore.TrustedCertificateEntry (shadow created for its nullability, generated) class TrustedCertificateEntry { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - TrustedCertificateEntry(@NotNull java.security.cert.Certificate p0) { } - TrustedCertificateEntry(@NotNull java.security.cert.Certificate p0, @NotNull java.util.Set p1) { } + TrustedCertificateEntry(@NotNull Certificate p0) { } + TrustedCertificateEntry(@NotNull Certificate p0, @NotNull Set p1) { } } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.security.Provider getProvider() { return null; } + @NotModified Provider getProvider() { return null; } @NotModified String getType() { return null; } @NotModified int size() { return 0; } } @@ -253,8 +268,8 @@ class TrustedCertificateEntry { //public java.security.KeyStoreSpi (shadow created for its nullability, generated) class KeyStoreSpi$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.time.Instant engineGetCreationInstant(java.lang.String p0) { return null; } - @Nullable java.security.KeyStore.Entry engineGetEntry(java.lang.String p0, java.security.KeyStore.ProtectionParameter p1) { return null; } + @Nullable Instant engineGetCreationInstant(String p0) { return null; } + @Nullable KeyStore.Entry engineGetEntry(String p0, KeyStore.ProtectionParameter p1) { return null; } } //public java.security.PEM (shadow created for its nullability, generated) @@ -266,7 +281,7 @@ class PEM$ { //public java.security.Permission (shadow created for its nullability, generated) class Permission$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.security.PermissionCollection newPermissionCollection() { return null; } + @Nullable PermissionCollection newPermissionCollection() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getActions() { return null; } @@ -276,55 +291,55 @@ class Permission$ { //public java.security.Policy (shadow created for its nullability, generated) class Policy$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.security.Policy.Parameters getParameters() { return null; } - @NotModified @Nullable java.security.Provider getProvider() { return null; } - @NotModified @Nullable java.lang.String getType() { return null; } + @NotModified @Nullable Policy.Parameters getParameters() { return null; } + @NotModified @Nullable Provider getProvider() { return null; } + @NotModified @Nullable String getType() { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.security.PermissionCollection getPermissions(java.security.CodeSource p0) { return null; } - @NotModified java.security.PermissionCollection getPermissions(java.security.ProtectionDomain p0) { return null; } + @NotModified PermissionCollection getPermissions(CodeSource p0) { return null; } + @NotModified PermissionCollection getPermissions(ProtectionDomain p0) { return null; } } //public java.security.ProtectionDomain (shadow created for its nullability, generated) class ProtectionDomain$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ProtectionDomain$(@Nullable java.security.CodeSource p0, @Nullable java.security.PermissionCollection p1) { } - ProtectionDomain$(@Nullable java.security.CodeSource p0, @Nullable java.security.PermissionCollection p1, @Nullable java.lang.ClassLoader p2, @Nullable java.security.Principal[] p3) { } - @NotModified @Nullable java.lang.ClassLoader getClassLoader() { return null; } - @NotModified @Nullable java.security.CodeSource getCodeSource() { return null; } - @NotModified @Nullable java.security.PermissionCollection getPermissions() { return null; } - boolean implies(@NotNull java.security.Permission p0) { return false; } + ProtectionDomain$(@Nullable CodeSource p0, @Nullable PermissionCollection p1) { } + ProtectionDomain$(@Nullable CodeSource p0, @Nullable PermissionCollection p1, @Nullable ClassLoader p2, @Nullable Principal[] p3) { } + @NotModified @Nullable ClassLoader getClassLoader() { return null; } + @NotModified @Nullable CodeSource getCodeSource() { return null; } + @NotModified @Nullable PermissionCollection getPermissions() { return null; } + boolean implies(@NotNull Permission p0) { return false; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.security.Principal[] getPrincipals() { return null; } + @NotModified Principal[] getPrincipals() { return null; } } //public java.security.Provider (shadow created for its nullability, generated) class Provider$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified @Nullable java.lang.Object computeIfPresent(java.lang.Object p0, java.util.function.BiFunction p1) { return null; } - @Nullable java.lang.Object get(java.lang.Object p0) { return null; } - java.lang.Object getOrDefault(java.lang.Object p0, @Nullable java.lang.Object p1) { return null; } - @Nullable java.lang.String getProperty(java.lang.String p0) { return null; } - @NotModified @Nullable java.security.Provider.Service getService(java.lang.String p0, java.lang.String p1) { return null; } - @Modified @Nullable java.lang.Object put(java.lang.Object p0, java.lang.Object p1) { return null; } - @Modified @Nullable java.lang.Object putIfAbsent(java.lang.Object p0, java.lang.Object p1) { return null; } - @Modified @Nullable java.lang.Object remove(java.lang.Object p0) { return null; } - @Modified @Nullable java.lang.Object replace(java.lang.Object p0, java.lang.Object p1) { return null; } + @Modified @Nullable Object computeIfPresent(Object p0, BiFunction p1) { return null; } + @Nullable Object get(Object p0) { return null; } + Object getOrDefault(Object p0, @Nullable Object p1) { return null; } + @Nullable String getProperty(String p0) { return null; } + @NotModified @Nullable Provider.Service getService(String p0, String p1) { return null; } + @Modified @Nullable Object put(Object p0, Object p1) { return null; } + @Modified @Nullable Object putIfAbsent(Object p0, Object p1) { return null; } + @Modified @Nullable Object remove(Object p0) { return null; } + @Modified @Nullable Object replace(Object p0, Object p1) { return null; } //public java.security.Provider.Service (shadow created for its nullability, generated) class Service { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Service(java.security.Provider p0, java.lang.String p1, java.lang.String p2, java.lang.String p3, @Nullable java.util.List p4, @Nullable java.util.Map p5) { } - @NotModified @Nullable java.lang.String getAttribute(java.lang.String p0) { return null; } - java.lang.Object newInstance(@Nullable java.lang.Object p0) { return null; } - boolean supportsParameter(@Nullable java.lang.Object p0) { return false; } + Service(Provider p0, String p1, String p2, String p3, @Nullable List p4, @Nullable Map p5) { } + @NotModified @Nullable String getAttribute(String p0) { return null; } + Object newInstance(@Nullable Object p0) { return null; } + boolean supportsParameter(@Nullable Object p0) { return false; } } // a query, declared so (generated from the assumed-defaults list) @NotModified String getInfo() { return null; } @NotModified String getName() { return null; } - @NotModified java.util.Set getServices() { return null; } + @NotModified Set getServices() { return null; } @NotModified double getVersion() { return 0; } @NotModified String getVersionStr() { return null; } @NotModified boolean isConfigured() { return false; } @@ -333,30 +348,30 @@ class Service { //public java.security.SecureClassLoader (shadow created for its nullability, generated) class SecureClassLoader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - SecureClassLoader$(@Nullable java.lang.ClassLoader p0) { } - SecureClassLoader$(@Nullable java.lang.String p0, @Nullable java.lang.ClassLoader p1) { } - java.lang.Class defineClass(@NotNull java.lang.String p0, @NotNull java.nio.ByteBuffer p1, @Nullable java.security.CodeSource p2) { return null; } - java.lang.Class defineClass(@NotNull java.lang.String p0, @NotNull byte[] p1, int p2, int p3, @Nullable java.security.CodeSource p4) { return null; } - java.security.PermissionCollection getPermissions(@NotNull java.security.CodeSource p0) { return null; } + SecureClassLoader$(@Nullable ClassLoader p0) { } + SecureClassLoader$(@Nullable String p0, @Nullable ClassLoader p1) { } + Class defineClass(@NotNull String p0, @NotNull ByteBuffer p1, @Nullable CodeSource p2) { return null; } + Class defineClass(@NotNull String p0, @NotNull byte[] p1, int p2, int p3, @Nullable CodeSource p4) { return null; } + PermissionCollection getPermissions(@NotNull CodeSource p0) { return null; } } //public java.security.SecureRandomSpi (shadow created for its nullability, generated) class SecureRandomSpi$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.security.SecureRandomParameters engineGetParameters() { return null; } + @Nullable SecureRandomParameters engineGetParameters() { return null; } } //public java.security.Security (shadow created for its nullability, generated) class Security$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable static java.lang.String getAlgorithmProperty(java.lang.String p0, java.lang.String p1) { return null; } - @Nullable static java.security.Provider[] getProviders(java.util.Map p0) { return null; } + @Nullable static String getAlgorithmProperty(String p0, String p1) { return null; } + @Nullable static Provider[] getProviders(Map p0) { return null; } } //public java.security.UnresolvedPermission (shadow created for its nullability, generated) class UnresolvedPermission$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.security.cert.Certificate[] getUnresolvedCerts() { return null; } + @NotModified @Nullable Certificate[] getUnresolvedCerts() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getActions() { return null; } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTime.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTime.java index 7f9dd462f8..74d02c4a17 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTime.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTime.java @@ -16,10 +16,6 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.ImmutableContainer; -import io.codelaser.maddi.annotation.Independent; - import java.time.*; import java.time.chrono.*; import java.time.format.DateTimeFormatter; @@ -28,8 +24,12 @@ import java.time.zone.ZoneRules; import java.util.*; import java.util.stream.Stream; -import io.codelaser.maddi.annotation.Nullable; + +import io.codelaser.maddi.annotation.ImmutableContainer; +import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaTime { public static final String PACKAGE_NAME = "java.time"; @@ -276,7 +276,7 @@ static Instant parse(/*@Immutable(hc=true)[T] @Independent(hc=true)[T] @NotModif public String toString() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.Instant plusSaturating(@NotNull java.time.Duration p0) { return null; } + Instant plusSaturating(@NotNull Duration p0) { return null; } } //public final class LocalTime implements Temporal, TemporalAdjuster, Comparable, Serializable @@ -308,29 +308,29 @@ class LocalTime$ { public String toString() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal adjustInto(@NotNull java.time.temporal.Temporal p0) { return null; } - java.time.LocalDateTime atDate(@NotNull java.time.LocalDate p0) { return null; } - java.time.OffsetTime atOffset(@NotNull java.time.ZoneOffset p0) { return null; } - int compareTo(@NotNull java.time.LocalTime p0) { return 0; } - java.lang.String format(@NotNull java.time.format.DateTimeFormatter p0) { return null; } - static java.time.LocalTime from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - int get(@NotNull java.time.temporal.TemporalField p0) { return 0; } - long getLong(@NotNull java.time.temporal.TemporalField p0) { return 0; } - boolean isSupported(@NotNull java.time.temporal.TemporalField p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalUnit p0) { return false; } - java.time.LocalTime minus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.LocalTime minus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - static java.time.LocalTime ofInstant(@NotNull java.time.Instant p0, @NotNull java.time.ZoneId p1) { return null; } - static java.time.LocalTime parse(@NotNull java.lang.CharSequence p0, @NotNull java.time.format.DateTimeFormatter p1) { return null; } - java.time.LocalTime plus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.LocalTime plus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - R query(@NotNull java.time.temporal.TemporalQuery p0) { return null; } - java.time.temporal.ValueRange range(@NotNull java.time.temporal.TemporalField p0) { return null; } - long toEpochSecond(@NotNull java.time.LocalDate p0, @NotNull java.time.ZoneOffset p1) { return 0; } - java.time.LocalTime truncatedTo(@NotNull java.time.temporal.TemporalUnit p0) { return null; } - long until(@NotNull java.time.temporal.Temporal p0, @NotNull java.time.temporal.TemporalUnit p1) { return 0; } - java.time.LocalTime with(@NotNull java.time.temporal.TemporalAdjuster p0) { return null; } - java.time.LocalTime with(@NotNull java.time.temporal.TemporalField p0, long p1) { return null; } + Temporal adjustInto(@NotNull Temporal p0) { return null; } + LocalDateTime atDate(@NotNull LocalDate p0) { return null; } + OffsetTime atOffset(@NotNull ZoneOffset p0) { return null; } + int compareTo(@NotNull LocalTime p0) { return 0; } + String format(@NotNull DateTimeFormatter p0) { return null; } + static LocalTime from(@NotNull TemporalAccessor p0) { return null; } + int get(@NotNull TemporalField p0) { return 0; } + long getLong(@NotNull TemporalField p0) { return 0; } + boolean isSupported(@NotNull TemporalField p0) { return false; } + boolean isSupported(@NotNull TemporalUnit p0) { return false; } + LocalTime minus(@NotNull TemporalAmount p0) { return null; } + LocalTime minus(long p0, @NotNull TemporalUnit p1) { return null; } + static LocalTime ofInstant(@NotNull Instant p0, @NotNull ZoneId p1) { return null; } + static LocalTime parse(@NotNull CharSequence p0, @NotNull DateTimeFormatter p1) { return null; } + LocalTime plus(@NotNull TemporalAmount p0) { return null; } + LocalTime plus(long p0, @NotNull TemporalUnit p1) { return null; } + R query(@NotNull TemporalQuery p0) { return null; } + ValueRange range(@NotNull TemporalField p0) { return null; } + long toEpochSecond(@NotNull LocalDate p0, @NotNull ZoneOffset p1) { return 0; } + LocalTime truncatedTo(@NotNull TemporalUnit p0) { return null; } + long until(@NotNull Temporal p0, @NotNull TemporalUnit p1) { return 0; } + LocalTime with(@NotNull TemporalAdjuster p0) { return null; } + LocalTime with(@NotNull TemporalField p0, long p1) { return null; } } //public final class LocalDate implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable @@ -825,243 +825,243 @@ static ZonedDateTime parse( //public java.time.Clock (shadow created for its nullability, generated) class Clock$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.time.Clock fixed(@NotNull java.time.Instant p0, @NotNull java.time.ZoneId p1) { return null; } - static java.time.Clock offset(@NotNull java.time.Clock p0, @NotNull java.time.Duration p1) { return null; } - static java.time.Clock system(@NotNull java.time.ZoneId p0) { return null; } - static java.time.Clock tick(@NotNull java.time.Clock p0, @NotNull java.time.Duration p1) { return null; } - static java.time.Clock tickMillis(@NotNull java.time.ZoneId p0) { return null; } - static java.time.Clock tickMinutes(@NotNull java.time.ZoneId p0) { return null; } - static java.time.Clock tickSeconds(@NotNull java.time.ZoneId p0) { return null; } - java.time.Clock withZone(@NotNull java.time.ZoneId p0) { return null; } + static Clock fixed(@NotNull Instant p0, @NotNull ZoneId p1) { return null; } + static Clock offset(@NotNull Clock p0, @NotNull Duration p1) { return null; } + static Clock system(@NotNull ZoneId p0) { return null; } + static Clock tick(@NotNull Clock p0, @NotNull Duration p1) { return null; } + static Clock tickMillis(@NotNull ZoneId p0) { return null; } + static Clock tickMinutes(@NotNull ZoneId p0) { return null; } + static Clock tickSeconds(@NotNull ZoneId p0) { return null; } + Clock withZone(@NotNull ZoneId p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.time.ZoneId getZone() { return null; } + @NotModified ZoneId getZone() { return null; } } //public java.time.DateTimeException (shadow created for its nullability, generated) class DateTimeException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - DateTimeException$(@Nullable java.lang.String p0) { } - DateTimeException$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1) { } + DateTimeException$(@Nullable String p0) { } + DateTimeException$(@Nullable String p0, @Nullable Throwable p1) { } } //public java.time.InstantSource (shadow created for its nullability, generated) class InstantSource$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.time.InstantSource fixed(@NotNull java.time.Instant p0) { return null; } - static java.time.InstantSource offset(@NotNull java.time.InstantSource p0, @NotNull java.time.Duration p1) { return null; } - static java.time.InstantSource tick(@NotNull java.time.InstantSource p0, @NotNull java.time.Duration p1) { return null; } - java.time.Clock withZone(@NotNull java.time.ZoneId p0) { return null; } + static InstantSource fixed(@NotNull Instant p0) { return null; } + static InstantSource offset(@NotNull InstantSource p0, @NotNull Duration p1) { return null; } + static InstantSource tick(@NotNull InstantSource p0, @NotNull Duration p1) { return null; } + Clock withZone(@NotNull ZoneId p0) { return null; } } //public java.time.Month (shadow created for its nullability, generated) class Month$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal adjustInto(@NotNull java.time.temporal.Temporal p0) { return null; } - static java.time.Month from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - int get(@NotNull java.time.temporal.TemporalField p0) { return 0; } - @NotModified java.lang.String getDisplayName(@NotNull java.time.format.TextStyle p0, @NotNull java.util.Locale p1) { return null; } - long getLong(@NotNull java.time.temporal.TemporalField p0) { return 0; } - boolean isSupported(@NotNull java.time.temporal.TemporalField p0) { return false; } - R query(@NotNull java.time.temporal.TemporalQuery p0) { return null; } - java.time.temporal.ValueRange range(@NotNull java.time.temporal.TemporalField p0) { return null; } + Temporal adjustInto(@NotNull Temporal p0) { return null; } + static Month from(@NotNull TemporalAccessor p0) { return null; } + int get(@NotNull TemporalField p0) { return 0; } + @NotModified String getDisplayName(@NotNull TextStyle p0, @NotNull Locale p1) { return null; } + long getLong(@NotNull TemporalField p0) { return 0; } + boolean isSupported(@NotNull TemporalField p0) { return false; } + R query(@NotNull TemporalQuery p0) { return null; } + ValueRange range(@NotNull TemporalField p0) { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified int getValue() { return 0; } @NotModified int length(boolean p0) { return 0; } @NotModified int maxLength() { return 0; } @NotModified int minLength() { return 0; } - @NotModified java.time.Month minus(long p0) { return null; } + @NotModified Month minus(long p0) { return null; } } //public java.time.MonthDay (shadow created for its nullability, generated) @ImmutableContainer class MonthDay$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal adjustInto(@NotNull java.time.temporal.Temporal p0) { return null; } - int compareTo(@NotNull java.time.MonthDay p0) { return 0; } - java.lang.String format(@NotNull java.time.format.DateTimeFormatter p0) { return null; } - static java.time.MonthDay from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - int get(@NotNull java.time.temporal.TemporalField p0) { return 0; } - long getLong(@NotNull java.time.temporal.TemporalField p0) { return 0; } - boolean isAfter(@NotNull java.time.MonthDay p0) { return false; } - boolean isBefore(@NotNull java.time.MonthDay p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalField p0) { return false; } - static java.time.MonthDay now(@NotNull java.time.Clock p0) { return null; } - static java.time.MonthDay now(@NotNull java.time.ZoneId p0) { return null; } - static java.time.MonthDay of(@NotNull java.time.Month p0, int p1) { return null; } - static java.time.MonthDay parse(@NotNull java.lang.CharSequence p0) { return null; } - static java.time.MonthDay parse(@NotNull java.lang.CharSequence p0, @NotNull java.time.format.DateTimeFormatter p1) { return null; } - R query(@NotNull java.time.temporal.TemporalQuery p0) { return null; } - java.time.temporal.ValueRange range(@NotNull java.time.temporal.TemporalField p0) { return null; } - java.time.MonthDay with(@NotNull java.time.Month p0) { return null; } + Temporal adjustInto(@NotNull Temporal p0) { return null; } + int compareTo(@NotNull MonthDay p0) { return 0; } + String format(@NotNull DateTimeFormatter p0) { return null; } + static MonthDay from(@NotNull TemporalAccessor p0) { return null; } + int get(@NotNull TemporalField p0) { return 0; } + long getLong(@NotNull TemporalField p0) { return 0; } + boolean isAfter(@NotNull MonthDay p0) { return false; } + boolean isBefore(@NotNull MonthDay p0) { return false; } + boolean isSupported(@NotNull TemporalField p0) { return false; } + static MonthDay now(@NotNull Clock p0) { return null; } + static MonthDay now(@NotNull ZoneId p0) { return null; } + static MonthDay of(@NotNull Month p0, int p1) { return null; } + static MonthDay parse(@NotNull CharSequence p0) { return null; } + static MonthDay parse(@NotNull CharSequence p0, @NotNull DateTimeFormatter p1) { return null; } + R query(@NotNull TemporalQuery p0) { return null; } + ValueRange range(@NotNull TemporalField p0) { return null; } + MonthDay with(@NotNull Month p0) { return null; } } //public java.time.OffsetDateTime (shadow created for its nullability, generated) @ImmutableContainer class OffsetDateTime$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal adjustInto(@NotNull java.time.temporal.Temporal p0) { return null; } - java.time.ZonedDateTime atZoneSameInstant(@NotNull java.time.ZoneId p0) { return null; } - java.time.ZonedDateTime atZoneSimilarLocal(@NotNull java.time.ZoneId p0) { return null; } - int compareTo(@NotNull java.time.OffsetDateTime p0) { return 0; } - java.lang.String format(@NotNull java.time.format.DateTimeFormatter p0) { return null; } - static java.time.OffsetDateTime from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - int get(@NotNull java.time.temporal.TemporalField p0) { return 0; } - long getLong(@NotNull java.time.temporal.TemporalField p0) { return 0; } - boolean isAfter(@NotNull java.time.OffsetDateTime p0) { return false; } - boolean isBefore(@NotNull java.time.OffsetDateTime p0) { return false; } - boolean isEqual(@NotNull java.time.OffsetDateTime p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalField p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalUnit p0) { return false; } - java.time.OffsetDateTime minus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.OffsetDateTime minus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - static java.time.OffsetDateTime now(@NotNull java.time.Clock p0) { return null; } - static java.time.OffsetDateTime now(@NotNull java.time.ZoneId p0) { return null; } - static java.time.OffsetDateTime of(@NotNull java.time.LocalDate p0, @NotNull java.time.LocalTime p1, @NotNull java.time.ZoneOffset p2) { return null; } - static java.time.OffsetDateTime of(@NotNull java.time.LocalDateTime p0, @NotNull java.time.ZoneOffset p1) { return null; } - static java.time.OffsetDateTime of(int p0, int p1, int p2, int p3, int p4, int p5, int p6, @NotNull java.time.ZoneOffset p7) { return null; } - static java.time.OffsetDateTime ofInstant(@NotNull java.time.Instant p0, @NotNull java.time.ZoneId p1) { return null; } - static java.time.OffsetDateTime parse(@NotNull java.lang.CharSequence p0) { return null; } - static java.time.OffsetDateTime parse(@NotNull java.lang.CharSequence p0, @NotNull java.time.format.DateTimeFormatter p1) { return null; } - java.time.OffsetDateTime plus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.OffsetDateTime plus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - R query(@NotNull java.time.temporal.TemporalQuery p0) { return null; } - java.time.temporal.ValueRange range(@NotNull java.time.temporal.TemporalField p0) { return null; } - java.time.OffsetDateTime truncatedTo(@NotNull java.time.temporal.TemporalUnit p0) { return null; } - long until(@NotNull java.time.temporal.Temporal p0, @NotNull java.time.temporal.TemporalUnit p1) { return 0; } - java.time.OffsetDateTime with(@NotNull java.time.temporal.TemporalAdjuster p0) { return null; } - java.time.OffsetDateTime with(@NotNull java.time.temporal.TemporalField p0, long p1) { return null; } - java.time.OffsetDateTime withOffsetSameInstant(@NotNull java.time.ZoneOffset p0) { return null; } - java.time.OffsetDateTime withOffsetSameLocal(@NotNull java.time.ZoneOffset p0) { return null; } + Temporal adjustInto(@NotNull Temporal p0) { return null; } + ZonedDateTime atZoneSameInstant(@NotNull ZoneId p0) { return null; } + ZonedDateTime atZoneSimilarLocal(@NotNull ZoneId p0) { return null; } + int compareTo(@NotNull OffsetDateTime p0) { return 0; } + String format(@NotNull DateTimeFormatter p0) { return null; } + static OffsetDateTime from(@NotNull TemporalAccessor p0) { return null; } + int get(@NotNull TemporalField p0) { return 0; } + long getLong(@NotNull TemporalField p0) { return 0; } + boolean isAfter(@NotNull OffsetDateTime p0) { return false; } + boolean isBefore(@NotNull OffsetDateTime p0) { return false; } + boolean isEqual(@NotNull OffsetDateTime p0) { return false; } + boolean isSupported(@NotNull TemporalField p0) { return false; } + boolean isSupported(@NotNull TemporalUnit p0) { return false; } + OffsetDateTime minus(@NotNull TemporalAmount p0) { return null; } + OffsetDateTime minus(long p0, @NotNull TemporalUnit p1) { return null; } + static OffsetDateTime now(@NotNull Clock p0) { return null; } + static OffsetDateTime now(@NotNull ZoneId p0) { return null; } + static OffsetDateTime of(@NotNull LocalDate p0, @NotNull LocalTime p1, @NotNull ZoneOffset p2) { return null; } + static OffsetDateTime of(@NotNull LocalDateTime p0, @NotNull ZoneOffset p1) { return null; } + static OffsetDateTime of(int p0, int p1, int p2, int p3, int p4, int p5, int p6, @NotNull ZoneOffset p7) { return null; } + static OffsetDateTime ofInstant(@NotNull Instant p0, @NotNull ZoneId p1) { return null; } + static OffsetDateTime parse(@NotNull CharSequence p0) { return null; } + static OffsetDateTime parse(@NotNull CharSequence p0, @NotNull DateTimeFormatter p1) { return null; } + OffsetDateTime plus(@NotNull TemporalAmount p0) { return null; } + OffsetDateTime plus(long p0, @NotNull TemporalUnit p1) { return null; } + R query(@NotNull TemporalQuery p0) { return null; } + ValueRange range(@NotNull TemporalField p0) { return null; } + OffsetDateTime truncatedTo(@NotNull TemporalUnit p0) { return null; } + long until(@NotNull Temporal p0, @NotNull TemporalUnit p1) { return 0; } + OffsetDateTime with(@NotNull TemporalAdjuster p0) { return null; } + OffsetDateTime with(@NotNull TemporalField p0, long p1) { return null; } + OffsetDateTime withOffsetSameInstant(@NotNull ZoneOffset p0) { return null; } + OffsetDateTime withOffsetSameLocal(@NotNull ZoneOffset p0) { return null; } } //public java.time.OffsetTime (shadow created for its nullability, generated) @ImmutableContainer class OffsetTime$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal adjustInto(@NotNull java.time.temporal.Temporal p0) { return null; } - java.time.OffsetDateTime atDate(@NotNull java.time.LocalDate p0) { return null; } - int compareTo(@NotNull java.time.OffsetTime p0) { return 0; } - java.lang.String format(@NotNull java.time.format.DateTimeFormatter p0) { return null; } - static java.time.OffsetTime from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - int get(@NotNull java.time.temporal.TemporalField p0) { return 0; } - long getLong(@NotNull java.time.temporal.TemporalField p0) { return 0; } - boolean isAfter(@NotNull java.time.OffsetTime p0) { return false; } - boolean isBefore(@NotNull java.time.OffsetTime p0) { return false; } - boolean isEqual(@NotNull java.time.OffsetTime p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalField p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalUnit p0) { return false; } - java.time.OffsetTime minus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.OffsetTime minus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - static java.time.OffsetTime now(@NotNull java.time.Clock p0) { return null; } - static java.time.OffsetTime now(@NotNull java.time.ZoneId p0) { return null; } - static java.time.OffsetTime of(@NotNull java.time.LocalTime p0, @NotNull java.time.ZoneOffset p1) { return null; } - static java.time.OffsetTime of(int p0, int p1, int p2, int p3, @NotNull java.time.ZoneOffset p4) { return null; } - static java.time.OffsetTime ofInstant(@NotNull java.time.Instant p0, @NotNull java.time.ZoneId p1) { return null; } - static java.time.OffsetTime parse(@NotNull java.lang.CharSequence p0) { return null; } - static java.time.OffsetTime parse(@NotNull java.lang.CharSequence p0, @NotNull java.time.format.DateTimeFormatter p1) { return null; } - java.time.OffsetTime plus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.OffsetTime plus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - R query(@NotNull java.time.temporal.TemporalQuery p0) { return null; } - java.time.temporal.ValueRange range(@NotNull java.time.temporal.TemporalField p0) { return null; } - long toEpochSecond(@NotNull java.time.LocalDate p0) { return 0; } - java.time.OffsetTime truncatedTo(@NotNull java.time.temporal.TemporalUnit p0) { return null; } - long until(@NotNull java.time.temporal.Temporal p0, @NotNull java.time.temporal.TemporalUnit p1) { return 0; } - java.time.OffsetTime with(@NotNull java.time.temporal.TemporalAdjuster p0) { return null; } - java.time.OffsetTime with(@NotNull java.time.temporal.TemporalField p0, long p1) { return null; } - java.time.OffsetTime withOffsetSameInstant(@NotNull java.time.ZoneOffset p0) { return null; } - java.time.OffsetTime withOffsetSameLocal(@NotNull java.time.ZoneOffset p0) { return null; } + Temporal adjustInto(@NotNull Temporal p0) { return null; } + OffsetDateTime atDate(@NotNull LocalDate p0) { return null; } + int compareTo(@NotNull OffsetTime p0) { return 0; } + String format(@NotNull DateTimeFormatter p0) { return null; } + static OffsetTime from(@NotNull TemporalAccessor p0) { return null; } + int get(@NotNull TemporalField p0) { return 0; } + long getLong(@NotNull TemporalField p0) { return 0; } + boolean isAfter(@NotNull OffsetTime p0) { return false; } + boolean isBefore(@NotNull OffsetTime p0) { return false; } + boolean isEqual(@NotNull OffsetTime p0) { return false; } + boolean isSupported(@NotNull TemporalField p0) { return false; } + boolean isSupported(@NotNull TemporalUnit p0) { return false; } + OffsetTime minus(@NotNull TemporalAmount p0) { return null; } + OffsetTime minus(long p0, @NotNull TemporalUnit p1) { return null; } + static OffsetTime now(@NotNull Clock p0) { return null; } + static OffsetTime now(@NotNull ZoneId p0) { return null; } + static OffsetTime of(@NotNull LocalTime p0, @NotNull ZoneOffset p1) { return null; } + static OffsetTime of(int p0, int p1, int p2, int p3, @NotNull ZoneOffset p4) { return null; } + static OffsetTime ofInstant(@NotNull Instant p0, @NotNull ZoneId p1) { return null; } + static OffsetTime parse(@NotNull CharSequence p0) { return null; } + static OffsetTime parse(@NotNull CharSequence p0, @NotNull DateTimeFormatter p1) { return null; } + OffsetTime plus(@NotNull TemporalAmount p0) { return null; } + OffsetTime plus(long p0, @NotNull TemporalUnit p1) { return null; } + R query(@NotNull TemporalQuery p0) { return null; } + ValueRange range(@NotNull TemporalField p0) { return null; } + long toEpochSecond(@NotNull LocalDate p0) { return 0; } + OffsetTime truncatedTo(@NotNull TemporalUnit p0) { return null; } + long until(@NotNull Temporal p0, @NotNull TemporalUnit p1) { return 0; } + OffsetTime with(@NotNull TemporalAdjuster p0) { return null; } + OffsetTime with(@NotNull TemporalField p0, long p1) { return null; } + OffsetTime withOffsetSameInstant(@NotNull ZoneOffset p0) { return null; } + OffsetTime withOffsetSameLocal(@NotNull ZoneOffset p0) { return null; } } //public java.time.Period (shadow created for its nullability, generated) @ImmutableContainer class Period$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal addTo(@NotNull java.time.temporal.Temporal p0) { return null; } - static java.time.Period between(@NotNull java.time.LocalDate p0, @NotNull java.time.LocalDate p1) { return null; } - static java.time.Period from(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - long get(@NotNull java.time.temporal.TemporalUnit p0) { return 0; } - java.time.Period minus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - static java.time.Period parse(@NotNull java.lang.CharSequence p0) { return null; } - java.time.Period plus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.temporal.Temporal subtractFrom(@NotNull java.time.temporal.Temporal p0) { return null; } + Temporal addTo(@NotNull Temporal p0) { return null; } + static Period between(@NotNull LocalDate p0, @NotNull LocalDate p1) { return null; } + static Period from(@NotNull TemporalAmount p0) { return null; } + long get(@NotNull TemporalUnit p0) { return 0; } + Period minus(@NotNull TemporalAmount p0) { return null; } + static Period parse(@NotNull CharSequence p0) { return null; } + Period plus(@NotNull TemporalAmount p0) { return null; } + Temporal subtractFrom(@NotNull Temporal p0) { return null; } } //public java.time.Year (shadow created for its nullability, generated) @ImmutableContainer class Year$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal adjustInto(@NotNull java.time.temporal.Temporal p0) { return null; } - java.time.YearMonth atMonth(@NotNull java.time.Month p0) { return null; } - java.time.LocalDate atMonthDay(@NotNull java.time.MonthDay p0) { return null; } - int compareTo(@NotNull java.time.Year p0) { return 0; } - java.lang.String format(@NotNull java.time.format.DateTimeFormatter p0) { return null; } - static java.time.Year from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - int get(@NotNull java.time.temporal.TemporalField p0) { return 0; } - long getLong(@NotNull java.time.temporal.TemporalField p0) { return 0; } - boolean isAfter(@NotNull java.time.Year p0) { return false; } - boolean isBefore(@NotNull java.time.Year p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalField p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalUnit p0) { return false; } - boolean isValidMonthDay(@NotNull java.time.MonthDay p0) { return false; } - java.time.Year minus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.Year minus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - static java.time.Year now(@NotNull java.time.Clock p0) { return null; } - static java.time.Year now(@NotNull java.time.ZoneId p0) { return null; } - static java.time.Year parse(@NotNull java.lang.CharSequence p0) { return null; } - static java.time.Year parse(@NotNull java.lang.CharSequence p0, @NotNull java.time.format.DateTimeFormatter p1) { return null; } - java.time.Year plus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.Year plus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - R query(@NotNull java.time.temporal.TemporalQuery p0) { return null; } - java.time.temporal.ValueRange range(@NotNull java.time.temporal.TemporalField p0) { return null; } - long until(@NotNull java.time.temporal.Temporal p0, @NotNull java.time.temporal.TemporalUnit p1) { return 0; } - java.time.Year with(@NotNull java.time.temporal.TemporalAdjuster p0) { return null; } - java.time.Year with(@NotNull java.time.temporal.TemporalField p0, long p1) { return null; } + Temporal adjustInto(@NotNull Temporal p0) { return null; } + YearMonth atMonth(@NotNull Month p0) { return null; } + LocalDate atMonthDay(@NotNull MonthDay p0) { return null; } + int compareTo(@NotNull Year p0) { return 0; } + String format(@NotNull DateTimeFormatter p0) { return null; } + static Year from(@NotNull TemporalAccessor p0) { return null; } + int get(@NotNull TemporalField p0) { return 0; } + long getLong(@NotNull TemporalField p0) { return 0; } + boolean isAfter(@NotNull Year p0) { return false; } + boolean isBefore(@NotNull Year p0) { return false; } + boolean isSupported(@NotNull TemporalField p0) { return false; } + boolean isSupported(@NotNull TemporalUnit p0) { return false; } + boolean isValidMonthDay(@NotNull MonthDay p0) { return false; } + Year minus(@NotNull TemporalAmount p0) { return null; } + Year minus(long p0, @NotNull TemporalUnit p1) { return null; } + static Year now(@NotNull Clock p0) { return null; } + static Year now(@NotNull ZoneId p0) { return null; } + static Year parse(@NotNull CharSequence p0) { return null; } + static Year parse(@NotNull CharSequence p0, @NotNull DateTimeFormatter p1) { return null; } + Year plus(@NotNull TemporalAmount p0) { return null; } + Year plus(long p0, @NotNull TemporalUnit p1) { return null; } + R query(@NotNull TemporalQuery p0) { return null; } + ValueRange range(@NotNull TemporalField p0) { return null; } + long until(@NotNull Temporal p0, @NotNull TemporalUnit p1) { return 0; } + Year with(@NotNull TemporalAdjuster p0) { return null; } + Year with(@NotNull TemporalField p0, long p1) { return null; } } //public java.time.YearMonth (shadow created for its nullability, generated) @ImmutableContainer class YearMonth$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal adjustInto(@NotNull java.time.temporal.Temporal p0) { return null; } - int compareTo(@NotNull java.time.YearMonth p0) { return 0; } - java.lang.String format(@NotNull java.time.format.DateTimeFormatter p0) { return null; } - static java.time.YearMonth from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - int get(@NotNull java.time.temporal.TemporalField p0) { return 0; } - long getLong(@NotNull java.time.temporal.TemporalField p0) { return 0; } - boolean isAfter(@NotNull java.time.YearMonth p0) { return false; } - boolean isBefore(@NotNull java.time.YearMonth p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalField p0) { return false; } - boolean isSupported(@NotNull java.time.temporal.TemporalUnit p0) { return false; } - java.time.YearMonth minus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.YearMonth minus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - static java.time.YearMonth now(@NotNull java.time.Clock p0) { return null; } - static java.time.YearMonth now(@NotNull java.time.ZoneId p0) { return null; } - static java.time.YearMonth of(int p0, @NotNull java.time.Month p1) { return null; } - static java.time.YearMonth parse(@NotNull java.lang.CharSequence p0) { return null; } - static java.time.YearMonth parse(@NotNull java.lang.CharSequence p0, @NotNull java.time.format.DateTimeFormatter p1) { return null; } - java.time.YearMonth plus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.YearMonth plus(long p0, @NotNull java.time.temporal.TemporalUnit p1) { return null; } - R query(@NotNull java.time.temporal.TemporalQuery p0) { return null; } - java.time.temporal.ValueRange range(@NotNull java.time.temporal.TemporalField p0) { return null; } - long until(@NotNull java.time.temporal.Temporal p0, @NotNull java.time.temporal.TemporalUnit p1) { return 0; } - java.time.YearMonth with(@NotNull java.time.temporal.TemporalAdjuster p0) { return null; } - java.time.YearMonth with(@NotNull java.time.temporal.TemporalField p0, long p1) { return null; } + Temporal adjustInto(@NotNull Temporal p0) { return null; } + int compareTo(@NotNull YearMonth p0) { return 0; } + String format(@NotNull DateTimeFormatter p0) { return null; } + static YearMonth from(@NotNull TemporalAccessor p0) { return null; } + int get(@NotNull TemporalField p0) { return 0; } + long getLong(@NotNull TemporalField p0) { return 0; } + boolean isAfter(@NotNull YearMonth p0) { return false; } + boolean isBefore(@NotNull YearMonth p0) { return false; } + boolean isSupported(@NotNull TemporalField p0) { return false; } + boolean isSupported(@NotNull TemporalUnit p0) { return false; } + YearMonth minus(@NotNull TemporalAmount p0) { return null; } + YearMonth minus(long p0, @NotNull TemporalUnit p1) { return null; } + static YearMonth now(@NotNull Clock p0) { return null; } + static YearMonth now(@NotNull ZoneId p0) { return null; } + static YearMonth of(int p0, @NotNull Month p1) { return null; } + static YearMonth parse(@NotNull CharSequence p0) { return null; } + static YearMonth parse(@NotNull CharSequence p0, @NotNull DateTimeFormatter p1) { return null; } + YearMonth plus(@NotNull TemporalAmount p0) { return null; } + YearMonth plus(long p0, @NotNull TemporalUnit p1) { return null; } + R query(@NotNull TemporalQuery p0) { return null; } + ValueRange range(@NotNull TemporalField p0) { return null; } + long until(@NotNull Temporal p0, @NotNull TemporalUnit p1) { return 0; } + YearMonth with(@NotNull TemporalAdjuster p0) { return null; } + YearMonth with(@NotNull TemporalField p0, long p1) { return null; } } //public java.time.ZoneOffset (shadow created for its nullability, generated) @ImmutableContainer class ZoneOffset$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal adjustInto(@NotNull java.time.temporal.Temporal p0) { return null; } - int compareTo(@NotNull java.time.ZoneOffset p0) { return 0; } - static java.time.ZoneOffset from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - int get(@NotNull java.time.temporal.TemporalField p0) { return 0; } - long getLong(@NotNull java.time.temporal.TemporalField p0) { return 0; } - boolean isSupported(@NotNull java.time.temporal.TemporalField p0) { return false; } - static java.time.ZoneOffset of(@NotNull java.lang.String p0) { return null; } - R query(@NotNull java.time.temporal.TemporalQuery p0) { return null; } - java.time.temporal.ValueRange range(@NotNull java.time.temporal.TemporalField p0) { return null; } + Temporal adjustInto(@NotNull Temporal p0) { return null; } + int compareTo(@NotNull ZoneOffset p0) { return 0; } + static ZoneOffset from(@NotNull TemporalAccessor p0) { return null; } + int get(@NotNull TemporalField p0) { return 0; } + long getLong(@NotNull TemporalField p0) { return 0; } + boolean isSupported(@NotNull TemporalField p0) { return false; } + static ZoneOffset of(@NotNull String p0) { return null; } + R query(@NotNull TemporalQuery p0) { return null; } + ValueRange range(@NotNull TemporalField p0) { return null; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeChrono.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeChrono.java index e44316e911..e4b4a47344 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeChrono.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeChrono.java @@ -19,13 +19,17 @@ import java.time.*; import java.time.chrono.*; import java.time.format.DateTimeFormatter; +import java.time.format.ResolverStyle; +import java.time.format.TextStyle; import java.time.temporal.*; import java.util.Comparator; +import java.util.Locale; +import java.util.Map; -import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.ImmutableContainer; -import io.codelaser.maddi.annotation.Nullable; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaTimeChrono { public static final String PACKAGE_NAME = "java.time.chrono"; @@ -268,22 +272,22 @@ class ThaiBuddhistDate$ { } //public java.time.chrono.AbstractChronology (shadow created for its nullability, generated) class AbstractChronology$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - int compareTo(@NotNull java.time.chrono.Chronology p0) { return 0; } - @Nullable java.time.chrono.ChronoLocalDate resolveDate(@NotNull java.util.Map p0, @NotNull java.time.format.ResolverStyle p1) { return null; } + int compareTo(@NotNull Chronology p0) { return 0; } + @Nullable ChronoLocalDate resolveDate(@NotNull Map p0, @NotNull ResolverStyle p1) { return null; } } //public java.time.chrono.ChronoPeriod (shadow created for its nullability, generated) class ChronoPeriod$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.time.temporal.Temporal addTo(@NotNull java.time.temporal.Temporal p0) { return null; } - static java.time.chrono.ChronoPeriod between(@NotNull java.time.chrono.ChronoLocalDate p0, @NotNull java.time.chrono.ChronoLocalDate p1) { return null; } - long get(@NotNull java.time.temporal.TemporalUnit p0) { return 0; } - @NotModified java.time.chrono.ChronoPeriod minus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.chrono.ChronoPeriod plus(@NotNull java.time.temporal.TemporalAmount p0) { return null; } - java.time.temporal.Temporal subtractFrom(@NotNull java.time.temporal.Temporal p0) { return null; } + Temporal addTo(@NotNull Temporal p0) { return null; } + static ChronoPeriod between(@NotNull ChronoLocalDate p0, @NotNull ChronoLocalDate p1) { return null; } + long get(@NotNull TemporalUnit p0) { return 0; } + @NotModified ChronoPeriod minus(@NotNull TemporalAmount p0) { return null; } + ChronoPeriod plus(@NotNull TemporalAmount p0) { return null; } + Temporal subtractFrom(@NotNull Temporal p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.time.chrono.Chronology getChronology() { return null; } + @NotModified Chronology getChronology() { return null; } @NotModified boolean isNegative() { return false; } @NotModified boolean isZero() { return false; } } @@ -291,25 +295,25 @@ class ChronoPeriod$ { //public java.time.chrono.Chronology (shadow created for its nullability, generated) class Chronology$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - int compareTo(@NotNull java.time.chrono.Chronology p0) { return 0; } - java.time.chrono.ChronoLocalDate date(@NotNull java.time.chrono.Era p0, int p1, int p2, int p3) { return null; } - java.time.chrono.ChronoLocalDate date(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - java.time.chrono.ChronoLocalDate dateNow(@NotNull java.time.Clock p0) { return null; } - java.time.chrono.ChronoLocalDate dateNow(@NotNull java.time.ZoneId p0) { return null; } - java.time.chrono.ChronoLocalDate dateYearDay(@NotNull java.time.chrono.Era p0, int p1, int p2) { return null; } - long epochSecond(@NotNull java.time.chrono.Era p0, int p1, int p2, int p3, int p4, int p5, int p6, @NotNull java.time.ZoneOffset p7) { return 0; } - long epochSecond(int p0, int p1, int p2, int p3, int p4, int p5, @NotNull java.time.ZoneOffset p6) { return 0; } - static java.time.chrono.Chronology from(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - @NotModified @Nullable java.lang.String getCalendarType() { return null; } - @NotModified java.lang.String getDisplayName(@NotNull java.time.format.TextStyle p0, @NotNull java.util.Locale p1) { return null; } - java.time.chrono.ChronoLocalDateTime localDateTime(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - static java.time.chrono.Chronology of(@NotNull java.lang.String p0) { return null; } - static java.time.chrono.Chronology ofLocale(@NotNull java.util.Locale p0) { return null; } - int prolepticYear(@NotNull java.time.chrono.Era p0, int p1) { return 0; } - @NotModified java.time.temporal.ValueRange range(@NotNull java.time.temporal.ChronoField p0) { return null; } - @Nullable java.time.chrono.ChronoLocalDate resolveDate(@NotNull java.util.Map p0, @NotNull java.time.format.ResolverStyle p1) { return null; } - java.time.chrono.ChronoZonedDateTime zonedDateTime(@NotNull java.time.Instant p0, @NotNull java.time.ZoneId p1) { return null; } - java.time.chrono.ChronoZonedDateTime zonedDateTime(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } + int compareTo(@NotNull Chronology p0) { return 0; } + ChronoLocalDate date(@NotNull Era p0, int p1, int p2, int p3) { return null; } + ChronoLocalDate date(@NotNull TemporalAccessor p0) { return null; } + ChronoLocalDate dateNow(@NotNull Clock p0) { return null; } + ChronoLocalDate dateNow(@NotNull ZoneId p0) { return null; } + ChronoLocalDate dateYearDay(@NotNull Era p0, int p1, int p2) { return null; } + long epochSecond(@NotNull Era p0, int p1, int p2, int p3, int p4, int p5, int p6, @NotNull ZoneOffset p7) { return 0; } + long epochSecond(int p0, int p1, int p2, int p3, int p4, int p5, @NotNull ZoneOffset p6) { return 0; } + static Chronology from(@NotNull TemporalAccessor p0) { return null; } + @NotModified @Nullable String getCalendarType() { return null; } + @NotModified String getDisplayName(@NotNull TextStyle p0, @NotNull Locale p1) { return null; } + ChronoLocalDateTime localDateTime(@NotNull TemporalAccessor p0) { return null; } + static Chronology of(@NotNull String p0) { return null; } + static Chronology ofLocale(@NotNull Locale p0) { return null; } + int prolepticYear(@NotNull Era p0, int p1) { return 0; } + @NotModified ValueRange range(@NotNull ChronoField p0) { return null; } + @Nullable ChronoLocalDate resolveDate(@NotNull Map p0, @NotNull ResolverStyle p1) { return null; } + ChronoZonedDateTime zonedDateTime(@NotNull Instant p0, @NotNull ZoneId p1) { return null; } + ChronoZonedDateTime zonedDateTime(@NotNull TemporalAccessor p0) { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getId() { return null; } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeFormat.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeFormat.java index dc5c77cb56..f8042d5219 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeFormat.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeFormat.java @@ -30,10 +30,10 @@ import java.util.Map; import java.util.Set; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; +import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.Nullable; public class JavaTimeFormat { diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeTemporal.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeTemporal.java index 6a6f299784..d93af164f9 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeTemporal.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaTimeTemporal.java @@ -16,14 +16,23 @@ */ package io.codelaser.maddi.aapi.archive.jdk; +import java.time.DayOfWeek; import java.time.Duration; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.chrono.Chronology; +import java.time.format.ResolverStyle; import java.time.temporal.*; import java.util.List; +import java.util.Locale; +import java.util.Map; -import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.ImmutableContainer; -import io.codelaser.maddi.annotation.Nullable; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaTimeTemporal { public static final String PACKAGE_NAME = "java.time.temporal"; @@ -165,69 +174,69 @@ class TemporalUnit$ { //public java.time.temporal.ChronoField (shadow created for its nullability, generated) class ChronoField$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified java.lang.String getDisplayName(@NotNull java.util.Locale p0) { return null; } - @NotModified long getFrom(@NotNull java.time.temporal.TemporalAccessor p0) { return 0; } - @NotModified boolean isSupportedBy(@NotNull java.time.temporal.TemporalAccessor p0) { return false; } - @NotModified java.time.temporal.ValueRange rangeRefinedBy(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } + @NotModified String getDisplayName(@NotNull Locale p0) { return null; } + @NotModified long getFrom(@NotNull TemporalAccessor p0) { return 0; } + @NotModified boolean isSupportedBy(@NotNull TemporalAccessor p0) { return false; } + @NotModified ValueRange rangeRefinedBy(@NotNull TemporalAccessor p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.time.temporal.TemporalUnit getBaseUnit() { return null; } - @NotModified java.time.temporal.TemporalUnit getRangeUnit() { return null; } + @NotModified TemporalUnit getBaseUnit() { return null; } + @NotModified TemporalUnit getRangeUnit() { return null; } @NotModified boolean isDateBased() { return false; } @NotModified boolean isTimeBased() { return false; } - @NotModified java.time.temporal.ValueRange range() { return null; } + @NotModified ValueRange range() { return null; } } //public java.time.temporal.TemporalField (shadow created for its nullability, generated) class TemporalField$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified java.lang.String getDisplayName(@NotNull java.util.Locale p0) { return null; } - @NotModified long getFrom(@NotNull java.time.temporal.TemporalAccessor p0) { return 0; } - @NotModified boolean isSupportedBy(@NotNull java.time.temporal.TemporalAccessor p0) { return false; } - @NotModified java.time.temporal.ValueRange rangeRefinedBy(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } - @Nullable java.time.temporal.TemporalAccessor resolve(@NotNull java.util.Map p0, @NotNull java.time.temporal.TemporalAccessor p1, @NotNull java.time.format.ResolverStyle p2) { return null; } + @NotModified String getDisplayName(@NotNull Locale p0) { return null; } + @NotModified long getFrom(@NotNull TemporalAccessor p0) { return 0; } + @NotModified boolean isSupportedBy(@NotNull TemporalAccessor p0) { return false; } + @NotModified ValueRange rangeRefinedBy(@NotNull TemporalAccessor p0) { return null; } + @Nullable TemporalAccessor resolve(@NotNull Map p0, @NotNull TemporalAccessor p1, @NotNull ResolverStyle p2) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.time.temporal.TemporalUnit getBaseUnit() { return null; } - @NotModified java.time.temporal.TemporalUnit getRangeUnit() { return null; } + @NotModified TemporalUnit getBaseUnit() { return null; } + @NotModified TemporalUnit getRangeUnit() { return null; } @NotModified boolean isDateBased() { return false; } @NotModified boolean isTimeBased() { return false; } - @NotModified java.time.temporal.ValueRange range() { return null; } + @NotModified ValueRange range() { return null; } } //public java.time.temporal.TemporalQuery (shadow created for its nullability, generated) class TemporalQuery$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified R queryFrom(@NotNull java.time.temporal.TemporalAccessor p0) { return null; } + @NotModified R queryFrom(@NotNull TemporalAccessor p0) { return null; } } //public java.time.temporal.UnsupportedTemporalTypeException (shadow created for its nullability, generated) class UnsupportedTemporalTypeException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - UnsupportedTemporalTypeException$(@Nullable java.lang.String p0) { } - UnsupportedTemporalTypeException$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1) { } + UnsupportedTemporalTypeException$(@Nullable String p0) { } + UnsupportedTemporalTypeException$(@Nullable String p0, @Nullable Throwable p1) { } } //public java.time.temporal.WeekFields (shadow created for its nullability, generated) class WeekFields$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.time.temporal.WeekFields of(@NotNull java.time.DayOfWeek p0, int p1) { return null; } - static java.time.temporal.WeekFields of(@NotNull java.util.Locale p0) { return null; } + static WeekFields of(@NotNull DayOfWeek p0, int p1) { return null; } + static WeekFields of(@NotNull Locale p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.time.DayOfWeek getFirstDayOfWeek() { return null; } + @NotModified DayOfWeek getFirstDayOfWeek() { return null; } @NotModified int getMinimalDaysInFirstWeek() { return 0; } } //public java.time.temporal.TemporalQueries (shadow created for its nullability, generated) class TemporalQueries$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotNull(nullableArguments = 0) static java.time.temporal.TemporalQuery chronology() { return null; } - @NotNull(nullableArguments = 0) static java.time.temporal.TemporalQuery localDate() { return null; } - @NotNull(nullableArguments = 0) static java.time.temporal.TemporalQuery localTime() { return null; } - @NotNull(nullableArguments = 0) static java.time.temporal.TemporalQuery offset() { return null; } - @NotNull(nullableArguments = 0) static java.time.temporal.TemporalQuery precision() { return null; } - @NotNull(nullableArguments = 0) static java.time.temporal.TemporalQuery zone() { return null; } - @NotNull(nullableArguments = 0) static java.time.temporal.TemporalQuery zoneId() { return null; } + @NotNull(nullableArguments = 0) static TemporalQuery chronology() { return null; } + @NotNull(nullableArguments = 0) static TemporalQuery localDate() { return null; } + @NotNull(nullableArguments = 0) static TemporalQuery localTime() { return null; } + @NotNull(nullableArguments = 0) static TemporalQuery offset() { return null; } + @NotNull(nullableArguments = 0) static TemporalQuery precision() { return null; } + @NotNull(nullableArguments = 0) static TemporalQuery zone() { return null; } + @NotNull(nullableArguments = 0) static TemporalQuery zoneId() { return null; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtil.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtil.java index 9622f07d27..ed912eaedd 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtil.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtil.java @@ -16,13 +16,30 @@ */ package io.codelaser.maddi.aapi.archive.jdk; +import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.io.PrintStream; +import java.io.PrintWriter; +import java.io.Reader; +import java.io.Writer; +import java.math.BigDecimal; +import java.math.BigInteger; import java.nio.ByteBuffer; +import java.nio.LongBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.charset.Charset; +import java.nio.file.Path; +import java.security.Permission; import java.time.Instant; +import java.time.ZoneId; +import java.time.ZonedDateTime; import java.util.*; import java.util.function.*; import java.util.random.RandomGenerator; +import java.util.regex.MatchResult; +import java.util.regex.Pattern; import java.util.stream.*; import io.codelaser.maddi.annotation.*; @@ -279,7 +296,7 @@ boolean containsValue(/*@Immutable(hc=true)[T] @Independent(hc=true)[H] @NotModi @Container class AbstractQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } + @Modified boolean addAll(@NotNull Collection p0) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified E remove() { return null; } @@ -289,7 +306,7 @@ class AbstractQueue$ { @Container class AbstractSequentialList$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified boolean addAll(int p0, @NotNull java.util.Collection p1) { return false; } + @Modified boolean addAll(int p0, @NotNull Collection p1) { return false; } } //public abstract class AbstractSet extends AbstractCollection implements Set @@ -313,21 +330,21 @@ class ArrayDeque$ { ArrayDeque$(@NotNull @Independent(hc = true) @NotModified Collection c) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } - boolean contains(@Nullable java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.Consumer p0) { } + @Modified boolean addAll(@NotNull Collection p0) { return false; } + boolean contains(@Nullable Object p0) { return false; } + void forEach(@NotNull Consumer p0) { } @Nullable E peek() { return null; } @Nullable E peekFirst() { return null; } @Nullable E peekLast() { return null; } @Modified @Nullable E poll() { return null; } @Modified @Nullable E pollFirst() { return null; } @Modified @Nullable E pollLast() { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeFirstOccurrence(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean removeLastOccurrence(@Nullable java.lang.Object p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeFirstOccurrence(@Nullable Object p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean removeLastOccurrence(@Nullable Object p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1573,14 +1590,14 @@ class BitSet$ { @NotModified IntStream stream() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void and(@NotNull java.util.BitSet p0) { } - void andNot(@NotNull java.util.BitSet p0) { } - void or(@NotNull java.util.BitSet p0) { } - static java.util.BitSet valueOf(@NotNull java.nio.ByteBuffer p0) { return null; } - static java.util.BitSet valueOf(@NotNull java.nio.LongBuffer p0) { return null; } - static java.util.BitSet valueOf(@NotNull byte[] p0) { return null; } - static java.util.BitSet valueOf(@NotNull long[] p0) { return null; } - void xor(@NotNull java.util.BitSet p0) { } + void and(@NotNull BitSet p0) { } + void andNot(@NotNull BitSet p0) { } + void or(@NotNull BitSet p0) { } + static BitSet valueOf(@NotNull ByteBuffer p0) { return null; } + static BitSet valueOf(@NotNull LongBuffer p0) { return null; } + static BitSet valueOf(@NotNull byte[] p0) { return null; } + static BitSet valueOf(@NotNull long[] p0) { return null; } + void xor(@NotNull BitSet p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void clear() { } @@ -2052,10 +2069,10 @@ static Comparator comparingDouble( @ImmutableContainer class Currency$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.lang.String getDisplayName(@NotNull java.util.Locale p0) { return null; } - @Nullable static java.util.Currency getInstance(@NotNull java.util.Locale p0) { return null; } - static java.util.Currency getInstance(@NotNull java.lang.String p0) { return null; } - java.lang.String getSymbol(@NotNull java.util.Locale p0) { return null; } + String getDisplayName(@NotNull Locale p0) { return null; } + @Nullable static Currency getInstance(@NotNull Locale p0) { return null; } + static Currency getInstance(@NotNull String p0) { return null; } + String getSymbol(@NotNull Locale p0) { return null; } } //public class Date implements Serializable, Cloneable, Comparable @@ -2128,12 +2145,12 @@ class Deque$ { @NotModified @Independent(hc = true, except = "remove") Iterator descendingIterator() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } - boolean contains(@Nullable java.lang.Object p0) { return false; } + @Modified boolean addAll(@NotNull Collection p0) { return false; } + boolean contains(@Nullable Object p0) { return false; } @Modified @Nullable E poll() { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeFirstOccurrence(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeLastOccurrence(@Nullable java.lang.Object p0) { return false; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeFirstOccurrence(@Nullable Object p0) { return false; } + @Modified boolean removeLastOccurrence(@Nullable Object p0) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean offer(E p0) { return false; } @@ -2155,7 +2172,7 @@ class Dictionary$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) @Modified @Nullable V put(K p0, V p1) { return null; } - @Modified @Nullable V remove(@NotNull java.lang.Object p0) { return null; } + @Modified @Nullable V remove(@NotNull Object p0) { return null; } } //public class EnumMap, V> extends AbstractMap implements Cloneable, Serializable @@ -2164,26 +2181,26 @@ class EnumMap$, V> { EnumMap$(/*@NotModified[O]*/ @Independent(hc = true) @NotNull Map m) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - EnumMap$(@NotNull java.lang.Class p0) { } - EnumMap$(@NotNull java.util.EnumMap p0) { } - boolean containsKey(@Nullable java.lang.Object p0) { return false; } - boolean containsValue(@Nullable java.lang.Object p0) { return false; } - @Nullable V get(@Nullable java.lang.Object p0) { return null; } + EnumMap$(@NotNull Class p0) { } + EnumMap$(@NotNull EnumMap p0) { } + boolean containsKey(@Nullable Object p0) { return false; } + boolean containsValue(@Nullable Object p0) { return false; } + @Nullable V get(@Nullable Object p0) { return null; } @Modified @Nullable V put(K p0, V p1) { return null; } - @Modified void putAll(@NotNull java.util.Map p0) { } - @Modified @Nullable V remove(@Nullable java.lang.Object p0) { return null; } + @Modified void putAll(@NotNull Map p0) { } + @Modified @Nullable V remove(@Nullable Object p0) { return null; } } //public abstract class EnumSet> extends AbstractSet implements Cloneable, Serializable @Container class EnumSet$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static > java.util.EnumSet allOf(@NotNull java.lang.Class p0) { return null; } - static > java.util.EnumSet complementOf(@NotNull java.util.EnumSet p0) { return null; } - static > java.util.EnumSet copyOf(@NotNull java.util.Collection p0) { return null; } - static > java.util.EnumSet copyOf(@NotNull java.util.EnumSet p0) { return null; } - static > java.util.EnumSet noneOf(@NotNull java.lang.Class p0) { return null; } - static > java.util.EnumSet of(E p0, @NotNull E... p1) { return null; } + static > EnumSet allOf(@NotNull Class p0) { return null; } + static > EnumSet complementOf(@NotNull EnumSet p0) { return null; } + static > EnumSet copyOf(@NotNull Collection p0) { return null; } + static > EnumSet copyOf(@NotNull EnumSet p0) { return null; } + static > EnumSet noneOf(@NotNull Class p0) { return null; } + static > EnumSet of(E p0, @NotNull E... p1) { return null; } } //public interface Enumeration @@ -2194,7 +2211,7 @@ class Enumeration$ { @Modified E nextElement() { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.util.Iterator asIterator() { return null; } + @NotModified Iterator asIterator() { return null; } // a contract for every implementation, as Iterator.hasNext: a lazy one computes the next element here @Modified boolean hasMoreElements() { return false; } @@ -2392,22 +2409,22 @@ class Hashtable$ { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified V compute(K p0, @NotNull(nullableArguments = {1, 2}) java.util.function.BiFunction p1) { return null; } - @Modified V computeIfAbsent(K p0, @NotNull java.util.function.Function p1) { return null; } - @Modified @Nullable V computeIfPresent(K p0, @NotNull(nullableArguments = 2) java.util.function.BiFunction p1) { return null; } - boolean containsKey(@NotNull java.lang.Object p0) { return false; } - boolean containsValue(@NotNull java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.BiConsumer p0) { } - @Nullable V get(@NotNull java.lang.Object p0) { return null; } - V getOrDefault(@NotNull java.lang.Object p0, @Nullable V p1) { return null; } - @Modified V merge(K p0, V p1, @NotNull(nullableArguments = 2) java.util.function.BiFunction p2) { return null; } + @Modified V compute(K p0, @NotNull(nullableArguments = {1, 2}) BiFunction p1) { return null; } + @Modified V computeIfAbsent(K p0, @NotNull Function p1) { return null; } + @Modified @Nullable V computeIfPresent(K p0, @NotNull(nullableArguments = 2) BiFunction p1) { return null; } + boolean containsKey(@NotNull Object p0) { return false; } + boolean containsValue(@NotNull Object p0) { return false; } + void forEach(@NotNull BiConsumer p0) { } + @Nullable V get(@NotNull Object p0) { return null; } + V getOrDefault(@NotNull Object p0, @Nullable V p1) { return null; } + @Modified V merge(K p0, V p1, @NotNull(nullableArguments = 2) BiFunction p2) { return null; } @Modified @Nullable V put(K p0, V p1) { return null; } - @Modified void putAll(@NotNull java.util.Map p0) { } + @Modified void putAll(@NotNull Map p0) { } @Modified @Nullable V putIfAbsent(K p0, V p1) { return null; } - @Modified @Nullable V remove(@NotNull java.lang.Object p0) { return null; } - @Modified boolean remove(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1) { return false; } + @Modified @Nullable V remove(@NotNull Object p0) { return null; } + @Modified boolean remove(@NotNull Object p0, @NotNull Object p1) { return false; } @Modified @Nullable V replace(K p0, V p1) { return null; } - @Modified void replaceAll(@NotNull java.util.function.BiFunction p0) { } + @Modified void replaceAll(@NotNull BiFunction p0) { } } //public class IdentityHashMap extends AbstractMap implements Map, Serializable, Cloneable @@ -2416,15 +2433,15 @@ class IdentityHashMap$ { IdentityHashMap$(/*@NotModified[O]*/ @Independent(hc = true) @NotNull Map m) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean containsKey(@Nullable java.lang.Object p0) { return false; } - boolean containsValue(@Nullable java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.BiConsumer p0) { } - @Nullable V get(@Nullable java.lang.Object p0) { return null; } + boolean containsKey(@Nullable Object p0) { return false; } + boolean containsValue(@Nullable Object p0) { return false; } + void forEach(@NotNull BiConsumer p0) { } + @Nullable V get(@Nullable Object p0) { return null; } @Modified @Nullable V put(K p0, V p1) { return null; } - @Modified void putAll(@NotNull java.util.Map p0) { } - @Modified @Nullable V remove(@Nullable java.lang.Object p0) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0, @Nullable java.lang.Object p1) { return false; } - @Modified void replaceAll(@NotNull java.util.function.BiFunction p0) { } + @Modified void putAll(@NotNull Map p0) { } + @Modified @Nullable V remove(@Nullable Object p0) { return null; } + @Modified boolean remove(@Nullable Object p0, @Nullable Object p1) { return false; } + @Modified void replaceAll(@NotNull BiFunction p0) { } } //public interface Iterator @@ -2446,14 +2463,14 @@ class LinkedHashMap$ { LinkedHashMap$(/*@NotModified[O]*/ @Independent(hc = true) @NotNull Map m) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean containsValue(@Nullable java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.BiConsumer p0) { } - @Nullable V get(@Nullable java.lang.Object p0) { return null; } - V getOrDefault(@Nullable java.lang.Object p0, @Nullable V p1) { return null; } + boolean containsValue(@Nullable Object p0) { return false; } + void forEach(@NotNull BiConsumer p0) { } + @Nullable V get(@Nullable Object p0) { return null; } + V getOrDefault(@Nullable Object p0, @Nullable V p1) { return null; } @Modified @Nullable V putFirst(K p0, V p1) { return null; } @Modified @Nullable V putLast(K p0, V p1) { return null; } - boolean removeEldestEntry(@NotNull java.util.Map.Entry p0) { return false; } - @Modified void replaceAll(@NotNull java.util.function.BiFunction p0) { } + boolean removeEldestEntry(@NotNull Map.Entry p0) { return false; } + @Modified void replaceAll(@NotNull BiFunction p0) { } } //public class LinkedHashSet extends HashSet implements SequencedSet, Cloneable, Serializable @@ -2838,7 +2855,7 @@ static List copyOf(/*@NotModified[O]*/ @NotNull @Independent(hc = true) C } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.util.List ofLazy(int p0, @NotNull java.util.function.IntFunction p1) { return null; } + static List ofLazy(int p0, @NotNull IntFunction p1) { return null; } } //public interface ListIterator extends Iterator @@ -3379,7 +3396,7 @@ static Map copyOf( /*@NotModified[O]*/ @Independent(hc = true) @NotNull Map map) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.util.Map ofLazy(@NotNull java.util.Set p0, @NotNull java.util.function.Function p1) { return null; } + static Map ofLazy(@NotNull Set p0, @NotNull Function p1) { return null; } } //public interface NavigableMap implements SortedMap @@ -3808,18 +3825,18 @@ class PriorityQueue$ { @Nullable @NotModified Comparator comparator() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PriorityQueue$(@Nullable java.util.Comparator p0) { } - PriorityQueue$(@NotNull @Independent(hc = true) @NotModified java.util.PriorityQueue p0) { } - PriorityQueue$(@NotNull @Independent(hc = true) @NotModified java.util.SortedSet p0) { } - PriorityQueue$(int p0, @Nullable java.util.Comparator p1) { } - boolean contains(@Nullable java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.Consumer p0) { } + PriorityQueue$(@Nullable Comparator p0) { } + PriorityQueue$(@NotNull @Independent(hc = true) @NotModified PriorityQueue p0) { } + PriorityQueue$(@NotNull @Independent(hc = true) @NotModified SortedSet p0) { } + PriorityQueue$(int p0, @Nullable Comparator p1) { } + boolean contains(@Nullable Object p0) { return false; } + void forEach(@NotNull Consumer p0) { } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -3834,37 +3851,37 @@ class Properties$ { String getProperty(/*@Independent[M] @NotModified[O]*/ @NotNull String key, @Nullable String defaultValue) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Properties$(@Nullable java.util.Properties p0) { } - @Modified java.lang.Object compute(@NotNull java.lang.Object p0, @NotNull(nullableArguments = 1) java.util.function.BiFunction p1) { return null; } - @Modified java.lang.Object computeIfAbsent(@NotNull java.lang.Object p0, @NotNull java.util.function.Function p1) { return null; } - @Modified @Nullable java.lang.Object computeIfPresent(@NotNull java.lang.Object p0, @NotNull java.util.function.BiFunction p1) { return null; } - boolean contains(@NotNull java.lang.Object p0) { return false; } - boolean containsKey(@NotNull java.lang.Object p0) { return false; } - boolean containsValue(@NotNull java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.BiConsumer p0) { } - @Nullable java.lang.Object get(@NotNull java.lang.Object p0) { return null; } - java.lang.Object getOrDefault(@NotNull java.lang.Object p0, @Nullable java.lang.Object p1) { return null; } - void list(@NotNull java.io.PrintStream p0) { } - void list(@NotNull java.io.PrintWriter p0) { } - @Modified void load(@NotNull java.io.InputStream p0) { } - @Modified void load(@NotNull java.io.Reader p0) { } - @Modified void loadFromXML(@NotNull java.io.InputStream p0) { } - @Modified java.lang.Object merge(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1, @NotNull java.util.function.BiFunction p2) { return null; } - @Modified @Nullable java.lang.Object put(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1) { return null; } - @Modified void putAll(@NotNull java.util.Map p0) { } - @Modified @Nullable java.lang.Object putIfAbsent(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1) { return null; } - @Modified @Nullable java.lang.Object remove(@NotNull java.lang.Object p0) { return null; } - @Modified boolean remove(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1) { return false; } - @Modified @Nullable java.lang.Object replace(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1) { return null; } - @Modified boolean replace(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1, @NotNull java.lang.Object p2) { return false; } - @Modified void replaceAll(@NotNull java.util.function.BiFunction p0) { } - void save(@NotNull java.io.OutputStream p0, @Nullable java.lang.String p1) { } - @Modified @Nullable java.lang.Object setProperty(@NotNull java.lang.String p0, @NotNull java.lang.String p1) { return null; } - void store(@NotNull java.io.OutputStream p0, @Nullable java.lang.String p1) { } - void store(@NotNull java.io.Writer p0, @Nullable java.lang.String p1) { } - @Modified void storeToXML(@NotNull java.io.OutputStream p0, @Nullable java.lang.String p1) { } - @Modified void storeToXML(@NotNull java.io.OutputStream p0, @Nullable java.lang.String p1, @NotNull java.nio.charset.Charset p2) { } - @Modified void storeToXML(@NotNull java.io.OutputStream p0, @Nullable java.lang.String p1, @NotNull java.lang.String p2) { } + Properties$(@Nullable Properties p0) { } + @Modified Object compute(@NotNull Object p0, @NotNull(nullableArguments = 1) BiFunction p1) { return null; } + @Modified Object computeIfAbsent(@NotNull Object p0, @NotNull Function p1) { return null; } + @Modified @Nullable Object computeIfPresent(@NotNull Object p0, @NotNull BiFunction p1) { return null; } + boolean contains(@NotNull Object p0) { return false; } + boolean containsKey(@NotNull Object p0) { return false; } + boolean containsValue(@NotNull Object p0) { return false; } + void forEach(@NotNull BiConsumer p0) { } + @Nullable Object get(@NotNull Object p0) { return null; } + Object getOrDefault(@NotNull Object p0, @Nullable Object p1) { return null; } + void list(@NotNull PrintStream p0) { } + void list(@NotNull PrintWriter p0) { } + @Modified void load(@NotNull InputStream p0) { } + @Modified void load(@NotNull Reader p0) { } + @Modified void loadFromXML(@NotNull InputStream p0) { } + @Modified Object merge(@NotNull Object p0, @NotNull Object p1, @NotNull BiFunction p2) { return null; } + @Modified @Nullable Object put(@NotNull Object p0, @NotNull Object p1) { return null; } + @Modified void putAll(@NotNull Map p0) { } + @Modified @Nullable Object putIfAbsent(@NotNull Object p0, @NotNull Object p1) { return null; } + @Modified @Nullable Object remove(@NotNull Object p0) { return null; } + @Modified boolean remove(@NotNull Object p0, @NotNull Object p1) { return false; } + @Modified @Nullable Object replace(@NotNull Object p0, @NotNull Object p1) { return null; } + @Modified boolean replace(@NotNull Object p0, @NotNull Object p1, @NotNull Object p2) { return false; } + @Modified void replaceAll(@NotNull BiFunction p0) { } + void save(@NotNull OutputStream p0, @Nullable String p1) { } + @Modified @Nullable Object setProperty(@NotNull String p0, @NotNull String p1) { return null; } + void store(@NotNull OutputStream p0, @Nullable String p1) { } + void store(@NotNull Writer p0, @Nullable String p1) { } + @Modified void storeToXML(@NotNull OutputStream p0, @Nullable String p1) { } + @Modified void storeToXML(@NotNull OutputStream p0, @Nullable String p1, @NotNull Charset p2) { } + @Modified void storeToXML(@NotNull OutputStream p0, @Nullable String p1, @NotNull String p2) { } } //public interface Queue extends Collection @@ -4174,7 +4191,7 @@ static Set of( static Set copyOf(/*@NotModified[O]*/ @NotNull @Independent(hc = true) Collection coll) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.util.Set ofLazy(@NotNull java.util.Set p0, @NotNull java.util.function.Predicate p1) { return null; } + static Set ofLazy(@NotNull Set p0, @NotNull Predicate p1) { return null; } } //public interface SortedMap implements SequencedMap @@ -4251,43 +4268,43 @@ class Spliterator$ { //public java.util.Spliterator.OfDouble (shadow created for its nullability, generated) class OfDouble { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void forEachRemaining(@NotNull java.util.function.Consumer p0) { } - void forEachRemaining(@NotNull java.util.function.DoubleConsumer p0) { } - boolean tryAdvance(@NotNull java.util.function.Consumer p0) { return false; } - boolean tryAdvance(@NotNull java.util.function.DoubleConsumer p0) { return false; } - @Nullable java.util.Spliterator.OfDouble trySplit() { return null; } + void forEachRemaining(@NotNull Consumer p0) { } + void forEachRemaining(@NotNull DoubleConsumer p0) { } + boolean tryAdvance(@NotNull Consumer p0) { return false; } + boolean tryAdvance(@NotNull DoubleConsumer p0) { return false; } + @Nullable Spliterator.OfDouble trySplit() { return null; } } //public java.util.Spliterator.OfInt (shadow created for its nullability, generated) class OfInt { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void forEachRemaining(@NotNull java.util.function.Consumer p0) { } - void forEachRemaining(@NotNull java.util.function.IntConsumer p0) { } - boolean tryAdvance(@NotNull java.util.function.Consumer p0) { return false; } - boolean tryAdvance(@NotNull java.util.function.IntConsumer p0) { return false; } - @Nullable java.util.Spliterator.OfInt trySplit() { return null; } + void forEachRemaining(@NotNull Consumer p0) { } + void forEachRemaining(@NotNull IntConsumer p0) { } + boolean tryAdvance(@NotNull Consumer p0) { return false; } + boolean tryAdvance(@NotNull IntConsumer p0) { return false; } + @Nullable Spliterator.OfInt trySplit() { return null; } } //public java.util.Spliterator.OfLong (shadow created for its nullability, generated) class OfLong { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void forEachRemaining(@NotNull java.util.function.Consumer p0) { } - void forEachRemaining(@NotNull java.util.function.LongConsumer p0) { } - boolean tryAdvance(@NotNull java.util.function.Consumer p0) { return false; } - boolean tryAdvance(@NotNull java.util.function.LongConsumer p0) { return false; } - @Nullable java.util.Spliterator.OfLong trySplit() { return null; } + void forEachRemaining(@NotNull Consumer p0) { } + void forEachRemaining(@NotNull LongConsumer p0) { } + boolean tryAdvance(@NotNull Consumer p0) { return false; } + boolean tryAdvance(@NotNull LongConsumer p0) { return false; } + @Nullable Spliterator.OfLong trySplit() { return null; } } //public java.util.Spliterator.OfPrimitive (shadow created for its nullability, generated) - class OfPrimitive> { + class OfPrimitive> { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) @Nullable T_SPLITR trySplit() { return null; } } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void forEachRemaining(@NotNull java.util.function.Consumer p0) { } - boolean tryAdvance(@NotNull java.util.function.Consumer p0) { return false; } - @Nullable java.util.Spliterator trySplit() { return null; } + void forEachRemaining(@NotNull Consumer p0) { } + boolean tryAdvance(@NotNull Consumer p0) { return false; } + @Nullable Spliterator trySplit() { return null; } } //public class Stack extends Vector @@ -4312,11 +4329,11 @@ class StringJoiner$ { @NotModified public String toString() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - StringJoiner$(@NotNull java.lang.CharSequence p0) { } - StringJoiner$(@NotNull java.lang.CharSequence p0, @NotNull java.lang.CharSequence p1, @NotNull java.lang.CharSequence p2) { } - @Modified java.util.StringJoiner add(@Nullable java.lang.CharSequence p0) { return null; } - @Modified java.util.StringJoiner merge(@NotNull java.util.StringJoiner p0) { return null; } - @Modified java.util.StringJoiner setEmptyValue(@NotNull java.lang.CharSequence p0) { return null; } + StringJoiner$(@NotNull CharSequence p0) { } + StringJoiner$(@NotNull CharSequence p0, @NotNull CharSequence p1, @NotNull CharSequence p2) { } + @Modified StringJoiner add(@Nullable CharSequence p0) { return null; } + @Modified StringJoiner merge(@NotNull StringJoiner p0) { return null; } + @Modified StringJoiner setEmptyValue(@NotNull CharSequence p0) { return null; } } //public class StringTokenizer implements Enumeration @@ -4328,10 +4345,10 @@ class StringTokenizer$ { @NotModified boolean hasMoreElements() { return false; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - StringTokenizer$(@NotNull java.lang.String p0) { } - StringTokenizer$(@NotNull java.lang.String p0, @Nullable java.lang.String p1) { } - StringTokenizer$(@NotNull java.lang.String p0, @Nullable java.lang.String p1, boolean p2) { } - @Modified java.lang.String nextToken(@NotNull java.lang.String p0) { return null; } + StringTokenizer$(@NotNull String p0) { } + StringTokenizer$(@NotNull String p0, @Nullable String p1) { } + StringTokenizer$(@NotNull String p0, @Nullable String p1, boolean p2) { } + @Modified String nextToken(@NotNull String p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified Object nextElement() { return null; } @@ -4567,7 +4584,7 @@ void forEach(/*@IgnoreModifications[T] @Independent[M]*/ @NotNull BiConsumer function) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - TreeMap$(@Nullable java.util.Comparator p0) { } + TreeMap$(@Nullable Comparator p0) { } } //public class TreeSet extends AbstractSet implements NavigableSet, Cloneable, Serializable @@ -4576,18 +4593,18 @@ class TreeSet$ { TreeSet$(@NotNull @Independent(hc = true) @NotModified Collection c) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - TreeSet$(@Nullable java.util.Comparator p0) { } - TreeSet$(@NotNull @Independent(hc = true) @NotModified java.util.SortedSet p0) { } - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } + TreeSet$(@Nullable Comparator p0) { } + TreeSet$(@NotNull @Independent(hc = true) @NotModified SortedSet p0) { } + @Modified boolean addAll(@NotNull Collection p0) { return false; } @Nullable E ceiling(E p0) { return null; } - @Nullable java.util.Comparator comparator() { return null; } - boolean contains(@Nullable java.lang.Object p0) { return false; } + @Nullable Comparator comparator() { return null; } + boolean contains(@Nullable Object p0) { return false; } @Nullable E floor(E p0) { return null; } @Nullable E higher(E p0) { return null; } @Nullable E lower(E p0) { return null; } @Modified @Nullable E pollFirst() { return null; } @Modified @Nullable E pollLast() { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } + @Modified boolean remove(@Nullable Object p0) { return false; } } //public final class UUID implements Serializable, Comparable @@ -4797,39 +4814,39 @@ class WeakHashMap$ { WeakHashMap$(/*@NotModified[O]*/ @Independent(hc = true) @NotNull Map m) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean containsKey(@Nullable java.lang.Object p0) { return false; } - boolean containsValue(@Nullable java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.BiConsumer p0) { } - @Nullable V get(@Nullable java.lang.Object p0) { return null; } + boolean containsKey(@Nullable Object p0) { return false; } + boolean containsValue(@Nullable Object p0) { return false; } + void forEach(@NotNull BiConsumer p0) { } + @Nullable V get(@Nullable Object p0) { return null; } @Modified @Nullable V put(K p0, V p1) { return null; } - @Modified void putAll(@NotNull java.util.Map p0) { } - @Modified @Nullable V remove(@Nullable java.lang.Object p0) { return null; } - @Modified void replaceAll(@NotNull java.util.function.BiFunction p0) { } + @Modified void putAll(@NotNull Map p0) { } + @Modified @Nullable V remove(@Nullable Object p0) { return null; } + @Modified void replaceAll(@NotNull BiFunction p0) { } } //public java.util.Calendar (shadow created for its nullability, generated) class Calendar$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Calendar$(@NotNull java.util.TimeZone p0, @NotNull java.util.Locale p1) { } - boolean after(@NotNull java.lang.Object p0) { return false; } - boolean before(@NotNull java.lang.Object p0) { return false; } - int compareTo(@NotNull java.util.Calendar p0) { return 0; } - @NotModified @Nullable java.lang.String getDisplayName(int p0, int p1, @NotNull java.util.Locale p2) { return null; } - @NotModified @Nullable java.util.Map getDisplayNames(int p0, int p1, @NotNull java.util.Locale p2) { return null; } - static java.util.Calendar getInstance(@NotNull java.util.Locale p0) { return null; } - static java.util.Calendar getInstance(@NotNull java.util.TimeZone p0) { return null; } - static java.util.Calendar getInstance(@NotNull java.util.TimeZone p0, @NotNull java.util.Locale p1) { return null; } - @Modified void setTime(@NotNull java.util.Date p0) { } - @Modified void setTimeZone(@NotNull java.util.TimeZone p0) { } + Calendar$(@NotNull TimeZone p0, @NotNull Locale p1) { } + boolean after(@NotNull Object p0) { return false; } + boolean before(@NotNull Object p0) { return false; } + int compareTo(@NotNull Calendar p0) { return 0; } + @NotModified @Nullable String getDisplayName(int p0, int p1, @NotNull Locale p2) { return null; } + @NotModified @Nullable Map getDisplayNames(int p0, int p1, @NotNull Locale p2) { return null; } + static Calendar getInstance(@NotNull Locale p0) { return null; } + static Calendar getInstance(@NotNull TimeZone p0) { return null; } + static Calendar getInstance(@NotNull TimeZone p0, @NotNull Locale p1) { return null; } + @Modified void setTime(@NotNull Date p0) { } + @Modified void setTimeZone(@NotNull TimeZone p0) { } //public java.util.Calendar.Builder (shadow created for its nullability, generated) class Builder { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified java.util.Calendar.Builder setCalendarType(@NotNull java.lang.String p0) { return null; } - @Modified java.util.Calendar.Builder setFields(@NotNull int... p0) { return null; } - @Modified java.util.Calendar.Builder setInstant(@NotNull java.util.Date p0) { return null; } - @Modified java.util.Calendar.Builder setLocale(@NotNull java.util.Locale p0) { return null; } - @Modified java.util.Calendar.Builder setTimeZone(@NotNull java.util.TimeZone p0) { return null; } + @Modified Calendar.Builder setCalendarType(@NotNull String p0) { return null; } + @Modified Calendar.Builder setFields(@NotNull int... p0) { return null; } + @Modified Calendar.Builder setInstant(@NotNull Date p0) { return null; } + @Modified Calendar.Builder setLocale(@NotNull Locale p0) { return null; } + @Modified Calendar.Builder setTimeZone(@NotNull TimeZone p0) { return null; } } // a modifying method, declared so (generated from the assumed-defaults list) @@ -4857,21 +4874,21 @@ class Builder { @NotModified int getMaximum(int p0) { return 0; } @NotModified int getMinimalDaysInFirstWeek() { return 0; } @NotModified int getMinimum(int p0) { return 0; } - @NotModified java.util.Date getTime() { return null; } + @NotModified Date getTime() { return null; } @NotModified long getTimeInMillis() { return 0; } - @NotModified java.util.TimeZone getTimeZone() { return null; } + @NotModified TimeZone getTimeZone() { return null; } @NotModified int getWeekYear() { return 0; } @NotModified int getWeeksInWeekYear() { return 0; } @NotModified boolean isLenient() { return false; } @NotModified boolean isSet(int p0) { return false; } @NotModified boolean isWeekDateSupported() { return false; } - @NotModified java.time.Instant toInstant() { return null; } + @NotModified Instant toInstant() { return null; } } //public java.util.DoubleSummaryStatistics (shadow created for its nullability, generated) class DoubleSummaryStatistics$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void combine(@NotNull java.util.DoubleSummaryStatistics p0) { } + void combine(@NotNull DoubleSummaryStatistics p0) { } // a query, declared so (generated from the assumed-defaults list) @NotModified double getAverage() { return 0; } @@ -4884,7 +4901,7 @@ void combine(@NotNull java.util.DoubleSummaryStatistics p0) { } //public java.util.EventObject (shadow created for its nullability, generated) class EventObject$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - EventObject$(@NotNull java.lang.Object p0) { } + EventObject$(@NotNull Object p0) { } // a query, declared so (generated from the assumed-defaults list) @NotModified Object getSource() { return null; } @@ -4893,32 +4910,32 @@ class EventObject$ { //public java.util.Formattable (shadow created for its nullability, generated) class Formattable$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void formatTo(@NotNull java.util.Formatter p0, int p1, int p2, int p3) { } + void formatTo(@NotNull Formatter p0, int p1, int p2, int p3) { } } //public java.util.Formatter (shadow created for its nullability, generated) class Formatter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Formatter$(@Nullable java.lang.Appendable p0) { } - Formatter$(@Nullable java.lang.Appendable p0, @Nullable java.util.Locale p1) { } - Formatter$(@NotNull java.io.File p0) { } - Formatter$(@NotNull java.io.File p0, @NotNull java.nio.charset.Charset p1, @Nullable java.util.Locale p2) { } - Formatter$(@NotNull java.io.File p0, @NotNull java.lang.String p1) { } - Formatter$(@NotNull java.io.File p0, @NotNull java.lang.String p1, @Nullable java.util.Locale p2) { } - Formatter$(@Nullable java.util.Locale p0) { } - Formatter$(@NotNull java.io.OutputStream p0) { } - Formatter$(@NotNull java.io.OutputStream p0, @NotNull java.nio.charset.Charset p1, @Nullable java.util.Locale p2) { } - Formatter$(@NotNull java.io.OutputStream p0, @NotNull java.lang.String p1) { } - Formatter$(@NotNull java.io.OutputStream p0, @NotNull java.lang.String p1, @Nullable java.util.Locale p2) { } - Formatter$(@NotNull java.io.PrintStream p0) { } - Formatter$(@NotNull java.lang.String p0) { } - Formatter$(@NotNull java.lang.String p0, @NotNull java.nio.charset.Charset p1, @Nullable java.util.Locale p2) { } - Formatter$(@NotNull java.lang.String p0, @NotNull java.lang.String p1) { } - Formatter$(@NotNull java.lang.String p0, @NotNull java.lang.String p1, @Nullable java.util.Locale p2) { } - java.util.Formatter format(@Nullable java.util.Locale p0, @NotNull java.lang.String p1, @NotNull(nullableArguments = 0) java.lang.Object... p2) { return null; } - java.util.Formatter format(@NotNull java.lang.String p0, @NotNull(nullableArguments = 0) java.lang.Object... p1) { return null; } - @Nullable java.io.IOException ioException() { return null; } - @Nullable java.util.Locale locale() { return null; } + Formatter$(@Nullable Appendable p0) { } + Formatter$(@Nullable Appendable p0, @Nullable Locale p1) { } + Formatter$(@NotNull File p0) { } + Formatter$(@NotNull File p0, @NotNull Charset p1, @Nullable Locale p2) { } + Formatter$(@NotNull File p0, @NotNull String p1) { } + Formatter$(@NotNull File p0, @NotNull String p1, @Nullable Locale p2) { } + Formatter$(@Nullable Locale p0) { } + Formatter$(@NotNull OutputStream p0) { } + Formatter$(@NotNull OutputStream p0, @NotNull Charset p1, @Nullable Locale p2) { } + Formatter$(@NotNull OutputStream p0, @NotNull String p1) { } + Formatter$(@NotNull OutputStream p0, @NotNull String p1, @Nullable Locale p2) { } + Formatter$(@NotNull PrintStream p0) { } + Formatter$(@NotNull String p0) { } + Formatter$(@NotNull String p0, @NotNull Charset p1, @Nullable Locale p2) { } + Formatter$(@NotNull String p0, @NotNull String p1) { } + Formatter$(@NotNull String p0, @NotNull String p1, @Nullable Locale p2) { } + Formatter format(@Nullable Locale p0, @NotNull String p1, @NotNull(nullableArguments = 0) Object... p2) { return null; } + Formatter format(@NotNull String p0, @NotNull(nullableArguments = 0) Object... p1) { return null; } + @Nullable IOException ioException() { return null; } + @Nullable Locale locale() { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void flush() { } @@ -4927,12 +4944,12 @@ class Formatter$ { //public java.util.GregorianCalendar (shadow created for its nullability, generated) class GregorianCalendar$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - GregorianCalendar$(@NotNull java.util.Locale p0) { } - GregorianCalendar$(@NotNull java.util.TimeZone p0) { } - GregorianCalendar$(@NotNull java.util.TimeZone p0, @NotNull java.util.Locale p1) { } - static java.util.GregorianCalendar from(@NotNull java.time.ZonedDateTime p0) { return null; } - @Modified void setGregorianChange(@NotNull java.util.Date p0) { } - @Modified void setTimeZone(@NotNull java.util.TimeZone p0) { } + GregorianCalendar$(@NotNull Locale p0) { } + GregorianCalendar$(@NotNull TimeZone p0) { } + GregorianCalendar$(@NotNull TimeZone p0, @NotNull Locale p1) { } + static GregorianCalendar from(@NotNull ZonedDateTime p0) { return null; } + @Modified void setGregorianChange(@NotNull Date p0) { } + @Modified void setTimeZone(@NotNull TimeZone p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void add(int p0, int p1) { } @@ -4943,16 +4960,16 @@ class GregorianCalendar$ { @NotModified int getActualMinimum(int p0) { return 0; } @NotModified String getCalendarType() { return null; } @NotModified int getGreatestMinimum(int p0) { return 0; } - @NotModified java.util.Date getGregorianChange() { return null; } + @NotModified Date getGregorianChange() { return null; } @NotModified int getLeastMaximum(int p0) { return 0; } @NotModified int getMaximum(int p0) { return 0; } @NotModified int getMinimum(int p0) { return 0; } - @NotModified java.util.TimeZone getTimeZone() { return null; } + @NotModified TimeZone getTimeZone() { return null; } @NotModified int getWeekYear() { return 0; } @NotModified int getWeeksInWeekYear() { return 0; } @NotModified boolean isLeapYear(int p0) { return false; } @NotModified boolean isWeekDateSupported() { return false; } - @NotModified java.time.ZonedDateTime toZonedDateTime() { return null; } + @NotModified ZonedDateTime toZonedDateTime() { return null; } } //public java.util.HexFormat (shadow created for its nullability, generated) @@ -4960,27 +4977,27 @@ class GregorianCalendar$ { @Immutable class HexFormat$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - A formatHex(A p0, @NotNull byte[] p1) { return null; } - A formatHex(A p0, @NotNull byte[] p1, int p2, int p3) { return null; } - java.lang.String formatHex(@NotNull byte[] p0) { return null; } - java.lang.String formatHex(@NotNull byte[] p0, int p1, int p2) { return null; } - static int fromHexDigits(@NotNull java.lang.CharSequence p0) { return 0; } - static int fromHexDigits(@NotNull java.lang.CharSequence p0, int p1, int p2) { return 0; } - static long fromHexDigitsToLong(@NotNull java.lang.CharSequence p0) { return 0; } - static long fromHexDigitsToLong(@NotNull java.lang.CharSequence p0, int p1, int p2) { return 0; } - static java.util.HexFormat ofDelimiter(@NotNull java.lang.String p0) { return null; } - byte[] parseHex(@NotNull java.lang.CharSequence p0) { return null; } - byte[] parseHex(@NotNull java.lang.CharSequence p0, int p1, int p2) { return null; } + A formatHex(A p0, @NotNull byte[] p1) { return null; } + A formatHex(A p0, @NotNull byte[] p1, int p2, int p3) { return null; } + String formatHex(@NotNull byte[] p0) { return null; } + String formatHex(@NotNull byte[] p0, int p1, int p2) { return null; } + static int fromHexDigits(@NotNull CharSequence p0) { return 0; } + static int fromHexDigits(@NotNull CharSequence p0, int p1, int p2) { return 0; } + static long fromHexDigitsToLong(@NotNull CharSequence p0) { return 0; } + static long fromHexDigitsToLong(@NotNull CharSequence p0, int p1, int p2) { return 0; } + static HexFormat ofDelimiter(@NotNull String p0) { return null; } + byte[] parseHex(@NotNull CharSequence p0) { return null; } + byte[] parseHex(@NotNull CharSequence p0, int p1, int p2) { return null; } byte[] parseHex(@NotNull char[] p0, int p1, int p2) { return null; } - java.util.HexFormat withDelimiter(@NotNull java.lang.String p0) { return null; } - java.util.HexFormat withPrefix(@NotNull java.lang.String p0) { return null; } - java.util.HexFormat withSuffix(@NotNull java.lang.String p0) { return null; } + HexFormat withDelimiter(@NotNull String p0) { return null; } + HexFormat withPrefix(@NotNull String p0) { return null; } + HexFormat withSuffix(@NotNull String p0) { return null; } } //public java.util.IntSummaryStatistics (shadow created for its nullability, generated) class IntSummaryStatistics$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void combine(@NotNull java.util.IntSummaryStatistics p0) { } + void combine(@NotNull IntSummaryStatistics p0) { } // a query, declared so (generated from the assumed-defaults list) @NotModified double getAverage() { return 0; } @@ -4993,16 +5010,16 @@ void combine(@NotNull java.util.IntSummaryStatistics p0) { } //public java.util.ListResourceBundle (shadow created for its nullability, generated) class ListResourceBundle$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.lang.Object handleGetObject(@Nullable java.lang.String p0) { return null; } + @Nullable Object handleGetObject(@Nullable String p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.util.Enumeration getKeys() { return null; } + @NotModified Enumeration getKeys() { return null; } } //public java.util.LongSummaryStatistics (shadow created for its nullability, generated) class LongSummaryStatistics$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void combine(@NotNull java.util.LongSummaryStatistics p0) { } + void combine(@NotNull LongSummaryStatistics p0) { } // a query, declared so (generated from the assumed-defaults list) @NotModified double getAverage() { return 0; } @@ -5015,9 +5032,9 @@ void combine(@NotNull java.util.LongSummaryStatistics p0) { } //public java.util.Observable (shadow created for its nullability, generated) class Observable$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void addObserver(@NotNull java.util.Observer p0) { } - @Modified void deleteObserver(@Nullable java.util.Observer p0) { } - void notifyObservers(@Nullable java.lang.Object p0) { } + @Modified void addObserver(@NotNull Observer p0) { } + @Modified void deleteObserver(@Nullable Observer p0) { } + void notifyObservers(@Nullable Object p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void deleteObservers() { } @@ -5030,24 +5047,24 @@ void notifyObservers(@Nullable java.lang.Object p0) { } //public java.util.Observer (shadow created for its nullability, generated) class Observer$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void update(@NotNull java.util.Observable p0, @Nullable java.lang.Object p1) { } + @Modified void update(@NotNull Observable p0, @Nullable Object p1) { } } //public java.util.OptionalLong (shadow created for its nullability, generated) @ImmutableContainer class OptionalLong$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void ifPresent(@NotNull java.util.function.LongConsumer p0) { } - void ifPresentOrElse(@NotNull java.util.function.LongConsumer p0, @NotNull java.lang.Runnable p1) { } - long orElseGet(@NotNull java.util.function.LongSupplier p0) { return 0; } - long orElseThrow(@NotNull java.util.function.Supplier p0) { return 0; } + void ifPresent(@NotNull LongConsumer p0) { } + void ifPresentOrElse(@NotNull LongConsumer p0, @NotNull Runnable p1) { } + long orElseGet(@NotNull LongSupplier p0) { return 0; } + long orElseThrow(@NotNull Supplier p0) { return 0; } } //public java.util.PropertyPermission (shadow created for its nullability, generated) class PropertyPermission$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PropertyPermission$(@NotNull java.lang.String p0, @Nullable java.lang.String p1) { } - boolean implies(@NotNull java.security.Permission p0) { return false; } + PropertyPermission$(@NotNull String p0, @Nullable String p1) { } + boolean implies(@NotNull Permission p0) { return false; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getActions() { return null; } @@ -5056,81 +5073,81 @@ class PropertyPermission$ { //public java.util.ResourceBundle (shadow created for its nullability, generated) class ResourceBundle$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static void clearCache(@NotNull java.lang.ClassLoader p0) { } - @NotModified boolean containsKey(@NotNull java.lang.String p0) { return false; } - @NotModified @Nullable java.lang.String getBaseBundleName() { return null; } - static java.util.ResourceBundle getBundle(@NotNull java.lang.String p0) { return null; } - static java.util.ResourceBundle getBundle(@NotNull java.lang.String p0, @NotNull java.util.ResourceBundle.Control p1) { return null; } - static java.util.ResourceBundle getBundle(@NotNull java.lang.String p0, @NotNull java.util.Locale p1) { return null; } - static java.util.ResourceBundle getBundle(@NotNull java.lang.String p0, @NotNull java.util.Locale p1, @NotNull java.lang.ClassLoader p2) { return null; } - static java.util.ResourceBundle getBundle(@NotNull java.lang.String p0, @NotNull java.util.Locale p1, @NotNull java.lang.ClassLoader p2, @NotNull java.util.ResourceBundle.Control p3) { return null; } - static java.util.ResourceBundle getBundle(@NotNull java.lang.String p0, @NotNull java.util.Locale p1, @NotNull java.util.ResourceBundle.Control p2) { return null; } - static java.util.ResourceBundle getBundle(@NotNull java.lang.String p0, @NotNull java.util.Locale p1, @NotNull java.lang.Module p2) { return null; } - static java.util.ResourceBundle getBundle(@NotNull java.lang.String p0, @NotNull java.lang.Module p1) { return null; } - @NotModified java.lang.Object getObject(@NotNull java.lang.String p0) { return null; } - @NotModified java.lang.String getString(@NotNull java.lang.String p0) { return null; } - @NotModified java.lang.String[] getStringArray(@NotNull java.lang.String p0) { return null; } - @Nullable java.lang.Object handleGetObject(@NotNull java.lang.String p0) { return null; } - void setParent(@Nullable java.util.ResourceBundle p0) { } + static void clearCache(@NotNull ClassLoader p0) { } + @NotModified boolean containsKey(@NotNull String p0) { return false; } + @NotModified @Nullable String getBaseBundleName() { return null; } + static ResourceBundle getBundle(@NotNull String p0) { return null; } + static ResourceBundle getBundle(@NotNull String p0, @NotNull ResourceBundle.Control p1) { return null; } + static ResourceBundle getBundle(@NotNull String p0, @NotNull Locale p1) { return null; } + static ResourceBundle getBundle(@NotNull String p0, @NotNull Locale p1, @NotNull ClassLoader p2) { return null; } + static ResourceBundle getBundle(@NotNull String p0, @NotNull Locale p1, @NotNull ClassLoader p2, @NotNull ResourceBundle.Control p3) { return null; } + static ResourceBundle getBundle(@NotNull String p0, @NotNull Locale p1, @NotNull ResourceBundle.Control p2) { return null; } + static ResourceBundle getBundle(@NotNull String p0, @NotNull Locale p1, @NotNull Module p2) { return null; } + static ResourceBundle getBundle(@NotNull String p0, @NotNull Module p1) { return null; } + @NotModified Object getObject(@NotNull String p0) { return null; } + @NotModified String getString(@NotNull String p0) { return null; } + @NotModified String[] getStringArray(@NotNull String p0) { return null; } + @Nullable Object handleGetObject(@NotNull String p0) { return null; } + void setParent(@Nullable ResourceBundle p0) { } //public java.util.ResourceBundle.Control (shadow created for its nullability, generated) class Control { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified java.util.List getCandidateLocales(@NotNull java.lang.String p0, @NotNull java.util.Locale p1) { return null; } - static java.util.ResourceBundle.Control getControl(@NotNull java.util.List p0) { return null; } - @NotModified @Nullable java.util.Locale getFallbackLocale(@NotNull java.lang.String p0, @NotNull java.util.Locale p1) { return null; } - @NotModified java.util.List getFormats(@NotNull java.lang.String p0) { return null; } - static java.util.ResourceBundle.Control getNoFallbackControl(@NotNull java.util.List p0) { return null; } - @NotModified long getTimeToLive(@NotNull java.lang.String p0, @NotNull java.util.Locale p1) { return 0; } - boolean needsReload(@NotNull java.lang.String p0, @NotNull java.util.Locale p1, @NotNull java.lang.String p2, @NotNull java.lang.ClassLoader p3, @NotNull java.util.ResourceBundle p4, long p5) { return false; } - @Nullable java.util.ResourceBundle newBundle(@NotNull java.lang.String p0, @NotNull java.util.Locale p1, @NotNull java.lang.String p2, @NotNull java.lang.ClassLoader p3, boolean p4) { return null; } - @NotModified java.lang.String toBundleName(@NotNull java.lang.String p0, @NotNull java.util.Locale p1) { return null; } - @NotModified java.lang.String toResourceName(@NotNull java.lang.String p0, @NotNull java.lang.String p1) { return null; } + @NotModified List getCandidateLocales(@NotNull String p0, @NotNull Locale p1) { return null; } + static ResourceBundle.Control getControl(@NotNull List p0) { return null; } + @NotModified @Nullable Locale getFallbackLocale(@NotNull String p0, @NotNull Locale p1) { return null; } + @NotModified List getFormats(@NotNull String p0) { return null; } + static ResourceBundle.Control getNoFallbackControl(@NotNull List p0) { return null; } + @NotModified long getTimeToLive(@NotNull String p0, @NotNull Locale p1) { return 0; } + boolean needsReload(@NotNull String p0, @NotNull Locale p1, @NotNull String p2, @NotNull ClassLoader p3, @NotNull ResourceBundle p4, long p5) { return false; } + @Nullable ResourceBundle newBundle(@NotNull String p0, @NotNull Locale p1, @NotNull String p2, @NotNull ClassLoader p3, boolean p4) { return null; } + @NotModified String toBundleName(@NotNull String p0, @NotNull Locale p1) { return null; } + @NotModified String toResourceName(@NotNull String p0, @NotNull String p1) { return null; } } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.util.Enumeration getKeys() { return null; } - @NotModified java.util.Locale getLocale() { return null; } + @NotModified Enumeration getKeys() { return null; } + @NotModified Locale getLocale() { return null; } } //public java.util.Scanner (shadow created for its nullability, generated) class Scanner$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Scanner$(@NotNull java.io.File p0) { } - Scanner$(@NotNull java.io.File p0, @NotNull java.nio.charset.Charset p1) { } - Scanner$(@NotNull java.io.File p0, @NotNull java.lang.String p1) { } - Scanner$(@NotNull java.io.InputStream p0) { } - Scanner$(@NotNull java.io.InputStream p0, @NotNull java.nio.charset.Charset p1) { } - Scanner$(@NotNull java.io.InputStream p0, @NotNull java.lang.String p1) { } - Scanner$(@NotNull java.nio.file.Path p0) { } - Scanner$(@NotNull java.nio.file.Path p0, @NotNull java.nio.charset.Charset p1) { } - Scanner$(@NotNull java.nio.file.Path p0, @NotNull java.lang.String p1) { } - Scanner$(@NotNull java.lang.Readable p0) { } - Scanner$(@NotNull java.nio.channels.ReadableByteChannel p0) { } - Scanner$(@NotNull java.nio.channels.ReadableByteChannel p0, @NotNull java.nio.charset.Charset p1) { } - Scanner$(@NotNull java.nio.channels.ReadableByteChannel p0, @NotNull java.lang.String p1) { } - Scanner$(@NotNull java.lang.String p0) { } - java.util.stream.Stream findAll(@NotNull java.util.regex.Pattern p0) { return null; } - java.util.stream.Stream findAll(@NotNull java.lang.String p0) { return null; } - @Nullable java.lang.String findInLine(@NotNull java.util.regex.Pattern p0) { return null; } - @Nullable java.lang.String findInLine(@NotNull java.lang.String p0) { return null; } - @Nullable java.lang.String findWithinHorizon(@NotNull java.util.regex.Pattern p0, int p1) { return null; } - @Nullable java.lang.String findWithinHorizon(@NotNull java.lang.String p0, int p1) { return null; } - @NotModified boolean hasNext(@NotNull java.util.regex.Pattern p0) { return false; } - @NotModified boolean hasNext(@NotNull java.lang.String p0) { return false; } - @Nullable java.io.IOException ioException() { return null; } - @Modified java.lang.String next(@NotNull java.util.regex.Pattern p0) { return null; } - @Modified java.lang.String next(@NotNull java.lang.String p0) { return null; } - @Modified java.util.Scanner skip(@NotNull java.util.regex.Pattern p0) { return null; } - @Modified java.util.Scanner skip(@NotNull java.lang.String p0) { return null; } - java.util.Scanner useDelimiter(@NotNull java.util.regex.Pattern p0) { return null; } - java.util.Scanner useDelimiter(@NotNull java.lang.String p0) { return null; } - java.util.Scanner useLocale(@NotNull java.util.Locale p0) { return null; } + Scanner$(@NotNull File p0) { } + Scanner$(@NotNull File p0, @NotNull Charset p1) { } + Scanner$(@NotNull File p0, @NotNull String p1) { } + Scanner$(@NotNull InputStream p0) { } + Scanner$(@NotNull InputStream p0, @NotNull Charset p1) { } + Scanner$(@NotNull InputStream p0, @NotNull String p1) { } + Scanner$(@NotNull Path p0) { } + Scanner$(@NotNull Path p0, @NotNull Charset p1) { } + Scanner$(@NotNull Path p0, @NotNull String p1) { } + Scanner$(@NotNull Readable p0) { } + Scanner$(@NotNull ReadableByteChannel p0) { } + Scanner$(@NotNull ReadableByteChannel p0, @NotNull Charset p1) { } + Scanner$(@NotNull ReadableByteChannel p0, @NotNull String p1) { } + Scanner$(@NotNull String p0) { } + Stream findAll(@NotNull Pattern p0) { return null; } + Stream findAll(@NotNull String p0) { return null; } + @Nullable String findInLine(@NotNull Pattern p0) { return null; } + @Nullable String findInLine(@NotNull String p0) { return null; } + @Nullable String findWithinHorizon(@NotNull Pattern p0, int p1) { return null; } + @Nullable String findWithinHorizon(@NotNull String p0, int p1) { return null; } + @NotModified boolean hasNext(@NotNull Pattern p0) { return false; } + @NotModified boolean hasNext(@NotNull String p0) { return false; } + @Nullable IOException ioException() { return null; } + @Modified String next(@NotNull Pattern p0) { return null; } + @Modified String next(@NotNull String p0) { return null; } + @Modified Scanner skip(@NotNull Pattern p0) { return null; } + @Modified Scanner skip(@NotNull String p0) { return null; } + Scanner useDelimiter(@NotNull Pattern p0) { return null; } + Scanner useDelimiter(@NotNull String p0) { return null; } + Scanner useLocale(@NotNull Locale p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) - @Modified java.math.BigDecimal nextBigDecimal() { return null; } - @Modified java.math.BigInteger nextBigInteger() { return null; } - @Modified java.math.BigInteger nextBigInteger(int p0) { return null; } + @Modified BigDecimal nextBigDecimal() { return null; } + @Modified BigInteger nextBigInteger() { return null; } + @Modified BigInteger nextBigInteger(int p0) { return null; } @Modified boolean nextBoolean() { return false; } @Modified byte nextByte() { return 0; } @Modified byte nextByte(int p0) { return 0; } @@ -5143,7 +5160,7 @@ class Scanner$ { @Modified long nextLong(int p0) { return 0; } @Modified short nextShort() { return 0; } @Modified short nextShort(int p0) { return 0; } - @Modified java.util.Scanner reset() { return null; } + @Modified Scanner reset() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified boolean hasNext() { return false; } @@ -5167,21 +5184,21 @@ class Scanner$ { //public java.util.ServiceLoader (shadow created for its nullability, generated) class ServiceLoader$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.util.ServiceLoader load(@NotNull java.lang.Class p0) { return null; } - static java.util.ServiceLoader load(@NotNull java.lang.Class p0, @Nullable java.lang.ClassLoader p1) { return null; } - static java.util.ServiceLoader load(@NotNull java.lang.ModuleLayer p0, @NotNull java.lang.Class p1) { return null; } - static java.util.ServiceLoader loadInstalled(@NotNull java.lang.Class p0) { return null; } + static ServiceLoader load(@NotNull Class p0) { return null; } + static ServiceLoader load(@NotNull Class p0, @Nullable ClassLoader p1) { return null; } + static ServiceLoader load(@NotNull ModuleLayer p0, @NotNull Class p1) { return null; } + static ServiceLoader loadInstalled(@NotNull Class p0) { return null; } } //public java.util.SimpleTimeZone (shadow created for its nullability, generated) class SimpleTimeZone$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - SimpleTimeZone$(int p0, @NotNull java.lang.String p1) { } - SimpleTimeZone$(int p0, @NotNull java.lang.String p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9) { } - SimpleTimeZone$(int p0, @NotNull java.lang.String p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10) { } - SimpleTimeZone$(int p0, @NotNull java.lang.String p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10, int p11, int p12) { } - @NotModified boolean hasSameRules(@NotNull java.util.TimeZone p0) { return false; } - boolean inDaylightTime(@NotNull java.util.Date p0) { return false; } + SimpleTimeZone$(int p0, @NotNull String p1) { } + SimpleTimeZone$(int p0, @NotNull String p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9) { } + SimpleTimeZone$(int p0, @NotNull String p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10) { } + SimpleTimeZone$(int p0, @NotNull String p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10, int p11, int p12) { } + @NotModified boolean hasSameRules(@NotNull TimeZone p0) { return false; } + boolean inDaylightTime(@NotNull Date p0) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setDSTSavings(int p0) { } @@ -5204,61 +5221,61 @@ class SimpleTimeZone$ { //public java.util.Spliterators (shadow created for its nullability, generated) class Spliterators$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.util.PrimitiveIterator.OfDouble iterator(@NotNull java.util.Spliterator.OfDouble p0) { return null; } - static java.util.PrimitiveIterator.OfInt iterator(@NotNull java.util.Spliterator.OfInt p0) { return null; } - static java.util.PrimitiveIterator.OfLong iterator(@NotNull java.util.Spliterator.OfLong p0) { return null; } - static java.util.Iterator iterator(@NotNull java.util.Spliterator p0) { return null; } - static java.util.Spliterator spliterator(@NotNull java.util.Collection p0, int p1) { return null; } - static java.util.Spliterator spliterator(@NotNull java.util.Iterator p0, long p1, int p2) { return null; } - static java.util.Spliterator spliterator(@NotNull(nullableArguments = 0) java.lang.Object[] p0, int p1) { return null; } - static java.util.Spliterator spliterator(@NotNull(nullableArguments = 0) java.lang.Object[] p0, int p1, int p2, int p3) { return null; } - static java.util.Spliterator.OfDouble spliterator(@NotNull java.util.PrimitiveIterator.OfDouble p0, long p1, int p2) { return null; } - static java.util.Spliterator.OfInt spliterator(@NotNull java.util.PrimitiveIterator.OfInt p0, long p1, int p2) { return null; } - static java.util.Spliterator.OfLong spliterator(@NotNull java.util.PrimitiveIterator.OfLong p0, long p1, int p2) { return null; } - static java.util.Spliterator.OfDouble spliterator(@NotNull double[] p0, int p1) { return null; } - static java.util.Spliterator.OfDouble spliterator(@NotNull double[] p0, int p1, int p2, int p3) { return null; } - static java.util.Spliterator.OfInt spliterator(@NotNull int[] p0, int p1) { return null; } - static java.util.Spliterator.OfInt spliterator(@NotNull int[] p0, int p1, int p2, int p3) { return null; } - static java.util.Spliterator.OfLong spliterator(@NotNull long[] p0, int p1) { return null; } - static java.util.Spliterator.OfLong spliterator(@NotNull long[] p0, int p1, int p2, int p3) { return null; } - static java.util.Spliterator spliteratorUnknownSize(@NotNull java.util.Iterator p0, int p1) { return null; } - static java.util.Spliterator.OfDouble spliteratorUnknownSize(@NotNull java.util.PrimitiveIterator.OfDouble p0, int p1) { return null; } - static java.util.Spliterator.OfInt spliteratorUnknownSize(@NotNull java.util.PrimitiveIterator.OfInt p0, int p1) { return null; } - static java.util.Spliterator.OfLong spliteratorUnknownSize(@NotNull java.util.PrimitiveIterator.OfLong p0, int p1) { return null; } + static PrimitiveIterator.OfDouble iterator(@NotNull Spliterator.OfDouble p0) { return null; } + static PrimitiveIterator.OfInt iterator(@NotNull Spliterator.OfInt p0) { return null; } + static PrimitiveIterator.OfLong iterator(@NotNull Spliterator.OfLong p0) { return null; } + static Iterator iterator(@NotNull Spliterator p0) { return null; } + static Spliterator spliterator(@NotNull Collection p0, int p1) { return null; } + static Spliterator spliterator(@NotNull Iterator p0, long p1, int p2) { return null; } + static Spliterator spliterator(@NotNull(nullableArguments = 0) Object[] p0, int p1) { return null; } + static Spliterator spliterator(@NotNull(nullableArguments = 0) Object[] p0, int p1, int p2, int p3) { return null; } + static Spliterator.OfDouble spliterator(@NotNull PrimitiveIterator.OfDouble p0, long p1, int p2) { return null; } + static Spliterator.OfInt spliterator(@NotNull PrimitiveIterator.OfInt p0, long p1, int p2) { return null; } + static Spliterator.OfLong spliterator(@NotNull PrimitiveIterator.OfLong p0, long p1, int p2) { return null; } + static Spliterator.OfDouble spliterator(@NotNull double[] p0, int p1) { return null; } + static Spliterator.OfDouble spliterator(@NotNull double[] p0, int p1, int p2, int p3) { return null; } + static Spliterator.OfInt spliterator(@NotNull int[] p0, int p1) { return null; } + static Spliterator.OfInt spliterator(@NotNull int[] p0, int p1, int p2, int p3) { return null; } + static Spliterator.OfLong spliterator(@NotNull long[] p0, int p1) { return null; } + static Spliterator.OfLong spliterator(@NotNull long[] p0, int p1, int p2, int p3) { return null; } + static Spliterator spliteratorUnknownSize(@NotNull Iterator p0, int p1) { return null; } + static Spliterator.OfDouble spliteratorUnknownSize(@NotNull PrimitiveIterator.OfDouble p0, int p1) { return null; } + static Spliterator.OfInt spliteratorUnknownSize(@NotNull PrimitiveIterator.OfInt p0, int p1) { return null; } + static Spliterator.OfLong spliteratorUnknownSize(@NotNull PrimitiveIterator.OfLong p0, int p1) { return null; } //public java.util.Spliterators.AbstractDoubleSpliterator (shadow created for its nullability, generated) class AbstractDoubleSpliterator { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.util.Spliterator.OfDouble trySplit() { return null; } + @Nullable Spliterator.OfDouble trySplit() { return null; } } //public java.util.Spliterators.AbstractIntSpliterator (shadow created for its nullability, generated) class AbstractIntSpliterator { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.util.Spliterator.OfInt trySplit() { return null; } + @Nullable Spliterator.OfInt trySplit() { return null; } } //public java.util.Spliterators.AbstractLongSpliterator (shadow created for its nullability, generated) class AbstractLongSpliterator { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.util.Spliterator.OfLong trySplit() { return null; } + @Nullable Spliterator.OfLong trySplit() { return null; } } //public java.util.Spliterators.AbstractSpliterator (shadow created for its nullability, generated) class AbstractSpliterator { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.util.Spliterator trySplit() { return null; } + @Nullable Spliterator trySplit() { return null; } } } //public java.util.TimeZone (shadow created for its nullability, generated) class TimeZone$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified java.lang.String getDisplayName(@NotNull java.util.Locale p0) { return null; } - @NotModified java.lang.String getDisplayName(boolean p0, int p1, @NotNull java.util.Locale p2) { return null; } - static java.util.TimeZone getTimeZone(@NotNull java.lang.String p0) { return null; } - static java.util.TimeZone getTimeZone(@NotNull java.time.ZoneId p0) { return null; } - @NotModified boolean hasSameRules(@Nullable java.util.TimeZone p0) { return false; } - boolean inDaylightTime(@NotNull java.util.Date p0) { return false; } - static void setDefault(@Nullable java.util.TimeZone p0) { } - @Modified void setID(@NotNull java.lang.String p0) { } + @NotModified String getDisplayName(@NotNull Locale p0) { return null; } + @NotModified String getDisplayName(boolean p0, int p1, @NotNull Locale p2) { return null; } + static TimeZone getTimeZone(@NotNull String p0) { return null; } + static TimeZone getTimeZone(@NotNull ZoneId p0) { return null; } + @NotModified boolean hasSameRules(@Nullable TimeZone p0) { return false; } + boolean inDaylightTime(@NotNull Date p0) { return false; } + static void setDefault(@Nullable TimeZone p0) { } + @Modified void setID(@NotNull String p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setRawOffset(int p0) { } @@ -5271,20 +5288,20 @@ static void setDefault(@Nullable java.util.TimeZone p0) { } @NotModified int getOffset(int p0, int p1, int p2, int p3, int p4, int p5) { return 0; } @NotModified int getOffset(long p0) { return 0; } @NotModified int getRawOffset() { return 0; } - @NotModified java.time.ZoneId toZoneId() { return null; } + @NotModified ZoneId toZoneId() { return null; } } //public java.util.Timer (shadow created for its nullability, generated) class Timer$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Timer$(@NotNull java.lang.String p0) { } - Timer$(@NotNull java.lang.String p0, boolean p1) { } - @Modified void schedule(@NotNull java.util.TimerTask p0, @NotNull java.util.Date p1) { } - @Modified void schedule(@NotNull java.util.TimerTask p0, @NotNull java.util.Date p1, long p2) { } - @Modified void schedule(@NotNull java.util.TimerTask p0, long p1) { } - @Modified void schedule(@NotNull java.util.TimerTask p0, long p1, long p2) { } - @Modified void scheduleAtFixedRate(@NotNull java.util.TimerTask p0, @NotNull java.util.Date p1, long p2) { } - @Modified void scheduleAtFixedRate(@NotNull java.util.TimerTask p0, long p1, long p2) { } + Timer$(@NotNull String p0) { } + Timer$(@NotNull String p0, boolean p1) { } + @Modified void schedule(@NotNull TimerTask p0, @NotNull Date p1) { } + @Modified void schedule(@NotNull TimerTask p0, @NotNull Date p1, long p2) { } + @Modified void schedule(@NotNull TimerTask p0, long p1) { } + @Modified void schedule(@NotNull TimerTask p0, long p1, long p2) { } + @Modified void scheduleAtFixedRate(@NotNull TimerTask p0, @NotNull Date p1, long p2) { } + @Modified void scheduleAtFixedRate(@NotNull TimerTask p0, long p1, long p2) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void cancel() { } @@ -5295,20 +5312,20 @@ class PrimitiveIterator$ { //public java.util.PrimitiveIterator.OfDouble (shadow created for its nullability, generated) class OfDouble { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void forEachRemaining(@NotNull java.util.function.Consumer p0) { } - void forEachRemaining(@NotNull java.util.function.DoubleConsumer p0) { } + void forEachRemaining(@NotNull Consumer p0) { } + void forEachRemaining(@NotNull DoubleConsumer p0) { } } //public java.util.PrimitiveIterator.OfInt (shadow created for its nullability, generated) class OfInt { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void forEachRemaining(@NotNull java.util.function.Consumer p0) { } - void forEachRemaining(@NotNull java.util.function.IntConsumer p0) { } + void forEachRemaining(@NotNull Consumer p0) { } + void forEachRemaining(@NotNull IntConsumer p0) { } } //public java.util.PrimitiveIterator.OfLong (shadow created for its nullability, generated) class OfLong { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void forEachRemaining(@NotNull java.util.function.Consumer p0) { } - void forEachRemaining(@NotNull java.util.function.LongConsumer p0) { } + void forEachRemaining(@NotNull Consumer p0) { } + void forEachRemaining(@NotNull LongConsumer p0) { } } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilConcurrent.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilConcurrent.java index b8914de5e4..0938f4097c 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilConcurrent.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilConcurrent.java @@ -16,6 +16,10 @@ */ package io.codelaser.maddi.aapi.archive.jdk; +import java.security.PrivilegedAction; +import java.security.PrivilegedExceptionAction; +import java.time.Duration; +import java.time.temporal.ChronoUnit; import java.util.*; import java.util.concurrent.*; import java.util.function.*; @@ -23,13 +27,13 @@ import java.util.stream.IntStream; import java.util.stream.LongStream; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaUtilConcurrent { public static final String PACKAGE_NAME = "java.util.concurrent"; @@ -981,11 +985,11 @@ class ThreadFactory$ {@Nullable Thread newThread(@NotNull Runnable runnable) { r @ImmutableContainer class TimeUnit$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - long convert(@NotNull java.time.Duration p0) { return 0; } - long convert(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return 0; } - static java.util.concurrent.TimeUnit of(@NotNull java.time.temporal.ChronoUnit p0) { return null; } - void timedJoin(@NotNull java.lang.Thread p0, long p1) { } - void timedWait(@NotNull java.lang.Object p0, long p1) { } + long convert(@NotNull Duration p0) { return 0; } + long convert(long p0, @NotNull TimeUnit p1) { return 0; } + static TimeUnit of(@NotNull ChronoUnit p0) { return null; } + void timedJoin(@NotNull Thread p0, long p1) { } + void timedWait(@NotNull Object p0, long p1) { } } //public final class ThreadLocalRandom extends Random @@ -1079,16 +1083,16 @@ class BlockingDeque$ { @Modified @Nullable E pollLast(long timeout, @NotNull TimeUnit unit) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean contains(@Nullable java.lang.Object p0) { return false; } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } - @Modified boolean offerFirst(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } - @Modified boolean offerLast(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + boolean contains(@Nullable Object p0) { return false; } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } + @Modified boolean offerFirst(E p0, long p1, @NotNull TimeUnit p2) { return false; } + @Modified boolean offerLast(E p0, long p1, @NotNull TimeUnit p2) { return false; } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified @Nullable E poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeFirstOccurrence(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeLastOccurrence(@Nullable java.lang.Object p0) { return false; } + @Modified @Nullable E poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeFirstOccurrence(@Nullable Object p0) { return false; } + @Modified boolean removeLastOccurrence(@Nullable Object p0) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean offer(E p0) { return false; } @@ -1107,11 +1111,11 @@ class BlockingQueue$ { @Modified @Nullable E poll(long timeout, @NotNull TimeUnit unit) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean contains(@Nullable java.lang.Object p0) { return false; } - @Modified int drainTo(@NotNull java.util.Collection p0) { return 0; } - @Modified int drainTo(@NotNull java.util.Collection p0, int p1) { return 0; } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } + boolean contains(@Nullable Object p0) { return false; } + @Modified int drainTo(@NotNull Collection p0) { return 0; } + @Modified int drainTo(@NotNull Collection p0, int p1) { return 0; } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } + @Modified boolean remove(@Nullable Object p0) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean offer(E p0) { return false; } @@ -1122,20 +1126,20 @@ class PriorityBlockingQueue$ { @Nullable @NotModified Comparator comparator() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PriorityBlockingQueue$(@NotNull java.util.Collection p0) { } - PriorityBlockingQueue$(int p0, @Nullable java.util.Comparator p1) { } - boolean contains(@Nullable java.lang.Object p0) { return false; } - @Modified int drainTo(@NotNull java.util.Collection p0) { return 0; } - @Modified int drainTo(@NotNull java.util.Collection p0, int p1) { return 0; } - void forEach(@NotNull java.util.function.Consumer p0) { } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + PriorityBlockingQueue$(@NotNull Collection p0) { } + PriorityBlockingQueue$(int p0, @Nullable Comparator p1) { } + boolean contains(@Nullable Object p0) { return false; } + @Modified int drainTo(@NotNull Collection p0) { return 0; } + @Modified int drainTo(@NotNull Collection p0, int p1) { return 0; } + void forEach(@NotNull Consumer p0) { } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified @Nullable E poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified @Nullable E poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1147,33 +1151,33 @@ void forEach(@NotNull java.util.function.Consumer p0) { } //public java.util.concurrent.AbstractExecutorService (shadow created for its nullability, generated) class AbstractExecutorService$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified java.util.List> invokeAll(@NotNull java.util.Collection> p0) { return null; } - @Modified java.util.List> invokeAll(@NotNull java.util.Collection> p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return null; } - @Modified T invokeAny(@NotNull java.util.Collection> p0) { return null; } - @Modified T invokeAny(@NotNull java.util.Collection> p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return null; } - java.util.concurrent.RunnableFuture newTaskFor(@NotNull java.util.concurrent.Callable p0) { return null; } - java.util.concurrent.RunnableFuture newTaskFor(@NotNull java.lang.Runnable p0, T p1) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.util.concurrent.Callable p0) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.lang.Runnable p0) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.lang.Runnable p0, T p1) { return null; } + @Modified List> invokeAll(@NotNull Collection> p0) { return null; } + @Modified List> invokeAll(@NotNull Collection> p0, long p1, @NotNull TimeUnit p2) { return null; } + @Modified T invokeAny(@NotNull Collection> p0) { return null; } + @Modified T invokeAny(@NotNull Collection> p0, long p1, @NotNull TimeUnit p2) { return null; } + RunnableFuture newTaskFor(@NotNull Callable p0) { return null; } + RunnableFuture newTaskFor(@NotNull Runnable p0, T p1) { return null; } + @Modified Future submit(@NotNull Callable p0) { return null; } + @Modified Future submit(@NotNull Runnable p0) { return null; } + @Modified Future submit(@NotNull Runnable p0, T p1) { return null; } } //public java.util.concurrent.ArrayBlockingQueue (shadow created for its nullability, generated) class ArrayBlockingQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ArrayBlockingQueue$(int p0, boolean p1, @NotNull java.util.Collection p2) { } - boolean contains(@Nullable java.lang.Object p0) { return false; } - @Modified int drainTo(@NotNull java.util.Collection p0) { return 0; } - @Modified int drainTo(@NotNull java.util.Collection p0, int p1) { return 0; } - void forEach(@NotNull java.util.function.Consumer p0) { } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + ArrayBlockingQueue$(int p0, boolean p1, @NotNull Collection p2) { } + boolean contains(@Nullable Object p0) { return false; } + @Modified int drainTo(@NotNull Collection p0) { return 0; } + @Modified int drainTo(@NotNull Collection p0, int p1) { return 0; } + void forEach(@NotNull Consumer p0) { } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified @Nullable E poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified @Nullable E poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1185,40 +1189,40 @@ void forEach(@NotNull java.util.function.Consumer p0) { } //public java.util.concurrent.CancellationException (shadow created for its nullability, generated) class CancellationException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - CancellationException$(@Nullable java.lang.String p0) { } + CancellationException$(@Nullable String p0) { } } //public java.util.concurrent.CompletionService (shadow created for its nullability, generated) class CompletionService$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified @Nullable java.util.concurrent.Future poll() { return null; } - @Modified @Nullable java.util.concurrent.Future poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.util.concurrent.Callable p0) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.lang.Runnable p0, V p1) { return null; } + @Modified @Nullable Future poll() { return null; } + @Modified @Nullable Future poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified Future submit(@NotNull Callable p0) { return null; } + @Modified Future submit(@NotNull Runnable p0, V p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) - @Modified java.util.concurrent.Future take() { return null; } + @Modified Future take() { return null; } } //public java.util.concurrent.ConcurrentLinkedDeque (shadow created for its nullability, generated) class ConcurrentLinkedDeque$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ConcurrentLinkedDeque$(@NotNull java.util.Collection p0) { } - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } - boolean contains(@Nullable java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.Consumer p0) { } + ConcurrentLinkedDeque$(@NotNull Collection p0) { } + @Modified boolean addAll(@NotNull Collection p0) { return false; } + boolean contains(@Nullable Object p0) { return false; } + void forEach(@NotNull Consumer p0) { } @Nullable E peek() { return null; } @Nullable E peekFirst() { return null; } @Nullable E peekLast() { return null; } @Modified @Nullable E poll() { return null; } @Modified @Nullable E pollFirst() { return null; } @Modified @Nullable E pollLast() { return null; } - @Modified boolean remove(@NotNull java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeFirstOccurrence(@NotNull java.lang.Object p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean removeLastOccurrence(@NotNull java.lang.Object p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified boolean remove(@NotNull Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeFirstOccurrence(@NotNull Object p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean removeLastOccurrence(@NotNull Object p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1233,16 +1237,16 @@ void forEach(@NotNull java.util.function.Consumer p0) { } //public java.util.concurrent.ConcurrentLinkedQueue (shadow created for its nullability, generated) class ConcurrentLinkedQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ConcurrentLinkedQueue$(@NotNull java.util.Collection p0) { } - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } - boolean contains(@Nullable java.lang.Object p0) { return false; } - void forEach(@NotNull java.util.function.Consumer p0) { } + ConcurrentLinkedQueue$(@NotNull Collection p0) { } + @Modified boolean addAll(@NotNull Collection p0) { return false; } + boolean contains(@Nullable Object p0) { return false; } + void forEach(@NotNull Consumer p0) { } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1252,82 +1256,82 @@ void forEach(@NotNull java.util.function.Consumer p0) { } //public java.util.concurrent.ConcurrentSkipListMap (shadow created for its nullability, generated) class ConcurrentSkipListMap$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ConcurrentSkipListMap$(@Nullable java.util.Comparator p0) { } - ConcurrentSkipListMap$(@NotNull java.util.Map p0) { } - ConcurrentSkipListMap$(@NotNull java.util.SortedMap p0) { } - @Nullable java.util.Map.Entry ceilingEntry(K p0) { return null; } + ConcurrentSkipListMap$(@Nullable Comparator p0) { } + ConcurrentSkipListMap$(@NotNull Map p0) { } + ConcurrentSkipListMap$(@NotNull SortedMap p0) { } + @Nullable Map.Entry ceilingEntry(K p0) { return null; } @Nullable K ceilingKey(K p0) { return null; } - @Nullable java.util.Comparator comparator() { return null; } - @Modified V compute(K p0, @NotNull(nullableArguments = {1, 2}) java.util.function.BiFunction p1) { return null; } - @Modified V computeIfAbsent(K p0, @NotNull java.util.function.Function p1) { return null; } - @Modified @Nullable V computeIfPresent(K p0, @NotNull(nullableArguments = 2) java.util.function.BiFunction p1) { return null; } - boolean containsKey(@NotNull java.lang.Object p0) { return false; } - boolean containsValue(@NotNull java.lang.Object p0) { return false; } - @Nullable java.util.Map.Entry firstEntry() { return null; } - @Nullable java.util.Map.Entry floorEntry(K p0) { return null; } + @Nullable Comparator comparator() { return null; } + @Modified V compute(K p0, @NotNull(nullableArguments = {1, 2}) BiFunction p1) { return null; } + @Modified V computeIfAbsent(K p0, @NotNull Function p1) { return null; } + @Modified @Nullable V computeIfPresent(K p0, @NotNull(nullableArguments = 2) BiFunction p1) { return null; } + boolean containsKey(@NotNull Object p0) { return false; } + boolean containsValue(@NotNull Object p0) { return false; } + @Nullable Map.Entry firstEntry() { return null; } + @Nullable Map.Entry floorEntry(K p0) { return null; } @Nullable K floorKey(K p0) { return null; } - void forEach(@NotNull java.util.function.BiConsumer p0) { } - @Nullable V get(@NotNull java.lang.Object p0) { return null; } - V getOrDefault(@NotNull java.lang.Object p0, @Nullable V p1) { return null; } - @Nullable java.util.Map.Entry higherEntry(K p0) { return null; } + void forEach(@NotNull BiConsumer p0) { } + @Nullable V get(@NotNull Object p0) { return null; } + V getOrDefault(@NotNull Object p0, @Nullable V p1) { return null; } + @Nullable Map.Entry higherEntry(K p0) { return null; } @Nullable K higherKey(K p0) { return null; } - @Nullable java.util.Map.Entry lastEntry() { return null; } - @Nullable java.util.Map.Entry lowerEntry(K p0) { return null; } + @Nullable Map.Entry lastEntry() { return null; } + @Nullable Map.Entry lowerEntry(K p0) { return null; } @Nullable K lowerKey(K p0) { return null; } - @Modified V merge(K p0, V p1, @NotNull(nullableArguments = 2) java.util.function.BiFunction p2) { return null; } - @Modified @Nullable java.util.Map.Entry pollFirstEntry() { return null; } - @Modified @Nullable java.util.Map.Entry pollLastEntry() { return null; } + @Modified V merge(K p0, V p1, @NotNull(nullableArguments = 2) BiFunction p2) { return null; } + @Modified @Nullable Map.Entry pollFirstEntry() { return null; } + @Modified @Nullable Map.Entry pollLastEntry() { return null; } @Modified @Nullable V put(K p0, V p1) { return null; } @Modified @Nullable V putFirst(K p0, V p1) { return null; } @Modified @Nullable V putIfAbsent(K p0, V p1) { return null; } @Modified @Nullable V putLast(K p0, V p1) { return null; } - @Modified @Nullable V remove(@NotNull java.lang.Object p0) { return null; } - @Modified boolean remove(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1) { return false; } + @Modified @Nullable V remove(@NotNull Object p0) { return null; } + @Modified boolean remove(@NotNull Object p0, @NotNull Object p1) { return false; } @Modified @Nullable V replace(K p0, V p1) { return null; } - @Modified void replaceAll(@NotNull java.util.function.BiFunction p0) { } + @Modified void replaceAll(@NotNull BiFunction p0) { } } //public java.util.concurrent.ConcurrentSkipListSet (shadow created for its nullability, generated) class ConcurrentSkipListSet$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ConcurrentSkipListSet$(@NotNull java.util.Collection p0) { } - ConcurrentSkipListSet$(@Nullable java.util.Comparator p0) { } - ConcurrentSkipListSet$(@NotNull java.util.SortedSet p0) { } + ConcurrentSkipListSet$(@NotNull Collection p0) { } + ConcurrentSkipListSet$(@Nullable Comparator p0) { } + ConcurrentSkipListSet$(@NotNull SortedSet p0) { } @Nullable E ceiling(E p0) { return null; } - @Nullable java.util.Comparator comparator() { return null; } - boolean contains(@NotNull java.lang.Object p0) { return false; } + @Nullable Comparator comparator() { return null; } + boolean contains(@NotNull Object p0) { return false; } @Nullable E floor(E p0) { return null; } @Nullable E higher(E p0) { return null; } @Nullable E lower(E p0) { return null; } @Modified @Nullable E pollFirst() { return null; } @Modified @Nullable E pollLast() { return null; } - @Modified boolean remove(@NotNull java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } + @Modified boolean remove(@NotNull Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } } //public java.util.concurrent.CopyOnWriteArrayList (shadow created for its nullability, generated) class CopyOnWriteArrayList$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - CopyOnWriteArrayList$(@NotNull java.util.Collection p0) { } + CopyOnWriteArrayList$(@NotNull Collection p0) { } CopyOnWriteArrayList$(@NotNull E[] p0) { } - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean addAll(int p0, @NotNull java.util.Collection p1) { return false; } - @Modified int addAllAbsent(@NotNull java.util.Collection p0) { return 0; } - boolean contains(@Nullable java.lang.Object p0) { return false; } - boolean containsAll(@NotNull java.util.Collection p0) { return false; } - void forEach(@NotNull java.util.function.Consumer p0) { } - int indexOf(@Nullable java.lang.Object p0) { return 0; } - int lastIndexOf(@Nullable java.lang.Object p0) { return 0; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified void replaceAll(@NotNull java.util.function.UnaryOperator p0) { } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } - @Modified void sort(@Nullable java.util.Comparator p0) { } + @Modified boolean addAll(@NotNull Collection p0) { return false; } + @Modified boolean addAll(int p0, @NotNull Collection p1) { return false; } + @Modified int addAllAbsent(@NotNull Collection p0) { return 0; } + boolean contains(@Nullable Object p0) { return false; } + boolean containsAll(@NotNull Collection p0) { return false; } + void forEach(@NotNull Consumer p0) { } + int indexOf(@Nullable Object p0) { return 0; } + int lastIndexOf(@Nullable Object p0) { return 0; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified void replaceAll(@NotNull UnaryOperator p0) { } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } + @Modified void sort(@Nullable Comparator p0) { } T[] toArray(@NotNull T[] p0) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotNull(nullableArguments = 0) java.lang.Object[] toArray() { return null; } + @NotNull(nullableArguments = 0) Object[] toArray() { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean addIfAbsent(E p0) { return false; } @@ -1340,26 +1344,26 @@ void forEach(@NotNull java.util.function.Consumer p0) { } //public java.util.concurrent.CopyOnWriteArraySet (shadow created for its nullability, generated) class CopyOnWriteArraySet$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - CopyOnWriteArraySet$(@NotNull java.util.Collection p0) { } - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } - boolean contains(@Nullable java.lang.Object p0) { return false; } - boolean containsAll(@NotNull java.util.Collection p0) { return false; } - void forEach(@NotNull java.util.function.Consumer p0) { } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + CopyOnWriteArraySet$(@NotNull Collection p0) { } + @Modified boolean addAll(@NotNull Collection p0) { return false; } + boolean contains(@Nullable Object p0) { return false; } + boolean containsAll(@NotNull Collection p0) { return false; } + void forEach(@NotNull Consumer p0) { } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotNull(nullableArguments = 0) java.lang.Object[] toArray() { return null; } + @NotNull(nullableArguments = 0) Object[] toArray() { return null; } } //public java.util.concurrent.CountedCompleter (shadow created for its nullability, generated) class CountedCompleter$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable java.util.concurrent.CountedCompleter firstComplete() { return null; } - @Modified @Nullable java.util.concurrent.CountedCompleter nextComplete() { return null; } + @Nullable CountedCompleter firstComplete() { return null; } + @Modified @Nullable CountedCompleter nextComplete() { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void addToPendingCount(int p0) { } @@ -1369,23 +1373,23 @@ class CountedCompleter$ { @Modified void setPendingCount(int p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.util.concurrent.CountedCompleter getCompleter() { return null; } + @NotModified CountedCompleter getCompleter() { return null; } @NotModified int getPendingCount() { return 0; } @NotModified T getRawResult() { return null; } - @NotModified java.util.concurrent.CountedCompleter getRoot() { return null; } + @NotModified CountedCompleter getRoot() { return null; } } //public java.util.concurrent.DelayQueue (shadow created for its nullability, generated) - class DelayQueue$ { + class DelayQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - DelayQueue$(@NotNull java.util.Collection p0) { } - @Modified int drainTo(@NotNull java.util.Collection p0) { return 0; } - @Modified int drainTo(@NotNull java.util.Collection p0, int p1) { return 0; } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + DelayQueue$(@NotNull Collection p0) { } + @Modified int drainTo(@NotNull Collection p0) { return 0; } + @Modified int drainTo(@NotNull Collection p0, int p1) { return 0; } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified @Nullable E poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } + @Modified @Nullable E poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified boolean remove(@Nullable Object p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1398,58 +1402,58 @@ class DelayQueue$ { //public java.util.concurrent.Delayed (shadow created for its nullability, generated) class Delayed$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified long getDelay(@NotNull java.util.concurrent.TimeUnit p0) { return 0; } + @NotModified long getDelay(@NotNull TimeUnit p0) { return 0; } } //public java.util.concurrent.ExecutionException (shadow created for its nullability, generated) class ExecutionException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ExecutionException$(@Nullable java.lang.String p0) { } - ExecutionException$(@Nullable java.lang.String p0, @Nullable java.lang.Throwable p1) { } - ExecutionException$(@Nullable java.lang.Throwable p0) { } + ExecutionException$(@Nullable String p0) { } + ExecutionException$(@Nullable String p0, @Nullable Throwable p1) { } + ExecutionException$(@Nullable Throwable p0) { } } //public java.util.concurrent.ExecutorCompletionService (shadow created for its nullability, generated) class ExecutorCompletionService$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ExecutorCompletionService$(@NotNull java.util.concurrent.Executor p0) { } - ExecutorCompletionService$(@NotNull java.util.concurrent.Executor p0, @NotNull java.util.concurrent.BlockingQueue> p1) { } - @Modified @Nullable java.util.concurrent.Future poll() { return null; } - @Modified @Nullable java.util.concurrent.Future poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.util.concurrent.Callable p0) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.lang.Runnable p0, V p1) { return null; } + ExecutorCompletionService$(@NotNull Executor p0) { } + ExecutorCompletionService$(@NotNull Executor p0, @NotNull BlockingQueue> p1) { } + @Modified @Nullable Future poll() { return null; } + @Modified @Nullable Future poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified Future submit(@NotNull Callable p0) { return null; } + @Modified Future submit(@NotNull Runnable p0, V p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) - @Modified java.util.concurrent.Future take() { return null; } + @Modified Future take() { return null; } } //public java.util.concurrent.Executors (shadow created for its nullability, generated) class Executors$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotNull(nullableArguments = 0) static java.util.concurrent.Callable callable(@NotNull java.security.PrivilegedAction p0) { return null; } - @NotNull(nullableArguments = 0) static java.util.concurrent.Callable callable(@NotNull java.security.PrivilegedExceptionAction p0) { return null; } - @NotNull(nullableArguments = 0) static java.util.concurrent.Callable callable(@NotNull java.lang.Runnable p0) { return null; } - static java.util.concurrent.Callable callable(@NotNull java.lang.Runnable p0, T p1) { return null; } - static java.util.concurrent.ExecutorService newCachedThreadPool(@NotNull java.util.concurrent.ThreadFactory p0) { return null; } - static java.util.concurrent.ExecutorService newFixedThreadPool(int p0, @NotNull java.util.concurrent.ThreadFactory p1) { return null; } - static java.util.concurrent.ScheduledExecutorService newScheduledThreadPool(int p0, @NotNull java.util.concurrent.ThreadFactory p1) { return null; } - static java.util.concurrent.ExecutorService newSingleThreadExecutor(@NotNull java.util.concurrent.ThreadFactory p0) { return null; } - static java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(@NotNull java.util.concurrent.ThreadFactory p0) { return null; } - static java.util.concurrent.ExecutorService newThreadPerTaskExecutor(@NotNull java.util.concurrent.ThreadFactory p0) { return null; } - static java.util.concurrent.Callable privilegedCallable(@NotNull java.util.concurrent.Callable p0) { return null; } - static java.util.concurrent.Callable privilegedCallableUsingCurrentClassLoader(@NotNull java.util.concurrent.Callable p0) { return null; } - static java.util.concurrent.ExecutorService unconfigurableExecutorService(@NotNull java.util.concurrent.ExecutorService p0) { return null; } - static java.util.concurrent.ScheduledExecutorService unconfigurableScheduledExecutorService(@NotNull java.util.concurrent.ScheduledExecutorService p0) { return null; } + @NotNull(nullableArguments = 0) static Callable callable(@NotNull PrivilegedAction p0) { return null; } + @NotNull(nullableArguments = 0) static Callable callable(@NotNull PrivilegedExceptionAction p0) { return null; } + @NotNull(nullableArguments = 0) static Callable callable(@NotNull Runnable p0) { return null; } + static Callable callable(@NotNull Runnable p0, T p1) { return null; } + static ExecutorService newCachedThreadPool(@NotNull ThreadFactory p0) { return null; } + static ExecutorService newFixedThreadPool(int p0, @NotNull ThreadFactory p1) { return null; } + static ScheduledExecutorService newScheduledThreadPool(int p0, @NotNull ThreadFactory p1) { return null; } + static ExecutorService newSingleThreadExecutor(@NotNull ThreadFactory p0) { return null; } + static ScheduledExecutorService newSingleThreadScheduledExecutor(@NotNull ThreadFactory p0) { return null; } + static ExecutorService newThreadPerTaskExecutor(@NotNull ThreadFactory p0) { return null; } + static Callable privilegedCallable(@NotNull Callable p0) { return null; } + static Callable privilegedCallableUsingCurrentClassLoader(@NotNull Callable p0) { return null; } + static ExecutorService unconfigurableExecutorService(@NotNull ExecutorService p0) { return null; } + static ScheduledExecutorService unconfigurableScheduledExecutorService(@NotNull ScheduledExecutorService p0) { return null; } } //public java.util.concurrent.ForkJoinTask (shadow created for its nullability, generated) class ForkJoinTask$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Nullable static java.util.concurrent.ForkJoinPool getPool() { return null; } - @Nullable static java.util.concurrent.ForkJoinTask peekNextLocalTask() { return null; } - @Nullable static java.util.concurrent.ForkJoinTask pollNextLocalTask() { return null; } - @Nullable static java.util.concurrent.ForkJoinTask pollSubmission() { return null; } - @Nullable static java.util.concurrent.ForkJoinTask pollTask() { return null; } + @Nullable static ForkJoinPool getPool() { return null; } + @Nullable static ForkJoinTask peekNextLocalTask() { return null; } + @Nullable static ForkJoinTask pollNextLocalTask() { return null; } + @Nullable static ForkJoinTask pollSubmission() { return null; } + @Nullable static ForkJoinTask pollTask() { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean compareAndSetForkJoinTaskTag(short p0, short p1) { return false; } @@ -1468,39 +1472,39 @@ class ForkJoinTask$ { //public java.util.concurrent.FutureTask (shadow created for its nullability, generated) class FutureTask$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - FutureTask$(@NotNull java.util.concurrent.Callable p0) { } - FutureTask$(@NotNull java.lang.Runnable p0, V p1) { } - V get(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - void setException(@NotNull java.lang.Throwable p0) { } + FutureTask$(@NotNull Callable p0) { } + FutureTask$(@NotNull Runnable p0, V p1) { } + V get(long p0, @NotNull TimeUnit p1) { return null; } + void setException(@NotNull Throwable p0) { } } //public java.util.concurrent.LinkedBlockingDeque (shadow created for its nullability, generated) class LinkedBlockingDeque$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - LinkedBlockingDeque$(@NotNull java.util.Collection p0) { } - @Modified boolean addAll(@NotNull java.util.Collection p0) { return false; } - boolean contains(@Nullable java.lang.Object p0) { return false; } - @Modified int drainTo(@NotNull java.util.Collection p0) { return 0; } - @Modified int drainTo(@NotNull java.util.Collection p0, int p1) { return 0; } - void forEach(@NotNull java.util.function.Consumer p0) { } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } - @Modified boolean offerFirst(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } - @Modified boolean offerLast(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + LinkedBlockingDeque$(@NotNull Collection p0) { } + @Modified boolean addAll(@NotNull Collection p0) { return false; } + boolean contains(@Nullable Object p0) { return false; } + @Modified int drainTo(@NotNull Collection p0) { return 0; } + @Modified int drainTo(@NotNull Collection p0, int p1) { return 0; } + void forEach(@NotNull Consumer p0) { } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } + @Modified boolean offerFirst(E p0, long p1, @NotNull TimeUnit p2) { return false; } + @Modified boolean offerLast(E p0, long p1, @NotNull TimeUnit p2) { return false; } @Nullable E peek() { return null; } @Nullable E peekFirst() { return null; } @Nullable E peekLast() { return null; } @Modified @Nullable E poll() { return null; } - @Modified @Nullable E poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } + @Modified @Nullable E poll(long p0, @NotNull TimeUnit p1) { return null; } @Modified @Nullable E pollFirst() { return null; } - @Modified @Nullable E pollFirst(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } + @Modified @Nullable E pollFirst(long p0, @NotNull TimeUnit p1) { return null; } @Modified @Nullable E pollLast() { return null; } - @Modified @Nullable E pollLast(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeFirstOccurrence(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean removeLastOccurrence(@Nullable java.lang.Object p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified @Nullable E pollLast(long p0, @NotNull TimeUnit p1) { return null; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeFirstOccurrence(@Nullable Object p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean removeLastOccurrence(@Nullable Object p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1521,19 +1525,19 @@ void forEach(@NotNull java.util.function.Consumer p0) { } //public java.util.concurrent.LinkedBlockingQueue (shadow created for its nullability, generated) class LinkedBlockingQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - LinkedBlockingQueue$(@NotNull java.util.Collection p0) { } - boolean contains(@Nullable java.lang.Object p0) { return false; } - @Modified int drainTo(@NotNull java.util.Collection p0) { return 0; } - @Modified int drainTo(@NotNull java.util.Collection p0, int p1) { return 0; } - void forEach(@NotNull java.util.function.Consumer p0) { } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + LinkedBlockingQueue$(@NotNull Collection p0) { } + boolean contains(@Nullable Object p0) { return false; } + @Modified int drainTo(@NotNull Collection p0) { return 0; } + @Modified int drainTo(@NotNull Collection p0, int p1) { return 0; } + void forEach(@NotNull Consumer p0) { } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified @Nullable E poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified @Nullable E poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1545,21 +1549,21 @@ void forEach(@NotNull java.util.function.Consumer p0) { } //public java.util.concurrent.LinkedTransferQueue (shadow created for its nullability, generated) class LinkedTransferQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - LinkedTransferQueue$(@NotNull java.util.Collection p0) { } - boolean contains(@Nullable java.lang.Object p0) { return false; } - @Modified int drainTo(@NotNull java.util.Collection p0) { return 0; } - @Modified int drainTo(@NotNull java.util.Collection p0, int p1) { return 0; } - void forEach(@NotNull java.util.function.Consumer p0) { } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + LinkedTransferQueue$(@NotNull Collection p0) { } + boolean contains(@Nullable Object p0) { return false; } + @Modified int drainTo(@NotNull Collection p0) { return 0; } + @Modified int drainTo(@NotNull Collection p0, int p1) { return 0; } + void forEach(@NotNull Consumer p0) { } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified @Nullable E poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean removeIf(@NotNull java.util.function.Predicate p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified @Nullable E poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean removeIf(@NotNull Predicate p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } - boolean tryTransfer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + boolean tryTransfer(E p0, long p1, @NotNull TimeUnit p2) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean offer(E p0) { return false; } @@ -1575,35 +1579,35 @@ void forEach(@NotNull java.util.function.Consumer p0) { } //public java.util.concurrent.RecursiveAction (shadow created for its nullability, generated) class RecursiveAction$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.lang.Void getRawResult() { return null; } - void setRawResult(@Nullable java.lang.Void p0) { } + @NotModified @Nullable Void getRawResult() { return null; } + void setRawResult(@Nullable Void p0) { } } //public java.util.concurrent.ScheduledExecutorService (shadow created for its nullability, generated) class ScheduledExecutorService$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified java.util.concurrent.ScheduledFuture schedule(@NotNull java.util.concurrent.Callable p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return null; } - @Modified java.util.concurrent.ScheduledFuture schedule(@NotNull java.lang.Runnable p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return null; } - @Modified java.util.concurrent.ScheduledFuture scheduleAtFixedRate(@NotNull java.lang.Runnable p0, long p1, long p2, @NotNull java.util.concurrent.TimeUnit p3) { return null; } - @Modified java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(@NotNull java.lang.Runnable p0, long p1, long p2, @NotNull java.util.concurrent.TimeUnit p3) { return null; } + @Modified ScheduledFuture schedule(@NotNull Callable p0, long p1, @NotNull TimeUnit p2) { return null; } + @Modified ScheduledFuture schedule(@NotNull Runnable p0, long p1, @NotNull TimeUnit p2) { return null; } + @Modified ScheduledFuture scheduleAtFixedRate(@NotNull Runnable p0, long p1, long p2, @NotNull TimeUnit p3) { return null; } + @Modified ScheduledFuture scheduleWithFixedDelay(@NotNull Runnable p0, long p1, long p2, @NotNull TimeUnit p3) { return null; } } //public java.util.concurrent.ScheduledThreadPoolExecutor (shadow created for its nullability, generated) class ScheduledThreadPoolExecutor$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ScheduledThreadPoolExecutor$(int p0, @NotNull java.util.concurrent.RejectedExecutionHandler p1) { } - ScheduledThreadPoolExecutor$(int p0, @NotNull java.util.concurrent.ThreadFactory p1) { } - ScheduledThreadPoolExecutor$(int p0, @NotNull java.util.concurrent.ThreadFactory p1, @NotNull java.util.concurrent.RejectedExecutionHandler p2) { } - java.util.concurrent.RunnableScheduledFuture decorateTask(@NotNull java.util.concurrent.Callable p0, @NotNull java.util.concurrent.RunnableScheduledFuture p1) { return null; } - java.util.concurrent.RunnableScheduledFuture decorateTask(@NotNull java.lang.Runnable p0, @NotNull java.util.concurrent.RunnableScheduledFuture p1) { return null; } - @Modified void execute(@NotNull java.lang.Runnable p0) { } - @Modified java.util.concurrent.ScheduledFuture schedule(@NotNull java.util.concurrent.Callable p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return null; } - @Modified java.util.concurrent.ScheduledFuture schedule(@NotNull java.lang.Runnable p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return null; } - @Modified java.util.concurrent.ScheduledFuture scheduleAtFixedRate(@NotNull java.lang.Runnable p0, long p1, long p2, @NotNull java.util.concurrent.TimeUnit p3) { return null; } - @Modified java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(@NotNull java.lang.Runnable p0, long p1, long p2, @NotNull java.util.concurrent.TimeUnit p3) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.util.concurrent.Callable p0) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.lang.Runnable p0) { return null; } - @Modified java.util.concurrent.Future submit(@NotNull java.lang.Runnable p0, T p1) { return null; } + ScheduledThreadPoolExecutor$(int p0, @NotNull RejectedExecutionHandler p1) { } + ScheduledThreadPoolExecutor$(int p0, @NotNull ThreadFactory p1) { } + ScheduledThreadPoolExecutor$(int p0, @NotNull ThreadFactory p1, @NotNull RejectedExecutionHandler p2) { } + RunnableScheduledFuture decorateTask(@NotNull Callable p0, @NotNull RunnableScheduledFuture p1) { return null; } + RunnableScheduledFuture decorateTask(@NotNull Runnable p0, @NotNull RunnableScheduledFuture p1) { return null; } + @Modified void execute(@NotNull Runnable p0) { } + @Modified ScheduledFuture schedule(@NotNull Callable p0, long p1, @NotNull TimeUnit p2) { return null; } + @Modified ScheduledFuture schedule(@NotNull Runnable p0, long p1, @NotNull TimeUnit p2) { return null; } + @Modified ScheduledFuture scheduleAtFixedRate(@NotNull Runnable p0, long p1, long p2, @NotNull TimeUnit p3) { return null; } + @Modified ScheduledFuture scheduleWithFixedDelay(@NotNull Runnable p0, long p1, long p2, @NotNull TimeUnit p3) { return null; } + @Modified Future submit(@NotNull Callable p0) { return null; } + @Modified Future submit(@NotNull Runnable p0) { return null; } + @Modified Future submit(@NotNull Runnable p0, T p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean p0) { } @@ -1613,24 +1617,24 @@ class ScheduledThreadPoolExecutor$ { // a query, declared so (generated from the assumed-defaults list) @NotModified boolean getContinueExistingPeriodicTasksAfterShutdownPolicy() { return false; } @NotModified boolean getExecuteExistingDelayedTasksAfterShutdownPolicy() { return false; } - @NotModified java.util.concurrent.BlockingQueue getQueue() { return null; } + @NotModified BlockingQueue getQueue() { return null; } @NotModified boolean getRemoveOnCancelPolicy() { return false; } } //public java.util.concurrent.SynchronousQueue (shadow created for its nullability, generated) class SynchronousQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean contains(@Nullable java.lang.Object p0) { return false; } - boolean containsAll(@NotNull java.util.Collection p0) { return false; } - @Modified int drainTo(@NotNull java.util.Collection p0) { return 0; } - @Modified int drainTo(@NotNull java.util.Collection p0, int p1) { return 0; } - @Modified boolean offer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + boolean contains(@Nullable Object p0) { return false; } + boolean containsAll(@NotNull Collection p0) { return false; } + @Modified int drainTo(@NotNull Collection p0) { return 0; } + @Modified int drainTo(@NotNull Collection p0, int p1) { return 0; } + @Modified boolean offer(E p0, long p1, @NotNull TimeUnit p2) { return false; } @Nullable E peek() { return null; } @Modified @Nullable E poll() { return null; } - @Modified @Nullable E poll(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return null; } - @Modified boolean remove(@Nullable java.lang.Object p0) { return false; } - @Modified boolean removeAll(@NotNull java.util.Collection p0) { return false; } - @Modified boolean retainAll(@NotNull java.util.Collection p0) { return false; } + @Modified @Nullable E poll(long p0, @NotNull TimeUnit p1) { return null; } + @Modified boolean remove(@Nullable Object p0) { return false; } + @Modified boolean removeAll(@NotNull Collection p0) { return false; } + @Modified boolean retainAll(@NotNull Collection p0) { return false; } T[] toArray(@NotNull T[] p0) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1642,39 +1646,39 @@ class SynchronousQueue$ { //public java.util.concurrent.ThreadPoolExecutor (shadow created for its nullability, generated) class ThreadPoolExecutor$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ThreadPoolExecutor$(int p0, int p1, long p2, @NotNull java.util.concurrent.TimeUnit p3, @NotNull java.util.concurrent.BlockingQueue p4) { } - ThreadPoolExecutor$(int p0, int p1, long p2, @NotNull java.util.concurrent.TimeUnit p3, @NotNull java.util.concurrent.BlockingQueue p4, @NotNull java.util.concurrent.RejectedExecutionHandler p5) { } - ThreadPoolExecutor$(int p0, int p1, long p2, @NotNull java.util.concurrent.TimeUnit p3, @NotNull java.util.concurrent.BlockingQueue p4, @NotNull java.util.concurrent.ThreadFactory p5) { } - ThreadPoolExecutor$(int p0, int p1, long p2, @NotNull java.util.concurrent.TimeUnit p3, @NotNull java.util.concurrent.BlockingQueue p4, @NotNull java.util.concurrent.ThreadFactory p5, @NotNull java.util.concurrent.RejectedExecutionHandler p6) { } - void afterExecute(@NotNull java.lang.Runnable p0, @Nullable java.lang.Throwable p1) { } - boolean awaitTermination(long p0, @NotNull java.util.concurrent.TimeUnit p1) { return false; } - void beforeExecute(@NotNull java.lang.Thread p0, @NotNull java.lang.Runnable p1) { } - @Modified void execute(@NotNull java.lang.Runnable p0) { } - @NotModified long getKeepAliveTime(@NotNull java.util.concurrent.TimeUnit p0) { return 0; } - @Modified boolean remove(@NotNull java.lang.Runnable p0) { return false; } - @Modified void setKeepAliveTime(long p0, @NotNull java.util.concurrent.TimeUnit p1) { } - @Modified void setRejectedExecutionHandler(@NotNull java.util.concurrent.RejectedExecutionHandler p0) { } - @Modified void setThreadFactory(@NotNull java.util.concurrent.ThreadFactory p0) { } + ThreadPoolExecutor$(int p0, int p1, long p2, @NotNull TimeUnit p3, @NotNull BlockingQueue p4) { } + ThreadPoolExecutor$(int p0, int p1, long p2, @NotNull TimeUnit p3, @NotNull BlockingQueue p4, @NotNull RejectedExecutionHandler p5) { } + ThreadPoolExecutor$(int p0, int p1, long p2, @NotNull TimeUnit p3, @NotNull BlockingQueue p4, @NotNull ThreadFactory p5) { } + ThreadPoolExecutor$(int p0, int p1, long p2, @NotNull TimeUnit p3, @NotNull BlockingQueue p4, @NotNull ThreadFactory p5, @NotNull RejectedExecutionHandler p6) { } + void afterExecute(@NotNull Runnable p0, @Nullable Throwable p1) { } + boolean awaitTermination(long p0, @NotNull TimeUnit p1) { return false; } + void beforeExecute(@NotNull Thread p0, @NotNull Runnable p1) { } + @Modified void execute(@NotNull Runnable p0) { } + @NotModified long getKeepAliveTime(@NotNull TimeUnit p0) { return 0; } + @Modified boolean remove(@NotNull Runnable p0) { return false; } + @Modified void setKeepAliveTime(long p0, @NotNull TimeUnit p1) { } + @Modified void setRejectedExecutionHandler(@NotNull RejectedExecutionHandler p0) { } + @Modified void setThreadFactory(@NotNull ThreadFactory p0) { } //public java.util.concurrent.ThreadPoolExecutor.AbortPolicy (shadow created for its nullability, generated) class AbortPolicy { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void rejectedExecution(@NotNull java.lang.Runnable p0, @NotNull java.util.concurrent.ThreadPoolExecutor p1) { } + void rejectedExecution(@NotNull Runnable p0, @NotNull ThreadPoolExecutor p1) { } } //public java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy (shadow created for its nullability, generated) class CallerRunsPolicy { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void rejectedExecution(@NotNull java.lang.Runnable p0, @NotNull java.util.concurrent.ThreadPoolExecutor p1) { } + void rejectedExecution(@NotNull Runnable p0, @NotNull ThreadPoolExecutor p1) { } } //public java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy (shadow created for its nullability, generated) class DiscardOldestPolicy { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void rejectedExecution(@NotNull java.lang.Runnable p0, @NotNull java.util.concurrent.ThreadPoolExecutor p1) { } + void rejectedExecution(@NotNull Runnable p0, @NotNull ThreadPoolExecutor p1) { } } //public java.util.concurrent.ThreadPoolExecutor.DiscardPolicy (shadow created for its nullability, generated) class DiscardPolicy { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - void rejectedExecution(@NotNull java.lang.Runnable p0, @NotNull java.util.concurrent.ThreadPoolExecutor p1) { } + void rejectedExecution(@NotNull Runnable p0, @NotNull ThreadPoolExecutor p1) { } } // a modifying method, declared so (generated from the assumed-defaults list) @@ -1688,10 +1692,10 @@ void rejectedExecution(@NotNull java.lang.Runnable p0, @NotNull java.util.concur @NotModified int getLargestPoolSize() { return 0; } @NotModified int getMaximumPoolSize() { return 0; } @NotModified int getPoolSize() { return 0; } - @NotModified java.util.concurrent.BlockingQueue getQueue() { return null; } - @NotModified java.util.concurrent.RejectedExecutionHandler getRejectedExecutionHandler() { return null; } + @NotModified BlockingQueue getQueue() { return null; } + @NotModified RejectedExecutionHandler getRejectedExecutionHandler() { return null; } @NotModified long getTaskCount() { return 0; } - @NotModified java.util.concurrent.ThreadFactory getThreadFactory() { return null; } + @NotModified ThreadFactory getThreadFactory() { return null; } @NotModified boolean isShutdown() { return false; } @NotModified boolean isTerminated() { return false; } @NotModified boolean isTerminating() { return false; } @@ -1700,13 +1704,13 @@ void rejectedExecution(@NotNull java.lang.Runnable p0, @NotNull java.util.concur //public java.util.concurrent.TimeoutException (shadow created for its nullability, generated) class TimeoutException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - TimeoutException$(@Nullable java.lang.String p0) { } + TimeoutException$(@Nullable String p0) { } } //public java.util.concurrent.TransferQueue (shadow created for its nullability, generated) class TransferQueue$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - boolean tryTransfer(E p0, long p1, @NotNull java.util.concurrent.TimeUnit p2) { return false; } + boolean tryTransfer(E p0, long p1, @NotNull TimeUnit p2) { return false; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void transfer(E p0) { } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilConcurrentAtomic.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilConcurrentAtomic.java index ebded7b5cb..dadea38e29 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilConcurrentAtomic.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilConcurrentAtomic.java @@ -16,10 +16,12 @@ */ package io.codelaser.maddi.aapi.archive.jdk; +import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; import java.util.function.*; -import io.codelaser.maddi.annotation.Modified; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; @@ -197,10 +199,10 @@ class AtomicReference$ { class AtomicReferenceArray$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) AtomicReferenceArray$(@NotNull E[] p0) { } - @Modified E accumulateAndGet(int p0, E p1, @NotNull java.util.function.BinaryOperator p2) { return null; } - @Modified E getAndAccumulate(int p0, E p1, @NotNull java.util.function.BinaryOperator p2) { return null; } - @Modified E getAndUpdate(int p0, @NotNull java.util.function.UnaryOperator p1) { return null; } - @Modified E updateAndGet(int p0, @NotNull java.util.function.UnaryOperator p1) { return null; } + @Modified E accumulateAndGet(int p0, E p1, @NotNull BinaryOperator p2) { return null; } + @Modified E getAndAccumulate(int p0, E p1, @NotNull BinaryOperator p2) { return null; } + @Modified E getAndUpdate(int p0, @NotNull UnaryOperator p1) { return null; } + @Modified E updateAndGet(int p0, @NotNull UnaryOperator p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified E compareAndExchange(int p0, E p1, E p2) { return null; } @@ -230,11 +232,11 @@ class AtomicReferenceArray$ { //public java.util.concurrent.atomic.AtomicReferenceFieldUpdater (shadow created for its nullability, generated) class AtomicReferenceFieldUpdater$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified V accumulateAndGet(T p0, V p1, @NotNull java.util.function.BinaryOperator p2) { return null; } - @Modified V getAndAccumulate(T p0, V p1, @NotNull java.util.function.BinaryOperator p2) { return null; } - @Modified V getAndUpdate(T p0, @NotNull java.util.function.UnaryOperator p1) { return null; } - static java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(@NotNull java.lang.Class p0, @NotNull java.lang.Class p1, @NotNull java.lang.String p2) { return null; } - @Modified V updateAndGet(T p0, @NotNull java.util.function.UnaryOperator p1) { return null; } + @Modified V accumulateAndGet(T p0, V p1, @NotNull BinaryOperator p2) { return null; } + @Modified V getAndAccumulate(T p0, V p1, @NotNull BinaryOperator p2) { return null; } + @Modified V getAndUpdate(T p0, @NotNull UnaryOperator p1) { return null; } + static AtomicReferenceFieldUpdater newUpdater(@NotNull Class p0, @NotNull Class p1, @NotNull String p2) { return null; } + @Modified V updateAndGet(T p0, @NotNull UnaryOperator p1) { return null; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified boolean compareAndSet(T p0, V p1, V p2) { return false; } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilJar.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilJar.java index afdcd36d1e..04dcd418f7 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilJar.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilJar.java @@ -17,13 +17,20 @@ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.Nullable; - +import java.io.File; +import java.io.InputStream; +import java.security.CodeSigner; +import java.security.cert.Certificate; +import java.util.Map; +import java.util.jar.Attributes; import java.util.jar.JarEntry; import java.util.jar.Manifest; +import java.util.zip.ZipEntry; + +import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaUtilJar { public static final String PACKAGE_NAME = "java.util.jar"; @@ -36,17 +43,17 @@ class JarFile$ { @NotModified @Nullable JarEntry getJarEntry(@NotNull String name) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - JarFile$(@NotNull java.io.File p0) { } - JarFile$(@NotNull java.io.File p0, boolean p1) { } - JarFile$(@NotNull java.io.File p0, boolean p1, int p2) { } - JarFile$(@NotNull java.io.File p0, boolean p1, int p2, @NotNull java.lang.Runtime.Version p3) { } - JarFile$(@NotNull java.lang.String p0) { } - JarFile$(@NotNull java.lang.String p0, boolean p1) { } - @NotModified @Nullable java.util.zip.ZipEntry getEntry(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.io.InputStream getInputStream(@NotNull java.util.zip.ZipEntry p0) { return null; } + JarFile$(@NotNull File p0) { } + JarFile$(@NotNull File p0, boolean p1) { } + JarFile$(@NotNull File p0, boolean p1, int p2) { } + JarFile$(@NotNull File p0, boolean p1, int p2, @NotNull Runtime.Version p3) { } + JarFile$(@NotNull String p0) { } + JarFile$(@NotNull String p0, boolean p1) { } + @NotModified @Nullable ZipEntry getEntry(@NotNull String p0) { return null; } + @NotModified @Nullable InputStream getInputStream(@NotNull ZipEntry p0) { return null; } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.lang.Runtime.Version getVersion() { return null; } + @NotModified Runtime.Version getVersion() { return null; } @NotModified boolean isMultiRelease() { return false; } } @@ -57,43 +64,43 @@ class JarInputStream$ { @Nullable JarEntry getNextJarEntry() { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - JarInputStream$(@NotNull java.io.InputStream p0) { } - JarInputStream$(@NotNull java.io.InputStream p0, boolean p1) { } - java.util.zip.ZipEntry createZipEntry(@NotNull java.lang.String p0) { return null; } - @Nullable java.util.zip.ZipEntry getNextEntry() { return null; } + JarInputStream$(@NotNull InputStream p0) { } + JarInputStream$(@NotNull InputStream p0, boolean p1) { } + ZipEntry createZipEntry(@NotNull String p0) { return null; } + @Nullable ZipEntry getNextEntry() { return null; } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } } //public java.util.jar.Attributes (shadow created for its nullability, generated) class Attributes$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Attributes$(@NotNull java.util.jar.Attributes p0) { } - boolean containsKey(@Nullable java.lang.Object p0) { return false; } - boolean containsValue(@Nullable java.lang.Object p0) { return false; } - @Nullable java.lang.Object get(@Nullable java.lang.Object p0) { return null; } - @NotModified @Nullable java.lang.String getValue(@Nullable java.util.jar.Attributes.Name p0) { return null; } - @NotModified @Nullable java.lang.String getValue(@NotNull java.lang.String p0) { return null; } - @Modified @Nullable java.lang.Object put(@NotNull java.lang.Object p0, @NotNull java.lang.Object p1) { return null; } - @Modified void putAll(@NotNull java.util.Map p0) { } - @Modified @Nullable java.lang.String putValue(@NotNull java.lang.String p0, @NotNull java.lang.String p1) { return null; } - @Modified @Nullable java.lang.Object remove(@Nullable java.lang.Object p0) { return null; } + Attributes$(@NotNull Attributes p0) { } + boolean containsKey(@Nullable Object p0) { return false; } + boolean containsValue(@Nullable Object p0) { return false; } + @Nullable Object get(@Nullable Object p0) { return null; } + @NotModified @Nullable String getValue(@Nullable Attributes.Name p0) { return null; } + @NotModified @Nullable String getValue(@NotNull String p0) { return null; } + @Modified @Nullable Object put(@NotNull Object p0, @NotNull Object p1) { return null; } + @Modified void putAll(@NotNull Map p0) { } + @Modified @Nullable String putValue(@NotNull String p0, @NotNull String p1) { return null; } + @Modified @Nullable Object remove(@Nullable Object p0) { return null; } //public java.util.jar.Attributes.Name (shadow created for its nullability, generated) class Name { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Name(@NotNull java.lang.String p0) { } + Name(@NotNull String p0) { } } } //public java.util.jar.JarEntry (shadow created for its nullability, generated) class JarEntry$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - JarEntry$(@NotNull java.util.jar.JarEntry p0) { } - JarEntry$(@NotNull java.lang.String p0) { } - JarEntry$(@NotNull java.util.zip.ZipEntry p0) { } - @NotModified @Nullable java.util.jar.Attributes getAttributes() { return null; } - @NotModified @Nullable java.security.cert.Certificate[] getCertificates() { return null; } - @NotModified @Nullable java.security.CodeSigner[] getCodeSigners() { return null; } + JarEntry$(@NotNull JarEntry p0) { } + JarEntry$(@NotNull String p0) { } + JarEntry$(@NotNull ZipEntry p0) { } + @NotModified @Nullable Attributes getAttributes() { return null; } + @NotModified @Nullable Certificate[] getCertificates() { return null; } + @NotModified @Nullable CodeSigner[] getCodeSigners() { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getRealName() { return null; } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilLogging.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilLogging.java index cad420302e..0837994f52 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilLogging.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilLogging.java @@ -17,13 +17,24 @@ package io.codelaser.maddi.aapi.archive.jdk; +import java.time.Instant; +import java.util.ResourceBundle; +import java.util.function.Supplier; +import java.util.logging.ErrorManager; +import java.util.logging.Filter; +import java.util.logging.Formatter; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.annotation.rare.IgnoreModifications; /** @@ -44,138 +55,138 @@ public class JavaUtilLogging { @ImmutableContainer class Level$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Level$(@NotNull java.lang.String p0, int p1) { } - Level$(@NotNull java.lang.String p0, int p1, @Nullable java.lang.String p2) { } - @Nullable java.lang.String getResourceBundleName() { return null; } - static java.util.logging.Level parse(@NotNull java.lang.String p0) { return null; } + Level$(@NotNull String p0, int p1) { } + Level$(@NotNull String p0, int p1, @Nullable String p2) { } + @Nullable String getResourceBundleName() { return null; } + static Level parse(@NotNull String p0) { return null; } } //public class Logger @Container @Independent class Logger$ { - static java.util.logging.Logger getGlobal() { return null; } - static java.util.logging.Logger getLogger(@NotNull java.lang.String p0) { return null; } - static java.util.logging.Logger getLogger(@NotNull java.lang.String p0, @Nullable java.lang.String p1) { return null; } - static java.util.logging.Logger getAnonymousLogger() { return null; } - static java.util.logging.Logger getAnonymousLogger(@Nullable java.lang.String p0) { return null; } - @Independent(absent = true) @Nullable @NotModified java.util.ResourceBundle getResourceBundle() { return null; } - @Nullable @NotModified java.lang.String getResourceBundleName() { return null; } - @Modified void setFilter(@Independent(absent = true) @Nullable java.util.logging.Filter p0) { } - @Independent(absent = true) @Nullable @NotModified java.util.logging.Filter getFilter() { return null; } - @IgnoreModifications void log(@NotNull @Modified java.util.logging.LogRecord p0) { } - @IgnoreModifications void log(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1) { } - @IgnoreModifications void log(@NotNull java.util.logging.Level p0, @NotNull(nullableArguments = 0) java.util.function.Supplier p1) { } - @IgnoreModifications void log(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.Object p2) { } - @IgnoreModifications void log(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable(nullableArguments = 0) java.lang.Object[] p2) { } - @IgnoreModifications void log(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.Throwable p2) { } - @IgnoreModifications void log(@NotNull java.util.logging.Level p0, @Nullable java.lang.Throwable p1, @NotNull(nullableArguments = 0) java.util.function.Supplier p2) { } - @IgnoreModifications void logp(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3) { } - @IgnoreModifications void logp(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @NotNull(nullableArguments = 0) java.util.function.Supplier p3) { } - @IgnoreModifications void logp(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3, @Nullable java.lang.Object p4) { } - @IgnoreModifications void logp(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3, @Nullable(nullableArguments = 0) java.lang.Object[] p4) { } - @IgnoreModifications void logp(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3, @Nullable java.lang.Throwable p4) { } - @IgnoreModifications void logp(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.Throwable p3, @NotNull(nullableArguments = 0) java.util.function.Supplier p4) { } - @IgnoreModifications void logrb(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3, @Nullable java.lang.String p4) { } - @IgnoreModifications void logrb(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3, @Nullable java.lang.String p4, @Nullable java.lang.Object p5) { } - @IgnoreModifications void logrb(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3, @Nullable java.lang.String p4, @Nullable(nullableArguments = 0) java.lang.Object[] p5) { } - @IgnoreModifications void logrb(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.util.ResourceBundle p3, @Nullable java.lang.String p4, @Nullable(nullableArguments = 0) java.lang.Object... p5) { } - @IgnoreModifications void logrb(@NotNull java.util.logging.Level p0, @Nullable java.util.ResourceBundle p1, @Nullable java.lang.String p2, @Nullable(nullableArguments = 0) java.lang.Object... p3) { } - @IgnoreModifications void logrb(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.lang.String p3, @Nullable java.lang.String p4, @Nullable java.lang.Throwable p5) { } - @IgnoreModifications void logrb(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1, @Nullable java.lang.String p2, @Nullable java.util.ResourceBundle p3, @Nullable java.lang.String p4, @Nullable java.lang.Throwable p5) { } - @IgnoreModifications void logrb(@NotNull java.util.logging.Level p0, @Nullable java.util.ResourceBundle p1, @Nullable java.lang.String p2, @Nullable java.lang.Throwable p3) { } - @IgnoreModifications void entering(@Nullable java.lang.String p0, @Nullable java.lang.String p1) { } - @IgnoreModifications void entering(@Nullable java.lang.String p0, @Nullable java.lang.String p1, @Nullable java.lang.Object p2) { } - @IgnoreModifications void entering(@Nullable java.lang.String p0, @Nullable java.lang.String p1, @Nullable(nullableArguments = 0) java.lang.Object[] p2) { } - @IgnoreModifications void exiting(@Nullable java.lang.String p0, @Nullable java.lang.String p1) { } - @IgnoreModifications void exiting(@Nullable java.lang.String p0, @Nullable java.lang.String p1, @Nullable java.lang.Object p2) { } - @IgnoreModifications void throwing(@Nullable java.lang.String p0, @Nullable java.lang.String p1, @Nullable java.lang.Throwable p2) { } - @IgnoreModifications void severe(@Nullable java.lang.String p0) { } - @IgnoreModifications void warning(@Nullable java.lang.String p0) { } - @IgnoreModifications void info(@Nullable java.lang.String p0) { } - @IgnoreModifications void config(@Nullable java.lang.String p0) { } - @IgnoreModifications void fine(@Nullable java.lang.String p0) { } - @IgnoreModifications void finer(@Nullable java.lang.String p0) { } - @IgnoreModifications void finest(@Nullable java.lang.String p0) { } - @IgnoreModifications void severe(@NotNull(nullableArguments = 0) java.util.function.Supplier p0) { } - @IgnoreModifications void warning(@NotNull(nullableArguments = 0) java.util.function.Supplier p0) { } - @IgnoreModifications void info(@NotNull(nullableArguments = 0) java.util.function.Supplier p0) { } - @IgnoreModifications void config(@NotNull(nullableArguments = 0) java.util.function.Supplier p0) { } - @IgnoreModifications void fine(@NotNull(nullableArguments = 0) java.util.function.Supplier p0) { } - @IgnoreModifications void finer(@NotNull(nullableArguments = 0) java.util.function.Supplier p0) { } - @IgnoreModifications void finest(@NotNull(nullableArguments = 0) java.util.function.Supplier p0) { } - @Modified void setLevel(@Nullable java.util.logging.Level p0) { } - @Nullable @NotModified java.util.logging.Level getLevel() { return null; } - @NotModified boolean isLoggable(@NotNull java.util.logging.Level p0) { return false; } - @Nullable @NotModified java.lang.String getName() { return null; } - @Modified void addHandler(@Independent(absent = true) @NotNull java.util.logging.Handler p0) { } - @Modified void removeHandler(@Nullable java.util.logging.Handler p0) { } - @Independent(absent = true) @NotModified java.util.logging.Handler[] getHandlers() { return null; } + static Logger getGlobal() { return null; } + static Logger getLogger(@NotNull String p0) { return null; } + static Logger getLogger(@NotNull String p0, @Nullable String p1) { return null; } + static Logger getAnonymousLogger() { return null; } + static Logger getAnonymousLogger(@Nullable String p0) { return null; } + @Independent(absent = true) @Nullable @NotModified ResourceBundle getResourceBundle() { return null; } + @Nullable @NotModified String getResourceBundleName() { return null; } + @Modified void setFilter(@Independent(absent = true) @Nullable Filter p0) { } + @Independent(absent = true) @Nullable @NotModified Filter getFilter() { return null; } + @IgnoreModifications void log(@NotNull @Modified LogRecord p0) { } + @IgnoreModifications void log(@NotNull Level p0, @Nullable String p1) { } + @IgnoreModifications void log(@NotNull Level p0, @NotNull(nullableArguments = 0) Supplier p1) { } + @IgnoreModifications void log(@NotNull Level p0, @Nullable String p1, @Nullable Object p2) { } + @IgnoreModifications void log(@NotNull Level p0, @Nullable String p1, @Nullable(nullableArguments = 0) Object[] p2) { } + @IgnoreModifications void log(@NotNull Level p0, @Nullable String p1, @Nullable Throwable p2) { } + @IgnoreModifications void log(@NotNull Level p0, @Nullable Throwable p1, @NotNull(nullableArguments = 0) Supplier p2) { } + @IgnoreModifications void logp(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable String p3) { } + @IgnoreModifications void logp(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @NotNull(nullableArguments = 0) Supplier p3) { } + @IgnoreModifications void logp(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable String p3, @Nullable Object p4) { } + @IgnoreModifications void logp(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable String p3, @Nullable(nullableArguments = 0) Object[] p4) { } + @IgnoreModifications void logp(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable String p3, @Nullable Throwable p4) { } + @IgnoreModifications void logp(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable Throwable p3, @NotNull(nullableArguments = 0) Supplier p4) { } + @IgnoreModifications void logrb(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable String p3, @Nullable String p4) { } + @IgnoreModifications void logrb(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable String p3, @Nullable String p4, @Nullable Object p5) { } + @IgnoreModifications void logrb(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable String p3, @Nullable String p4, @Nullable(nullableArguments = 0) Object[] p5) { } + @IgnoreModifications void logrb(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable ResourceBundle p3, @Nullable String p4, @Nullable(nullableArguments = 0) Object... p5) { } + @IgnoreModifications void logrb(@NotNull Level p0, @Nullable ResourceBundle p1, @Nullable String p2, @Nullable(nullableArguments = 0) Object... p3) { } + @IgnoreModifications void logrb(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable String p3, @Nullable String p4, @Nullable Throwable p5) { } + @IgnoreModifications void logrb(@NotNull Level p0, @Nullable String p1, @Nullable String p2, @Nullable ResourceBundle p3, @Nullable String p4, @Nullable Throwable p5) { } + @IgnoreModifications void logrb(@NotNull Level p0, @Nullable ResourceBundle p1, @Nullable String p2, @Nullable Throwable p3) { } + @IgnoreModifications void entering(@Nullable String p0, @Nullable String p1) { } + @IgnoreModifications void entering(@Nullable String p0, @Nullable String p1, @Nullable Object p2) { } + @IgnoreModifications void entering(@Nullable String p0, @Nullable String p1, @Nullable(nullableArguments = 0) Object[] p2) { } + @IgnoreModifications void exiting(@Nullable String p0, @Nullable String p1) { } + @IgnoreModifications void exiting(@Nullable String p0, @Nullable String p1, @Nullable Object p2) { } + @IgnoreModifications void throwing(@Nullable String p0, @Nullable String p1, @Nullable Throwable p2) { } + @IgnoreModifications void severe(@Nullable String p0) { } + @IgnoreModifications void warning(@Nullable String p0) { } + @IgnoreModifications void info(@Nullable String p0) { } + @IgnoreModifications void config(@Nullable String p0) { } + @IgnoreModifications void fine(@Nullable String p0) { } + @IgnoreModifications void finer(@Nullable String p0) { } + @IgnoreModifications void finest(@Nullable String p0) { } + @IgnoreModifications void severe(@NotNull(nullableArguments = 0) Supplier p0) { } + @IgnoreModifications void warning(@NotNull(nullableArguments = 0) Supplier p0) { } + @IgnoreModifications void info(@NotNull(nullableArguments = 0) Supplier p0) { } + @IgnoreModifications void config(@NotNull(nullableArguments = 0) Supplier p0) { } + @IgnoreModifications void fine(@NotNull(nullableArguments = 0) Supplier p0) { } + @IgnoreModifications void finer(@NotNull(nullableArguments = 0) Supplier p0) { } + @IgnoreModifications void finest(@NotNull(nullableArguments = 0) Supplier p0) { } + @Modified void setLevel(@Nullable Level p0) { } + @Nullable @NotModified Level getLevel() { return null; } + @NotModified boolean isLoggable(@NotNull Level p0) { return false; } + @Nullable @NotModified String getName() { return null; } + @Modified void addHandler(@Independent(absent = true) @NotNull Handler p0) { } + @Modified void removeHandler(@Nullable Handler p0) { } + @Independent(absent = true) @NotModified Handler[] getHandlers() { return null; } @Modified void setUseParentHandlers(boolean p0) { } @NotModified boolean getUseParentHandlers() { return false; } - @Modified void setResourceBundle(@Independent(absent = true) @NotNull java.util.ResourceBundle p0) { } - @Independent(absent = true) @Nullable @NotModified java.util.logging.Logger getParent() { return null; } - @Modified void setParent(@Independent(absent = true) @NotNull java.util.logging.Logger p0) { } + @Modified void setResourceBundle(@Independent(absent = true) @NotNull ResourceBundle p0) { } + @Independent(absent = true) @Nullable @NotModified Logger getParent() { return null; } + @Modified void setParent(@Independent(absent = true) @NotNull Logger p0) { } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - Logger$(@Nullable java.lang.String p0, @Nullable java.lang.String p1) { } + Logger$(@Nullable String p0, @Nullable String p1) { } } //public java.util.logging.Handler (shadow created for its nullability, generated) class Handler$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @NotModified @Nullable java.lang.String getEncoding() { return null; } - @NotModified @Nullable java.util.logging.Filter getFilter() { return null; } - @NotModified @Nullable java.util.logging.Formatter getFormatter() { return null; } - @NotModified boolean isLoggable(@Nullable java.util.logging.LogRecord p0) { return false; } - void publish(@Nullable java.util.logging.LogRecord p0) { } - void reportError(@Nullable java.lang.String p0, @Nullable java.lang.Exception p1, int p2) { } - @Modified void setEncoding(@Nullable java.lang.String p0) { } - @Modified void setErrorManager(@NotNull java.util.logging.ErrorManager p0) { } - @Modified void setFilter(@Nullable java.util.logging.Filter p0) { } - @Modified void setFormatter(@NotNull java.util.logging.Formatter p0) { } - @Modified void setLevel(@NotNull java.util.logging.Level p0) { } + @NotModified @Nullable String getEncoding() { return null; } + @NotModified @Nullable Filter getFilter() { return null; } + @NotModified @Nullable Formatter getFormatter() { return null; } + @NotModified boolean isLoggable(@Nullable LogRecord p0) { return false; } + void publish(@Nullable LogRecord p0) { } + void reportError(@Nullable String p0, @Nullable Exception p1, int p2) { } + @Modified void setEncoding(@Nullable String p0) { } + @Modified void setErrorManager(@NotNull ErrorManager p0) { } + @Modified void setFilter(@Nullable Filter p0) { } + @Modified void setFormatter(@NotNull Formatter p0) { } + @Modified void setLevel(@NotNull Level p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void close() { } @Modified void flush() { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.util.logging.ErrorManager getErrorManager() { return null; } - @NotModified java.util.logging.Level getLevel() { return null; } + @NotModified ErrorManager getErrorManager() { return null; } + @NotModified Level getLevel() { return null; } } //public java.util.logging.LogRecord (shadow created for its nullability, generated) class LogRecord$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - LogRecord$(@NotNull java.util.logging.Level p0, @Nullable java.lang.String p1) { } - @NotModified @Nullable java.lang.String getLoggerName() { return null; } - @NotModified @Nullable java.lang.String getMessage() { return null; } - @NotModified @Nullable(nullableArguments = 0) java.lang.Object[] getParameters() { return null; } - @NotModified @Nullable java.util.ResourceBundle getResourceBundle() { return null; } - @NotModified @Nullable java.lang.String getResourceBundleName() { return null; } - @NotModified @Nullable java.lang.String getSourceClassName() { return null; } - @NotModified @Nullable java.lang.String getSourceMethodName() { return null; } - @NotModified @Nullable java.lang.Throwable getThrown() { return null; } - @Modified void setInstant(@NotNull java.time.Instant p0) { } - @Modified void setLevel(@NotNull java.util.logging.Level p0) { } - @Modified void setLoggerName(@Nullable java.lang.String p0) { } - @Modified void setMessage(@Nullable java.lang.String p0) { } - @Modified void setParameters(@Nullable(nullableArguments = 0) java.lang.Object[] p0) { } - @Modified void setResourceBundle(@Nullable java.util.ResourceBundle p0) { } - @Modified void setResourceBundleName(@Nullable java.lang.String p0) { } - @Modified void setSourceClassName(@Nullable java.lang.String p0) { } - @Modified void setSourceMethodName(@Nullable java.lang.String p0) { } - @Modified void setThrown(@Nullable java.lang.Throwable p0) { } + LogRecord$(@NotNull Level p0, @Nullable String p1) { } + @NotModified @Nullable String getLoggerName() { return null; } + @NotModified @Nullable String getMessage() { return null; } + @NotModified @Nullable(nullableArguments = 0) Object[] getParameters() { return null; } + @NotModified @Nullable ResourceBundle getResourceBundle() { return null; } + @NotModified @Nullable String getResourceBundleName() { return null; } + @NotModified @Nullable String getSourceClassName() { return null; } + @NotModified @Nullable String getSourceMethodName() { return null; } + @NotModified @Nullable Throwable getThrown() { return null; } + @Modified void setInstant(@NotNull Instant p0) { } + @Modified void setLevel(@NotNull Level p0) { } + @Modified void setLoggerName(@Nullable String p0) { } + @Modified void setMessage(@Nullable String p0) { } + @Modified void setParameters(@Nullable(nullableArguments = 0) Object[] p0) { } + @Modified void setResourceBundle(@Nullable ResourceBundle p0) { } + @Modified void setResourceBundleName(@Nullable String p0) { } + @Modified void setSourceClassName(@Nullable String p0) { } + @Modified void setSourceMethodName(@Nullable String p0) { } + @Modified void setThrown(@Nullable Throwable p0) { } // a modifying method, declared so (generated from the assumed-defaults list) - @Modified java.util.logging.LogRecord setLongThreadID(long p0) { return null; } + @Modified LogRecord setLongThreadID(long p0) { return null; } @Modified void setMillis(long p0) { } @Modified void setSequenceNumber(long p0) { } @Modified void setThreadID(int p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified java.time.Instant getInstant() { return null; } - @NotModified java.util.logging.Level getLevel() { return null; } + @NotModified Instant getInstant() { return null; } + @NotModified Level getLevel() { return null; } @NotModified long getLongThreadID() { return 0; } @NotModified long getMillis() { return 0; } @NotModified long getSequenceNumber() { return 0; } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilRandom.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilRandom.java index cbfbeec1a6..84199e15a3 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilRandom.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilRandom.java @@ -17,9 +17,11 @@ package io.codelaser.maddi.aapi.archive.jdk; import java.util.random.RandomGenerator; +import java.util.random.RandomGeneratorFactory; import java.util.stream.*; -import io.codelaser.maddi.annotation.NotModified; + import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; public class JavaUtilRandom { public static final String PACKAGE_NAME = "java.util.random"; @@ -144,10 +146,10 @@ class StreamableGenerator { } //public java.util.random.RandomGeneratorFactory (shadow created for its nullability, generated) - class RandomGeneratorFactory$ { + class RandomGeneratorFactory$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) T create(@NotNull byte[] p0) { return null; } - static java.util.random.RandomGeneratorFactory of(@NotNull java.lang.String p0) { return null; } + static RandomGeneratorFactory of(@NotNull String p0) { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified boolean isArbitrarilyJumpable() { return false; } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilRegex.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilRegex.java index 2f59cb9f59..4ae9dce6e3 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilRegex.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilRegex.java @@ -24,12 +24,12 @@ import java.util.regex.Pattern; import java.util.stream.Stream; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.ImmutableContainer; +import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaUtilRegex { public static final String PACKAGE_NAME = "java.util.regex"; @@ -176,7 +176,7 @@ Stream splitAsStream( //public java.util.regex.PatternSyntaxException (shadow created for its nullability, generated) class PatternSyntaxException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - PatternSyntaxException$(@NotNull java.lang.String p0, @NotNull java.lang.String p1, int p2) { } + PatternSyntaxException$(@NotNull String p0, @NotNull String p1, int p2) { } // a query, declared so (generated from the assumed-defaults list) @NotModified String getDescription() { return null; } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilStream.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilStream.java index 6d8ed20b68..9d37612e6b 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilStream.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilStream.java @@ -16,15 +16,15 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.*; -import io.codelaser.maddi.annotation.rare.Finalizer; -import io.codelaser.maddi.annotation.type.UtilityClass; - import java.util.*; import java.util.concurrent.ConcurrentMap; import java.util.function.*; import java.util.stream.*; +import io.codelaser.maddi.annotation.*; +import io.codelaser.maddi.annotation.rare.Finalizer; +import io.codelaser.maddi.annotation.type.UtilityClass; + public class JavaUtilStream { public static final String PACKAGE_NAME = "java.util.stream"; //public interface BaseStream implements AutoCloseable @@ -61,8 +61,8 @@ interface Collector$ { Function finisher(); // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.util.stream.Collector of(@NotNull java.util.function.Supplier p0, @NotNull java.util.function.BiConsumer p1, @NotNull java.util.function.BinaryOperator p2, @NotNull java.util.stream.Collector.Characteristics... p3) { return null; } - static java.util.stream.Collector of(@NotNull java.util.function.Supplier p0, @NotNull java.util.function.BiConsumer p1, @NotNull java.util.function.BinaryOperator p2, @NotNull java.util.function.Function p3, @NotNull java.util.stream.Collector.Characteristics... p4) { return null; } + static Collector of(@NotNull Supplier p0, @NotNull BiConsumer p1, @NotNull BinaryOperator p2, @NotNull Collector.Characteristics... p3) { return null; } + static Collector of(@NotNull Supplier p0, @NotNull BiConsumer p1, @NotNull BinaryOperator p2, @NotNull Function p3, @NotNull Collector.Characteristics... p4) { return null; } } //public final class Collectors @@ -806,19 +806,19 @@ static Stream iterate( static Stream concat(@NotNull Stream a, @NotNull Stream b) { return null; } // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - java.util.stream.Stream gather(@NotNull java.util.stream.Gatherer p0) { return null; } + Stream gather(@NotNull Gatherer p0) { return null; } } //public java.util.stream.StreamSupport (shadow created for its nullability, generated) class StreamSupport$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - static java.util.stream.DoubleStream doubleStream(@NotNull java.util.Spliterator.OfDouble p0, boolean p1) { return null; } - static java.util.stream.DoubleStream doubleStream(@NotNull java.util.function.Supplier p0, int p1, boolean p2) { return null; } - static java.util.stream.IntStream intStream(@NotNull java.util.Spliterator.OfInt p0, boolean p1) { return null; } - static java.util.stream.IntStream intStream(@NotNull java.util.function.Supplier p0, int p1, boolean p2) { return null; } - static java.util.stream.LongStream longStream(@NotNull java.util.Spliterator.OfLong p0, boolean p1) { return null; } - static java.util.stream.LongStream longStream(@NotNull java.util.function.Supplier p0, int p1, boolean p2) { return null; } - static java.util.stream.Stream stream(@NotNull java.util.Spliterator p0, boolean p1) { return null; } - static java.util.stream.Stream stream(@NotNull java.util.function.Supplier> p0, int p1, boolean p2) { return null; } + static DoubleStream doubleStream(@NotNull Spliterator.OfDouble p0, boolean p1) { return null; } + static DoubleStream doubleStream(@NotNull Supplier p0, int p1, boolean p2) { return null; } + static IntStream intStream(@NotNull Spliterator.OfInt p0, boolean p1) { return null; } + static IntStream intStream(@NotNull Supplier p0, int p1, boolean p2) { return null; } + static LongStream longStream(@NotNull Spliterator.OfLong p0, boolean p1) { return null; } + static LongStream longStream(@NotNull Supplier p0, int p1, boolean p2) { return null; } + static Stream stream(@NotNull Spliterator p0, boolean p1) { return null; } + static Stream stream(@NotNull Supplier> p0, int p1, boolean p2) { return null; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilZip.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilZip.java index f90f1ef1fa..f1af7eb9df 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilZip.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaUtilZip.java @@ -16,13 +16,21 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.NotModified; +import java.io.File; +import java.io.InputStream; import java.io.OutputStream; +import java.nio.ByteBuffer; import java.nio.charset.Charset; +import java.nio.file.attribute.FileTime; +import java.time.LocalDateTime; +import java.util.zip.Deflater; +import java.util.zip.Inflater; import java.util.zip.ZipEntry; -import io.codelaser.maddi.annotation.Nullable; + +import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; +import io.codelaser.maddi.annotation.Nullable; public class JavaUtilZip { public static final String PACKAGE_NAME = "java.util.zip"; @@ -52,7 +60,7 @@ void finish() { } //public java.util.zip.Adler32 (shadow created for its nullability, generated) class Adler32$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void update(@NotNull java.nio.ByteBuffer p0) { } + @Modified void update(@NotNull ByteBuffer p0) { } @Modified void update(@NotNull byte[] p0, int p1, int p2) { } // a modifying method, declared so (generated from the assumed-defaults list) @@ -66,7 +74,7 @@ class Adler32$ { //public java.util.zip.CRC32 (shadow created for its nullability, generated) class CRC32$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void update(@NotNull java.nio.ByteBuffer p0) { } + @Modified void update(@NotNull ByteBuffer p0) { } @Modified void update(@NotNull byte[] p0, int p1, int p2) { } // a modifying method, declared so (generated from the assumed-defaults list) @@ -80,7 +88,7 @@ class CRC32$ { //public java.util.zip.Checksum (shadow created for its nullability, generated) class Checksum$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - @Modified void update(@NotNull java.nio.ByteBuffer p0) { } + @Modified void update(@NotNull ByteBuffer p0) { } @Modified void update(@NotNull byte[] p0) { } @Modified void update(@NotNull byte[] p0, int p1, int p2) { } @@ -95,21 +103,21 @@ class Checksum$ { //public java.util.zip.DataFormatException (shadow created for its nullability, generated) class DataFormatException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - DataFormatException$(@Nullable java.lang.String p0) { } + DataFormatException$(@Nullable String p0) { } } //public java.util.zip.Deflater (shadow created for its nullability, generated) class Deflater$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - int deflate(@NotNull java.nio.ByteBuffer p0) { return 0; } - int deflate(@NotNull java.nio.ByteBuffer p0, int p1) { return 0; } + int deflate(@NotNull ByteBuffer p0) { return 0; } + int deflate(@NotNull ByteBuffer p0, int p1) { return 0; } int deflate(@NotNull byte[] p0) { return 0; } int deflate(@NotNull byte[] p0, int p1, int p2) { return 0; } int deflate(@NotNull byte[] p0, int p1, int p2, int p3) { return 0; } - @Modified void setDictionary(@NotNull java.nio.ByteBuffer p0) { } + @Modified void setDictionary(@NotNull ByteBuffer p0) { } @Modified void setDictionary(@NotNull byte[] p0) { } @Modified void setDictionary(@NotNull byte[] p0, int p1, int p2) { } - @Modified void setInput(@NotNull java.nio.ByteBuffer p0) { } + @Modified void setInput(@NotNull ByteBuffer p0) { } @Modified void setInput(@NotNull byte[] p0) { } @Modified void setInput(@NotNull byte[] p0, int p1, int p2) { } @@ -130,43 +138,43 @@ class Deflater$ { //public java.util.zip.DeflaterOutputStream (shadow created for its nullability, generated) class DeflaterOutputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - DeflaterOutputStream$(@NotNull java.io.OutputStream p0) { } - DeflaterOutputStream$(@NotNull java.io.OutputStream p0, @NotNull java.util.zip.Deflater p1) { } - DeflaterOutputStream$(@NotNull java.io.OutputStream p0, @NotNull java.util.zip.Deflater p1, boolean p2) { } - DeflaterOutputStream$(@NotNull java.io.OutputStream p0, @NotNull java.util.zip.Deflater p1, int p2) { } - DeflaterOutputStream$(@NotNull java.io.OutputStream p0, @NotNull java.util.zip.Deflater p1, int p2, boolean p3) { } - DeflaterOutputStream$(@NotNull java.io.OutputStream p0, boolean p1) { } + DeflaterOutputStream$(@NotNull OutputStream p0) { } + DeflaterOutputStream$(@NotNull OutputStream p0, @NotNull Deflater p1) { } + DeflaterOutputStream$(@NotNull OutputStream p0, @NotNull Deflater p1, boolean p2) { } + DeflaterOutputStream$(@NotNull OutputStream p0, @NotNull Deflater p1, int p2) { } + DeflaterOutputStream$(@NotNull OutputStream p0, @NotNull Deflater p1, int p2, boolean p3) { } + DeflaterOutputStream$(@NotNull OutputStream p0, boolean p1) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } } //public java.util.zip.GZIPInputStream (shadow created for its nullability, generated) class GZIPInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - GZIPInputStream$(@NotNull java.io.InputStream p0) { } - GZIPInputStream$(@NotNull java.io.InputStream p0, int p1) { } + GZIPInputStream$(@NotNull InputStream p0) { } + GZIPInputStream$(@NotNull InputStream p0, int p1) { } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } } //public java.util.zip.GZIPOutputStream (shadow created for its nullability, generated) class GZIPOutputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - GZIPOutputStream$(@NotNull java.io.OutputStream p0) { } - GZIPOutputStream$(@NotNull java.io.OutputStream p0, boolean p1) { } - GZIPOutputStream$(@NotNull java.io.OutputStream p0, int p1) { } - GZIPOutputStream$(@NotNull java.io.OutputStream p0, int p1, boolean p2) { } + GZIPOutputStream$(@NotNull OutputStream p0) { } + GZIPOutputStream$(@NotNull OutputStream p0, boolean p1) { } + GZIPOutputStream$(@NotNull OutputStream p0, int p1) { } + GZIPOutputStream$(@NotNull OutputStream p0, int p1, boolean p2) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } } //public java.util.zip.Inflater (shadow created for its nullability, generated) class Inflater$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - int inflate(@NotNull java.nio.ByteBuffer p0) { return 0; } + int inflate(@NotNull ByteBuffer p0) { return 0; } int inflate(@NotNull byte[] p0) { return 0; } int inflate(@NotNull byte[] p0, int p1, int p2) { return 0; } - @Modified void setDictionary(@NotNull java.nio.ByteBuffer p0) { } + @Modified void setDictionary(@NotNull ByteBuffer p0) { } @Modified void setDictionary(@NotNull byte[] p0) { } @Modified void setDictionary(@NotNull byte[] p0, int p1, int p2) { } - @Modified void setInput(@NotNull java.nio.ByteBuffer p0) { } + @Modified void setInput(@NotNull ByteBuffer p0) { } @Modified void setInput(@NotNull byte[] p0) { } @Modified void setInput(@NotNull byte[] p0, int p1, int p2) { } @@ -186,37 +194,37 @@ class Inflater$ { //public java.util.zip.InflaterInputStream (shadow created for its nullability, generated) class InflaterInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InflaterInputStream$(@NotNull java.io.InputStream p0) { } - InflaterInputStream$(@NotNull java.io.InputStream p0, @NotNull java.util.zip.Inflater p1) { } - InflaterInputStream$(@NotNull java.io.InputStream p0, @NotNull java.util.zip.Inflater p1, int p2) { } + InflaterInputStream$(@NotNull InputStream p0) { } + InflaterInputStream$(@NotNull InputStream p0, @NotNull Inflater p1) { } + InflaterInputStream$(@NotNull InputStream p0, @NotNull Inflater p1, int p2) { } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } } //public java.util.zip.InflaterOutputStream (shadow created for its nullability, generated) class InflaterOutputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - InflaterOutputStream$(@NotNull java.io.OutputStream p0) { } - InflaterOutputStream$(@NotNull java.io.OutputStream p0, @NotNull java.util.zip.Inflater p1) { } - InflaterOutputStream$(@NotNull java.io.OutputStream p0, @NotNull java.util.zip.Inflater p1, int p2) { } + InflaterOutputStream$(@NotNull OutputStream p0) { } + InflaterOutputStream$(@NotNull OutputStream p0, @NotNull Inflater p1) { } + InflaterOutputStream$(@NotNull OutputStream p0, @NotNull Inflater p1, int p2) { } @Modified void write(@NotNull byte[] p0, int p1, int p2) { } } //public java.util.zip.ZipEntry (shadow created for its nullability, generated) class ZipEntry$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ZipEntry$(@NotNull java.lang.String p0) { } - ZipEntry$(@NotNull java.util.zip.ZipEntry p0) { } - @NotModified @Nullable java.lang.String getComment() { return null; } - @NotModified @Nullable java.nio.file.attribute.FileTime getCreationTime() { return null; } + ZipEntry$(@NotNull String p0) { } + ZipEntry$(@NotNull ZipEntry p0) { } + @NotModified @Nullable String getComment() { return null; } + @NotModified @Nullable FileTime getCreationTime() { return null; } @NotModified @Nullable byte[] getExtra() { return null; } - @NotModified @Nullable java.nio.file.attribute.FileTime getLastAccessTime() { return null; } - @NotModified @Nullable java.nio.file.attribute.FileTime getLastModifiedTime() { return null; } - @Modified void setComment(@Nullable java.lang.String p0) { } - @Modified java.util.zip.ZipEntry setCreationTime(@NotNull java.nio.file.attribute.FileTime p0) { return null; } + @NotModified @Nullable FileTime getLastAccessTime() { return null; } + @NotModified @Nullable FileTime getLastModifiedTime() { return null; } + @Modified void setComment(@Nullable String p0) { } + @Modified ZipEntry setCreationTime(@NotNull FileTime p0) { return null; } @Modified void setExtra(@Nullable byte[] p0) { } - @Modified java.util.zip.ZipEntry setLastAccessTime(@NotNull java.nio.file.attribute.FileTime p0) { return null; } - @Modified java.util.zip.ZipEntry setLastModifiedTime(@NotNull java.nio.file.attribute.FileTime p0) { return null; } - @Modified void setTimeLocal(@NotNull java.time.LocalDateTime p0) { } + @Modified ZipEntry setLastAccessTime(@NotNull FileTime p0) { return null; } + @Modified ZipEntry setLastModifiedTime(@NotNull FileTime p0) { return null; } + @Modified void setTimeLocal(@NotNull LocalDateTime p0) { } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void setCompressedSize(long p0) { } @@ -232,28 +240,28 @@ class ZipEntry$ { @NotModified String getName() { return null; } @NotModified long getSize() { return 0; } @NotModified long getTime() { return 0; } - @NotModified java.time.LocalDateTime getTimeLocal() { return null; } + @NotModified LocalDateTime getTimeLocal() { return null; } @NotModified boolean isDirectory() { return false; } } //public java.util.zip.ZipException (shadow created for its nullability, generated) class ZipException$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ZipException$(@Nullable java.lang.String p0) { } + ZipException$(@Nullable String p0) { } } //public java.util.zip.ZipFile (shadow created for its nullability, generated) class ZipFile$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ZipFile$(@NotNull java.io.File p0) { } - ZipFile$(@NotNull java.io.File p0, @NotNull java.nio.charset.Charset p1) { } - ZipFile$(@NotNull java.io.File p0, int p1) { } - ZipFile$(@NotNull java.io.File p0, int p1, @NotNull java.nio.charset.Charset p2) { } - ZipFile$(@NotNull java.lang.String p0) { } - ZipFile$(@NotNull java.lang.String p0, @NotNull java.nio.charset.Charset p1) { } - @NotModified @Nullable java.lang.String getComment() { return null; } - @NotModified @Nullable java.util.zip.ZipEntry getEntry(@NotNull java.lang.String p0) { return null; } - @NotModified @Nullable java.io.InputStream getInputStream(@NotNull java.util.zip.ZipEntry p0) { return null; } + ZipFile$(@NotNull File p0) { } + ZipFile$(@NotNull File p0, @NotNull Charset p1) { } + ZipFile$(@NotNull File p0, int p1) { } + ZipFile$(@NotNull File p0, int p1, @NotNull Charset p2) { } + ZipFile$(@NotNull String p0) { } + ZipFile$(@NotNull String p0, @NotNull Charset p1) { } + @NotModified @Nullable String getComment() { return null; } + @NotModified @Nullable ZipEntry getEntry(@NotNull String p0) { return null; } + @NotModified @Nullable InputStream getInputStream(@NotNull ZipEntry p0) { return null; } // a query, declared so (generated from the assumed-defaults list) @NotModified String getName() { return null; } @@ -263,13 +271,13 @@ class ZipFile$ { //public java.util.zip.ZipInputStream (shadow created for its nullability, generated) class ZipInputStream$ { // nullability from JSpecify's JDK (generated, jspecify-jdk-nullness.py) - ZipInputStream$(@NotNull java.io.InputStream p0) { } - ZipInputStream$(@NotNull java.io.InputStream p0, @NotNull java.nio.charset.Charset p1) { } - java.util.zip.ZipEntry createZipEntry(@NotNull java.lang.String p0) { return null; } - @Nullable java.util.zip.ZipEntry getNextEntry() { return null; } + ZipInputStream$(@NotNull InputStream p0) { } + ZipInputStream$(@NotNull InputStream p0, @NotNull Charset p1) { } + ZipEntry createZipEntry(@NotNull String p0) { return null; } + @Nullable ZipEntry getNextEntry() { return null; } @Modified int read(@NotNull byte[] p0, int p1, int p2) { return 0; } @Modified int readNBytes(@NotNull byte[] p0, int p1, int p2) { return 0; } - @Modified long transferTo(@NotNull java.io.OutputStream p0) { return 0; } + @Modified long transferTo(@NotNull OutputStream p0) { return 0; } // a modifying method, declared so (generated from the assumed-defaults list) @Modified void closeEntry() { } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwing.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwing.java index 45e873d08a..9421feb89e 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwing.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwing.java @@ -16,25 +16,29 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.Commutable; - import java.awt.*; import java.awt.event.*; import java.awt.print.Printable; +import java.beans.VetoableChangeListener; import java.text.MessageFormat; import java.util.Collection; +import java.util.EventListener; import java.util.EventObject; import java.util.Vector; + import javax.accessibility.AccessibleContext; import javax.print.PrintService; import javax.print.attribute.PrintRequestAttributeSet; import javax.swing.*; +import javax.swing.border.Border; import javax.swing.event.*; import javax.swing.plaf.*; import javax.swing.table.*; +import io.codelaser.maddi.annotation.Commutable; +import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; + public class JavaxSwing { public static final String PACKAGE_NAME = "javax.swing"; //public abstract class AbstractButton extends JComponent implements ItemSelectable, SwingConstants @@ -578,12 +582,12 @@ boolean print( class AbstractListModel$ { // a modifying method, declared so (generated from the assumed-defaults list) - @Modified void addListDataListener(javax.swing.event.ListDataListener p0) { } - @Modified void removeListDataListener(javax.swing.event.ListDataListener p0) { } + @Modified void addListDataListener(ListDataListener p0) { } + @Modified void removeListDataListener(ListDataListener p0) { } // a query, declared so (generated from the assumed-defaults list) - @NotModified javax.swing.event.ListDataListener[] getListDataListeners() { return null; } - @NotModified T[] getListeners(Class p0) { return null; } + @NotModified ListDataListener[] getListDataListeners() { return null; } + @NotModified T[] getListeners(Class p0) { return null; } } class ComboBoxModel$ { @@ -596,65 +600,65 @@ class ComboBoxModel$ { class JComponent$ { // a modifying method, declared so (generated from the assumed-defaults list) - @Modified void addAncestorListener(javax.swing.event.AncestorListener p0) { } - @Modified void addVetoableChangeListener(java.beans.VetoableChangeListener p0) { } - @Modified void computeVisibleRect(java.awt.Rectangle p0) { } + @Modified void addAncestorListener(AncestorListener p0) { } + @Modified void addVetoableChangeListener(VetoableChangeListener p0) { } + @Modified void computeVisibleRect(Rectangle p0) { } @Modified void putClientProperty(Object p0, Object p1) { } - @Modified void registerKeyboardAction(java.awt.event.ActionListener p0, String p1, javax.swing.KeyStroke p2, int p3) { } - @Modified void registerKeyboardAction(java.awt.event.ActionListener p0, javax.swing.KeyStroke p1, int p2) { } - @Modified void removeAncestorListener(javax.swing.event.AncestorListener p0) { } - @Modified void removeVetoableChangeListener(java.beans.VetoableChangeListener p0) { } + @Modified void registerKeyboardAction(ActionListener p0, String p1, KeyStroke p2, int p3) { } + @Modified void registerKeyboardAction(ActionListener p0, KeyStroke p1, int p2) { } + @Modified void removeAncestorListener(AncestorListener p0) { } + @Modified void removeVetoableChangeListener(VetoableChangeListener p0) { } @Modified void resetKeyboardActions() { } - @Modified void setActionMap(javax.swing.ActionMap p0) { } + @Modified void setActionMap(ActionMap p0) { } @Modified void setAlignmentX(float p0) { } @Modified void setAlignmentY(float p0) { } @Modified void setAutoscrolls(boolean p0) { } - @Modified void setBorder(javax.swing.border.Border p0) { } - @Modified void setComponentPopupMenu(javax.swing.JPopupMenu p0) { } + @Modified void setBorder(Border p0) { } + @Modified void setComponentPopupMenu(JPopupMenu p0) { } @Modified void setDebugGraphicsOptions(int p0) { } @Modified void setDoubleBuffered(boolean p0) { } @Modified void setInheritsPopupMenu(boolean p0) { } - @Modified void setInputMap(int p0, javax.swing.InputMap p1) { } - @Modified void setInputVerifier(javax.swing.InputVerifier p0) { } - @Modified void setNextFocusableComponent(java.awt.Component p0) { } + @Modified void setInputMap(int p0, InputMap p1) { } + @Modified void setInputVerifier(InputVerifier p0) { } + @Modified void setNextFocusableComponent(Component p0) { } @Modified void setOpaque(boolean p0) { } @Modified void setRequestFocusEnabled(boolean p0) { } @Modified void setToolTipText(String p0) { } - @Modified void setTransferHandler(javax.swing.TransferHandler p0) { } + @Modified void setTransferHandler(TransferHandler p0) { } @Modified void setVerifyInputWhenFocusTarget(boolean p0) { } - @Modified void unregisterKeyboardAction(javax.swing.KeyStroke p0) { } + @Modified void unregisterKeyboardAction(KeyStroke p0) { } @Modified void updateUI() { } // a query, declared so (generated from the assumed-defaults list) @NotModified boolean contains(int p0, int p1) { return false; } - @NotModified java.awt.event.ActionListener getActionForKeyStroke(javax.swing.KeyStroke p0) { return null; } - @NotModified javax.swing.ActionMap getActionMap() { return null; } - @NotModified javax.swing.event.AncestorListener[] getAncestorListeners() { return null; } + @NotModified ActionListener getActionForKeyStroke(KeyStroke p0) { return null; } + @NotModified ActionMap getActionMap() { return null; } + @NotModified AncestorListener[] getAncestorListeners() { return null; } @NotModified boolean getAutoscrolls() { return false; } - @NotModified javax.swing.border.Border getBorder() { return null; } + @NotModified Border getBorder() { return null; } @NotModified Object getClientProperty(Object p0) { return null; } - @NotModified javax.swing.JPopupMenu getComponentPopupMenu() { return null; } - @NotModified int getConditionForKeyStroke(javax.swing.KeyStroke p0) { return 0; } + @NotModified JPopupMenu getComponentPopupMenu() { return null; } + @NotModified int getConditionForKeyStroke(KeyStroke p0) { return 0; } @NotModified int getDebugGraphicsOptions() { return 0; } @NotModified boolean getInheritsPopupMenu() { return false; } - @NotModified javax.swing.InputMap getInputMap() { return null; } - @NotModified javax.swing.InputMap getInputMap(int p0) { return null; } - @NotModified javax.swing.InputVerifier getInputVerifier() { return null; } - @NotModified java.awt.Insets getInsets(java.awt.Insets p0) { return null; } - @NotModified java.awt.Component getNextFocusableComponent() { return null; } - @NotModified java.awt.Point getPopupLocation(java.awt.event.MouseEvent p0) { return null; } - @NotModified javax.swing.KeyStroke[] getRegisteredKeyStrokes() { return null; } - @NotModified javax.swing.JRootPane getRootPane() { return null; } - @NotModified java.awt.Point getToolTipLocation(java.awt.event.MouseEvent p0) { return null; } + @NotModified InputMap getInputMap() { return null; } + @NotModified InputMap getInputMap(int p0) { return null; } + @NotModified InputVerifier getInputVerifier() { return null; } + @NotModified Insets getInsets(Insets p0) { return null; } + @NotModified Component getNextFocusableComponent() { return null; } + @NotModified Point getPopupLocation(MouseEvent p0) { return null; } + @NotModified KeyStroke[] getRegisteredKeyStrokes() { return null; } + @NotModified JRootPane getRootPane() { return null; } + @NotModified Point getToolTipLocation(MouseEvent p0) { return null; } @NotModified String getToolTipText() { return null; } - @NotModified String getToolTipText(java.awt.event.MouseEvent p0) { return null; } - @NotModified java.awt.Container getTopLevelAncestor() { return null; } - @NotModified javax.swing.TransferHandler getTransferHandler() { return null; } - @NotModified javax.swing.plaf.ComponentUI getUI() { return null; } + @NotModified String getToolTipText(MouseEvent p0) { return null; } + @NotModified Container getTopLevelAncestor() { return null; } + @NotModified TransferHandler getTransferHandler() { return null; } + @NotModified ComponentUI getUI() { return null; } @NotModified String getUIClassID() { return null; } @NotModified boolean getVerifyInputWhenFocusTarget() { return false; } - @NotModified java.beans.VetoableChangeListener[] getVetoableChangeListeners() { return null; } - @NotModified java.awt.Rectangle getVisibleRect() { return null; } + @NotModified VetoableChangeListener[] getVetoableChangeListeners() { return null; } + @NotModified Rectangle getVisibleRect() { return null; } @NotModified boolean isManagingFocus() { return false; } @NotModified boolean isOptimizedDrawingEnabled() { return false; } @NotModified boolean isPaintingForPrint() { return false; } @@ -664,8 +668,8 @@ class JComponent$ { class ListModel$ { // a modifying method, declared so (generated from the assumed-defaults list) - @Modified void addListDataListener(javax.swing.event.ListDataListener p0) { } - @Modified void removeListDataListener(javax.swing.event.ListDataListener p0) { } + @Modified void addListDataListener(ListDataListener p0) { } + @Modified void removeListDataListener(ListDataListener p0) { } // a query, declared so (generated from the assumed-defaults list) @NotModified E getElementAt(int p0) { return null; } @@ -682,10 +686,10 @@ class MutableComboBoxModel$ { class Scrollable$ { // a query, declared so (generated from the assumed-defaults list) - @NotModified java.awt.Dimension getPreferredScrollableViewportSize() { return null; } - @NotModified int getScrollableBlockIncrement(java.awt.Rectangle p0, int p1, int p2) { return 0; } + @NotModified Dimension getPreferredScrollableViewportSize() { return null; } + @NotModified int getScrollableBlockIncrement(Rectangle p0, int p1, int p2) { return 0; } @NotModified boolean getScrollableTracksViewportHeight() { return false; } @NotModified boolean getScrollableTracksViewportWidth() { return false; } - @NotModified int getScrollableUnitIncrement(java.awt.Rectangle p0, int p1, int p2) { return 0; } + @NotModified int getScrollableUnitIncrement(Rectangle p0, int p1, int p2) { return 0; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwingTable.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwingTable.java index aeac909a93..faa03dd8e3 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwingTable.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwingTable.java @@ -16,14 +16,15 @@ */ package io.codelaser.maddi.aapi.archive.jdk; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.Commutable; - import java.beans.PropertyChangeListener; + import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; +import io.codelaser.maddi.annotation.Commutable; +import io.codelaser.maddi.annotation.Modified; +import io.codelaser.maddi.annotation.NotModified; + public class JavaxSwingTable { public static final String PACKAGE_NAME = "javax.swing.table"; //public class TableColumn implements Serializable diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwingText.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwingText.java index 4bbe1544a9..2af133676a 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwingText.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/jdk/JavaxSwingText.java @@ -26,6 +26,7 @@ import java.io.Reader; import java.io.Writer; import java.text.MessageFormat; + import javax.accessibility.*; import javax.print.PrintService; import javax.print.attribute.PrintRequestAttributeSet; @@ -37,6 +38,7 @@ import javax.swing.event.DocumentEvent; import javax.swing.plaf.TextUI; import javax.swing.text.*; + import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/assertj/OrgAssertjCoreApi.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/assertj/OrgAssertjCoreApi.java index 6dac7228a9..82a0297cd1 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/assertj/OrgAssertjCoreApi.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/assertj/OrgAssertjCoreApi.java @@ -17,6 +17,184 @@ package io.codelaser.maddi.aapi.archive.libs.assertj; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.net.URI; +import java.net.URL; +import java.nio.file.Path; +import java.time.Duration; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.OffsetDateTime; +import java.time.OffsetTime; +import java.time.Period; +import java.time.YearMonth; +import java.time.ZonedDateTime; +import java.time.temporal.Temporal; +import java.util.Collection; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.OptionalDouble; +import java.util.OptionalInt; +import java.util.OptionalLong; +import java.util.Spliterator; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; +import java.util.concurrent.Future; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicIntegerArray; +import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicLongArray; +import java.util.concurrent.atomic.AtomicLongFieldUpdater; +import java.util.concurrent.atomic.AtomicMarkableReference; +import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.atomic.AtomicReferenceArray; +import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; +import java.util.concurrent.atomic.AtomicStampedReference; +import java.util.concurrent.atomic.LongAdder; +import java.util.function.Consumer; +import java.util.stream.DoubleStream; +import java.util.stream.IntStream; +import java.util.stream.LongStream; +import java.util.stream.Stream; + +import org.assertj.core.api.AbstractAssert; +import org.assertj.core.api.AbstractBigDecimalAssert; +import org.assertj.core.api.AbstractBigIntegerAssert; +import org.assertj.core.api.AbstractBooleanArrayAssert; +import org.assertj.core.api.AbstractBooleanAssert; +import org.assertj.core.api.AbstractByteArrayAssert; +import org.assertj.core.api.AbstractByteAssert; +import org.assertj.core.api.AbstractCharArrayAssert; +import org.assertj.core.api.AbstractCharSequenceAssert; +import org.assertj.core.api.AbstractCharacterAssert; +import org.assertj.core.api.AbstractClassAssert; +import org.assertj.core.api.AbstractCollectionAssert; +import org.assertj.core.api.AbstractComparableAssert; +import org.assertj.core.api.AbstractDateAssert; +import org.assertj.core.api.AbstractDoubleArrayAssert; +import org.assertj.core.api.AbstractDoubleAssert; +import org.assertj.core.api.AbstractDurationAssert; +import org.assertj.core.api.AbstractFileAssert; +import org.assertj.core.api.AbstractFloatArrayAssert; +import org.assertj.core.api.AbstractFloatAssert; +import org.assertj.core.api.AbstractFutureAssert; +import org.assertj.core.api.AbstractInputStreamAssert; +import org.assertj.core.api.AbstractInstantAssert; +import org.assertj.core.api.AbstractIntArrayAssert; +import org.assertj.core.api.AbstractIntegerAssert; +import org.assertj.core.api.AbstractIterableAssert; +import org.assertj.core.api.AbstractListAssert; +import org.assertj.core.api.AbstractLocalDateAssert; +import org.assertj.core.api.AbstractLocalDateTimeAssert; +import org.assertj.core.api.AbstractLocalTimeAssert; +import org.assertj.core.api.AbstractLongArrayAssert; +import org.assertj.core.api.AbstractLongAssert; +import org.assertj.core.api.AbstractObjectArrayAssert; +import org.assertj.core.api.AbstractObjectAssert; +import org.assertj.core.api.AbstractOffsetDateTimeAssert; +import org.assertj.core.api.AbstractOffsetTimeAssert; +import org.assertj.core.api.AbstractPathAssert; +import org.assertj.core.api.AbstractPeriodAssert; +import org.assertj.core.api.AbstractShortArrayAssert; +import org.assertj.core.api.AbstractShortAssert; +import org.assertj.core.api.AbstractThrowableAssert; +import org.assertj.core.api.AbstractUniversalComparableAssert; +import org.assertj.core.api.AbstractUriAssert; +import org.assertj.core.api.AbstractUrlAssert; +import org.assertj.core.api.AbstractYearMonthAssert; +import org.assertj.core.api.AbstractZonedDateTimeAssert; +import org.assertj.core.api.AssertDelegateTarget; +import org.assertj.core.api.AssertFactory; +import org.assertj.core.api.AssertProvider; +import org.assertj.core.api.AtomicBooleanAssert; +import org.assertj.core.api.AtomicIntegerArrayAssert; +import org.assertj.core.api.AtomicIntegerAssert; +import org.assertj.core.api.AtomicIntegerFieldUpdaterAssert; +import org.assertj.core.api.AtomicLongArrayAssert; +import org.assertj.core.api.AtomicLongAssert; +import org.assertj.core.api.AtomicLongFieldUpdaterAssert; +import org.assertj.core.api.AtomicMarkableReferenceAssert; +import org.assertj.core.api.AtomicReferenceArrayAssert; +import org.assertj.core.api.AtomicReferenceAssert; +import org.assertj.core.api.AtomicReferenceFieldUpdaterAssert; +import org.assertj.core.api.AtomicStampedReferenceAssert; +import org.assertj.core.api.BigDecimalAssert; +import org.assertj.core.api.BigIntegerAssert; +import org.assertj.core.api.Boolean2DArrayAssert; +import org.assertj.core.api.BooleanArrayAssert; +import org.assertj.core.api.BooleanAssert; +import org.assertj.core.api.Byte2DArrayAssert; +import org.assertj.core.api.ByteArrayAssert; +import org.assertj.core.api.ByteAssert; +import org.assertj.core.api.Char2DArrayAssert; +import org.assertj.core.api.CharArrayAssert; +import org.assertj.core.api.CharSequenceAssert; +import org.assertj.core.api.CharacterAssert; +import org.assertj.core.api.ClassAssert; +import org.assertj.core.api.ClassBasedNavigableIterableAssert; +import org.assertj.core.api.ClassBasedNavigableListAssert; +import org.assertj.core.api.CollectionAssert; +import org.assertj.core.api.CompletableFutureAssert; +import org.assertj.core.api.DateAssert; +import org.assertj.core.api.Double2DArrayAssert; +import org.assertj.core.api.DoubleArrayAssert; +import org.assertj.core.api.DoubleAssert; +import org.assertj.core.api.DurationAssert; +import org.assertj.core.api.FactoryBasedNavigableIterableAssert; +import org.assertj.core.api.FactoryBasedNavigableListAssert; +import org.assertj.core.api.FileAssert; +import org.assertj.core.api.Float2DArrayAssert; +import org.assertj.core.api.FloatArrayAssert; +import org.assertj.core.api.FloatAssert; +import org.assertj.core.api.FutureAssert; +import org.assertj.core.api.InstantAssert; +import org.assertj.core.api.Int2DArrayAssert; +import org.assertj.core.api.IntArrayAssert; +import org.assertj.core.api.IntegerAssert; +import org.assertj.core.api.IterableAssert; +import org.assertj.core.api.IteratorAssert; +import org.assertj.core.api.ListAssert; +import org.assertj.core.api.LocalDateAssert; +import org.assertj.core.api.LocalDateTimeAssert; +import org.assertj.core.api.LocalTimeAssert; +import org.assertj.core.api.Long2DArrayAssert; +import org.assertj.core.api.LongAdderAssert; +import org.assertj.core.api.LongArrayAssert; +import org.assertj.core.api.LongAssert; +import org.assertj.core.api.MapAssert; +import org.assertj.core.api.Object2DArrayAssert; +import org.assertj.core.api.ObjectArrayAssert; +import org.assertj.core.api.ObjectAssert; +import org.assertj.core.api.OffsetDateTimeAssert; +import org.assertj.core.api.OffsetTimeAssert; +import org.assertj.core.api.OptionalAssert; +import org.assertj.core.api.OptionalDoubleAssert; +import org.assertj.core.api.OptionalIntAssert; +import org.assertj.core.api.OptionalLongAssert; +import org.assertj.core.api.PathAssert; +import org.assertj.core.api.PeriodAssert; +import org.assertj.core.api.Short2DArrayAssert; +import org.assertj.core.api.ShortArrayAssert; +import org.assertj.core.api.ShortAssert; +import org.assertj.core.api.SpliteratorAssert; +import org.assertj.core.api.TemporalAssert; +import org.assertj.core.api.ThrowableAssert; +import org.assertj.core.api.ThrowableTypeAssert; +import org.assertj.core.api.UriAssert; +import org.assertj.core.api.YearMonthAssert; +import org.assertj.core.api.ZonedDateTimeAssert; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; @@ -61,1550 +239,1550 @@ public class OrgAssertjCoreApi { //public class org.assertj.core.api.Assertions class Assertions$ { // primitive-array actuals (an entry point like any other: read, not consumed) and fail(.., cause), 2026-10-13 - @Independent static org.assertj.core.api.AbstractBooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } - @Independent static org.assertj.core.api.Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } - @Independent static org.assertj.core.api.Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractCharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } - @Independent static org.assertj.core.api.Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractDoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } - @Independent static org.assertj.core.api.Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractFloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractIntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } - @Independent static org.assertj.core.api.Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } - @Independent static org.assertj.core.api.Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractLongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } - @Independent static org.assertj.core.api.Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } - @Independent static org.assertj.core.api.Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } - static T fail(java.lang.String arg0, @NotModified java.lang.Throwable arg1) { return null; } - static T fail(@NotModified java.lang.Throwable arg0) { return null; } + @Independent static AbstractBooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } + @Independent static Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent static AbstractByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } + @Independent static Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } + @Independent static AbstractCharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } + @Independent static Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } + @Independent static AbstractDoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } + @Independent static Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } + @Independent static AbstractFloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } + @Independent static AbstractIntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } + @Independent static Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } + @Independent static Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } + @Independent static AbstractLongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } + @Independent static Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } + @Independent static AbstractShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } + @Independent static Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } + static T fail(String arg0, @NotModified Throwable arg1) { return null; } + static T fail(@NotModified Throwable arg0) { return null; } // the callable is CALLED, not modified (ThrowingCallable is not @FunctionalInterface, so the shallow // rule for function types does not reach it); the message arguments are formatted, not modified - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.String arg1, @NotModified java.lang.Object... arg2) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.Throwable catchThrowable(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static THROWABLE catchThrowableOfType(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.Class arg1) { return null; } - static THROWABLE catchThrowableOfType(java.lang.Class arg0, @IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg1) { return null; } - static java.lang.Exception catchException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.RuntimeException catchRuntimeException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.NullPointerException catchNullPointerException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.IllegalArgumentException catchIllegalArgumentException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.io.IOException catchIOException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.ReflectiveOperationException catchReflectiveOperationException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.IllegalStateException catchIllegalStateException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.IndexOutOfBoundsException catchIndexOutOfBoundsException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, String arg1, @NotModified Object... arg2) { return null; } + @Independent static AbstractThrowableAssert assertThatCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static Throwable catchThrowable(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static THROWABLE catchThrowableOfType(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, Class arg1) { return null; } + static THROWABLE catchThrowableOfType(Class arg0, @IgnoreModifications ThrowableAssert.ThrowingCallable arg1) { return null; } + static Exception catchException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static RuntimeException catchRuntimeException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static NullPointerException catchNullPointerException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static IllegalArgumentException catchIllegalArgumentException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static IOException catchIOException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static ReflectiveOperationException catchReflectiveOperationException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static IllegalStateException catchIllegalStateException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static IndexOutOfBoundsException catchIndexOutOfBoundsException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } @Independent - static org.assertj.core.api.CompletableFutureAssert assertThat(@Independent @NotModified java.util.concurrent.CompletableFuture arg0) { return null; } + static CompletableFutureAssert assertThat(@Independent @NotModified CompletableFuture arg0) { return null; } @Independent - static org.assertj.core.api.CompletableFutureAssert assertThat(@Independent @NotModified java.util.concurrent.CompletionStage arg0) { return null; } + static CompletableFutureAssert assertThat(@Independent @NotModified CompletionStage arg0) { return null; } @Independent - static org.assertj.core.api.OptionalAssert assertThat(@Independent @NotModified java.util.Optional arg0) { return null; } + static OptionalAssert assertThat(@Independent @NotModified Optional arg0) { return null; } @Independent - static org.assertj.core.api.OptionalDoubleAssert assertThat(@Independent @NotModified java.util.OptionalDouble arg0) { return null; } + static OptionalDoubleAssert assertThat(@Independent @NotModified OptionalDouble arg0) { return null; } @Independent - static org.assertj.core.api.OptionalIntAssert assertThat(@Independent @NotModified java.util.OptionalInt arg0) { return null; } + static OptionalIntAssert assertThat(@Independent @NotModified OptionalInt arg0) { return null; } @Independent - static org.assertj.core.api.OptionalLongAssert assertThat(@Independent @NotModified java.util.OptionalLong arg0) { return null; } + static OptionalLongAssert assertThat(@Independent @NotModified OptionalLong arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigDecimalAssert assertThat(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + static AbstractBigDecimalAssert assertThat(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigIntegerAssert assertThat(@Independent @NotModified java.math.BigInteger arg0) { return null; } + static AbstractBigIntegerAssert assertThat(@Independent @NotModified BigInteger arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUriAssert assertThat(@Independent @NotModified java.net.URI arg0) { return null; } + static AbstractUriAssert assertThat(@Independent @NotModified URI arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUrlAssert assertThat(@Independent @NotModified java.net.URL arg0) { return null; } + static AbstractUrlAssert assertThat(@Independent @NotModified URL arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBooleanAssert assertThat(@Independent @NotModified java.lang.Boolean arg0) { return null; } + static AbstractBooleanAssert assertThat(@Independent @NotModified Boolean arg0) { return null; } @Independent - static org.assertj.core.api.AbstractByteAssert assertThat(@Independent @NotModified java.lang.Byte arg0) { return null; } + static AbstractByteAssert assertThat(@Independent @NotModified Byte arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharacterAssert assertThat(@Independent @NotModified java.lang.Character arg0) { return null; } + static AbstractCharacterAssert assertThat(@Independent @NotModified Character arg0) { return null; } @Independent - static org.assertj.core.api.ClassAssert assertThat(@Independent @NotModified java.lang.Class arg0) { return null; } + static ClassAssert assertThat(@Independent @NotModified Class arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDoubleAssert assertThat(@Independent @NotModified java.lang.Double arg0) { return null; } + static AbstractDoubleAssert assertThat(@Independent @NotModified Double arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFileAssert assertThat(@Independent @NotModified java.io.File arg0) { return null; } + static AbstractFileAssert assertThat(@Independent @NotModified File arg0) { return null; } @Independent - static org.assertj.core.api.FutureAssert assertThat(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + static FutureAssert assertThat(@Independent @NotModified Future arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFloatAssert assertThat(@Independent @NotModified java.lang.Float arg0) { return null; } + static AbstractFloatAssert assertThat(@Independent @NotModified Float arg0) { return null; } @Independent - static org.assertj.core.api.AbstractIntegerAssert assertThat(@Independent @NotModified java.lang.Integer arg0) { return null; } + static AbstractIntegerAssert assertThat(@Independent @NotModified Integer arg0) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableIterableAssert assertThat(@Independent @NotModified java.lang.Iterable arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableIterableAssert assertThat(@Independent @NotModified Iterable arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableIterableAssert assertThat(@Independent @NotModified ACTUAL arg0, java.lang.Class arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableIterableAssert assertThat(@Independent @NotModified ACTUAL arg0, Class arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableListAssert assertThat(@Independent @NotModified java.util.List arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableListAssert assertThat(@Independent @NotModified List arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableListAssert assertThat(@Independent @NotModified java.util.List arg0, java.lang.Class arg1) { return null; } + static , ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableListAssert assertThat(@Independent @NotModified List arg0, Class arg1) { return null; } @Independent - static org.assertj.core.api.AbstractLongAssert assertThat(@Independent @NotModified java.lang.Long arg0) { return null; } + static AbstractLongAssert assertThat(@Independent @NotModified Long arg0) { return null; } @Independent - static org.assertj.core.api.ObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } + static ObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } + static ObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } @Independent - static org.assertj.core.api.Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } + static Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } @Independent - static org.assertj.core.api.AbstractShortAssert assertThat(@Independent @NotModified java.lang.Short arg0) { return null; } + static AbstractShortAssert assertThat(@Independent @NotModified Short arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDateAssert assertThat(@Independent @NotModified java.util.Date arg0) { return null; } + static AbstractDateAssert assertThat(@Independent @NotModified Date arg0) { return null; } @Independent - static org.assertj.core.api.AbstractZonedDateTimeAssert assertThat(@Independent @NotModified java.time.ZonedDateTime arg0) { return null; } + static AbstractZonedDateTimeAssert assertThat(@Independent @NotModified ZonedDateTime arg0) { return null; } @Independent - static org.assertj.core.api.TemporalAssert assertThatTemporal(@Independent @NotModified java.time.temporal.Temporal arg0) { return null; } + static TemporalAssert assertThatTemporal(@Independent @NotModified Temporal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalDateTimeAssert assertThat(@Independent @NotModified java.time.LocalDateTime arg0) { return null; } + static AbstractLocalDateTimeAssert assertThat(@Independent @NotModified LocalDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractOffsetDateTimeAssert assertThat(@Independent @NotModified java.time.OffsetDateTime arg0) { return null; } + static AbstractOffsetDateTimeAssert assertThat(@Independent @NotModified OffsetDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractOffsetTimeAssert assertThat(@Independent @NotModified java.time.OffsetTime arg0) { return null; } + static AbstractOffsetTimeAssert assertThat(@Independent @NotModified OffsetTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalTimeAssert assertThat(@Independent @NotModified java.time.LocalTime arg0) { return null; } + static AbstractLocalTimeAssert assertThat(@Independent @NotModified LocalTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalDateAssert assertThat(@Independent @NotModified java.time.LocalDate arg0) { return null; } + static AbstractLocalDateAssert assertThat(@Independent @NotModified LocalDate arg0) { return null; } @Independent - static org.assertj.core.api.AbstractYearMonthAssert assertThat(@Independent @NotModified java.time.YearMonth arg0) { return null; } + static AbstractYearMonthAssert assertThat(@Independent @NotModified YearMonth arg0) { return null; } @Independent - static org.assertj.core.api.AbstractInstantAssert assertThat(@Independent @NotModified java.time.Instant arg0) { return null; } + static AbstractInstantAssert assertThat(@Independent @NotModified Instant arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDurationAssert assertThat(@Independent @NotModified java.time.Duration arg0) { return null; } + static AbstractDurationAssert assertThat(@Independent @NotModified Duration arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPeriodAssert assertThat(@Independent @NotModified java.time.Period arg0) { return null; } + static AbstractPeriodAssert assertThat(@Independent @NotModified Period arg0) { return null; } @Independent - static org.assertj.core.api.AtomicBooleanAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + static AtomicBooleanAssert assertThat(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + static AtomicIntegerAssert assertThat(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + static AtomicIntegerArrayAssert assertThat(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + static AtomicIntegerFieldUpdaterAssert assertThat(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.LongAdderAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.LongAdder arg0) { return null; } + static LongAdderAssert assertThat(@Independent @NotModified LongAdder arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + static AtomicLongAssert assertThat(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + static AtomicLongArrayAssert assertThat(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + static AtomicLongFieldUpdaterAssert assertThat(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + static AtomicReferenceAssert assertThat(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + static AtomicReferenceArrayAssert assertThat(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + static AtomicReferenceFieldUpdaterAssert assertThat(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicMarkableReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + static AtomicMarkableReferenceAssert assertThat(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicStampedReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + static AtomicStampedReferenceAssert assertThat(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - static org.assertj.core.api.AbstractThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } + static AbstractThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ObjectAssert assertThatObject(@Independent @NotModified T arg0) { return null; } + static ObjectAssert assertThatObject(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ThrowableTypeAssert assertThatExceptionOfType(@Independent @NotModified java.lang.Class arg0) { return null; } + static ThrowableTypeAssert assertThatExceptionOfType(@Independent @NotModified Class arg0) { return null; } @Independent - static T assertThat(@Independent @NotModified org.assertj.core.api.AssertProvider arg0) { return null; } + static T assertThat(@Independent @NotModified AssertProvider arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThatCharSequence(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert assertThatCharSequence(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - static org.assertj.core.api.IterableAssert assertThat(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static IterableAssert assertThat(@Independent @NotModified Iterable arg0) { return null; } @Independent - static org.assertj.core.api.IterableAssert assertThatIterable(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static IterableAssert assertThatIterable(@Independent @NotModified Iterable arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> assertThat(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, E, ObjectAssert> assertThat(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> assertThatCollection(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, E, ObjectAssert> assertThatCollection(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.ListAssert assertThat(@Independent @NotModified java.util.List arg0) { return null; } + static ListAssert assertThat(@Independent @NotModified List arg0) { return null; } @Independent - static org.assertj.core.api.ListAssert assertThatList(@Independent @NotModified java.util.List arg0) { return null; } + static ListAssert assertThatList(@Independent @NotModified List arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPathAssert assertThat(@Independent @NotModified java.nio.file.Path arg0) { return null; } + static AbstractPathAssert assertThat(@Independent @NotModified Path arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPathAssert assertThatPath(@Independent @NotModified java.nio.file.Path arg0) { return null; } + static AbstractPathAssert assertThatPath(@Independent @NotModified Path arg0) { return null; } @Independent - static org.assertj.core.api.MapAssert assertThat(@Independent @NotModified java.util.Map arg0) { return null; } + static MapAssert assertThat(@Independent @NotModified Map arg0) { return null; } @Independent - static > org.assertj.core.api.AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } + static > AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUniversalComparableAssert assertThatComparable(@Independent @NotModified java.lang.Comparable arg0) { return null; } + static AbstractUniversalComparableAssert assertThatComparable(@Independent @NotModified Comparable arg0) { return null; } @Independent - static T assertThat(@Independent @NotModified T arg0) { return null; } + static T assertThat(@Independent @NotModified T arg0) { return null; } } //public class org.assertj.core.api.BDDAssertions class BDDAssertions$ { - @Independent static org.assertj.core.api.AbstractBooleanArrayAssert then(@Independent @NotModified boolean[] arg0) { return null; } - @Independent static org.assertj.core.api.Boolean2DArrayAssert then(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractByteArrayAssert then(@Independent @NotModified byte[] arg0) { return null; } - @Independent static org.assertj.core.api.Byte2DArrayAssert then(@Independent @NotModified byte[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractCharArrayAssert then(@Independent @NotModified char[] arg0) { return null; } - @Independent static org.assertj.core.api.Char2DArrayAssert then(@Independent @NotModified char[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractDoubleArrayAssert then(@Independent @NotModified double[] arg0) { return null; } - @Independent static org.assertj.core.api.Double2DArrayAssert then(@Independent @NotModified double[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractFloatArrayAssert then(@Independent @NotModified float[] arg0) { return null; } - @Independent static org.assertj.core.api.Float2DArrayAssert then(@Independent @NotModified float[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractIntArrayAssert then(@Independent @NotModified int[] arg0) { return null; } - @Independent static org.assertj.core.api.Int2DArrayAssert then(@Independent @NotModified int[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractLongArrayAssert then(@Independent @NotModified long[] arg0) { return null; } - @Independent static org.assertj.core.api.Long2DArrayAssert then(@Independent @NotModified long[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractShortArrayAssert then(@Independent @NotModified short[] arg0) { return null; } - @Independent static org.assertj.core.api.Short2DArrayAssert then(@Independent @NotModified short[][] arg0) { return null; } - static T fail(java.lang.String arg0, @NotModified java.lang.Throwable arg1) { return null; } - static T fail(@NotModified java.lang.Throwable arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert thenThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert thenThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.String arg1, @NotModified java.lang.Object... arg2) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert thenCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.Throwable catchThrowable(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static THROWABLE catchThrowableOfType(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.Class arg1) { return null; } - static THROWABLE catchThrowableOfType(java.lang.Class arg0, @IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg1) { return null; } - static java.lang.Exception catchException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.RuntimeException catchRuntimeException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.NullPointerException catchNullPointerException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.IllegalArgumentException catchIllegalArgumentException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.io.IOException catchIOException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.ReflectiveOperationException catchReflectiveOperationException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.IllegalStateException catchIllegalStateException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.IndexOutOfBoundsException catchIndexOutOfBoundsException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractBooleanArrayAssert then(@Independent @NotModified boolean[] arg0) { return null; } + @Independent static Boolean2DArrayAssert then(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent static AbstractByteArrayAssert then(@Independent @NotModified byte[] arg0) { return null; } + @Independent static Byte2DArrayAssert then(@Independent @NotModified byte[][] arg0) { return null; } + @Independent static AbstractCharArrayAssert then(@Independent @NotModified char[] arg0) { return null; } + @Independent static Char2DArrayAssert then(@Independent @NotModified char[][] arg0) { return null; } + @Independent static AbstractDoubleArrayAssert then(@Independent @NotModified double[] arg0) { return null; } + @Independent static Double2DArrayAssert then(@Independent @NotModified double[][] arg0) { return null; } + @Independent static AbstractFloatArrayAssert then(@Independent @NotModified float[] arg0) { return null; } + @Independent static Float2DArrayAssert then(@Independent @NotModified float[][] arg0) { return null; } + @Independent static AbstractIntArrayAssert then(@Independent @NotModified int[] arg0) { return null; } + @Independent static Int2DArrayAssert then(@Independent @NotModified int[][] arg0) { return null; } + @Independent static AbstractLongArrayAssert then(@Independent @NotModified long[] arg0) { return null; } + @Independent static Long2DArrayAssert then(@Independent @NotModified long[][] arg0) { return null; } + @Independent static AbstractShortArrayAssert then(@Independent @NotModified short[] arg0) { return null; } + @Independent static Short2DArrayAssert then(@Independent @NotModified short[][] arg0) { return null; } + static T fail(String arg0, @NotModified Throwable arg1) { return null; } + static T fail(@NotModified Throwable arg0) { return null; } + @Independent static AbstractThrowableAssert thenThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractThrowableAssert thenThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, String arg1, @NotModified Object... arg2) { return null; } + @Independent static AbstractThrowableAssert thenCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static Throwable catchThrowable(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static THROWABLE catchThrowableOfType(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, Class arg1) { return null; } + static THROWABLE catchThrowableOfType(Class arg0, @IgnoreModifications ThrowableAssert.ThrowingCallable arg1) { return null; } + static Exception catchException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static RuntimeException catchRuntimeException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static NullPointerException catchNullPointerException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static IllegalArgumentException catchIllegalArgumentException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static IOException catchIOException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static ReflectiveOperationException catchReflectiveOperationException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static IllegalStateException catchIllegalStateException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static IndexOutOfBoundsException catchIndexOutOfBoundsException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } @Independent - static org.assertj.core.api.OptionalAssert then(@Independent @NotModified java.util.Optional arg0) { return null; } + static OptionalAssert then(@Independent @NotModified Optional arg0) { return null; } @Independent - static org.assertj.core.api.OptionalIntAssert then(@Independent @NotModified java.util.OptionalInt arg0) { return null; } + static OptionalIntAssert then(@Independent @NotModified OptionalInt arg0) { return null; } @Independent - static org.assertj.core.api.OptionalLongAssert then(@Independent @NotModified java.util.OptionalLong arg0) { return null; } + static OptionalLongAssert then(@Independent @NotModified OptionalLong arg0) { return null; } @Independent - static org.assertj.core.api.OptionalDoubleAssert then(@Independent @NotModified java.util.OptionalDouble arg0) { return null; } + static OptionalDoubleAssert then(@Independent @NotModified OptionalDouble arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigDecimalAssert then(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + static AbstractBigDecimalAssert then(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigIntegerAssert then(@Independent @NotModified java.math.BigInteger arg0) { return null; } + static AbstractBigIntegerAssert then(@Independent @NotModified BigInteger arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBooleanAssert then(@Independent @NotModified java.lang.Boolean arg0) { return null; } + static AbstractBooleanAssert then(@Independent @NotModified Boolean arg0) { return null; } @Independent - static org.assertj.core.api.AbstractByteAssert then(@Independent @NotModified java.lang.Byte arg0) { return null; } + static AbstractByteAssert then(@Independent @NotModified Byte arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharacterAssert then(@Independent @NotModified java.lang.Character arg0) { return null; } + static AbstractCharacterAssert then(@Independent @NotModified Character arg0) { return null; } @Independent - static org.assertj.core.api.ClassAssert then(@Independent @NotModified java.lang.Class arg0) { return null; } + static ClassAssert then(@Independent @NotModified Class arg0) { return null; } @Independent - static > org.assertj.core.api.AbstractComparableAssert then(@Independent @NotModified T arg0) { return null; } + static > AbstractComparableAssert then(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUniversalComparableAssert thenComparable(@Independent @NotModified java.lang.Comparable arg0) { return null; } + static AbstractUniversalComparableAssert thenComparable(@Independent @NotModified Comparable arg0) { return null; } @Independent - static org.assertj.core.api.IterableAssert then(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static IterableAssert then(@Independent @NotModified Iterable arg0) { return null; } @Independent - static org.assertj.core.api.IterableAssert thenIterable(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static IterableAssert thenIterable(@Independent @NotModified Iterable arg0) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableIterableAssert then(@Independent @NotModified java.lang.Iterable arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableIterableAssert then(@Independent @NotModified Iterable arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableIterableAssert then(@Independent @NotModified ACTUAL arg0, java.lang.Class arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableIterableAssert then(@Independent @NotModified ACTUAL arg0, Class arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableListAssert then(@Independent @NotModified java.util.List arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableListAssert then(@Independent @NotModified List arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableListAssert then(@Independent @NotModified java.util.List arg0, java.lang.Class arg1) { return null; } + static , ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableListAssert then(@Independent @NotModified List arg0, Class arg1) { return null; } @Independent - static org.assertj.core.api.AbstractDoubleAssert then(@Independent @NotModified java.lang.Double arg0) { return null; } + static AbstractDoubleAssert then(@Independent @NotModified Double arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFileAssert then(@Independent @NotModified java.io.File arg0) { return null; } + static AbstractFileAssert then(@Independent @NotModified File arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPathAssert then(@Independent @NotModified java.nio.file.Path arg0) { return null; } + static AbstractPathAssert then(@Independent @NotModified Path arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPathAssert thenPath(@Independent @NotModified java.nio.file.Path arg0) { return null; } + static AbstractPathAssert thenPath(@Independent @NotModified Path arg0) { return null; } @Independent - static org.assertj.core.api.FutureAssert then(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + static FutureAssert then(@Independent @NotModified Future arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFloatAssert then(@Independent @NotModified java.lang.Float arg0) { return null; } + static AbstractFloatAssert then(@Independent @NotModified Float arg0) { return null; } @Independent - static org.assertj.core.api.AbstractIntegerAssert then(@Independent @NotModified java.lang.Integer arg0) { return null; } + static AbstractIntegerAssert then(@Independent @NotModified Integer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> then(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, E, ObjectAssert> then(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> thenCollection(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, E, ObjectAssert> thenCollection(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.ListAssert then(@Independent @NotModified java.util.List arg0) { return null; } + static ListAssert then(@Independent @NotModified List arg0) { return null; } @Independent - static org.assertj.core.api.ListAssert thenList(@Independent @NotModified java.util.List arg0) { return null; } + static ListAssert thenList(@Independent @NotModified List arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLongAssert then(@Independent @NotModified java.lang.Long arg0) { return null; } + static AbstractLongAssert then(@Independent @NotModified Long arg0) { return null; } @Independent - static org.assertj.core.api.ObjectAssert then(@Independent @NotModified T arg0) { return null; } + static ObjectAssert then(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ObjectArrayAssert then(@Independent @NotModified T[] arg0) { return null; } + static ObjectArrayAssert then(@Independent @NotModified T[] arg0) { return null; } @Independent - static org.assertj.core.api.Object2DArrayAssert then(@Independent @NotModified T[][] arg0) { return null; } + static Object2DArrayAssert then(@Independent @NotModified T[][] arg0) { return null; } @Independent - static org.assertj.core.api.MapAssert then(@Independent @NotModified java.util.Map arg0) { return null; } + static MapAssert then(@Independent @NotModified Map arg0) { return null; } @Independent - static org.assertj.core.api.AbstractShortAssert then(@Independent @NotModified java.lang.Short arg0) { return null; } + static AbstractShortAssert then(@Independent @NotModified Short arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert then(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert then(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert thenCharSequence(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert thenCharSequence(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert then(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + static AbstractCharSequenceAssert then(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert then(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + static AbstractCharSequenceAssert then(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDateAssert then(@Independent @NotModified java.util.Date arg0) { return null; } + static AbstractDateAssert then(@Independent @NotModified Date arg0) { return null; } @Independent - static org.assertj.core.api.AtomicBooleanAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + static AtomicBooleanAssert then(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + static AtomicIntegerAssert then(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + static AtomicIntegerArrayAssert then(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + static AtomicIntegerFieldUpdaterAssert then(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.LongAdderAssert then(@Independent @NotModified java.util.concurrent.atomic.LongAdder arg0) { return null; } + static LongAdderAssert then(@Independent @NotModified LongAdder arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + static AtomicLongAssert then(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + static AtomicLongArrayAssert then(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + static AtomicLongFieldUpdaterAssert then(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + static AtomicReferenceAssert then(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + static AtomicReferenceArrayAssert then(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + static AtomicReferenceFieldUpdaterAssert then(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicMarkableReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + static AtomicMarkableReferenceAssert then(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicStampedReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + static AtomicStampedReferenceAssert then(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - static org.assertj.core.api.AbstractThrowableAssert then(@Independent @NotModified T arg0) { return null; } + static AbstractThrowableAssert then(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ObjectAssert thenObject(@Independent @NotModified T arg0) { return null; } + static ObjectAssert thenObject(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ObjectAssert thenWith(@Independent @NotModified T arg0, java.util.function.Consumer... arg1) { return null; } + static ObjectAssert thenWith(@Independent @NotModified T arg0, Consumer... arg1) { return null; } @Independent - static org.assertj.core.api.TemporalAssert thenTemporal(@Independent @NotModified java.time.temporal.Temporal arg0) { return null; } + static TemporalAssert thenTemporal(@Independent @NotModified Temporal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalDateAssert then(@Independent @NotModified java.time.LocalDate arg0) { return null; } + static AbstractLocalDateAssert then(@Independent @NotModified LocalDate arg0) { return null; } @Independent - static org.assertj.core.api.AbstractYearMonthAssert then(@Independent @NotModified java.time.YearMonth arg0) { return null; } + static AbstractYearMonthAssert then(@Independent @NotModified YearMonth arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalDateTimeAssert then(@Independent @NotModified java.time.LocalDateTime arg0) { return null; } + static AbstractLocalDateTimeAssert then(@Independent @NotModified LocalDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractZonedDateTimeAssert then(@Independent @NotModified java.time.ZonedDateTime arg0) { return null; } + static AbstractZonedDateTimeAssert then(@Independent @NotModified ZonedDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalTimeAssert then(@Independent @NotModified java.time.LocalTime arg0) { return null; } + static AbstractLocalTimeAssert then(@Independent @NotModified LocalTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractOffsetTimeAssert then(@Independent @NotModified java.time.OffsetTime arg0) { return null; } + static AbstractOffsetTimeAssert then(@Independent @NotModified OffsetTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractInstantAssert then(@Independent @NotModified java.time.Instant arg0) { return null; } + static AbstractInstantAssert then(@Independent @NotModified Instant arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDurationAssert then(@Independent @NotModified java.time.Duration arg0) { return null; } + static AbstractDurationAssert then(@Independent @NotModified Duration arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPeriodAssert then(@Independent @NotModified java.time.Period arg0) { return null; } + static AbstractPeriodAssert then(@Independent @NotModified Period arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUriAssert then(@Independent @NotModified java.net.URI arg0) { return null; } + static AbstractUriAssert then(@Independent @NotModified URI arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUrlAssert then(@Independent @NotModified java.net.URL arg0) { return null; } + static AbstractUrlAssert then(@Independent @NotModified URL arg0) { return null; } @Independent - static org.assertj.core.api.AbstractOffsetDateTimeAssert then(@Independent @NotModified java.time.OffsetDateTime arg0) { return null; } + static AbstractOffsetDateTimeAssert then(@Independent @NotModified OffsetDateTime arg0) { return null; } @Independent - static org.assertj.core.api.CompletableFutureAssert then(@Independent @NotModified java.util.concurrent.CompletableFuture arg0) { return null; } + static CompletableFutureAssert then(@Independent @NotModified CompletableFuture arg0) { return null; } @Independent - static org.assertj.core.api.CompletableFutureAssert then(@Independent @NotModified java.util.concurrent.CompletionStage arg0) { return null; } + static CompletableFutureAssert then(@Independent @NotModified CompletionStage arg0) { return null; } @Independent - static T then(@Independent @NotModified T arg0) { return null; } + static T then(@Independent @NotModified T arg0) { return null; } @Independent - static T then(@Independent @NotModified org.assertj.core.api.AssertProvider arg0) { return null; } + static T then(@Independent @NotModified AssertProvider arg0) { return null; } @Independent - static org.assertj.core.api.ThrowableTypeAssert thenExceptionOfType(@Independent @NotModified java.lang.Class arg0) { return null; } + static ThrowableTypeAssert thenExceptionOfType(@Independent @NotModified Class arg0) { return null; } } //public interface org.assertj.core.api.WithAssertions class WithAssertions$ { - T fail(java.lang.String arg0, @NotModified java.lang.Throwable arg1) { return null; } - T fail(@NotModified java.lang.Throwable arg0) { return null; } - @Independent org.assertj.core.api.AbstractLongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } - @Independent org.assertj.core.api.Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } - @Independent org.assertj.core.api.Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractCharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } - @Independent org.assertj.core.api.Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractBooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } - @Independent org.assertj.core.api.Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } - @Independent org.assertj.core.api.Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractIntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } - @Independent org.assertj.core.api.Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } - @Independent org.assertj.core.api.Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractFloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } - @Independent org.assertj.core.api.AbstractDoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } - @Independent org.assertj.core.api.Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.String arg1, @NotModified java.lang.Object... arg2) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert assertThatCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - java.lang.Throwable catchThrowable(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - THROWABLE catchThrowableOfType(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.Class arg1) { return null; } - THROWABLE catchThrowableOfType(java.lang.Class arg0, @IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg1) { return null; } - java.lang.Exception catchException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - java.lang.RuntimeException catchRuntimeException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - java.lang.NullPointerException catchNullPointerException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - java.lang.IllegalArgumentException catchIllegalArgumentException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - java.io.IOException catchIOException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - java.lang.ReflectiveOperationException catchReflectiveOperationException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - java.lang.IllegalStateException catchIllegalStateException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - java.lang.IndexOutOfBoundsException catchIndexOutOfBoundsException(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } + T fail(String arg0, @NotModified Throwable arg1) { return null; } + T fail(@NotModified Throwable arg0) { return null; } + @Independent AbstractLongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } + @Independent Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } + @Independent AbstractShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } + @Independent Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } + @Independent AbstractCharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } + @Independent Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } + @Independent AbstractBooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } + @Independent Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent AbstractByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } + @Independent Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } + @Independent AbstractIntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } + @Independent Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } + @Independent Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } + @Independent AbstractFloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } + @Independent AbstractDoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } + @Independent Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } + @Independent AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, String arg1, @NotModified Object... arg2) { return null; } + @Independent AbstractThrowableAssert assertThatCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + Throwable catchThrowable(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + THROWABLE catchThrowableOfType(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, Class arg1) { return null; } + THROWABLE catchThrowableOfType(Class arg0, @IgnoreModifications ThrowableAssert.ThrowingCallable arg1) { return null; } + Exception catchException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + RuntimeException catchRuntimeException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + NullPointerException catchNullPointerException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + IllegalArgumentException catchIllegalArgumentException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + IOException catchIOException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + ReflectiveOperationException catchReflectiveOperationException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + IllegalStateException catchIllegalStateException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + IndexOutOfBoundsException catchIndexOutOfBoundsException(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } @Independent - org.assertj.core.api.ObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } + ObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } @Independent - org.assertj.core.api.Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } + Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } @Independent - T assertThat(@Independent @NotModified T arg0) { return null; } + T assertThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.MapAssert assertThat(@Independent @NotModified java.util.Map arg0) { return null; } + MapAssert assertThat(@Independent @NotModified Map arg0) { return null; } @Independent - org.assertj.core.api.AbstractLongAssert assertThat(@Independent @NotModified java.lang.Long arg0) { return null; } + AbstractLongAssert assertThat(@Independent @NotModified Long arg0) { return null; } @Independent - org.assertj.core.api.ObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } + ObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractDateAssert assertThat(@Independent @NotModified java.util.Date arg0) { return null; } + AbstractDateAssert assertThat(@Independent @NotModified Date arg0) { return null; } @Independent - org.assertj.core.api.AbstractThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } + AbstractThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractBigDecimalAssert assertThat(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + AbstractBigDecimalAssert assertThat(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - org.assertj.core.api.AbstractBigIntegerAssert assertThat(@Independent @NotModified java.math.BigInteger arg0) { return null; } + AbstractBigIntegerAssert assertThat(@Independent @NotModified BigInteger arg0) { return null; } @Independent - org.assertj.core.api.AtomicBooleanAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + AtomicBooleanAssert assertThat(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + AtomicIntegerAssert assertThat(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + AtomicIntegerArrayAssert assertThat(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + AtomicIntegerFieldUpdaterAssert assertThat(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.LongAdderAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.LongAdder arg0) { return null; } + LongAdderAssert assertThat(@Independent @NotModified LongAdder arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + AtomicLongAssert assertThat(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + AtomicLongArrayAssert assertThat(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + AtomicLongFieldUpdaterAssert assertThat(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + AtomicReferenceAssert assertThat(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + AtomicReferenceArrayAssert assertThat(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + AtomicReferenceFieldUpdaterAssert assertThat(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicMarkableReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + AtomicMarkableReferenceAssert assertThat(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - org.assertj.core.api.AtomicStampedReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + AtomicStampedReferenceAssert assertThat(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + AbstractCharSequenceAssert assertThat(@Independent @NotModified CharSequence arg0) { return null; } @Independent - org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + AbstractCharSequenceAssert assertThat(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + AbstractCharSequenceAssert assertThat(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - org.assertj.core.api.AbstractShortAssert assertThat(@Independent @NotModified java.lang.Short arg0) { return null; } + AbstractShortAssert assertThat(@Independent @NotModified Short arg0) { return null; } @Independent - org.assertj.core.api.ClassAssert assertThat(@Independent @NotModified java.lang.Class arg0) { return null; } + ClassAssert assertThat(@Independent @NotModified Class arg0) { return null; } @Independent - org.assertj.core.api.AbstractCharacterAssert assertThat(@Independent @NotModified java.lang.Character arg0) { return null; } + AbstractCharacterAssert assertThat(@Independent @NotModified Character arg0) { return null; } @Independent - > org.assertj.core.api.AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } + > AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractUniversalComparableAssert assertThatComparable(@Independent @NotModified java.lang.Comparable arg0) { return null; } + AbstractUniversalComparableAssert assertThatComparable(@Independent @NotModified Comparable arg0) { return null; } @Independent - org.assertj.core.api.IterableAssert assertThat(@Independent @NotModified java.lang.Iterable arg0) { return null; } + IterableAssert assertThat(@Independent @NotModified Iterable arg0) { return null; } @Independent - org.assertj.core.api.IterableAssert assertThatIterable(@Independent @NotModified java.lang.Iterable arg0) { return null; } + IterableAssert assertThatIterable(@Independent @NotModified Iterable arg0) { return null; } @Independent - , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableIterableAssert assertThat(@Independent @NotModified java.lang.Iterable arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableIterableAssert assertThat(@Independent @NotModified Iterable arg0, AssertFactory arg1) { return null; } @Independent - , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableIterableAssert assertThat(@Independent @NotModified ACTUAL arg0, java.lang.Class arg1) { return null; } + , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableIterableAssert assertThat(@Independent @NotModified ACTUAL arg0, Class arg1) { return null; } @Independent - org.assertj.core.api.AbstractBooleanAssert assertThat(@Independent @NotModified java.lang.Boolean arg0) { return null; } + AbstractBooleanAssert assertThat(@Independent @NotModified Boolean arg0) { return null; } @Independent - org.assertj.core.api.AbstractByteAssert assertThat(@Independent @NotModified java.lang.Byte arg0) { return null; } + AbstractByteAssert assertThat(@Independent @NotModified Byte arg0) { return null; } @Independent - org.assertj.core.api.AbstractFileAssert assertThat(@Independent @NotModified java.io.File arg0) { return null; } + AbstractFileAssert assertThat(@Independent @NotModified File arg0) { return null; } @Independent - org.assertj.core.api.FutureAssert assertThat(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + FutureAssert assertThat(@Independent @NotModified Future arg0) { return null; } @Independent - org.assertj.core.api.AbstractPathAssert assertThat(@Independent @NotModified java.nio.file.Path arg0) { return null; } + AbstractPathAssert assertThat(@Independent @NotModified Path arg0) { return null; } @Independent - org.assertj.core.api.AbstractPathAssert assertThatPath(@Independent @NotModified java.nio.file.Path arg0) { return null; } + AbstractPathAssert assertThatPath(@Independent @NotModified Path arg0) { return null; } @Independent - org.assertj.core.api.AbstractFloatAssert assertThat(@Independent @NotModified java.lang.Float arg0) { return null; } + AbstractFloatAssert assertThat(@Independent @NotModified Float arg0) { return null; } @Independent - org.assertj.core.api.AbstractIntegerAssert assertThat(@Independent @NotModified java.lang.Integer arg0) { return null; } + AbstractIntegerAssert assertThat(@Independent @NotModified Integer arg0) { return null; } @Independent - org.assertj.core.api.AbstractDoubleAssert assertThat(@Independent @NotModified java.lang.Double arg0) { return null; } + AbstractDoubleAssert assertThat(@Independent @NotModified Double arg0) { return null; } @Independent - org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> assertThat(@Independent @NotModified java.util.Collection arg0) { return null; } + AbstractCollectionAssert, E, ObjectAssert> assertThat(@Independent @NotModified Collection arg0) { return null; } @Independent - org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> assertThatCollection(@Independent @NotModified java.util.Collection arg0) { return null; } + AbstractCollectionAssert, E, ObjectAssert> assertThatCollection(@Independent @NotModified Collection arg0) { return null; } @Independent - org.assertj.core.api.ListAssert assertThat(@Independent @NotModified java.util.List arg0) { return null; } + ListAssert assertThat(@Independent @NotModified List arg0) { return null; } @Independent - org.assertj.core.api.ListAssert assertThatList(@Independent @NotModified java.util.List arg0) { return null; } + ListAssert assertThatList(@Independent @NotModified List arg0) { return null; } @Independent - , ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableListAssert assertThat(@Independent @NotModified java.util.List arg0, java.lang.Class arg1) { return null; } + , ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableListAssert assertThat(@Independent @NotModified List arg0, Class arg1) { return null; } @Independent - , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableListAssert assertThat(@Independent @NotModified java.util.List arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableListAssert assertThat(@Independent @NotModified List arg0, AssertFactory arg1) { return null; } @Independent - org.assertj.core.api.AbstractZonedDateTimeAssert assertThat(@Independent @NotModified java.time.ZonedDateTime arg0) { return null; } + AbstractZonedDateTimeAssert assertThat(@Independent @NotModified ZonedDateTime arg0) { return null; } @Independent - org.assertj.core.api.CompletableFutureAssert assertThat(@Independent @NotModified java.util.concurrent.CompletableFuture arg0) { return null; } + CompletableFutureAssert assertThat(@Independent @NotModified CompletableFuture arg0) { return null; } @Independent - org.assertj.core.api.CompletableFutureAssert assertThat(@Independent @NotModified java.util.concurrent.CompletionStage arg0) { return null; } + CompletableFutureAssert assertThat(@Independent @NotModified CompletionStage arg0) { return null; } @Independent - org.assertj.core.api.OptionalAssert assertThat(@Independent @NotModified java.util.Optional arg0) { return null; } + OptionalAssert assertThat(@Independent @NotModified Optional arg0) { return null; } @Independent - org.assertj.core.api.OptionalDoubleAssert assertThat(@Independent @NotModified java.util.OptionalDouble arg0) { return null; } + OptionalDoubleAssert assertThat(@Independent @NotModified OptionalDouble arg0) { return null; } @Independent - org.assertj.core.api.OptionalIntAssert assertThat(@Independent @NotModified java.util.OptionalInt arg0) { return null; } + OptionalIntAssert assertThat(@Independent @NotModified OptionalInt arg0) { return null; } @Independent - org.assertj.core.api.OptionalLongAssert assertThat(@Independent @NotModified java.util.OptionalLong arg0) { return null; } + OptionalLongAssert assertThat(@Independent @NotModified OptionalLong arg0) { return null; } @Independent - org.assertj.core.api.TemporalAssert assertThatTemporal(@Independent @NotModified java.time.temporal.Temporal arg0) { return null; } + TemporalAssert assertThatTemporal(@Independent @NotModified Temporal arg0) { return null; } @Independent - org.assertj.core.api.AbstractLocalDateTimeAssert assertThat(@Independent @NotModified java.time.LocalDateTime arg0) { return null; } + AbstractLocalDateTimeAssert assertThat(@Independent @NotModified LocalDateTime arg0) { return null; } @Independent - org.assertj.core.api.AbstractLocalDateAssert assertThat(@Independent @NotModified java.time.LocalDate arg0) { return null; } + AbstractLocalDateAssert assertThat(@Independent @NotModified LocalDate arg0) { return null; } @Independent - org.assertj.core.api.AbstractYearMonthAssert assertThat(@Independent @NotModified java.time.YearMonth arg0) { return null; } + AbstractYearMonthAssert assertThat(@Independent @NotModified YearMonth arg0) { return null; } @Independent - org.assertj.core.api.AbstractLocalTimeAssert assertThat(@Independent @NotModified java.time.LocalTime arg0) { return null; } + AbstractLocalTimeAssert assertThat(@Independent @NotModified LocalTime arg0) { return null; } @Independent - org.assertj.core.api.AbstractInstantAssert assertThat(@Independent @NotModified java.time.Instant arg0) { return null; } + AbstractInstantAssert assertThat(@Independent @NotModified Instant arg0) { return null; } @Independent - org.assertj.core.api.AbstractDurationAssert assertThat(@Independent @NotModified java.time.Duration arg0) { return null; } + AbstractDurationAssert assertThat(@Independent @NotModified Duration arg0) { return null; } @Independent - org.assertj.core.api.AbstractPeriodAssert assertThat(@Independent @NotModified java.time.Period arg0) { return null; } + AbstractPeriodAssert assertThat(@Independent @NotModified Period arg0) { return null; } @Independent - org.assertj.core.api.AbstractOffsetTimeAssert assertThat(@Independent @NotModified java.time.OffsetTime arg0) { return null; } + AbstractOffsetTimeAssert assertThat(@Independent @NotModified OffsetTime arg0) { return null; } @Independent - org.assertj.core.api.AbstractOffsetDateTimeAssert assertThat(@Independent @NotModified java.time.OffsetDateTime arg0) { return null; } + AbstractOffsetDateTimeAssert assertThat(@Independent @NotModified OffsetDateTime arg0) { return null; } @Independent - org.assertj.core.api.ObjectAssert assertThatObject(@Independent @NotModified T arg0) { return null; } + ObjectAssert assertThatObject(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.ThrowableTypeAssert assertThatExceptionOfType(@Independent @NotModified java.lang.Class arg0) { return null; } + ThrowableTypeAssert assertThatExceptionOfType(@Independent @NotModified Class arg0) { return null; } @Independent - org.assertj.core.api.AbstractUrlAssert assertThat(@Independent @NotModified java.net.URL arg0) { return null; } + AbstractUrlAssert assertThat(@Independent @NotModified URL arg0) { return null; } @Independent - org.assertj.core.api.AbstractUriAssert assertThat(@Independent @NotModified java.net.URI arg0) { return null; } + AbstractUriAssert assertThat(@Independent @NotModified URI arg0) { return null; } @Independent - T assertThat(@Independent @NotModified org.assertj.core.api.AssertProvider arg0) { return null; } + T assertThat(@Independent @NotModified AssertProvider arg0) { return null; } } //public class org.assertj.core.api.AssertionsForClassTypes class AssertionsForClassTypes$ { - @Independent static org.assertj.core.api.AbstractBooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } - @Independent static org.assertj.core.api.Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } - @Independent static org.assertj.core.api.Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractCharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } - @Independent static org.assertj.core.api.Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractDoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } - @Independent static org.assertj.core.api.Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractFloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } - @Independent static org.assertj.core.api.Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractIntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } - @Independent static org.assertj.core.api.Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractLongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } - @Independent static org.assertj.core.api.Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } - @Independent static org.assertj.core.api.Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } - static void fail(java.lang.String arg0, @NotModified java.lang.Throwable arg1) { } - static void fail(@NotModified java.lang.Throwable arg0) { } - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.String arg1, @NotModified java.lang.Object... arg2) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.Throwable catchThrowable(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static THROWABLE catchThrowableOfType(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.Class arg1) { return null; } - static THROWABLE catchThrowableOfType(java.lang.Class arg0, @IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg1) { return null; } + @Independent static AbstractBooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } + @Independent static Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent static AbstractByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } + @Independent static Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } + @Independent static AbstractCharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } + @Independent static Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } + @Independent static AbstractDoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } + @Independent static Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } + @Independent static AbstractFloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } + @Independent static Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } + @Independent static AbstractIntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } + @Independent static Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } + @Independent static AbstractLongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } + @Independent static Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } + @Independent static AbstractShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } + @Independent static Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } + static void fail(String arg0, @NotModified Throwable arg1) { } + static void fail(@NotModified Throwable arg0) { } + @Independent static AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, String arg1, @NotModified Object... arg2) { return null; } + @Independent static AbstractThrowableAssert assertThatCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static Throwable catchThrowable(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static THROWABLE catchThrowableOfType(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, Class arg1) { return null; } + static THROWABLE catchThrowableOfType(Class arg0, @IgnoreModifications ThrowableAssert.ThrowingCallable arg1) { return null; } @Independent - static org.assertj.core.api.CompletableFutureAssert assertThat(@Independent @NotModified java.util.concurrent.CompletableFuture arg0) { return null; } + static CompletableFutureAssert assertThat(@Independent @NotModified CompletableFuture arg0) { return null; } @Independent - static org.assertj.core.api.OptionalAssert assertThat(@Independent @NotModified java.util.Optional arg0) { return null; } + static OptionalAssert assertThat(@Independent @NotModified Optional arg0) { return null; } @Independent - static org.assertj.core.api.OptionalDoubleAssert assertThat(@Independent @NotModified java.util.OptionalDouble arg0) { return null; } + static OptionalDoubleAssert assertThat(@Independent @NotModified OptionalDouble arg0) { return null; } @Independent - static org.assertj.core.api.OptionalIntAssert assertThat(@Independent @NotModified java.util.OptionalInt arg0) { return null; } + static OptionalIntAssert assertThat(@Independent @NotModified OptionalInt arg0) { return null; } @Independent - static org.assertj.core.api.OptionalLongAssert assertThat(@Independent @NotModified java.util.OptionalLong arg0) { return null; } + static OptionalLongAssert assertThat(@Independent @NotModified OptionalLong arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigDecimalAssert assertThat(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + static AbstractBigDecimalAssert assertThat(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUriAssert assertThat(@Independent @NotModified java.net.URI arg0) { return null; } + static AbstractUriAssert assertThat(@Independent @NotModified URI arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUrlAssert assertThat(@Independent @NotModified java.net.URL arg0) { return null; } + static AbstractUrlAssert assertThat(@Independent @NotModified URL arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBooleanAssert assertThat(@Independent @NotModified java.lang.Boolean arg0) { return null; } + static AbstractBooleanAssert assertThat(@Independent @NotModified Boolean arg0) { return null; } @Independent - static org.assertj.core.api.AbstractByteAssert assertThat(@Independent @NotModified java.lang.Byte arg0) { return null; } + static AbstractByteAssert assertThat(@Independent @NotModified Byte arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharacterAssert assertThat(@Independent @NotModified java.lang.Character arg0) { return null; } + static AbstractCharacterAssert assertThat(@Independent @NotModified Character arg0) { return null; } @Independent - static org.assertj.core.api.ClassAssert assertThat(@Independent @NotModified java.lang.Class arg0) { return null; } + static ClassAssert assertThat(@Independent @NotModified Class arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDoubleAssert assertThat(@Independent @NotModified java.lang.Double arg0) { return null; } + static AbstractDoubleAssert assertThat(@Independent @NotModified Double arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFileAssert assertThat(@Independent @NotModified java.io.File arg0) { return null; } + static AbstractFileAssert assertThat(@Independent @NotModified File arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFloatAssert assertThat(@Independent @NotModified java.lang.Float arg0) { return null; } + static AbstractFloatAssert assertThat(@Independent @NotModified Float arg0) { return null; } @Independent - static org.assertj.core.api.AbstractIntegerAssert assertThat(@Independent @NotModified java.lang.Integer arg0) { return null; } + static AbstractIntegerAssert assertThat(@Independent @NotModified Integer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLongAssert assertThat(@Independent @NotModified java.lang.Long arg0) { return null; } + static AbstractLongAssert assertThat(@Independent @NotModified Long arg0) { return null; } @Independent - static org.assertj.core.api.ObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } + static ObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } + static ObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } @Independent - static org.assertj.core.api.Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } + static Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } @Independent - static org.assertj.core.api.AbstractShortAssert assertThat(@Independent @NotModified java.lang.Short arg0) { return null; } + static AbstractShortAssert assertThat(@Independent @NotModified Short arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDateAssert assertThat(@Independent @NotModified java.util.Date arg0) { return null; } + static AbstractDateAssert assertThat(@Independent @NotModified Date arg0) { return null; } @Independent - static org.assertj.core.api.AbstractZonedDateTimeAssert assertThat(@Independent @NotModified java.time.ZonedDateTime arg0) { return null; } + static AbstractZonedDateTimeAssert assertThat(@Independent @NotModified ZonedDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalDateTimeAssert assertThat(@Independent @NotModified java.time.LocalDateTime arg0) { return null; } + static AbstractLocalDateTimeAssert assertThat(@Independent @NotModified LocalDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractOffsetDateTimeAssert assertThat(@Independent @NotModified java.time.OffsetDateTime arg0) { return null; } + static AbstractOffsetDateTimeAssert assertThat(@Independent @NotModified OffsetDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractOffsetTimeAssert assertThat(@Independent @NotModified java.time.OffsetTime arg0) { return null; } + static AbstractOffsetTimeAssert assertThat(@Independent @NotModified OffsetTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalTimeAssert assertThat(@Independent @NotModified java.time.LocalTime arg0) { return null; } + static AbstractLocalTimeAssert assertThat(@Independent @NotModified LocalTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalDateAssert assertThat(@Independent @NotModified java.time.LocalDate arg0) { return null; } + static AbstractLocalDateAssert assertThat(@Independent @NotModified LocalDate arg0) { return null; } @Independent - static org.assertj.core.api.AbstractYearMonthAssert assertThat(@Independent @NotModified java.time.YearMonth arg0) { return null; } + static AbstractYearMonthAssert assertThat(@Independent @NotModified YearMonth arg0) { return null; } @Independent - static org.assertj.core.api.AbstractInstantAssert assertThat(@Independent @NotModified java.time.Instant arg0) { return null; } + static AbstractInstantAssert assertThat(@Independent @NotModified Instant arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDurationAssert assertThat(@Independent @NotModified java.time.Duration arg0) { return null; } + static AbstractDurationAssert assertThat(@Independent @NotModified Duration arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPeriodAssert assertThat(@Independent @NotModified java.time.Period arg0) { return null; } + static AbstractPeriodAssert assertThat(@Independent @NotModified Period arg0) { return null; } @Independent - static org.assertj.core.api.AbstractThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } + static AbstractThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ThrowableTypeAssert assertThatExceptionOfType(@Independent @NotModified java.lang.Class arg0) { return null; } + static ThrowableTypeAssert assertThatExceptionOfType(@Independent @NotModified Class arg0) { return null; } } //public class org.assertj.core.api.AssertionsForInterfaceTypes class AssertionsForInterfaceTypes$ { @Independent - static T assertThat(@Independent @NotModified org.assertj.core.api.AssertProvider arg0) { return null; } + static T assertThat(@Independent @NotModified AssertProvider arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.IterableAssert assertThat(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static IterableAssert assertThat(@Independent @NotModified Iterable arg0) { return null; } @Independent - static org.assertj.core.api.IterableAssert assertThatIterable(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static IterableAssert assertThatIterable(@Independent @NotModified Iterable arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> assertThat(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, E, ObjectAssert> assertThat(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> assertThatCollection(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, E, ObjectAssert> assertThatCollection(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.ListAssert assertThat(@Independent @NotModified java.util.List arg0) { return null; } + static ListAssert assertThat(@Independent @NotModified List arg0) { return null; } @Independent - static org.assertj.core.api.ListAssert assertThatList(@Independent @NotModified java.util.List arg0) { return null; } + static ListAssert assertThatList(@Independent @NotModified List arg0) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableIterableAssert assertThat(@Independent @NotModified java.lang.Iterable arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableIterableAssert assertThat(@Independent @NotModified Iterable arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableIterableAssert assertThat(@Independent @NotModified ACTUAL arg0, java.lang.Class arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableIterableAssert assertThat(@Independent @NotModified ACTUAL arg0, Class arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableListAssert assertThat(@Independent @NotModified java.util.List arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableListAssert assertThat(@Independent @NotModified List arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableListAssert assertThat(@Independent @NotModified java.util.List arg0, java.lang.Class arg1) { return null; } + static , ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableListAssert assertThat(@Independent @NotModified List arg0, Class arg1) { return null; } @Independent - static org.assertj.core.api.AbstractPathAssert assertThat(@Independent @NotModified java.nio.file.Path arg0) { return null; } + static AbstractPathAssert assertThat(@Independent @NotModified Path arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPathAssert assertThatPath(@Independent @NotModified java.nio.file.Path arg0) { return null; } + static AbstractPathAssert assertThatPath(@Independent @NotModified Path arg0) { return null; } @Independent - static org.assertj.core.api.MapAssert assertThat(@Independent @NotModified java.util.Map arg0) { return null; } + static MapAssert assertThat(@Independent @NotModified Map arg0) { return null; } @Independent - static > org.assertj.core.api.AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } + static > AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUniversalComparableAssert assertThatComparable(@Independent @NotModified java.lang.Comparable arg0) { return null; } + static AbstractUniversalComparableAssert assertThatComparable(@Independent @NotModified Comparable arg0) { return null; } @Independent - static T assertThat(@Independent @NotModified T arg0) { return null; } + static T assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.CompletableFutureAssert assertThat(@Independent @NotModified java.util.concurrent.CompletionStage arg0) { return null; } + static CompletableFutureAssert assertThat(@Independent @NotModified CompletionStage arg0) { return null; } } //public class org.assertj.core.api.Java6Assertions class Java6Assertions$ { - @Independent static org.assertj.core.api.AbstractBooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } - @Independent static org.assertj.core.api.Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } - @Independent static org.assertj.core.api.Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractCharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } - @Independent static org.assertj.core.api.Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractDoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } - @Independent static org.assertj.core.api.Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractFloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } - @Independent static org.assertj.core.api.Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractIntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } - @Independent static org.assertj.core.api.Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractLongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } - @Independent static org.assertj.core.api.Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } - @Independent static org.assertj.core.api.Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } - static void fail(java.lang.String arg0, @NotModified java.lang.Throwable arg1) { } - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.String arg1, @NotModified java.lang.Object... arg2) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert assertThatCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static java.lang.Throwable catchThrowable(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - static THROWABLE catchThrowableOfType(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.Class arg1) { return null; } - static THROWABLE catchThrowableOfType(java.lang.Class arg0, @IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg1) { return null; } + @Independent static AbstractBooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } + @Independent static Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent static AbstractByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } + @Independent static Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } + @Independent static AbstractCharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } + @Independent static Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } + @Independent static AbstractDoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } + @Independent static Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } + @Independent static AbstractFloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } + @Independent static Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } + @Independent static AbstractIntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } + @Independent static Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } + @Independent static AbstractLongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } + @Independent static Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } + @Independent static AbstractShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } + @Independent static Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } + static void fail(String arg0, @NotModified Throwable arg1) { } + @Independent static AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, String arg1, @NotModified Object... arg2) { return null; } + @Independent static AbstractThrowableAssert assertThatCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static Throwable catchThrowable(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + static THROWABLE catchThrowableOfType(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, Class arg1) { return null; } + static THROWABLE catchThrowableOfType(Class arg0, @IgnoreModifications ThrowableAssert.ThrowingCallable arg1) { return null; } @Independent - static org.assertj.core.api.AtomicBooleanAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + static AtomicBooleanAssert assertThat(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + static AtomicIntegerAssert assertThat(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + static AtomicIntegerArrayAssert assertThat(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + static AtomicIntegerFieldUpdaterAssert assertThat(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + static AtomicLongAssert assertThat(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + static AtomicLongArrayAssert assertThat(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + static AtomicLongFieldUpdaterAssert assertThat(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + static AtomicReferenceAssert assertThat(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + static AtomicReferenceArrayAssert assertThat(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + static AtomicReferenceFieldUpdaterAssert assertThat(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicMarkableReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + static AtomicMarkableReferenceAssert assertThat(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicStampedReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + static AtomicStampedReferenceAssert assertThat(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigDecimalAssert assertThat(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + static AbstractBigDecimalAssert assertThat(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigIntegerAssert assertThat(@Independent @NotModified java.math.BigInteger arg0) { return null; } + static AbstractBigIntegerAssert assertThat(@Independent @NotModified BigInteger arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUriAssert assertThat(@Independent @NotModified java.net.URI arg0) { return null; } + static AbstractUriAssert assertThat(@Independent @NotModified URI arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUrlAssert assertThat(@Independent @NotModified java.net.URL arg0) { return null; } + static AbstractUrlAssert assertThat(@Independent @NotModified URL arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBooleanAssert assertThat(@Independent @NotModified java.lang.Boolean arg0) { return null; } + static AbstractBooleanAssert assertThat(@Independent @NotModified Boolean arg0) { return null; } @Independent - static org.assertj.core.api.AbstractByteAssert assertThat(@Independent @NotModified java.lang.Byte arg0) { return null; } + static AbstractByteAssert assertThat(@Independent @NotModified Byte arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharacterAssert assertThat(@Independent @NotModified java.lang.Character arg0) { return null; } + static AbstractCharacterAssert assertThat(@Independent @NotModified Character arg0) { return null; } @Independent - static org.assertj.core.api.AbstractClassAssert assertThat(@Independent @NotModified java.lang.Class arg0) { return null; } + static AbstractClassAssert assertThat(@Independent @NotModified Class arg0) { return null; } @Independent - static > org.assertj.core.api.AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } + static > AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractIterableAssert, T, org.assertj.core.api.ObjectAssert> assertThat(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static AbstractIterableAssert, T, ObjectAssert> assertThat(@Independent @NotModified Iterable arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDoubleAssert assertThat(@Independent @NotModified java.lang.Double arg0) { return null; } + static AbstractDoubleAssert assertThat(@Independent @NotModified Double arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFileAssert assertThat(@Independent @NotModified java.io.File arg0) { return null; } + static AbstractFileAssert assertThat(@Independent @NotModified File arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFutureAssert, RESULT> assertThat(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + static AbstractFutureAssert, RESULT> assertThat(@Independent @NotModified Future arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFloatAssert assertThat(@Independent @NotModified java.lang.Float arg0) { return null; } + static AbstractFloatAssert assertThat(@Independent @NotModified Float arg0) { return null; } @Independent - static org.assertj.core.api.AbstractIntegerAssert assertThat(@Independent @NotModified java.lang.Integer arg0) { return null; } + static AbstractIntegerAssert assertThat(@Independent @NotModified Integer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, T, org.assertj.core.api.ObjectAssert> assertThat(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, T, ObjectAssert> assertThat(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.AbstractListAssert, T, org.assertj.core.api.ObjectAssert> assertThat(@Independent @NotModified java.util.List arg0) { return null; } + static AbstractListAssert, T, ObjectAssert> assertThat(@Independent @NotModified List arg0) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableIterableAssert assertThat(@Independent @NotModified java.lang.Iterable arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableIterableAssert assertThat(@Independent @NotModified Iterable arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableIterableAssert assertThat(@Independent @NotModified ACTUAL arg0, java.lang.Class arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableIterableAssert assertThat(@Independent @NotModified ACTUAL arg0, Class arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableListAssert assertThat(@Independent @NotModified java.util.List arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableListAssert assertThat(@Independent @NotModified List arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableListAssert assertThat(@Independent @NotModified java.util.List arg0, java.lang.Class arg1) { return null; } + static , ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableListAssert assertThat(@Independent @NotModified List arg0, Class arg1) { return null; } @Independent - static org.assertj.core.api.AbstractLongAssert assertThat(@Independent @NotModified java.lang.Long arg0) { return null; } + static AbstractLongAssert assertThat(@Independent @NotModified Long arg0) { return null; } @Independent - static org.assertj.core.api.AbstractObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } + static AbstractObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static T assertThat(@Independent @NotModified T arg0) { return null; } + static T assertThat(@Independent @NotModified T arg0) { return null; } @Independent - static T assertThat(@Independent @NotModified org.assertj.core.api.AssertProvider arg0) { return null; } + static T assertThat(@Independent @NotModified AssertProvider arg0) { return null; } @Independent - static org.assertj.core.api.AbstractObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } + static AbstractObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } @Independent - static org.assertj.core.api.Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } + static Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } @Independent - static org.assertj.core.api.MapAssert assertThat(@Independent @NotModified java.util.Map arg0) { return null; } + static MapAssert assertThat(@Independent @NotModified Map arg0) { return null; } @Independent - static org.assertj.core.api.AbstractShortAssert assertThat(@Independent @NotModified java.lang.Short arg0) { return null; } + static AbstractShortAssert assertThat(@Independent @NotModified Short arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThatCharSequence(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert assertThatCharSequence(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + static AbstractCharSequenceAssert assertThat(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDateAssert assertThat(@Independent @NotModified java.util.Date arg0) { return null; } + static AbstractDateAssert assertThat(@Independent @NotModified Date arg0) { return null; } @Independent - static org.assertj.core.api.AbstractThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } + static AbstractThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractObjectAssert assertThatObject(@Independent @NotModified T arg0) { return null; } + AbstractObjectAssert assertThatObject(@Independent @NotModified T arg0) { return null; } } //public class org.assertj.core.api.Java6BDDAssertions class Java6BDDAssertions$ { - @Independent static org.assertj.core.api.AbstractBooleanArrayAssert then(@Independent @NotModified boolean[] arg0) { return null; } - @Independent static org.assertj.core.api.Boolean2DArrayAssert then(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractByteArrayAssert then(@Independent @NotModified byte[] arg0) { return null; } - @Independent static org.assertj.core.api.Byte2DArrayAssert then(@Independent @NotModified byte[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractCharArrayAssert then(@Independent @NotModified char[] arg0) { return null; } - @Independent static org.assertj.core.api.Char2DArrayAssert then(@Independent @NotModified char[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractDoubleArrayAssert then(@Independent @NotModified double[] arg0) { return null; } - @Independent static org.assertj.core.api.Double2DArrayAssert then(@Independent @NotModified double[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractFloatArrayAssert then(@Independent @NotModified float[] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractIntArrayAssert then(@Independent @NotModified int[] arg0) { return null; } - @Independent static org.assertj.core.api.Int2DArrayAssert then(@Independent @NotModified int[][] arg0) { return null; } - @Independent static org.assertj.core.api.Float2DArrayAssert then(@Independent @NotModified float[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractLongArrayAssert then(@Independent @NotModified long[] arg0) { return null; } - @Independent static org.assertj.core.api.Long2DArrayAssert then(@Independent @NotModified long[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractShortArrayAssert then(@Independent @NotModified short[] arg0) { return null; } - @Independent static org.assertj.core.api.Short2DArrayAssert then(@Independent @NotModified short[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert thenThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert thenThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.String arg1, @NotModified java.lang.Object... arg2) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert thenCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractBooleanArrayAssert then(@Independent @NotModified boolean[] arg0) { return null; } + @Independent static Boolean2DArrayAssert then(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent static AbstractByteArrayAssert then(@Independent @NotModified byte[] arg0) { return null; } + @Independent static Byte2DArrayAssert then(@Independent @NotModified byte[][] arg0) { return null; } + @Independent static AbstractCharArrayAssert then(@Independent @NotModified char[] arg0) { return null; } + @Independent static Char2DArrayAssert then(@Independent @NotModified char[][] arg0) { return null; } + @Independent static AbstractDoubleArrayAssert then(@Independent @NotModified double[] arg0) { return null; } + @Independent static Double2DArrayAssert then(@Independent @NotModified double[][] arg0) { return null; } + @Independent static AbstractFloatArrayAssert then(@Independent @NotModified float[] arg0) { return null; } + @Independent static AbstractIntArrayAssert then(@Independent @NotModified int[] arg0) { return null; } + @Independent static Int2DArrayAssert then(@Independent @NotModified int[][] arg0) { return null; } + @Independent static Float2DArrayAssert then(@Independent @NotModified float[][] arg0) { return null; } + @Independent static AbstractLongArrayAssert then(@Independent @NotModified long[] arg0) { return null; } + @Independent static Long2DArrayAssert then(@Independent @NotModified long[][] arg0) { return null; } + @Independent static AbstractShortArrayAssert then(@Independent @NotModified short[] arg0) { return null; } + @Independent static Short2DArrayAssert then(@Independent @NotModified short[][] arg0) { return null; } + @Independent static AbstractThrowableAssert thenThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractThrowableAssert thenThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, String arg1, @NotModified Object... arg2) { return null; } + @Independent AbstractThrowableAssert thenCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } @Independent - static org.assertj.core.api.AtomicBooleanAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + static AtomicBooleanAssert then(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + static AtomicIntegerAssert then(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + static AtomicIntegerArrayAssert then(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + static AtomicIntegerFieldUpdaterAssert then(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + static AtomicLongAssert then(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + static AtomicLongArrayAssert then(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + static AtomicLongFieldUpdaterAssert then(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + static AtomicReferenceAssert then(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + static AtomicReferenceArrayAssert then(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + static AtomicReferenceFieldUpdaterAssert then(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicMarkableReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + static AtomicMarkableReferenceAssert then(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicStampedReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + static AtomicStampedReferenceAssert then(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigDecimalAssert then(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + static AbstractBigDecimalAssert then(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigIntegerAssert then(@Independent @NotModified java.math.BigInteger arg0) { return null; } + static AbstractBigIntegerAssert then(@Independent @NotModified BigInteger arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBooleanAssert then(@Independent @NotModified java.lang.Boolean arg0) { return null; } + static AbstractBooleanAssert then(@Independent @NotModified Boolean arg0) { return null; } @Independent - static org.assertj.core.api.AbstractByteAssert then(@Independent @NotModified java.lang.Byte arg0) { return null; } + static AbstractByteAssert then(@Independent @NotModified Byte arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharacterAssert then(@Independent @NotModified java.lang.Character arg0) { return null; } + static AbstractCharacterAssert then(@Independent @NotModified Character arg0) { return null; } @Independent - static org.assertj.core.api.AbstractClassAssert then(@Independent @NotModified java.lang.Class arg0) { return null; } + static AbstractClassAssert then(@Independent @NotModified Class arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, T, org.assertj.core.api.ObjectAssert> then(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, T, ObjectAssert> then(@Independent @NotModified Collection arg0) { return null; } @Independent - static > org.assertj.core.api.AbstractComparableAssert then(@Independent @NotModified T arg0) { return null; } + static > AbstractComparableAssert then(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractIterableAssert, T, org.assertj.core.api.ObjectAssert> then(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static AbstractIterableAssert, T, ObjectAssert> then(@Independent @NotModified Iterable arg0) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableIterableAssert then(@Independent @NotModified java.lang.Iterable arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableIterableAssert then(@Independent @NotModified Iterable arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableIterableAssert then(@Independent @NotModified ACTUAL arg0, java.lang.Class arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableIterableAssert then(@Independent @NotModified ACTUAL arg0, Class arg1) { return null; } @Independent - static , ELEMENT, ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.FactoryBasedNavigableListAssert then(@Independent @NotModified java.util.List arg0, org.assertj.core.api.AssertFactory arg1) { return null; } + static , ELEMENT, ELEMENT_ASSERT extends AbstractAssert> FactoryBasedNavigableListAssert then(@Independent @NotModified List arg0, AssertFactory arg1) { return null; } @Independent - static , ELEMENT_ASSERT extends org.assertj.core.api.AbstractAssert> org.assertj.core.api.ClassBasedNavigableListAssert then(@Independent @NotModified java.util.List arg0, java.lang.Class arg1) { return null; } + static , ELEMENT_ASSERT extends AbstractAssert> ClassBasedNavigableListAssert then(@Independent @NotModified List arg0, Class arg1) { return null; } @Independent - static org.assertj.core.api.AbstractDoubleAssert then(@Independent @NotModified java.lang.Double arg0) { return null; } + static AbstractDoubleAssert then(@Independent @NotModified Double arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFileAssert then(@Independent @NotModified java.io.File arg0) { return null; } + static AbstractFileAssert then(@Independent @NotModified File arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFutureAssert, RESULT> then(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + static AbstractFutureAssert, RESULT> then(@Independent @NotModified Future arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFloatAssert then(@Independent @NotModified java.lang.Float arg0) { return null; } + static AbstractFloatAssert then(@Independent @NotModified Float arg0) { return null; } @Independent - static org.assertj.core.api.AbstractIntegerAssert then(@Independent @NotModified java.lang.Integer arg0) { return null; } + static AbstractIntegerAssert then(@Independent @NotModified Integer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractListAssert, T, org.assertj.core.api.ObjectAssert> then(@Independent @NotModified java.util.List arg0) { return null; } + static AbstractListAssert, T, ObjectAssert> then(@Independent @NotModified List arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLongAssert then(@Independent @NotModified java.lang.Long arg0) { return null; } + static AbstractLongAssert then(@Independent @NotModified Long arg0) { return null; } @Independent - static org.assertj.core.api.AbstractObjectAssert then(@Independent @NotModified T arg0) { return null; } + static AbstractObjectAssert then(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractObjectArrayAssert then(@Independent @NotModified T[] arg0) { return null; } + static AbstractObjectArrayAssert then(@Independent @NotModified T[] arg0) { return null; } @Independent - static org.assertj.core.api.Object2DArrayAssert then(@Independent @NotModified T[][] arg0) { return null; } + static Object2DArrayAssert then(@Independent @NotModified T[][] arg0) { return null; } @Independent - static org.assertj.core.api.MapAssert then(@Independent @NotModified java.util.Map arg0) { return null; } + static MapAssert then(@Independent @NotModified Map arg0) { return null; } @Independent - static org.assertj.core.api.AbstractShortAssert then(@Independent @NotModified java.lang.Short arg0) { return null; } + static AbstractShortAssert then(@Independent @NotModified Short arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert then(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert then(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert thenCharSequence(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert thenCharSequence(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert then(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + static AbstractCharSequenceAssert then(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert then(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + static AbstractCharSequenceAssert then(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDateAssert then(@Independent @NotModified java.util.Date arg0) { return null; } + static AbstractDateAssert then(@Independent @NotModified Date arg0) { return null; } @Independent - static org.assertj.core.api.AbstractThrowableAssert then(@Independent @NotModified T arg0) { return null; } + static AbstractThrowableAssert then(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUriAssert then(@Independent @NotModified java.net.URI arg0) { return null; } + static AbstractUriAssert then(@Independent @NotModified URI arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUrlAssert then(@Independent @NotModified java.net.URL arg0) { return null; } + static AbstractUrlAssert then(@Independent @NotModified URL arg0) { return null; } @Independent - static T then(@Independent @NotModified T arg0) { return null; } + static T then(@Independent @NotModified T arg0) { return null; } @Independent - static T then(@Independent @NotModified org.assertj.core.api.AssertProvider arg0) { return null; } + static T then(@Independent @NotModified AssertProvider arg0) { return null; } @Independent - static org.assertj.core.api.AbstractObjectAssert thenObject(@Independent @NotModified T arg0) { return null; } + static AbstractObjectAssert thenObject(@Independent @NotModified T arg0) { return null; } } //public interface org.assertj.core.api.StandardSoftAssertionsProvider class StandardSoftAssertionsProvider$ { @Independent - org.assertj.core.api.PathAssert assertThat(@Independent @NotModified java.nio.file.Path arg0) { return null; } + PathAssert assertThat(@Independent @NotModified Path arg0) { return null; } @Independent - org.assertj.core.api.AbstractPathAssert assertThatPath(@Independent @NotModified java.nio.file.Path arg0) { return null; } + AbstractPathAssert assertThatPath(@Independent @NotModified Path arg0) { return null; } @Independent - org.assertj.core.api.OptionalAssert assertThat(@Independent @NotModified java.util.Optional arg0) { return null; } + OptionalAssert assertThat(@Independent @NotModified Optional arg0) { return null; } @Independent - org.assertj.core.api.OptionalDoubleAssert assertThat(@Independent @NotModified java.util.OptionalDouble arg0) { return null; } + OptionalDoubleAssert assertThat(@Independent @NotModified OptionalDouble arg0) { return null; } @Independent - org.assertj.core.api.OptionalLongAssert assertThat(@Independent @NotModified java.util.OptionalLong arg0) { return null; } + OptionalLongAssert assertThat(@Independent @NotModified OptionalLong arg0) { return null; } @Independent - org.assertj.core.api.OptionalIntAssert assertThat(@Independent @NotModified java.util.OptionalInt arg0) { return null; } + OptionalIntAssert assertThat(@Independent @NotModified OptionalInt arg0) { return null; } @Independent - org.assertj.core.api.LocalDateAssert assertThat(@Independent @NotModified java.time.LocalDate arg0) { return null; } + LocalDateAssert assertThat(@Independent @NotModified LocalDate arg0) { return null; } @Independent - org.assertj.core.api.YearMonthAssert assertThat(@Independent @NotModified java.time.YearMonth arg0) { return null; } + YearMonthAssert assertThat(@Independent @NotModified YearMonth arg0) { return null; } @Independent - org.assertj.core.api.LocalDateTimeAssert assertThat(@Independent @NotModified java.time.LocalDateTime arg0) { return null; } + LocalDateTimeAssert assertThat(@Independent @NotModified LocalDateTime arg0) { return null; } @Independent - org.assertj.core.api.ZonedDateTimeAssert assertThat(@Independent @NotModified java.time.ZonedDateTime arg0) { return null; } + ZonedDateTimeAssert assertThat(@Independent @NotModified ZonedDateTime arg0) { return null; } @Independent - org.assertj.core.api.LocalTimeAssert assertThat(@Independent @NotModified java.time.LocalTime arg0) { return null; } + LocalTimeAssert assertThat(@Independent @NotModified LocalTime arg0) { return null; } @Independent - org.assertj.core.api.OffsetTimeAssert assertThat(@Independent @NotModified java.time.OffsetTime arg0) { return null; } + OffsetTimeAssert assertThat(@Independent @NotModified OffsetTime arg0) { return null; } @Independent - org.assertj.core.api.OffsetDateTimeAssert assertThat(@Independent @NotModified java.time.OffsetDateTime arg0) { return null; } + OffsetDateTimeAssert assertThat(@Independent @NotModified OffsetDateTime arg0) { return null; } @Independent - org.assertj.core.api.InstantAssert assertThat(@Independent @NotModified java.time.Instant arg0) { return null; } + InstantAssert assertThat(@Independent @NotModified Instant arg0) { return null; } @Independent - org.assertj.core.api.DurationAssert assertThat(@Independent @NotModified java.time.Duration arg0) { return null; } + DurationAssert assertThat(@Independent @NotModified Duration arg0) { return null; } @Independent - org.assertj.core.api.PeriodAssert assertThat(@Independent @NotModified java.time.Period arg0) { return null; } + PeriodAssert assertThat(@Independent @NotModified Period arg0) { return null; } @Independent - org.assertj.core.api.CompletableFutureAssert assertThat(@Independent @NotModified java.util.concurrent.CompletableFuture arg0) { return null; } + CompletableFutureAssert assertThat(@Independent @NotModified CompletableFuture arg0) { return null; } @Independent - org.assertj.core.api.CompletableFutureAssert assertThat(@Independent @NotModified java.util.concurrent.CompletionStage arg0) { return null; } + CompletableFutureAssert assertThat(@Independent @NotModified CompletionStage arg0) { return null; } @Independent - org.assertj.core.api.LongAdderAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.LongAdder arg0) { return null; } + LongAdderAssert assertThat(@Independent @NotModified LongAdder arg0) { return null; } @Independent - org.assertj.core.api.TemporalAssert assertThatTemporal(@Independent @NotModified java.time.temporal.Temporal arg0) { return null; } + TemporalAssert assertThatTemporal(@Independent @NotModified Temporal arg0) { return null; } } //public interface org.assertj.core.api.Java6StandardSoftAssertionsProvider class Java6StandardSoftAssertionsProvider$ { - @Independent org.assertj.core.api.BooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } - @Independent org.assertj.core.api.Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent org.assertj.core.api.ByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } - @Independent org.assertj.core.api.Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } - @Independent org.assertj.core.api.CharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } - @Independent org.assertj.core.api.Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } - @Independent org.assertj.core.api.DoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } - @Independent org.assertj.core.api.Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } - @Independent org.assertj.core.api.FloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } - @Independent org.assertj.core.api.Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } - @Independent org.assertj.core.api.IntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } - @Independent org.assertj.core.api.Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } - @Independent org.assertj.core.api.LongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } - @Independent org.assertj.core.api.Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } - @Independent org.assertj.core.api.ShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } - @Independent org.assertj.core.api.Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.String arg1, @NotModified java.lang.Object... arg2) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert assertThatCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent BooleanArrayAssert assertThat(@Independent @NotModified boolean[] arg0) { return null; } + @Independent Boolean2DArrayAssert assertThat(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent ByteArrayAssert assertThat(@Independent @NotModified byte[] arg0) { return null; } + @Independent Byte2DArrayAssert assertThat(@Independent @NotModified byte[][] arg0) { return null; } + @Independent CharArrayAssert assertThat(@Independent @NotModified char[] arg0) { return null; } + @Independent Char2DArrayAssert assertThat(@Independent @NotModified char[][] arg0) { return null; } + @Independent DoubleArrayAssert assertThat(@Independent @NotModified double[] arg0) { return null; } + @Independent Double2DArrayAssert assertThat(@Independent @NotModified double[][] arg0) { return null; } + @Independent FloatArrayAssert assertThat(@Independent @NotModified float[] arg0) { return null; } + @Independent Float2DArrayAssert assertThat(@Independent @NotModified float[][] arg0) { return null; } + @Independent IntArrayAssert assertThat(@Independent @NotModified int[] arg0) { return null; } + @Independent Int2DArrayAssert assertThat(@Independent @NotModified int[][] arg0) { return null; } + @Independent LongArrayAssert assertThat(@Independent @NotModified long[] arg0) { return null; } + @Independent Long2DArrayAssert assertThat(@Independent @NotModified long[][] arg0) { return null; } + @Independent ShortArrayAssert assertThat(@Independent @NotModified short[] arg0) { return null; } + @Independent Short2DArrayAssert assertThat(@Independent @NotModified short[][] arg0) { return null; } + @Independent AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent AbstractThrowableAssert assertThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, String arg1, @NotModified Object... arg2) { return null; } + @Independent AbstractThrowableAssert assertThatCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } @Independent - org.assertj.core.api.BigDecimalAssert assertThat(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + BigDecimalAssert assertThat(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - org.assertj.core.api.BigIntegerAssert assertThat(@Independent @NotModified java.math.BigInteger arg0) { return null; } + BigIntegerAssert assertThat(@Independent @NotModified BigInteger arg0) { return null; } @Independent - org.assertj.core.api.BooleanAssert assertThat(@Independent @NotModified java.lang.Boolean arg0) { return null; } + BooleanAssert assertThat(@Independent @NotModified Boolean arg0) { return null; } @Independent - org.assertj.core.api.ByteAssert assertThat(@Independent @NotModified java.lang.Byte arg0) { return null; } + ByteAssert assertThat(@Independent @NotModified Byte arg0) { return null; } @Independent - org.assertj.core.api.CharacterAssert assertThat(@Independent @NotModified java.lang.Character arg0) { return null; } + CharacterAssert assertThat(@Independent @NotModified Character arg0) { return null; } @Independent - org.assertj.core.api.ClassAssert assertThat(@Independent @NotModified java.lang.Class arg0) { return null; } + ClassAssert assertThat(@Independent @NotModified Class arg0) { return null; } @Independent - org.assertj.core.api.CollectionAssert assertThat(@Independent @NotModified java.util.Collection arg0) { return null; } + CollectionAssert assertThat(@Independent @NotModified Collection arg0) { return null; } @Independent - org.assertj.core.api.CollectionAssert assertThatCollection(@Independent @NotModified java.util.Collection arg0) { return null; } + CollectionAssert assertThatCollection(@Independent @NotModified Collection arg0) { return null; } @Independent - > org.assertj.core.api.AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } + > AbstractComparableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractUniversalComparableAssert assertThatComparable(@Independent @NotModified java.lang.Comparable arg0) { return null; } + AbstractUniversalComparableAssert assertThatComparable(@Independent @NotModified Comparable arg0) { return null; } @Independent - org.assertj.core.api.IterableAssert assertThat(@Independent @NotModified java.lang.Iterable arg0) { return null; } + IterableAssert assertThat(@Independent @NotModified Iterable arg0) { return null; } @Independent - org.assertj.core.api.IterableAssert assertThatIterable(@Independent @NotModified java.lang.Iterable arg0) { return null; } + IterableAssert assertThatIterable(@Independent @NotModified Iterable arg0) { return null; } @Independent - org.assertj.core.api.DoubleAssert assertThat(@Independent @NotModified java.lang.Double arg0) { return null; } + DoubleAssert assertThat(@Independent @NotModified Double arg0) { return null; } @Independent - org.assertj.core.api.FileAssert assertThat(@Independent @NotModified java.io.File arg0) { return null; } + FileAssert assertThat(@Independent @NotModified File arg0) { return null; } @Independent - org.assertj.core.api.FutureAssert assertThat(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + FutureAssert assertThat(@Independent @NotModified Future arg0) { return null; } @Independent - org.assertj.core.api.FloatAssert assertThat(@Independent @NotModified java.lang.Float arg0) { return null; } + FloatAssert assertThat(@Independent @NotModified Float arg0) { return null; } @Independent - org.assertj.core.api.IntegerAssert assertThat(@Independent @NotModified java.lang.Integer arg0) { return null; } + IntegerAssert assertThat(@Independent @NotModified Integer arg0) { return null; } @Independent - org.assertj.core.api.ListAssert assertThat(@Independent @NotModified java.util.List arg0) { return null; } + ListAssert assertThat(@Independent @NotModified List arg0) { return null; } @Independent - org.assertj.core.api.ListAssert assertThatList(@Independent @NotModified java.util.List arg0) { return null; } + ListAssert assertThatList(@Independent @NotModified List arg0) { return null; } @Independent - org.assertj.core.api.LongAssert assertThat(@Independent @NotModified java.lang.Long arg0) { return null; } + LongAssert assertThat(@Independent @NotModified Long arg0) { return null; } @Independent - org.assertj.core.api.ObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } + ObjectAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.ObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } + ObjectArrayAssert assertThat(@Independent @NotModified T[] arg0) { return null; } @Independent - org.assertj.core.api.Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } + Object2DArrayAssert assertThat(@Independent @NotModified T[][] arg0) { return null; } @Independent - org.assertj.core.api.MapAssert assertThat(@Independent @NotModified java.util.Map arg0) { return null; } + MapAssert assertThat(@Independent @NotModified Map arg0) { return null; } @Independent - org.assertj.core.api.ShortAssert assertThat(@Independent @NotModified java.lang.Short arg0) { return null; } + ShortAssert assertThat(@Independent @NotModified Short arg0) { return null; } @Independent - org.assertj.core.api.CharSequenceAssert assertThat(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + CharSequenceAssert assertThat(@Independent @NotModified CharSequence arg0) { return null; } @Independent - org.assertj.core.api.CharSequenceAssert assertThatCharSequence(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + CharSequenceAssert assertThatCharSequence(@Independent @NotModified CharSequence arg0) { return null; } @Independent - org.assertj.core.api.CharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + CharSequenceAssert assertThat(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - org.assertj.core.api.CharSequenceAssert assertThat(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + CharSequenceAssert assertThat(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - org.assertj.core.api.DateAssert assertThat(@Independent @NotModified java.util.Date arg0) { return null; } + DateAssert assertThat(@Independent @NotModified Date arg0) { return null; } @Independent - org.assertj.core.api.AtomicBooleanAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + AtomicBooleanAssert assertThat(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + AtomicIntegerAssert assertThat(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + AtomicIntegerArrayAssert assertThat(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + AtomicIntegerFieldUpdaterAssert assertThat(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + AtomicLongAssert assertThat(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + AtomicLongArrayAssert assertThat(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + AtomicLongFieldUpdaterAssert assertThat(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + AtomicReferenceAssert assertThat(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceArrayAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + AtomicReferenceArrayAssert assertThat(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceFieldUpdaterAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + AtomicReferenceFieldUpdaterAssert assertThat(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicMarkableReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + AtomicMarkableReferenceAssert assertThat(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - org.assertj.core.api.AtomicStampedReferenceAssert assertThat(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + AtomicStampedReferenceAssert assertThat(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - org.assertj.core.api.ThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } + ThrowableAssert assertThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.ObjectAssert assertThatObject(@Independent @NotModified T arg0) { return null; } + ObjectAssert assertThatObject(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.UriAssert assertThat(@Independent @NotModified java.net.URI arg0) { return null; } + UriAssert assertThat(@Independent @NotModified URI arg0) { return null; } @Independent - org.assertj.core.api.AbstractUrlAssert assertThat(@Independent @NotModified java.net.URL arg0) { return null; } + AbstractUrlAssert assertThat(@Independent @NotModified URL arg0) { return null; } @Independent - org.assertj.core.api.ThrowableTypeAssert assertThatExceptionOfType(@Independent @NotModified java.lang.Class arg0) { return null; } + ThrowableTypeAssert assertThatExceptionOfType(@Independent @NotModified Class arg0) { return null; } } //public interface org.assertj.core.api.BDDSoftAssertionsProvider class BDDSoftAssertionsProvider$ { @Independent - org.assertj.core.api.PathAssert then(@Independent @NotModified java.nio.file.Path arg0) { return null; } + PathAssert then(@Independent @NotModified Path arg0) { return null; } @Independent - org.assertj.core.api.AbstractPathAssert thenPath(@Independent @NotModified java.nio.file.Path arg0) { return null; } + AbstractPathAssert thenPath(@Independent @NotModified Path arg0) { return null; } @Independent - org.assertj.core.api.OptionalAssert then(@Independent @NotModified java.util.Optional arg0) { return null; } + OptionalAssert then(@Independent @NotModified Optional arg0) { return null; } @Independent - org.assertj.core.api.OptionalDoubleAssert then(@Independent @NotModified java.util.OptionalDouble arg0) { return null; } + OptionalDoubleAssert then(@Independent @NotModified OptionalDouble arg0) { return null; } @Independent - org.assertj.core.api.OptionalIntAssert then(@Independent @NotModified java.util.OptionalInt arg0) { return null; } + OptionalIntAssert then(@Independent @NotModified OptionalInt arg0) { return null; } @Independent - org.assertj.core.api.OptionalLongAssert then(@Independent @NotModified java.util.OptionalLong arg0) { return null; } + OptionalLongAssert then(@Independent @NotModified OptionalLong arg0) { return null; } @Independent - org.assertj.core.api.TemporalAssert thenTemporal(@Independent @NotModified java.time.temporal.Temporal arg0) { return null; } + TemporalAssert thenTemporal(@Independent @NotModified Temporal arg0) { return null; } @Independent - org.assertj.core.api.LocalDateAssert then(@Independent @NotModified java.time.LocalDate arg0) { return null; } + LocalDateAssert then(@Independent @NotModified LocalDate arg0) { return null; } @Independent - org.assertj.core.api.YearMonthAssert then(@Independent @NotModified java.time.YearMonth arg0) { return null; } + YearMonthAssert then(@Independent @NotModified YearMonth arg0) { return null; } @Independent - org.assertj.core.api.LocalDateTimeAssert then(@Independent @NotModified java.time.LocalDateTime arg0) { return null; } + LocalDateTimeAssert then(@Independent @NotModified LocalDateTime arg0) { return null; } @Independent - org.assertj.core.api.ZonedDateTimeAssert then(@Independent @NotModified java.time.ZonedDateTime arg0) { return null; } + ZonedDateTimeAssert then(@Independent @NotModified ZonedDateTime arg0) { return null; } @Independent - org.assertj.core.api.LocalTimeAssert then(@Independent @NotModified java.time.LocalTime arg0) { return null; } + LocalTimeAssert then(@Independent @NotModified LocalTime arg0) { return null; } @Independent - org.assertj.core.api.OffsetTimeAssert then(@Independent @NotModified java.time.OffsetTime arg0) { return null; } + OffsetTimeAssert then(@Independent @NotModified OffsetTime arg0) { return null; } @Independent - org.assertj.core.api.OffsetDateTimeAssert then(@Independent @NotModified java.time.OffsetDateTime arg0) { return null; } + OffsetDateTimeAssert then(@Independent @NotModified OffsetDateTime arg0) { return null; } @Independent - org.assertj.core.api.InstantAssert then(@Independent @NotModified java.time.Instant arg0) { return null; } + InstantAssert then(@Independent @NotModified Instant arg0) { return null; } @Independent - org.assertj.core.api.DurationAssert then(@Independent @NotModified java.time.Duration arg0) { return null; } + DurationAssert then(@Independent @NotModified Duration arg0) { return null; } @Independent - org.assertj.core.api.PeriodAssert then(@Independent @NotModified java.time.Period arg0) { return null; } + PeriodAssert then(@Independent @NotModified Period arg0) { return null; } @Independent - org.assertj.core.api.CompletableFutureAssert then(@Independent @NotModified java.util.concurrent.CompletableFuture arg0) { return null; } + CompletableFutureAssert then(@Independent @NotModified CompletableFuture arg0) { return null; } @Independent - org.assertj.core.api.CompletableFutureAssert then(@Independent @NotModified java.util.concurrent.CompletionStage arg0) { return null; } + CompletableFutureAssert then(@Independent @NotModified CompletionStage arg0) { return null; } @Independent - org.assertj.core.api.LongAdderAssert then(@Independent @NotModified java.util.concurrent.atomic.LongAdder arg0) { return null; } + LongAdderAssert then(@Independent @NotModified LongAdder arg0) { return null; } } //public interface org.assertj.core.api.Java6BDDSoftAssertionsProvider class Java6BDDSoftAssertionsProvider$ { - @Independent org.assertj.core.api.BooleanArrayAssert then(@Independent @NotModified boolean[] arg0) { return null; } - @Independent org.assertj.core.api.Boolean2DArrayAssert then(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent org.assertj.core.api.ByteArrayAssert then(@Independent @NotModified byte[] arg0) { return null; } - @Independent org.assertj.core.api.Byte2DArrayAssert then(@Independent @NotModified byte[][] arg0) { return null; } - @Independent org.assertj.core.api.CharArrayAssert then(@Independent @NotModified char[] arg0) { return null; } - @Independent org.assertj.core.api.Char2DArrayAssert then(@Independent @NotModified char[][] arg0) { return null; } - @Independent org.assertj.core.api.DoubleArrayAssert then(@Independent @NotModified double[] arg0) { return null; } - @Independent org.assertj.core.api.Double2DArrayAssert then(@Independent @NotModified double[][] arg0) { return null; } - @Independent org.assertj.core.api.FloatArrayAssert then(@Independent @NotModified float[] arg0) { return null; } - @Independent org.assertj.core.api.Float2DArrayAssert then(@Independent @NotModified float[][] arg0) { return null; } - @Independent org.assertj.core.api.IntArrayAssert then(@Independent @NotModified int[] arg0) { return null; } - @Independent org.assertj.core.api.Int2DArrayAssert then(@Independent @NotModified int[][] arg0) { return null; } - @Independent org.assertj.core.api.LongArrayAssert then(@Independent @NotModified long[] arg0) { return null; } - @Independent org.assertj.core.api.Long2DArrayAssert then(@Independent @NotModified long[][] arg0) { return null; } - @Independent org.assertj.core.api.ShortArrayAssert then(@Independent @NotModified short[] arg0) { return null; } - @Independent org.assertj.core.api.Short2DArrayAssert then(@Independent @NotModified short[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert thenThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert thenThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0, java.lang.String arg1, @NotModified java.lang.Object... arg2) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert thenCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent BooleanArrayAssert then(@Independent @NotModified boolean[] arg0) { return null; } + @Independent Boolean2DArrayAssert then(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent ByteArrayAssert then(@Independent @NotModified byte[] arg0) { return null; } + @Independent Byte2DArrayAssert then(@Independent @NotModified byte[][] arg0) { return null; } + @Independent CharArrayAssert then(@Independent @NotModified char[] arg0) { return null; } + @Independent Char2DArrayAssert then(@Independent @NotModified char[][] arg0) { return null; } + @Independent DoubleArrayAssert then(@Independent @NotModified double[] arg0) { return null; } + @Independent Double2DArrayAssert then(@Independent @NotModified double[][] arg0) { return null; } + @Independent FloatArrayAssert then(@Independent @NotModified float[] arg0) { return null; } + @Independent Float2DArrayAssert then(@Independent @NotModified float[][] arg0) { return null; } + @Independent IntArrayAssert then(@Independent @NotModified int[] arg0) { return null; } + @Independent Int2DArrayAssert then(@Independent @NotModified int[][] arg0) { return null; } + @Independent LongArrayAssert then(@Independent @NotModified long[] arg0) { return null; } + @Independent Long2DArrayAssert then(@Independent @NotModified long[][] arg0) { return null; } + @Independent ShortArrayAssert then(@Independent @NotModified short[] arg0) { return null; } + @Independent Short2DArrayAssert then(@Independent @NotModified short[][] arg0) { return null; } + @Independent AbstractThrowableAssert thenThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent AbstractThrowableAssert thenThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0, String arg1, @NotModified Object... arg2) { return null; } + @Independent AbstractThrowableAssert thenCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } @Independent - org.assertj.core.api.BigDecimalAssert then(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + BigDecimalAssert then(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - org.assertj.core.api.BigIntegerAssert then(@Independent @NotModified java.math.BigInteger arg0) { return null; } + BigIntegerAssert then(@Independent @NotModified BigInteger arg0) { return null; } @Independent - org.assertj.core.api.BooleanAssert then(@Independent @NotModified java.lang.Boolean arg0) { return null; } + BooleanAssert then(@Independent @NotModified Boolean arg0) { return null; } @Independent - org.assertj.core.api.ByteAssert then(@Independent @NotModified java.lang.Byte arg0) { return null; } + ByteAssert then(@Independent @NotModified Byte arg0) { return null; } @Independent - org.assertj.core.api.CharacterAssert then(@Independent @NotModified java.lang.Character arg0) { return null; } + CharacterAssert then(@Independent @NotModified Character arg0) { return null; } @Independent - org.assertj.core.api.ClassAssert then(@Independent @NotModified java.lang.Class arg0) { return null; } + ClassAssert then(@Independent @NotModified Class arg0) { return null; } @Independent - org.assertj.core.api.CollectionAssert then(@Independent @NotModified java.util.Collection arg0) { return null; } + CollectionAssert then(@Independent @NotModified Collection arg0) { return null; } @Independent - org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> thenCollection(@Independent @NotModified java.util.Collection arg0) { return null; } + AbstractCollectionAssert, E, ObjectAssert> thenCollection(@Independent @NotModified Collection arg0) { return null; } @Independent - > org.assertj.core.api.AbstractComparableAssert then(@Independent @NotModified T arg0) { return null; } + > AbstractComparableAssert then(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractUniversalComparableAssert thenComparable(@Independent @NotModified java.lang.Comparable arg0) { return null; } + AbstractUniversalComparableAssert thenComparable(@Independent @NotModified Comparable arg0) { return null; } @Independent - org.assertj.core.api.IterableAssert then(@Independent @NotModified java.lang.Iterable arg0) { return null; } + IterableAssert then(@Independent @NotModified Iterable arg0) { return null; } @Independent - org.assertj.core.api.IterableAssert thenIterable(@Independent @NotModified java.lang.Iterable arg0) { return null; } + IterableAssert thenIterable(@Independent @NotModified Iterable arg0) { return null; } @Independent - org.assertj.core.api.DoubleAssert then(@Independent @NotModified java.lang.Double arg0) { return null; } + DoubleAssert then(@Independent @NotModified Double arg0) { return null; } @Independent - org.assertj.core.api.FileAssert then(@Independent @NotModified java.io.File arg0) { return null; } + FileAssert then(@Independent @NotModified File arg0) { return null; } @Independent - org.assertj.core.api.FutureAssert then(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + FutureAssert then(@Independent @NotModified Future arg0) { return null; } @Independent - org.assertj.core.api.FloatAssert then(@Independent @NotModified java.lang.Float arg0) { return null; } + FloatAssert then(@Independent @NotModified Float arg0) { return null; } @Independent - org.assertj.core.api.IntegerAssert then(@Independent @NotModified java.lang.Integer arg0) { return null; } + IntegerAssert then(@Independent @NotModified Integer arg0) { return null; } @Independent - org.assertj.core.api.ListAssert then(@Independent @NotModified java.util.List arg0) { return null; } + ListAssert then(@Independent @NotModified List arg0) { return null; } @Independent - org.assertj.core.api.ListAssert thenList(@Independent @NotModified java.util.List arg0) { return null; } + ListAssert thenList(@Independent @NotModified List arg0) { return null; } @Independent - org.assertj.core.api.LongAssert then(@Independent @NotModified java.lang.Long arg0) { return null; } + LongAssert then(@Independent @NotModified Long arg0) { return null; } @Independent - org.assertj.core.api.ObjectAssert then(@Independent @NotModified T arg0) { return null; } + ObjectAssert then(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.ObjectArrayAssert then(@Independent @NotModified T[] arg0) { return null; } + ObjectArrayAssert then(@Independent @NotModified T[] arg0) { return null; } @Independent - org.assertj.core.api.Object2DArrayAssert then(@Independent @NotModified T[][] arg0) { return null; } + Object2DArrayAssert then(@Independent @NotModified T[][] arg0) { return null; } @Independent - org.assertj.core.api.MapAssert then(@Independent @NotModified java.util.Map arg0) { return null; } + MapAssert then(@Independent @NotModified Map arg0) { return null; } @Independent - org.assertj.core.api.ShortAssert then(@Independent @NotModified java.lang.Short arg0) { return null; } + ShortAssert then(@Independent @NotModified Short arg0) { return null; } @Independent - org.assertj.core.api.CharSequenceAssert then(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + CharSequenceAssert then(@Independent @NotModified CharSequence arg0) { return null; } @Independent - org.assertj.core.api.CharSequenceAssert thenCharSequence(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + CharSequenceAssert thenCharSequence(@Independent @NotModified CharSequence arg0) { return null; } @Independent - org.assertj.core.api.CharSequenceAssert then(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + CharSequenceAssert then(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - org.assertj.core.api.CharSequenceAssert then(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + CharSequenceAssert then(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - org.assertj.core.api.DateAssert then(@Independent @NotModified java.util.Date arg0) { return null; } + DateAssert then(@Independent @NotModified Date arg0) { return null; } @Independent - org.assertj.core.api.AtomicBooleanAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + AtomicBooleanAssert then(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + AtomicIntegerAssert then(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + AtomicIntegerArrayAssert then(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + AtomicIntegerFieldUpdaterAssert then(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + AtomicLongAssert then(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + AtomicLongArrayAssert then(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + AtomicLongFieldUpdaterAssert then(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + AtomicReferenceAssert then(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceArrayAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + AtomicReferenceArrayAssert then(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceFieldUpdaterAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + AtomicReferenceFieldUpdaterAssert then(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicMarkableReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + AtomicMarkableReferenceAssert then(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - org.assertj.core.api.AtomicStampedReferenceAssert then(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + AtomicStampedReferenceAssert then(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - org.assertj.core.api.ThrowableAssert then(@Independent @NotModified T arg0) { return null; } + ThrowableAssert then(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.ObjectAssert thenObject(@Independent @NotModified T arg0) { return null; } + ObjectAssert thenObject(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.UriAssert then(@Independent @NotModified java.net.URI arg0) { return null; } + UriAssert then(@Independent @NotModified URI arg0) { return null; } @Independent - org.assertj.core.api.AbstractUrlAssert then(@Independent @NotModified java.net.URL arg0) { return null; } + AbstractUrlAssert then(@Independent @NotModified URL arg0) { return null; } @Independent - org.assertj.core.api.ThrowableTypeAssert thenExceptionOfType(@Independent @NotModified java.lang.Class arg0) { return null; } + ThrowableTypeAssert thenExceptionOfType(@Independent @NotModified Class arg0) { return null; } } //public class org.assertj.core.api.Assumptions class Assumptions$ { - @Independent static org.assertj.core.api.AbstractBooleanArrayAssert assumeThat(@Independent @NotModified boolean[] arg0) { return null; } - @Independent static org.assertj.core.api.Boolean2DArrayAssert assumeThat(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractByteArrayAssert assumeThat(@Independent @NotModified byte[] arg0) { return null; } - @Independent static org.assertj.core.api.Byte2DArrayAssert assumeThat(@Independent @NotModified byte[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractCharArrayAssert assumeThat(@Independent @NotModified char[] arg0) { return null; } - @Independent static org.assertj.core.api.Char2DArrayAssert assumeThat(@Independent @NotModified char[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractShortArrayAssert assumeThat(@Independent @NotModified short[] arg0) { return null; } - @Independent static org.assertj.core.api.Short2DArrayAssert assumeThat(@Independent @NotModified short[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractIntArrayAssert assumeThat(@Independent @NotModified int[] arg0) { return null; } - @Independent static org.assertj.core.api.Int2DArrayAssert assumeThat(@Independent @NotModified int[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractLongArrayAssert assumeThat(@Independent @NotModified long[] arg0) { return null; } - @Independent static org.assertj.core.api.Long2DArrayAssert assumeThat(@Independent @NotModified long[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractFloatArrayAssert assumeThat(@Independent @NotModified float[] arg0) { return null; } - @Independent static org.assertj.core.api.Float2DArrayAssert assumeThat(@Independent @NotModified float[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractDoubleArrayAssert assumeThat(@Independent @NotModified double[] arg0) { return null; } - @Independent static org.assertj.core.api.Double2DArrayAssert assumeThat(@Independent @NotModified double[][] arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert assumeThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent static org.assertj.core.api.AbstractThrowableAssert assumeThatCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractBooleanArrayAssert assumeThat(@Independent @NotModified boolean[] arg0) { return null; } + @Independent static Boolean2DArrayAssert assumeThat(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent static AbstractByteArrayAssert assumeThat(@Independent @NotModified byte[] arg0) { return null; } + @Independent static Byte2DArrayAssert assumeThat(@Independent @NotModified byte[][] arg0) { return null; } + @Independent static AbstractCharArrayAssert assumeThat(@Independent @NotModified char[] arg0) { return null; } + @Independent static Char2DArrayAssert assumeThat(@Independent @NotModified char[][] arg0) { return null; } + @Independent static AbstractShortArrayAssert assumeThat(@Independent @NotModified short[] arg0) { return null; } + @Independent static Short2DArrayAssert assumeThat(@Independent @NotModified short[][] arg0) { return null; } + @Independent static AbstractIntArrayAssert assumeThat(@Independent @NotModified int[] arg0) { return null; } + @Independent static Int2DArrayAssert assumeThat(@Independent @NotModified int[][] arg0) { return null; } + @Independent static AbstractLongArrayAssert assumeThat(@Independent @NotModified long[] arg0) { return null; } + @Independent static Long2DArrayAssert assumeThat(@Independent @NotModified long[][] arg0) { return null; } + @Independent static AbstractFloatArrayAssert assumeThat(@Independent @NotModified float[] arg0) { return null; } + @Independent static Float2DArrayAssert assumeThat(@Independent @NotModified float[][] arg0) { return null; } + @Independent static AbstractDoubleArrayAssert assumeThat(@Independent @NotModified double[] arg0) { return null; } + @Independent static Double2DArrayAssert assumeThat(@Independent @NotModified double[][] arg0) { return null; } + @Independent static AbstractThrowableAssert assumeThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent static AbstractThrowableAssert assumeThatCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } @Independent - static org.assertj.core.api.ObjectAssert assumeThat(@Independent @NotModified T arg0) { return null; } + static ObjectAssert assumeThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigDecimalAssert assumeThat(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + static AbstractBigDecimalAssert assumeThat(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBigIntegerAssert assumeThat(@Independent @NotModified java.math.BigInteger arg0) { return null; } + static AbstractBigIntegerAssert assumeThat(@Independent @NotModified BigInteger arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUriAssert assumeThat(@Independent @NotModified java.net.URI arg0) { return null; } + static AbstractUriAssert assumeThat(@Independent @NotModified URI arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUrlAssert assumeThat(@Independent @NotModified java.net.URL arg0) { return null; } + static AbstractUrlAssert assumeThat(@Independent @NotModified URL arg0) { return null; } @Independent - static org.assertj.core.api.AbstractBooleanAssert assumeThat(@Independent @NotModified java.lang.Boolean arg0) { return null; } + static AbstractBooleanAssert assumeThat(@Independent @NotModified Boolean arg0) { return null; } @Independent - static org.assertj.core.api.AbstractByteAssert assumeThat(@Independent @NotModified java.lang.Byte arg0) { return null; } + static AbstractByteAssert assumeThat(@Independent @NotModified Byte arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharacterAssert assumeThat(@Independent @NotModified java.lang.Character arg0) { return null; } + static AbstractCharacterAssert assumeThat(@Independent @NotModified Character arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assumeThat(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert assumeThat(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assumeThatCharSequence(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + static AbstractCharSequenceAssert assumeThatCharSequence(@Independent @NotModified CharSequence arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assumeThat(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + static AbstractCharSequenceAssert assumeThat(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCharSequenceAssert assumeThat(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + static AbstractCharSequenceAssert assumeThat(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractShortAssert assumeThat(@Independent @NotModified java.lang.Short arg0) { return null; } + static AbstractShortAssert assumeThat(@Independent @NotModified Short arg0) { return null; } @Independent - static org.assertj.core.api.AbstractIntegerAssert assumeThat(@Independent @NotModified java.lang.Integer arg0) { return null; } + static AbstractIntegerAssert assumeThat(@Independent @NotModified Integer arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLongAssert assumeThat(@Independent @NotModified java.lang.Long arg0) { return null; } + static AbstractLongAssert assumeThat(@Independent @NotModified Long arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFloatAssert assumeThat(@Independent @NotModified java.lang.Float arg0) { return null; } + static AbstractFloatAssert assumeThat(@Independent @NotModified Float arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDoubleAssert assumeThat(@Independent @NotModified java.lang.Double arg0) { return null; } + static AbstractDoubleAssert assumeThat(@Independent @NotModified Double arg0) { return null; } @Independent - static org.assertj.core.api.AtomicBooleanAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + static AtomicBooleanAssert assumeThat(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + static AtomicIntegerAssert assumeThat(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerArrayAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + static AtomicIntegerArrayAssert assumeThat(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicIntegerFieldUpdaterAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + static AtomicIntegerFieldUpdaterAssert assumeThat(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.LongAdderAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.LongAdder arg0) { return null; } + static LongAdderAssert assumeThat(@Independent @NotModified LongAdder arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + static AtomicLongAssert assumeThat(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongArrayAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + static AtomicLongArrayAssert assumeThat(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicLongFieldUpdaterAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + static AtomicLongFieldUpdaterAssert assumeThat(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + static AtomicReferenceAssert assumeThat(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceArrayAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + static AtomicReferenceArrayAssert assumeThat(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - static org.assertj.core.api.AtomicReferenceFieldUpdaterAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + static AtomicReferenceFieldUpdaterAssert assumeThat(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - static org.assertj.core.api.AtomicMarkableReferenceAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + static AtomicMarkableReferenceAssert assumeThat(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - static org.assertj.core.api.AtomicStampedReferenceAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + static AtomicStampedReferenceAssert assumeThat(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - static org.assertj.core.api.ClassAssert assumeThat(@Independent @NotModified java.lang.Class arg0) { return null; } + static ClassAssert assumeThat(@Independent @NotModified Class arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDateAssert assumeThat(@Independent @NotModified java.util.Date arg0) { return null; } + static AbstractDateAssert assumeThat(@Independent @NotModified Date arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFileAssert assumeThat(@Independent @NotModified java.io.File arg0) { return null; } + static AbstractFileAssert assumeThat(@Independent @NotModified File arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPathAssert assumeThat(@Independent @NotModified java.nio.file.Path arg0) { return null; } + static AbstractPathAssert assumeThat(@Independent @NotModified Path arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPathAssert assumeThatPath(@Independent @NotModified java.nio.file.Path arg0) { return null; } + static AbstractPathAssert assumeThatPath(@Independent @NotModified Path arg0) { return null; } @Independent - static org.assertj.core.api.AbstractFutureAssert, RESULT> assumeThat(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + static AbstractFutureAssert, RESULT> assumeThat(@Independent @NotModified Future arg0) { return null; } @Independent - static org.assertj.core.api.IterableAssert assumeThat(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static IterableAssert assumeThat(@Independent @NotModified Iterable arg0) { return null; } @Independent - static org.assertj.core.api.IterableAssert assumeThatIterable(@Independent @NotModified java.lang.Iterable arg0) { return null; } + static IterableAssert assumeThatIterable(@Independent @NotModified Iterable arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> assumeThat(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, E, ObjectAssert> assumeThat(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.AbstractCollectionAssert, E, org.assertj.core.api.ObjectAssert> assumeThatCollection(@Independent @NotModified java.util.Collection arg0) { return null; } + static AbstractCollectionAssert, E, ObjectAssert> assumeThatCollection(@Independent @NotModified Collection arg0) { return null; } @Independent - static org.assertj.core.api.FactoryBasedNavigableListAssert, java.util.List, ELEMENT, org.assertj.core.api.ObjectAssert> assumeThat(@Independent @NotModified java.util.List arg0) { return null; } + static FactoryBasedNavigableListAssert, List, ELEMENT, ObjectAssert> assumeThat(@Independent @NotModified List arg0) { return null; } @Independent - static org.assertj.core.api.FactoryBasedNavigableListAssert, java.util.List, ELEMENT, org.assertj.core.api.ObjectAssert> assumeThatList(@Independent @NotModified java.util.List arg0) { return null; } + static FactoryBasedNavigableListAssert, List, ELEMENT, ObjectAssert> assumeThatList(@Independent @NotModified List arg0) { return null; } @Independent - static org.assertj.core.api.ObjectArrayAssert assumeThat(@Independent @NotModified T[] arg0) { return null; } + static ObjectArrayAssert assumeThat(@Independent @NotModified T[] arg0) { return null; } @Independent - static org.assertj.core.api.Object2DArrayAssert assumeThat(@Independent @NotModified T[][] arg0) { return null; } + static Object2DArrayAssert assumeThat(@Independent @NotModified T[][] arg0) { return null; } @Independent - static org.assertj.core.api.MapAssert assumeThat(@Independent @NotModified java.util.Map arg0) { return null; } + static MapAssert assumeThat(@Independent @NotModified Map arg0) { return null; } @Independent - static > org.assertj.core.api.AbstractComparableAssert assumeThat(@Independent @NotModified T arg0) { return null; } + static > AbstractComparableAssert assumeThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.AbstractUniversalComparableAssert assumeThatComparable(@Independent @NotModified java.lang.Comparable arg0) { return null; } + static AbstractUniversalComparableAssert assumeThatComparable(@Independent @NotModified Comparable arg0) { return null; } @Independent - static org.assertj.core.api.AbstractThrowableAssert assumeThat(@Independent @NotModified T arg0) { return null; } + static AbstractThrowableAssert assumeThat(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.ThrowableTypeAssert assumeThatExceptionOfType(@Independent @NotModified java.lang.Class arg0) { return null; } + static ThrowableTypeAssert assumeThatExceptionOfType(@Independent @NotModified Class arg0) { return null; } @Independent - static org.assertj.core.api.ObjectAssert assumeThatObject(@Independent @NotModified T arg0) { return null; } + static ObjectAssert assumeThatObject(@Independent @NotModified T arg0) { return null; } @Independent - static org.assertj.core.api.CompletableFutureAssert assumeThat(@Independent @NotModified java.util.concurrent.CompletableFuture arg0) { return null; } + static CompletableFutureAssert assumeThat(@Independent @NotModified CompletableFuture arg0) { return null; } @Independent - static org.assertj.core.api.CompletableFutureAssert assumeThat(@Independent @NotModified java.util.concurrent.CompletionStage arg0) { return null; } + static CompletableFutureAssert assumeThat(@Independent @NotModified CompletionStage arg0) { return null; } @Independent - static org.assertj.core.api.OptionalAssert assumeThat(@Independent @NotModified java.util.Optional arg0) { return null; } + static OptionalAssert assumeThat(@Independent @NotModified Optional arg0) { return null; } @Independent - static org.assertj.core.api.OptionalDoubleAssert assumeThat(@Independent @NotModified java.util.OptionalDouble arg0) { return null; } + static OptionalDoubleAssert assumeThat(@Independent @NotModified OptionalDouble arg0) { return null; } @Independent - static org.assertj.core.api.OptionalIntAssert assumeThat(@Independent @NotModified java.util.OptionalInt arg0) { return null; } + static OptionalIntAssert assumeThat(@Independent @NotModified OptionalInt arg0) { return null; } @Independent - static org.assertj.core.api.OptionalLongAssert assumeThat(@Independent @NotModified java.util.OptionalLong arg0) { return null; } + static OptionalLongAssert assumeThat(@Independent @NotModified OptionalLong arg0) { return null; } @Independent - static org.assertj.core.api.TemporalAssert assumeThatTemporal(@Independent @NotModified java.time.temporal.Temporal arg0) { return null; } + static TemporalAssert assumeThatTemporal(@Independent @NotModified Temporal arg0) { return null; } @Independent - static org.assertj.core.api.AbstractZonedDateTimeAssert assumeThat(@Independent @NotModified java.time.ZonedDateTime arg0) { return null; } + static AbstractZonedDateTimeAssert assumeThat(@Independent @NotModified ZonedDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalDateTimeAssert assumeThat(@Independent @NotModified java.time.LocalDateTime arg0) { return null; } + static AbstractLocalDateTimeAssert assumeThat(@Independent @NotModified LocalDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractOffsetDateTimeAssert assumeThat(@Independent @NotModified java.time.OffsetDateTime arg0) { return null; } + static AbstractOffsetDateTimeAssert assumeThat(@Independent @NotModified OffsetDateTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractOffsetTimeAssert assumeThat(@Independent @NotModified java.time.OffsetTime arg0) { return null; } + static AbstractOffsetTimeAssert assumeThat(@Independent @NotModified OffsetTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalTimeAssert assumeThat(@Independent @NotModified java.time.LocalTime arg0) { return null; } + static AbstractLocalTimeAssert assumeThat(@Independent @NotModified LocalTime arg0) { return null; } @Independent - static org.assertj.core.api.AbstractLocalDateAssert assumeThat(@Independent @NotModified java.time.LocalDate arg0) { return null; } + static AbstractLocalDateAssert assumeThat(@Independent @NotModified LocalDate arg0) { return null; } @Independent - static org.assertj.core.api.AbstractYearMonthAssert assumeThat(@Independent @NotModified java.time.YearMonth arg0) { return null; } + static AbstractYearMonthAssert assumeThat(@Independent @NotModified YearMonth arg0) { return null; } @Independent - static org.assertj.core.api.AbstractInstantAssert assumeThat(@Independent @NotModified java.time.Instant arg0) { return null; } + static AbstractInstantAssert assumeThat(@Independent @NotModified Instant arg0) { return null; } @Independent - static org.assertj.core.api.AbstractDurationAssert assumeThat(@Independent @NotModified java.time.Duration arg0) { return null; } + static AbstractDurationAssert assumeThat(@Independent @NotModified Duration arg0) { return null; } @Independent - static org.assertj.core.api.AbstractPeriodAssert assumeThat(@Independent @NotModified java.time.Period arg0) { return null; } + static AbstractPeriodAssert assumeThat(@Independent @NotModified Period arg0) { return null; } } //public interface org.assertj.core.api.WithAssumptions class WithAssumptions$ { - @Independent org.assertj.core.api.AbstractLongArrayAssert assumeThat(@Independent @NotModified long[] arg0) { return null; } - @Independent org.assertj.core.api.Long2DArrayAssert assumeThat(@Independent @NotModified long[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractShortArrayAssert assumeThat(@Independent @NotModified short[] arg0) { return null; } - @Independent org.assertj.core.api.Short2DArrayAssert assumeThat(@Independent @NotModified short[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractCharArrayAssert assumeThat(@Independent @NotModified char[] arg0) { return null; } - @Independent org.assertj.core.api.Char2DArrayAssert assumeThat(@Independent @NotModified char[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractBooleanArrayAssert assumeThat(@Independent @NotModified boolean[] arg0) { return null; } - @Independent org.assertj.core.api.Boolean2DArrayAssert assumeThat(@Independent @NotModified boolean[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractByteArrayAssert assumeThat(@Independent @NotModified byte[] arg0) { return null; } - @Independent org.assertj.core.api.Byte2DArrayAssert assumeThat(@Independent @NotModified byte[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractIntArrayAssert assumeThat(@Independent @NotModified int[] arg0) { return null; } - @Independent org.assertj.core.api.Int2DArrayAssert assumeThat(@Independent @NotModified int[][] arg0) { return null; } - @Independent org.assertj.core.api.Float2DArrayAssert assumeThat(@Independent @NotModified float[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractFloatArrayAssert assumeThat(@Independent @NotModified float[] arg0) { return null; } - @Independent org.assertj.core.api.AbstractDoubleArrayAssert assumeThat(@Independent @NotModified double[] arg0) { return null; } - @Independent org.assertj.core.api.Double2DArrayAssert assumeThat(@Independent @NotModified double[][] arg0) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert assumeThatThrownBy(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } - @Independent org.assertj.core.api.AbstractThrowableAssert assumeThatCode(@IgnoreModifications org.assertj.core.api.ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent AbstractLongArrayAssert assumeThat(@Independent @NotModified long[] arg0) { return null; } + @Independent Long2DArrayAssert assumeThat(@Independent @NotModified long[][] arg0) { return null; } + @Independent AbstractShortArrayAssert assumeThat(@Independent @NotModified short[] arg0) { return null; } + @Independent Short2DArrayAssert assumeThat(@Independent @NotModified short[][] arg0) { return null; } + @Independent AbstractCharArrayAssert assumeThat(@Independent @NotModified char[] arg0) { return null; } + @Independent Char2DArrayAssert assumeThat(@Independent @NotModified char[][] arg0) { return null; } + @Independent AbstractBooleanArrayAssert assumeThat(@Independent @NotModified boolean[] arg0) { return null; } + @Independent Boolean2DArrayAssert assumeThat(@Independent @NotModified boolean[][] arg0) { return null; } + @Independent AbstractByteArrayAssert assumeThat(@Independent @NotModified byte[] arg0) { return null; } + @Independent Byte2DArrayAssert assumeThat(@Independent @NotModified byte[][] arg0) { return null; } + @Independent AbstractIntArrayAssert assumeThat(@Independent @NotModified int[] arg0) { return null; } + @Independent Int2DArrayAssert assumeThat(@Independent @NotModified int[][] arg0) { return null; } + @Independent Float2DArrayAssert assumeThat(@Independent @NotModified float[][] arg0) { return null; } + @Independent AbstractFloatArrayAssert assumeThat(@Independent @NotModified float[] arg0) { return null; } + @Independent AbstractDoubleArrayAssert assumeThat(@Independent @NotModified double[] arg0) { return null; } + @Independent Double2DArrayAssert assumeThat(@Independent @NotModified double[][] arg0) { return null; } + @Independent AbstractThrowableAssert assumeThatThrownBy(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } + @Independent AbstractThrowableAssert assumeThatCode(@IgnoreModifications ThrowableAssert.ThrowingCallable arg0) { return null; } @Independent - org.assertj.core.api.ObjectArrayAssert assumeThat(@Independent @NotModified T[] arg0) { return null; } + ObjectArrayAssert assumeThat(@Independent @NotModified T[] arg0) { return null; } @Independent - org.assertj.core.api.Object2DArrayAssert assumeThat(@Independent @NotModified T[][] arg0) { return null; } + Object2DArrayAssert assumeThat(@Independent @NotModified T[][] arg0) { return null; } @Independent - org.assertj.core.api.MapAssert assumeThat(@Independent @NotModified java.util.Map arg0) { return null; } + MapAssert assumeThat(@Independent @NotModified Map arg0) { return null; } @Independent - org.assertj.core.api.AbstractLongAssert assumeThat(@Independent @NotModified java.lang.Long arg0) { return null; } + AbstractLongAssert assumeThat(@Independent @NotModified Long arg0) { return null; } @Independent - org.assertj.core.api.ObjectAssert assumeThat(@Independent @NotModified T arg0) { return null; } + ObjectAssert assumeThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractDateAssert assumeThat(@Independent @NotModified java.util.Date arg0) { return null; } + AbstractDateAssert assumeThat(@Independent @NotModified Date arg0) { return null; } @Independent - org.assertj.core.api.AbstractThrowableAssert assumeThat(@Independent @NotModified T arg0) { return null; } + AbstractThrowableAssert assumeThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractBigDecimalAssert assumeThat(@Independent @NotModified java.math.BigDecimal arg0) { return null; } + AbstractBigDecimalAssert assumeThat(@Independent @NotModified BigDecimal arg0) { return null; } @Independent - org.assertj.core.api.AbstractBigIntegerAssert assumeThat(@Independent @NotModified java.math.BigInteger arg0) { return null; } + AbstractBigIntegerAssert assumeThat(@Independent @NotModified BigInteger arg0) { return null; } @Independent - org.assertj.core.api.AtomicBooleanAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicBoolean arg0) { return null; } + AtomicBooleanAssert assumeThat(@Independent @NotModified AtomicBoolean arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicInteger arg0) { return null; } + AtomicIntegerAssert assumeThat(@Independent @NotModified AtomicInteger arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerArrayAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerArray arg0) { return null; } + AtomicIntegerArrayAssert assumeThat(@Independent @NotModified AtomicIntegerArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicIntegerFieldUpdaterAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicIntegerFieldUpdater arg0) { return null; } + AtomicIntegerFieldUpdaterAssert assumeThat(@Independent @NotModified AtomicIntegerFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.LongAdderAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.LongAdder arg0) { return null; } + LongAdderAssert assumeThat(@Independent @NotModified LongAdder arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLong arg0) { return null; } + AtomicLongAssert assumeThat(@Independent @NotModified AtomicLong arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongArrayAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongArray arg0) { return null; } + AtomicLongArrayAssert assumeThat(@Independent @NotModified AtomicLongArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicLongFieldUpdaterAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicLongFieldUpdater arg0) { return null; } + AtomicLongFieldUpdaterAssert assumeThat(@Independent @NotModified AtomicLongFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReference arg0) { return null; } + AtomicReferenceAssert assumeThat(@Independent @NotModified AtomicReference arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceArrayAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceArray arg0) { return null; } + AtomicReferenceArrayAssert assumeThat(@Independent @NotModified AtomicReferenceArray arg0) { return null; } @Independent - org.assertj.core.api.AtomicReferenceFieldUpdaterAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicReferenceFieldUpdater arg0) { return null; } + AtomicReferenceFieldUpdaterAssert assumeThat(@Independent @NotModified AtomicReferenceFieldUpdater arg0) { return null; } @Independent - org.assertj.core.api.AtomicMarkableReferenceAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicMarkableReference arg0) { return null; } + AtomicMarkableReferenceAssert assumeThat(@Independent @NotModified AtomicMarkableReference arg0) { return null; } @Independent - org.assertj.core.api.AtomicStampedReferenceAssert assumeThat(@Independent @NotModified java.util.concurrent.atomic.AtomicStampedReference arg0) { return null; } + AtomicStampedReferenceAssert assumeThat(@Independent @NotModified AtomicStampedReference arg0) { return null; } @Independent - org.assertj.core.api.AbstractCharSequenceAssert assumeThat(@Independent @NotModified java.lang.CharSequence arg0) { return null; } + AbstractCharSequenceAssert assumeThat(@Independent @NotModified CharSequence arg0) { return null; } @Independent - org.assertj.core.api.AbstractCharSequenceAssert assumeThat(@Independent @NotModified java.lang.StringBuilder arg0) { return null; } + AbstractCharSequenceAssert assumeThat(@Independent @NotModified StringBuilder arg0) { return null; } @Independent - org.assertj.core.api.AbstractCharSequenceAssert assumeThat(@Independent @NotModified java.lang.StringBuffer arg0) { return null; } + AbstractCharSequenceAssert assumeThat(@Independent @NotModified StringBuffer arg0) { return null; } @Independent - org.assertj.core.api.AbstractShortAssert assumeThat(@Independent @NotModified java.lang.Short arg0) { return null; } + AbstractShortAssert assumeThat(@Independent @NotModified Short arg0) { return null; } @Independent - org.assertj.core.api.ClassAssert assumeThat(@Independent @NotModified java.lang.Class arg0) { return null; } + ClassAssert assumeThat(@Independent @NotModified Class arg0) { return null; } @Independent - org.assertj.core.api.AbstractCharacterAssert assumeThat(@Independent @NotModified java.lang.Character arg0) { return null; } + AbstractCharacterAssert assumeThat(@Independent @NotModified Character arg0) { return null; } @Independent - > org.assertj.core.api.AbstractComparableAssert assumeThat(@Independent @NotModified T arg0) { return null; } + > AbstractComparableAssert assumeThat(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.IterableAssert assumeThat(@Independent @NotModified java.lang.Iterable arg0) { return null; } + IterableAssert assumeThat(@Independent @NotModified Iterable arg0) { return null; } @Independent - org.assertj.core.api.AbstractBooleanAssert assumeThat(@Independent @NotModified java.lang.Boolean arg0) { return null; } + AbstractBooleanAssert assumeThat(@Independent @NotModified Boolean arg0) { return null; } @Independent - org.assertj.core.api.AbstractByteAssert assumeThat(@Independent @NotModified java.lang.Byte arg0) { return null; } + AbstractByteAssert assumeThat(@Independent @NotModified Byte arg0) { return null; } @Independent - org.assertj.core.api.AbstractFileAssert assumeThat(@Independent @NotModified java.io.File arg0) { return null; } + AbstractFileAssert assumeThat(@Independent @NotModified File arg0) { return null; } @Independent - org.assertj.core.api.AbstractFutureAssert, RESULT> assumeThat(@Independent @NotModified java.util.concurrent.Future arg0) { return null; } + AbstractFutureAssert, RESULT> assumeThat(@Independent @NotModified Future arg0) { return null; } @Independent - org.assertj.core.api.AbstractPathAssert assumeThat(@Independent @NotModified java.nio.file.Path arg0) { return null; } + AbstractPathAssert assumeThat(@Independent @NotModified Path arg0) { return null; } @Independent - org.assertj.core.api.AbstractFloatAssert assumeThat(@Independent @NotModified java.lang.Float arg0) { return null; } + AbstractFloatAssert assumeThat(@Independent @NotModified Float arg0) { return null; } @Independent - org.assertj.core.api.AbstractIntegerAssert assumeThat(@Independent @NotModified java.lang.Integer arg0) { return null; } + AbstractIntegerAssert assumeThat(@Independent @NotModified Integer arg0) { return null; } @Independent - org.assertj.core.api.AbstractDoubleAssert assumeThat(@Independent @NotModified java.lang.Double arg0) { return null; } + AbstractDoubleAssert assumeThat(@Independent @NotModified Double arg0) { return null; } @Independent - org.assertj.core.api.FactoryBasedNavigableListAssert, java.util.List, ELEMENT, org.assertj.core.api.ObjectAssert> assumeThat(@Independent @NotModified java.util.List arg0) { return null; } + FactoryBasedNavigableListAssert, List, ELEMENT, ObjectAssert> assumeThat(@Independent @NotModified List arg0) { return null; } @Independent - org.assertj.core.api.AbstractZonedDateTimeAssert assumeThat(@Independent @NotModified java.time.ZonedDateTime arg0) { return null; } + AbstractZonedDateTimeAssert assumeThat(@Independent @NotModified ZonedDateTime arg0) { return null; } @Independent - org.assertj.core.api.CompletableFutureAssert assumeThat(@Independent @NotModified java.util.concurrent.CompletableFuture arg0) { return null; } + CompletableFutureAssert assumeThat(@Independent @NotModified CompletableFuture arg0) { return null; } @Independent - org.assertj.core.api.CompletableFutureAssert assumeThat(@Independent @NotModified java.util.concurrent.CompletionStage arg0) { return null; } + CompletableFutureAssert assumeThat(@Independent @NotModified CompletionStage arg0) { return null; } @Independent - org.assertj.core.api.OptionalAssert assumeThat(@Independent @NotModified java.util.Optional arg0) { return null; } + OptionalAssert assumeThat(@Independent @NotModified Optional arg0) { return null; } @Independent - org.assertj.core.api.OptionalDoubleAssert assumeThat(@Independent @NotModified java.util.OptionalDouble arg0) { return null; } + OptionalDoubleAssert assumeThat(@Independent @NotModified OptionalDouble arg0) { return null; } @Independent - org.assertj.core.api.OptionalIntAssert assumeThat(@Independent @NotModified java.util.OptionalInt arg0) { return null; } + OptionalIntAssert assumeThat(@Independent @NotModified OptionalInt arg0) { return null; } @Independent - org.assertj.core.api.OptionalLongAssert assumeThat(@Independent @NotModified java.util.OptionalLong arg0) { return null; } + OptionalLongAssert assumeThat(@Independent @NotModified OptionalLong arg0) { return null; } @Independent - org.assertj.core.api.AbstractLocalDateTimeAssert assumeThat(@Independent @NotModified java.time.LocalDateTime arg0) { return null; } + AbstractLocalDateTimeAssert assumeThat(@Independent @NotModified LocalDateTime arg0) { return null; } @Independent - org.assertj.core.api.AbstractLocalDateAssert assumeThat(@Independent @NotModified java.time.LocalDate arg0) { return null; } + AbstractLocalDateAssert assumeThat(@Independent @NotModified LocalDate arg0) { return null; } @Independent - org.assertj.core.api.AbstractYearMonthAssert assumeThat(@Independent @NotModified java.time.YearMonth arg0) { return null; } + AbstractYearMonthAssert assumeThat(@Independent @NotModified YearMonth arg0) { return null; } @Independent - org.assertj.core.api.AbstractLocalTimeAssert assumeThat(@Independent @NotModified java.time.LocalTime arg0) { return null; } + AbstractLocalTimeAssert assumeThat(@Independent @NotModified LocalTime arg0) { return null; } @Independent - org.assertj.core.api.AbstractInstantAssert assumeThat(@Independent @NotModified java.time.Instant arg0) { return null; } + AbstractInstantAssert assumeThat(@Independent @NotModified Instant arg0) { return null; } @Independent - org.assertj.core.api.AbstractDurationAssert assumeThat(@Independent @NotModified java.time.Duration arg0) { return null; } + AbstractDurationAssert assumeThat(@Independent @NotModified Duration arg0) { return null; } @Independent - org.assertj.core.api.AbstractPeriodAssert assumeThat(@Independent @NotModified java.time.Period arg0) { return null; } + AbstractPeriodAssert assumeThat(@Independent @NotModified Period arg0) { return null; } @Independent - org.assertj.core.api.AbstractOffsetTimeAssert assumeThat(@Independent @NotModified java.time.OffsetTime arg0) { return null; } + AbstractOffsetTimeAssert assumeThat(@Independent @NotModified OffsetTime arg0) { return null; } @Independent - org.assertj.core.api.AbstractOffsetDateTimeAssert assumeThat(@Independent @NotModified java.time.OffsetDateTime arg0) { return null; } + AbstractOffsetDateTimeAssert assumeThat(@Independent @NotModified OffsetDateTime arg0) { return null; } @Independent - org.assertj.core.api.ObjectAssert assumeThatObject(@Independent @NotModified T arg0) { return null; } + ObjectAssert assumeThatObject(@Independent @NotModified T arg0) { return null; } @Independent - org.assertj.core.api.AbstractUrlAssert assumeThat(@Independent @NotModified java.net.URL arg0) { return null; } + AbstractUrlAssert assumeThat(@Independent @NotModified URL arg0) { return null; } @Independent - org.assertj.core.api.AbstractUriAssert assumeThat(@Independent @NotModified java.net.URI arg0) { return null; } + AbstractUriAssert assumeThat(@Independent @NotModified URI arg0) { return null; } } // the assert types: no method modifies its arguments, the expected values (see the class comment) @@ -1671,9 +1849,9 @@ class AbstractFloatAssert$ { } @Container class AbstractFutureAssert$ { } @Container - class AbstractInputStreamAssert$, ACTUAL extends java.io.InputStream> { - SELF hasContentEqualTo(@Modified java.io.InputStream arg0) { return null; } - SELF hasSameContentAs(@Modified java.io.InputStream arg0) { return null; } + class AbstractInputStreamAssert$, ACTUAL extends InputStream> { + SELF hasContentEqualTo(@Modified InputStream arg0) { return null; } + SELF hasSameContentAs(@Modified InputStream arg0) { return null; } } @Container class AbstractInstantAssert$ { } @@ -1863,7 +2041,7 @@ class GenericComparableAssert$ { } class IndexedObjectEnumerableAssert$ { } @Container class InputStreamAssert$ { - InputStreamAssert$(@Modified java.io.InputStream arg0) { } + InputStreamAssert$(@Modified InputStream arg0) { } } @Container class InstantAssert$ { } @@ -1881,19 +2059,19 @@ class IterableAssert$ { } class IterableSizeAssert$ { } @Container class IteratorAssert$ { - static org.assertj.core.api.IteratorAssert assertThatIterator(@Modified java.util.Iterator arg0) { return null; } - IteratorAssert$(@Modified java.util.Iterator arg0) { } + static IteratorAssert assertThatIterator(@Modified Iterator arg0) { return null; } + IteratorAssert$(@Modified Iterator arg0) { } } @Container class ListAssert$ { - static org.assertj.core.api.ListAssert assertThatStream(@Modified java.util.stream.Stream arg0) { return null; } - static org.assertj.core.api.ListAssert assertThatDoubleStream(@Modified java.util.stream.DoubleStream arg0) { return null; } - static org.assertj.core.api.ListAssert assertThatLongStream(@Modified java.util.stream.LongStream arg0) { return null; } - static org.assertj.core.api.ListAssert assertThatIntStream(@Modified java.util.stream.IntStream arg0) { return null; } - ListAssert$(@Modified java.util.stream.Stream arg0) { } - ListAssert$(@Modified java.util.stream.IntStream arg0) { } - ListAssert$(@Modified java.util.stream.LongStream arg0) { } - ListAssert$(@Modified java.util.stream.DoubleStream arg0) { } + static ListAssert assertThatStream(@Modified Stream arg0) { return null; } + static ListAssert assertThatDoubleStream(@Modified DoubleStream arg0) { return null; } + static ListAssert assertThatLongStream(@Modified LongStream arg0) { return null; } + static ListAssert assertThatIntStream(@Modified IntStream arg0) { return null; } + ListAssert$(@Modified Stream arg0) { } + ListAssert$(@Modified IntStream arg0) { } + ListAssert$(@Modified LongStream arg0) { } + ListAssert$(@Modified DoubleStream arg0) { } } @Container class LocalDateAssert$ { } @@ -1961,7 +2139,7 @@ class ShortAssert$ { } class SoftThrowableTypeAssert$ { } @Container class SpliteratorAssert$ { - static org.assertj.core.api.SpliteratorAssert assertThatSpliterator(@Modified java.util.Spliterator arg0) { return null; } + static SpliteratorAssert assertThatSpliterator(@Modified Spliterator arg0) { return null; } } @Container class StringAssert$ { } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/commonsio/OrgApacheCommonsIo.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/commonsio/OrgApacheCommonsIo.java index 588029f457..0f01c5a68e 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/commonsio/OrgApacheCommonsIo.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/commonsio/OrgApacheCommonsIo.java @@ -17,6 +17,20 @@ package io.codelaser.maddi.aapi.archive.libs.commonsio; +import java.io.Closeable; +import java.io.File; +import java.io.FileFilter; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Writer; +import java.net.URL; +import java.nio.charset.Charset; +import java.nio.file.CopyOption; +import java.nio.file.LinkOption; +import java.util.Collection; +import java.util.Iterator; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotModified; /** @@ -32,74 +46,74 @@ public class OrgApacheCommonsIo { //public class org.apache.commons.io.IOUtils // the data written (arrays, character sequences, collections) is read; streams, readers and writers are consumed or written, as their defaults say, and a buffer handed to read*/copy*/skip* is filled class IOUtils$ { - static void closeQuietly(@NotModified java.lang.Iterable p0) { } + static void closeQuietly(@NotModified Iterable p0) { } static int length(@NotModified byte[] p0) { return 0; } static int length(@NotModified char[] p0) { return 0; } - static int length(@NotModified java.lang.CharSequence p0) { return 0; } - static int length(@NotModified java.lang.Object[] p0) { return 0; } - static java.io.InputStream toInputStream(@NotModified java.lang.CharSequence p0) { return null; } - static java.io.InputStream toInputStream(@NotModified java.lang.CharSequence p0, java.nio.charset.Charset p1) { return null; } - static java.io.InputStream toInputStream(@NotModified java.lang.CharSequence p0, java.lang.String p1) { return null; } - static java.lang.String toString(@NotModified byte[] p0) { return null; } - static java.lang.String toString(@NotModified byte[] p0, java.lang.String p1) { return null; } - static void write(@NotModified byte[] p0, java.io.OutputStream p1) { } - static void write(@NotModified byte[] p0, java.io.Writer p1) { } - static void write(@NotModified byte[] p0, java.io.Writer p1, java.nio.charset.Charset p2) { } - static void write(@NotModified byte[] p0, java.io.Writer p1, java.lang.String p2) { } - static void write(@NotModified char[] p0, java.io.OutputStream p1) { } - static void write(@NotModified char[] p0, java.io.OutputStream p1, java.nio.charset.Charset p2) { } - static void write(@NotModified char[] p0, java.io.OutputStream p1, java.lang.String p2) { } - static void write(@NotModified char[] p0, java.io.Writer p1) { } - static void write(@NotModified java.lang.CharSequence p0, java.io.OutputStream p1) { } - static void write(@NotModified java.lang.CharSequence p0, java.io.OutputStream p1, java.nio.charset.Charset p2) { } - static void write(@NotModified java.lang.CharSequence p0, java.io.OutputStream p1, java.lang.String p2) { } - static void write(@NotModified java.lang.CharSequence p0, java.io.Writer p1) { } - static void write(@NotModified java.lang.StringBuffer p0, java.io.OutputStream p1) { } - static void write(@NotModified java.lang.StringBuffer p0, java.io.OutputStream p1, java.lang.String p2) { } - static void write(@NotModified java.lang.StringBuffer p0, java.io.Writer p1) { } - static void writeChunked(@NotModified byte[] p0, java.io.OutputStream p1) { } - static void writeChunked(@NotModified char[] p0, java.io.Writer p1) { } - static void writeLines(@NotModified java.util.Collection p0, java.lang.String p1, java.io.OutputStream p2) { } - static void writeLines(@NotModified java.util.Collection p0, java.lang.String p1, java.io.OutputStream p2, java.nio.charset.Charset p3) { } - static void writeLines(@NotModified java.util.Collection p0, java.lang.String p1, java.io.OutputStream p2, java.lang.String p3) { } - static void writeLines(@NotModified java.util.Collection p0, java.lang.String p1, java.io.Writer p2) { } + static int length(@NotModified CharSequence p0) { return 0; } + static int length(@NotModified Object[] p0) { return 0; } + static InputStream toInputStream(@NotModified CharSequence p0) { return null; } + static InputStream toInputStream(@NotModified CharSequence p0, Charset p1) { return null; } + static InputStream toInputStream(@NotModified CharSequence p0, String p1) { return null; } + static String toString(@NotModified byte[] p0) { return null; } + static String toString(@NotModified byte[] p0, String p1) { return null; } + static void write(@NotModified byte[] p0, OutputStream p1) { } + static void write(@NotModified byte[] p0, Writer p1) { } + static void write(@NotModified byte[] p0, Writer p1, Charset p2) { } + static void write(@NotModified byte[] p0, Writer p1, String p2) { } + static void write(@NotModified char[] p0, OutputStream p1) { } + static void write(@NotModified char[] p0, OutputStream p1, Charset p2) { } + static void write(@NotModified char[] p0, OutputStream p1, String p2) { } + static void write(@NotModified char[] p0, Writer p1) { } + static void write(@NotModified CharSequence p0, OutputStream p1) { } + static void write(@NotModified CharSequence p0, OutputStream p1, Charset p2) { } + static void write(@NotModified CharSequence p0, OutputStream p1, String p2) { } + static void write(@NotModified CharSequence p0, Writer p1) { } + static void write(@NotModified StringBuffer p0, OutputStream p1) { } + static void write(@NotModified StringBuffer p0, OutputStream p1, String p2) { } + static void write(@NotModified StringBuffer p0, Writer p1) { } + static void writeChunked(@NotModified byte[] p0, OutputStream p1) { } + static void writeChunked(@NotModified char[] p0, Writer p1) { } + static void writeLines(@NotModified Collection p0, String p1, OutputStream p2) { } + static void writeLines(@NotModified Collection p0, String p1, OutputStream p2, Charset p3) { } + static void writeLines(@NotModified Collection p0, String p1, OutputStream p2, String p3) { } + static void writeLines(@NotModified Collection p0, String p1, Writer p2) { } } //public class org.apache.commons.io.FileUtils // files are immutable (JavaIo); the data written, extensions and file collections are read class FileUtils$ { - static java.io.File[] convertFileCollectionToFileArray(@NotModified java.util.Collection p0) { return null; } - static void copyDirectory(java.io.File p0, java.io.File p1, java.io.FileFilter p2, boolean p3, @NotModified java.nio.file.CopyOption... p4) { } - static void copyFile(java.io.File p0, java.io.File p1, boolean p2, @NotModified java.nio.file.CopyOption... p3) { } - static void copyFile(java.io.File p0, java.io.File p1, @NotModified java.nio.file.CopyOption... p2) { } - static void copyToDirectory(@NotModified java.lang.Iterable p0, java.io.File p1) { } - static java.io.File getFile(java.io.File p0, @NotModified java.lang.String... p1) { return null; } - static java.io.File getFile(@NotModified java.lang.String... p0) { return null; } - static boolean isDirectory(java.io.File p0, @NotModified java.nio.file.LinkOption... p1) { return false; } - static boolean isRegularFile(java.io.File p0, @NotModified java.nio.file.LinkOption... p1) { return false; } - static java.util.Iterator iterateFiles(java.io.File p0, @NotModified java.lang.String[] p1, boolean p2) { return null; } - static java.util.Collection listFiles(java.io.File p0, @NotModified java.lang.String[] p1, boolean p2) { return null; } - static void moveFile(java.io.File p0, java.io.File p1, @NotModified java.nio.file.CopyOption... p2) { } - static java.util.stream.Stream streamFiles(java.io.File p0, boolean p1, @NotModified java.lang.String... p2) { return null; } - static java.io.File[] toFiles(@NotModified java.net.URL... p0) { return null; } - static void write(java.io.File p0, @NotModified java.lang.CharSequence p1) { } - static void write(java.io.File p0, @NotModified java.lang.CharSequence p1, boolean p2) { } - static void write(java.io.File p0, @NotModified java.lang.CharSequence p1, java.nio.charset.Charset p2) { } - static void write(java.io.File p0, @NotModified java.lang.CharSequence p1, java.nio.charset.Charset p2, boolean p3) { } - static void write(java.io.File p0, @NotModified java.lang.CharSequence p1, java.lang.String p2) { } - static void write(java.io.File p0, @NotModified java.lang.CharSequence p1, java.lang.String p2, boolean p3) { } - static void writeByteArrayToFile(java.io.File p0, @NotModified byte[] p1) { } - static void writeByteArrayToFile(java.io.File p0, @NotModified byte[] p1, boolean p2) { } - static void writeByteArrayToFile(java.io.File p0, @NotModified byte[] p1, int p2, int p3) { } - static void writeByteArrayToFile(java.io.File p0, @NotModified byte[] p1, int p2, int p3, boolean p4) { } - static void writeLines(java.io.File p0, @NotModified java.util.Collection p1) { } - static void writeLines(java.io.File p0, @NotModified java.util.Collection p1, boolean p2) { } - static void writeLines(java.io.File p0, @NotModified java.util.Collection p1, java.lang.String p2) { } - static void writeLines(java.io.File p0, @NotModified java.util.Collection p1, java.lang.String p2, boolean p3) { } - static void writeLines(java.io.File p0, java.lang.String p1, @NotModified java.util.Collection p2) { } - static void writeLines(java.io.File p0, java.lang.String p1, @NotModified java.util.Collection p2, boolean p3) { } - static void writeLines(java.io.File p0, java.lang.String p1, @NotModified java.util.Collection p2, java.lang.String p3) { } - static void writeLines(java.io.File p0, java.lang.String p1, @NotModified java.util.Collection p2, java.lang.String p3, boolean p4) { } + static File[] convertFileCollectionToFileArray(@NotModified Collection p0) { return null; } + static void copyDirectory(File p0, File p1, FileFilter p2, boolean p3, @NotModified CopyOption... p4) { } + static void copyFile(File p0, File p1, boolean p2, @NotModified CopyOption... p3) { } + static void copyFile(File p0, File p1, @NotModified CopyOption... p2) { } + static void copyToDirectory(@NotModified Iterable p0, File p1) { } + static File getFile(File p0, @NotModified String... p1) { return null; } + static File getFile(@NotModified String... p0) { return null; } + static boolean isDirectory(File p0, @NotModified LinkOption... p1) { return false; } + static boolean isRegularFile(File p0, @NotModified LinkOption... p1) { return false; } + static Iterator iterateFiles(File p0, @NotModified String[] p1, boolean p2) { return null; } + static Collection listFiles(File p0, @NotModified String[] p1, boolean p2) { return null; } + static void moveFile(File p0, File p1, @NotModified CopyOption... p2) { } + static Stream streamFiles(File p0, boolean p1, @NotModified String... p2) { return null; } + static File[] toFiles(@NotModified URL... p0) { return null; } + static void write(File p0, @NotModified CharSequence p1) { } + static void write(File p0, @NotModified CharSequence p1, boolean p2) { } + static void write(File p0, @NotModified CharSequence p1, Charset p2) { } + static void write(File p0, @NotModified CharSequence p1, Charset p2, boolean p3) { } + static void write(File p0, @NotModified CharSequence p1, String p2) { } + static void write(File p0, @NotModified CharSequence p1, String p2, boolean p3) { } + static void writeByteArrayToFile(File p0, @NotModified byte[] p1) { } + static void writeByteArrayToFile(File p0, @NotModified byte[] p1, boolean p2) { } + static void writeByteArrayToFile(File p0, @NotModified byte[] p1, int p2, int p3) { } + static void writeByteArrayToFile(File p0, @NotModified byte[] p1, int p2, int p3, boolean p4) { } + static void writeLines(File p0, @NotModified Collection p1) { } + static void writeLines(File p0, @NotModified Collection p1, boolean p2) { } + static void writeLines(File p0, @NotModified Collection p1, String p2) { } + static void writeLines(File p0, @NotModified Collection p1, String p2, boolean p3) { } + static void writeLines(File p0, String p1, @NotModified Collection p2) { } + static void writeLines(File p0, String p1, @NotModified Collection p2, boolean p3) { } + static void writeLines(File p0, String p1, @NotModified Collection p2, String p3) { } + static void writeLines(File p0, String p1, @NotModified Collection p2, String p3, boolean p4) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApi.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApi.java index 1528a90a80..34ce86145b 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApi.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApi.java @@ -5,6 +5,7 @@ import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collector; + import org.eclipse.collections.api.*; import org.eclipse.collections.api.bag.*; import org.eclipse.collections.api.bag.primitive.*; @@ -41,9 +42,9 @@ import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import org.eclipse.collections.api.set.sorted.MutableSortedSet; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiAnnotation.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiAnnotation.java index 4a0e12d889..6403d780f0 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiAnnotation.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiAnnotation.java @@ -1,14 +1,6 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiAnnotation { public static final String PACKAGE_NAME = "org.eclipse.collections.api.annotation"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBag.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBag.java index a42219a615..38d92fe7c4 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBag.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBag.java @@ -3,6 +3,7 @@ import java.util.function.BiConsumer; import java.util.function.Supplier; import java.util.stream.Collector; + import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.bag.*; import org.eclipse.collections.api.bag.primitive.*; @@ -28,16 +29,14 @@ import org.eclipse.collections.api.set.*; import org.eclipse.collections.api.tuple.Pair; import org.eclipse.collections.api.tuple.primitive.ObjectIntPair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiBag { public static final String PACKAGE_NAME = "org.eclipse.collections.api.bag"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBagSorted.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBagSorted.java index a6b8d17cc2..8aed7cdff3 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBagSorted.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBagSorted.java @@ -1,5 +1,6 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Comparator; + import org.eclipse.collections.api.bag.ImmutableBag; import org.eclipse.collections.api.bag.MutableBag; import org.eclipse.collections.api.bag.sorted.*; @@ -24,16 +25,14 @@ import org.eclipse.collections.api.set.sorted.MutableSortedSet; import org.eclipse.collections.api.set.sorted.SortedSetIterable; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiBagSorted { public static final String PACKAGE_NAME = "org.eclipse.collections.api.bag.sorted"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBimap.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBimap.java index 0ce77223a0..7ad5ef40db 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBimap.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiBimap.java @@ -1,5 +1,6 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Map; + import org.eclipse.collections.api.bag.ImmutableBagIterable; import org.eclipse.collections.api.bimap.BiMap; import org.eclipse.collections.api.bimap.ImmutableBiMap; @@ -22,16 +23,13 @@ import org.eclipse.collections.api.set.MutableSet; import org.eclipse.collections.api.set.SetIterable; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiBimap { public static final String PACKAGE_NAME = "org.eclipse.collections.api.bimap"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiCollection.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiCollection.java index 1f3285c66d..8538e04986 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiCollection.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiCollection.java @@ -2,6 +2,7 @@ import java.util.Collection; import java.util.Spliterator; import java.util.stream.Stream; + import org.eclipse.collections.api.bag.ImmutableBag; import org.eclipse.collections.api.bag.MutableBag; import org.eclipse.collections.api.block.function.*; @@ -25,15 +26,12 @@ import org.eclipse.collections.api.partition.PartitionMutableCollection; import org.eclipse.collections.api.tuple.Pair; import org.eclipse.collections.api.tuple.Twin; + import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiCollection { public static final String PACKAGE_NAME = "org.eclipse.collections.api.collection"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactory.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactory.java index ff073c793d..56f5bf3b9d 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactory.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactory.java @@ -1,5 +1,6 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.lang.reflect.Method; + import org.eclipse.collections.api.factory.bag.ImmutableBagFactory; import org.eclipse.collections.api.factory.bag.MultiReaderBagFactory; import org.eclipse.collections.api.factory.bag.MutableBagFactory; @@ -18,14 +19,12 @@ import org.eclipse.collections.api.factory.set.sorted.MutableSortedSetFactory; import org.eclipse.collections.api.factory.stack.ImmutableStackFactory; import org.eclipse.collections.api.factory.stack.MutableStackFactory; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactory { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBag.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBag.java index d7057e5f6c..1120eb1162 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBag.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBag.java @@ -1,19 +1,15 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.stream.Stream; + import org.eclipse.collections.api.bag.ImmutableBag; import org.eclipse.collections.api.bag.MultiReaderBag; import org.eclipse.collections.api.bag.MutableBag; import org.eclipse.collections.api.tuple.primitive.ObjectIntPair; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiFactoryBag { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.bag"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBagSorted.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBagSorted.java index 122733cc93..ecb02544fe 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBagSorted.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBagSorted.java @@ -1,17 +1,14 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Comparator; + import org.eclipse.collections.api.bag.sorted.ImmutableSortedBag; import org.eclipse.collections.api.bag.sorted.MutableSortedBag; import org.eclipse.collections.api.bag.sorted.SortedBag; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactoryBagSorted { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.bag.sorted"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBagStrategy.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBagStrategy.java index f744a20f89..c6006d0445 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBagStrategy.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBagStrategy.java @@ -2,15 +2,11 @@ import org.eclipse.collections.api.bag.MutableBag; import org.eclipse.collections.api.block.HashingStrategy; import org.eclipse.collections.api.block.function.Function; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactoryBagStrategy { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.bag.strategy"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBimap.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBimap.java index ff08c7acd5..6de291687d 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBimap.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryBimap.java @@ -1,8 +1,10 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Map; + import org.eclipse.collections.api.bimap.ImmutableBiMap; import org.eclipse.collections.api.bimap.MutableBiMap; import org.eclipse.collections.api.map.ImmutableMap; + import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryList.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryList.java index 6124430846..bbd18ccd28 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryList.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryList.java @@ -1,18 +1,15 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Comparator; import java.util.stream.Stream; + import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.block.function.Function0; import org.eclipse.collections.api.list.*; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactoryList { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.list"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMap.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMap.java index b2c8045507..60986b0a88 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMap.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMap.java @@ -1,15 +1,12 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Map; + import org.eclipse.collections.api.map.*; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactoryMap { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.map"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMapSorted.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMapSorted.java index d4e1d0fd33..c496b874dd 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMapSorted.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMapSorted.java @@ -2,17 +2,13 @@ import java.util.Comparator; import java.util.Map; import java.util.SortedMap; + import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import org.eclipse.collections.api.map.sorted.MutableSortedMap; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactoryMapSorted { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.map.sorted"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMapStrategy.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMapStrategy.java index 999246a140..043b65f58d 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMapStrategy.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryMapStrategy.java @@ -1,18 +1,15 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Map; + import org.eclipse.collections.api.block.HashingStrategy; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.map.ImmutableMap; import org.eclipse.collections.api.map.MutableMap; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactoryMapStrategy { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.map.strategy"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySet.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySet.java index 5b9206787f..3cab259ce4 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySet.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySet.java @@ -1,15 +1,12 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.stream.Stream; + import org.eclipse.collections.api.set.*; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactorySet { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.set"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySetSorted.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySetSorted.java index 52e78f4649..b53ddaddc3 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySetSorted.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySetSorted.java @@ -1,17 +1,14 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Comparator; import java.util.SortedSet; + import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import org.eclipse.collections.api.set.sorted.MutableSortedSet; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactorySetSorted { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.set.sorted"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySetStrategy.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySetStrategy.java index b1a8ade7b9..9bc623f56b 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySetStrategy.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactorySetStrategy.java @@ -3,16 +3,11 @@ import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.set.ImmutableSet; import org.eclipse.collections.api.set.MutableSet; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiFactorySetStrategy { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.set.strategy"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryStack.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryStack.java index d05f7fb79b..b15df2fda5 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryStack.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiFactoryStack.java @@ -1,16 +1,12 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.stream.Stream; + import org.eclipse.collections.api.stack.ImmutableStack; import org.eclipse.collections.api.stack.MutableStack; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiFactoryStack { public static final String PACKAGE_NAME = "org.eclipse.collections.api.factory.stack"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiIterator.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiIterator.java index f79661cf96..fb27854ced 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiIterator.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiIterator.java @@ -1,14 +1,8 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiIterator { public static final String PACKAGE_NAME = "org.eclipse.collections.api.iterator"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiList.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiList.java index ee11f0b4bd..7cc1a66b9c 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiList.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiList.java @@ -1,6 +1,7 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.*; import java.util.concurrent.ExecutorService; + import org.eclipse.collections.api.block.HashingStrategy; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.block.function.Function2; @@ -20,16 +21,15 @@ import org.eclipse.collections.api.partition.list.PartitionMutableList; import org.eclipse.collections.api.set.ParallelUnsortedSetIterable; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiList { public static final String PACKAGE_NAME = "org.eclipse.collections.api.list"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMap.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMap.java index 72288cdaaf..464af503ef 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMap.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMap.java @@ -3,6 +3,7 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.stream.Stream; + import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.bag.Bag; import org.eclipse.collections.api.bag.ImmutableBag; @@ -46,10 +47,9 @@ import org.eclipse.collections.api.set.MutableSet; import org.eclipse.collections.api.set.UnsortedSetIterable; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMapSorted.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMapSorted.java index 5d047b8a6c..67b998df9f 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMapSorted.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMapSorted.java @@ -2,6 +2,7 @@ import java.util.Comparator; import java.util.Map; import java.util.SortedMap; + import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.block.function.Function0; import org.eclipse.collections.api.block.function.Function2; @@ -30,15 +31,13 @@ import org.eclipse.collections.api.partition.list.PartitionMutableList; import org.eclipse.collections.api.set.MutableSet; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiMapSorted { public static final String PACKAGE_NAME = "org.eclipse.collections.api.map.sorted"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimap.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimap.java index e5273162c6..5e1014edcd 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimap.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimap.java @@ -1,5 +1,6 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Collection; + import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.bag.Bag; import org.eclipse.collections.api.block.function.Function; @@ -16,15 +17,14 @@ import org.eclipse.collections.api.multimap.MutableMultimap; import org.eclipse.collections.api.set.SetIterable; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiMultimap { public static final String PACKAGE_NAME = "org.eclipse.collections.api.multimap"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapBag.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapBag.java index 2f80c5bcdf..6b5180e370 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapBag.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapBag.java @@ -9,15 +9,14 @@ import org.eclipse.collections.api.multimap.MutableMultimap; import org.eclipse.collections.api.multimap.bag.*; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiMultimapBag { public static final String PACKAGE_NAME = "org.eclipse.collections.api.multimap.bag"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapList.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapList.java index f4dc9db2bb..0b55cee955 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapList.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapList.java @@ -12,16 +12,14 @@ import org.eclipse.collections.api.multimap.list.ListMultimap; import org.eclipse.collections.api.multimap.list.MutableListMultimap; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiMultimapList { public static final String PACKAGE_NAME = "org.eclipse.collections.api.multimap.list"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapOrdered.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapOrdered.java index c2029c29e2..25d0129f3d 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapOrdered.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapOrdered.java @@ -1,5 +1,6 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Comparator; + import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.block.function.Function2; @@ -13,15 +14,11 @@ import org.eclipse.collections.api.ordered.ReversibleIterable; import org.eclipse.collections.api.ordered.SortedIterable; import org.eclipse.collections.api.tuple.Pair; -import io.codelaser.maddi.annotation.Container; + import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiMultimapOrdered { public static final String PACKAGE_NAME = "org.eclipse.collections.api.multimap.ordered"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSet.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSet.java index 803d0f845e..0bc29c32b2 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSet.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSet.java @@ -10,15 +10,14 @@ import org.eclipse.collections.api.multimap.set.*; import org.eclipse.collections.api.set.*; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiMultimapSet { public static final String PACKAGE_NAME = "org.eclipse.collections.api.multimap.set"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSortedbag.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSortedbag.java index 71a8fc41c6..7621bb2be1 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSortedbag.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSortedbag.java @@ -16,15 +16,14 @@ import org.eclipse.collections.api.multimap.sortedbag.MutableSortedBagMultimap; import org.eclipse.collections.api.multimap.sortedbag.SortedBagMultimap; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiMultimapSortedbag { public static final String PACKAGE_NAME = "org.eclipse.collections.api.multimap.sortedbag"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSortedset.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSortedset.java index bb26527adc..3f0b129e46 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSortedset.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiMultimapSortedset.java @@ -18,16 +18,14 @@ import org.eclipse.collections.api.set.sorted.MutableSortedSet; import org.eclipse.collections.api.set.sorted.SortedSetIterable; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiMultimapSortedset { public static final String PACKAGE_NAME = "org.eclipse.collections.api.multimap.sortedset"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiOrdered.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiOrdered.java index 1af18a0dc1..57f51c40ea 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiOrdered.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiOrdered.java @@ -2,6 +2,7 @@ import java.util.Collection; import java.util.Comparator; import java.util.Optional; + import org.eclipse.collections.api.LazyIterable; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.block.function.Function2; @@ -24,15 +25,10 @@ import org.eclipse.collections.api.partition.ordered.PartitionSortedIterable; import org.eclipse.collections.api.stack.MutableStack; import org.eclipse.collections.api.tuple.Pair; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; + import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiOrdered { public static final String PACKAGE_NAME = "org.eclipse.collections.api.ordered"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartition.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartition.java index 6b34479141..667d924766 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartition.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartition.java @@ -3,15 +3,13 @@ import org.eclipse.collections.api.collection.ImmutableCollection; import org.eclipse.collections.api.collection.MutableCollection; import org.eclipse.collections.api.partition.PartitionImmutableCollection; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiPartition { public static final String PACKAGE_NAME = "org.eclipse.collections.api.partition"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionBag.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionBag.java index d785ee4e29..4565e6d263 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionBag.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionBag.java @@ -2,15 +2,13 @@ import org.eclipse.collections.api.bag.*; import org.eclipse.collections.api.partition.bag.PartitionImmutableBag; import org.eclipse.collections.api.partition.bag.PartitionImmutableBagIterable; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiPartitionBag { public static final String PACKAGE_NAME = "org.eclipse.collections.api.partition.bag"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionBagSorted.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionBagSorted.java index 578c159c52..27163692ec 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionBagSorted.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionBagSorted.java @@ -3,15 +3,13 @@ import org.eclipse.collections.api.bag.sorted.MutableSortedBag; import org.eclipse.collections.api.bag.sorted.SortedBag; import org.eclipse.collections.api.partition.bag.sorted.PartitionImmutableSortedBag; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiPartitionBagSorted { public static final String PACKAGE_NAME = "org.eclipse.collections.api.partition.bag.sorted"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionList.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionList.java index 9eafe01733..0b1201faf6 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionList.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionList.java @@ -3,16 +3,13 @@ import org.eclipse.collections.api.list.ListIterable; import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.partition.list.PartitionImmutableList; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiPartitionList { public static final String PACKAGE_NAME = "org.eclipse.collections.api.partition.list"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionOrdered.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionOrdered.java index 554ea3cd80..0b469daa9c 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionOrdered.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionOrdered.java @@ -2,15 +2,11 @@ import org.eclipse.collections.api.ordered.OrderedIterable; import org.eclipse.collections.api.ordered.ReversibleIterable; import org.eclipse.collections.api.ordered.SortedIterable; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiPartitionOrdered { public static final String PACKAGE_NAME = "org.eclipse.collections.api.partition.ordered"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionSet.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionSet.java index 3e8f25dfde..6c1fb4c0c5 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionSet.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionSet.java @@ -1,16 +1,13 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import org.eclipse.collections.api.partition.set.PartitionImmutableSet; import org.eclipse.collections.api.set.*; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiPartitionSet { public static final String PACKAGE_NAME = "org.eclipse.collections.api.partition.set"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionSetSorted.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionSetSorted.java index 5486fc6c0f..4018690be9 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionSetSorted.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionSetSorted.java @@ -3,15 +3,12 @@ import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import org.eclipse.collections.api.set.sorted.MutableSortedSet; import org.eclipse.collections.api.set.sorted.SortedSetIterable; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiPartitionSetSorted { public static final String PACKAGE_NAME = "org.eclipse.collections.api.partition.set.sorted"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionStack.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionStack.java index cab933d9f1..82ebaabe2f 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionStack.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiPartitionStack.java @@ -3,15 +3,12 @@ import org.eclipse.collections.api.stack.ImmutableStack; import org.eclipse.collections.api.stack.MutableStack; import org.eclipse.collections.api.stack.StackIterable; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiPartitionStack { public static final String PACKAGE_NAME = "org.eclipse.collections.api.partition.stack"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiSet.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiSet.java index 884b1d7978..a45f895239 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiSet.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiSet.java @@ -1,6 +1,7 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Set; import java.util.concurrent.ExecutorService; + import org.eclipse.collections.api.LazyIterable; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.block.function.Function2; @@ -14,15 +15,14 @@ import org.eclipse.collections.api.set.*; import org.eclipse.collections.api.set.primitive.*; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiSet { public static final String PACKAGE_NAME = "org.eclipse.collections.api.set"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiSetSorted.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiSetSorted.java index 70cec029cf..dbf2109a8b 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiSetSorted.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiSetSorted.java @@ -2,6 +2,7 @@ import java.util.Comparator; import java.util.SortedSet; import java.util.concurrent.ExecutorService; + import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.block.function.Function2; import org.eclipse.collections.api.block.function.primitive.*; @@ -19,16 +20,14 @@ import org.eclipse.collections.api.set.SetIterable; import org.eclipse.collections.api.set.sorted.*; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; @Independent(absent = true) public class OrgEclipseCollectionsApiSetSorted { public static final String PACKAGE_NAME = "org.eclipse.collections.api.set.sorted"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiStack.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiStack.java index 4746084aa7..fcca1269c2 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiStack.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiStack.java @@ -1,5 +1,6 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Collection; + import org.eclipse.collections.api.bag.ImmutableBag; import org.eclipse.collections.api.bag.MutableBag; import org.eclipse.collections.api.block.function.Function; @@ -25,10 +26,8 @@ import org.eclipse.collections.api.stack.StackIterable; import org.eclipse.collections.api.stack.primitive.*; import org.eclipse.collections.api.tuple.Pair; + import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiTuple.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiTuple.java index 8ee9dabf0e..69952dd6cc 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiTuple.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/eclipsecollections/OrgEclipseCollectionsApiTuple.java @@ -1,15 +1,12 @@ package io.codelaser.maddi.aapi.archive.libs.eclipsecollections; import java.util.Map; + import org.eclipse.collections.api.tuple.*; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.FinalFields; -import io.codelaser.maddi.annotation.Fluent; + import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; @Independent(absent = true) public class OrgEclipseCollectionsApiTuple { public static final String PACKAGE_NAME = "org.eclipse.collections.api.tuple"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/guava/ComGoogleCommonCollect.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/guava/ComGoogleCommonCollect.java index 4c9dedacf0..fa7794c769 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/guava/ComGoogleCommonCollect.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/guava/ComGoogleCommonCollect.java @@ -1,11 +1,4 @@ package io.codelaser.maddi.aapi.archive.libs.guava; -import com.google.common.base.Converter; -import com.google.common.base.Equivalence; -import com.google.common.base.Function; -import com.google.common.base.Joiner; -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.collect.*; import java.math.BigInteger; import java.time.Duration; import java.util.ArrayDeque; @@ -51,6 +44,15 @@ import java.util.function.ToIntFunction; import java.util.function.UnaryOperator; import java.util.stream.*; + +import com.google.common.base.Converter; +import com.google.common.base.Equivalence; +import com.google.common.base.Function; +import com.google.common.base.Joiner; +import com.google.common.base.Optional; +import com.google.common.base.Predicate; +import com.google.common.collect.*; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/hamcrest/OrgHamcrest.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/hamcrest/OrgHamcrest.java index ba141baa84..53a1a4d6e2 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/hamcrest/OrgHamcrest.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/hamcrest/OrgHamcrest.java @@ -17,6 +17,21 @@ package io.codelaser.maddi.aapi.archive.libs.hamcrest; +import java.math.BigDecimal; +import java.util.Collection; +import java.util.EventObject; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import javax.xml.namespace.NamespaceContext; + +import org.hamcrest.Matcher; +import org.hamcrest.collection.IsArray; +import org.hamcrest.core.AnyOf; +import org.hamcrest.core.CombinableMatcher; +import org.w3c.dom.Node; + import io.codelaser.maddi.annotation.NotModified; /** @@ -34,177 +49,177 @@ public class OrgHamcrest { //public class org.hamcrest.MatcherAssert class MatcherAssert$ { - static void assertThat(@NotModified T arg0, @NotModified org.hamcrest.Matcher arg1) { } - static void assertThat(java.lang.String arg0, @NotModified T arg1, @NotModified org.hamcrest.Matcher arg2) { } - static void assertThat(java.lang.String arg0, boolean arg1) { } + static void assertThat(@NotModified T arg0, @NotModified Matcher arg1) { } + static void assertThat(String arg0, @NotModified T arg1, @NotModified Matcher arg2) { } + static void assertThat(String arg0, boolean arg1) { } } //public class org.hamcrest.Matchers class Matchers$ { - static org.hamcrest.Matcher allOf(@NotModified java.lang.Iterable> arg0) { return null; } - static org.hamcrest.Matcher allOf(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher allOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1) { return null; } - static org.hamcrest.Matcher allOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified org.hamcrest.Matcher arg2) { return null; } - static org.hamcrest.Matcher allOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified org.hamcrest.Matcher arg2, @NotModified org.hamcrest.Matcher arg3) { return null; } - static org.hamcrest.Matcher allOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified org.hamcrest.Matcher arg2, @NotModified org.hamcrest.Matcher arg3, @NotModified org.hamcrest.Matcher arg4) { return null; } - static org.hamcrest.Matcher allOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified org.hamcrest.Matcher arg2, @NotModified org.hamcrest.Matcher arg3, @NotModified org.hamcrest.Matcher arg4, @NotModified org.hamcrest.Matcher arg5) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified java.lang.Iterable> arg0) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified org.hamcrest.Matcher arg2) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified org.hamcrest.Matcher arg2, @NotModified org.hamcrest.Matcher arg3) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified org.hamcrest.Matcher arg2, @NotModified org.hamcrest.Matcher arg3, @NotModified org.hamcrest.Matcher arg4) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified org.hamcrest.Matcher arg2, @NotModified org.hamcrest.Matcher arg3, @NotModified org.hamcrest.Matcher arg4, @NotModified org.hamcrest.Matcher arg5) { return null; } - static org.hamcrest.core.CombinableMatcher.CombinableBothMatcher both(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.core.CombinableMatcher.CombinableEitherMatcher either(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher describedAs(java.lang.String arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified java.lang.Object... arg2) { return null; } - static org.hamcrest.Matcher> everyItem(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher is(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher is(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher isA(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher anything() { return null; } - static org.hamcrest.Matcher anything(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher> hasItem(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher> hasItem(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher> hasItems(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher> hasItems(@NotModified T... arg0) { return null; } - static org.hamcrest.Matcher equalTo(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher equalToObject(@NotModified java.lang.Object arg0) { return null; } - static org.hamcrest.Matcher any(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher instanceOf(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher not(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher not(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher notNullValue() { return null; } - static org.hamcrest.Matcher notNullValue(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher nullValue() { return null; } - static org.hamcrest.Matcher nullValue(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher sameInstance(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher theInstance(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher containsString(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher containsStringIgnoringCase(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher startsWith(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher startsWithIgnoringCase(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher endsWith(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher endsWithIgnoringCase(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher matchesRegex(@NotModified java.util.regex.Pattern arg0) { return null; } - static org.hamcrest.Matcher matchesRegex(java.lang.String arg0) { return null; } - static org.hamcrest.collection.IsArray array(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher hasItemInArray(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher hasItemInArray(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher arrayContaining(@NotModified E... arg0) { return null; } - static org.hamcrest.Matcher arrayContaining(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher arrayContaining(@NotModified java.util.List> arg0) { return null; } - static org.hamcrest.Matcher arrayContainingInAnyOrder(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher arrayContainingInAnyOrder(@NotModified java.util.Collection> arg0) { return null; } - static org.hamcrest.Matcher arrayContainingInAnyOrder(@NotModified E... arg0) { return null; } - static org.hamcrest.Matcher arrayWithSize(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher arrayWithSize(int arg0) { return null; } - static org.hamcrest.Matcher emptyArray() { return null; } - static org.hamcrest.Matcher> aMapWithSize(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher> aMapWithSize(int arg0) { return null; } - static org.hamcrest.Matcher> anEmptyMap() { return null; } - static org.hamcrest.Matcher> hasSize(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher> hasSize(int arg0) { return null; } - static org.hamcrest.Matcher> empty() { return null; } - static org.hamcrest.Matcher> emptyCollectionOf(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher> emptyIterable() { return null; } - static org.hamcrest.Matcher> emptyIterableOf(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher> contains(@NotModified E... arg0) { return null; } - static org.hamcrest.Matcher> contains(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher> contains(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher> contains(@NotModified java.util.List> arg0) { return null; } - static org.hamcrest.Matcher> containsInAnyOrder(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher> containsInAnyOrder(@NotModified T... arg0) { return null; } - static org.hamcrest.Matcher> containsInAnyOrder(@NotModified java.util.Collection> arg0) { return null; } - static org.hamcrest.Matcher> containsInRelativeOrder(@NotModified E... arg0) { return null; } - static org.hamcrest.Matcher> containsInRelativeOrder(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher> containsInRelativeOrder(@NotModified java.util.List> arg0) { return null; } - static org.hamcrest.Matcher> iterableWithSize(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher> iterableWithSize(int arg0) { return null; } - static org.hamcrest.Matcher> hasEntry(@NotModified org.hamcrest.Matcher arg0, @NotModified org.hamcrest.Matcher arg1) { return null; } - static org.hamcrest.Matcher> hasEntry(@NotModified K arg0, @NotModified V arg1) { return null; } - static org.hamcrest.Matcher> hasKey(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher> hasKey(@NotModified K arg0) { return null; } - static org.hamcrest.Matcher> hasValue(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher> hasValue(@NotModified V arg0) { return null; } - static org.hamcrest.Matcher in(@NotModified java.util.Collection arg0) { return null; } - static org.hamcrest.Matcher in(@NotModified T[] arg0) { return null; } - static org.hamcrest.Matcher isIn(@NotModified java.util.Collection arg0) { return null; } - static org.hamcrest.Matcher isIn(@NotModified T[] arg0) { return null; } - static org.hamcrest.Matcher isOneOf(@NotModified T... arg0) { return null; } - static org.hamcrest.Matcher oneOf(@NotModified T... arg0) { return null; } - static org.hamcrest.Matcher closeTo(double arg0, double arg1) { return null; } - static org.hamcrest.Matcher notANumber() { return null; } - static org.hamcrest.Matcher closeTo(@NotModified java.math.BigDecimal arg0, @NotModified java.math.BigDecimal arg1) { return null; } - static > org.hamcrest.Matcher comparesEqualTo(@NotModified T arg0) { return null; } - static > org.hamcrest.Matcher greaterThan(@NotModified T arg0) { return null; } - static > org.hamcrest.Matcher greaterThanOrEqualTo(@NotModified T arg0) { return null; } - static > org.hamcrest.Matcher lessThan(@NotModified T arg0) { return null; } - static > org.hamcrest.Matcher lessThanOrEqualTo(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher equalToIgnoringCase(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher equalToIgnoringWhiteSpace(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher equalToCompressingWhiteSpace(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher emptyOrNullString() { return null; } - static org.hamcrest.Matcher emptyString() { return null; } - static org.hamcrest.Matcher isEmptyOrNullString() { return null; } - static org.hamcrest.Matcher isEmptyString() { return null; } - static org.hamcrest.Matcher blankOrNullString() { return null; } - static org.hamcrest.Matcher blankString() { return null; } - static org.hamcrest.Matcher matchesPattern(@NotModified java.util.regex.Pattern arg0) { return null; } - static org.hamcrest.Matcher matchesPattern(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher stringContainsInOrder(@NotModified java.lang.Iterable arg0) { return null; } - static org.hamcrest.Matcher stringContainsInOrder(@NotModified java.lang.String... arg0) { return null; } - static org.hamcrest.Matcher hasLength(int arg0) { return null; } - static org.hamcrest.Matcher hasToString(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher hasToString(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher> typeCompatibleWith(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher eventFrom(@NotModified java.lang.Class arg0, @NotModified java.lang.Object arg1) { return null; } - static org.hamcrest.Matcher eventFrom(@NotModified java.lang.Object arg0) { return null; } - static org.hamcrest.Matcher hasProperty(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher hasProperty(java.lang.String arg0, @NotModified org.hamcrest.Matcher arg1) { return null; } - static org.hamcrest.Matcher samePropertyValuesAs(@NotModified B arg0, @NotModified java.lang.String... arg1) { return null; } - static org.hamcrest.Matcher hasXPath(java.lang.String arg0, @NotModified org.hamcrest.Matcher arg1) { return null; } - static org.hamcrest.Matcher hasXPath(java.lang.String arg0, @NotModified javax.xml.namespace.NamespaceContext arg1, @NotModified org.hamcrest.Matcher arg2) { return null; } - static org.hamcrest.Matcher hasXPath(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher hasXPath(java.lang.String arg0, @NotModified javax.xml.namespace.NamespaceContext arg1) { return null; } + static Matcher allOf(@NotModified Iterable> arg0) { return null; } + static Matcher allOf(@NotModified Matcher... arg0) { return null; } + static Matcher allOf(@NotModified Matcher arg0, @NotModified Matcher arg1) { return null; } + static Matcher allOf(@NotModified Matcher arg0, @NotModified Matcher arg1, @NotModified Matcher arg2) { return null; } + static Matcher allOf(@NotModified Matcher arg0, @NotModified Matcher arg1, @NotModified Matcher arg2, @NotModified Matcher arg3) { return null; } + static Matcher allOf(@NotModified Matcher arg0, @NotModified Matcher arg1, @NotModified Matcher arg2, @NotModified Matcher arg3, @NotModified Matcher arg4) { return null; } + static Matcher allOf(@NotModified Matcher arg0, @NotModified Matcher arg1, @NotModified Matcher arg2, @NotModified Matcher arg3, @NotModified Matcher arg4, @NotModified Matcher arg5) { return null; } + static AnyOf anyOf(@NotModified Iterable> arg0) { return null; } + static AnyOf anyOf(@NotModified Matcher... arg0) { return null; } + static AnyOf anyOf(@NotModified Matcher arg0, @NotModified Matcher arg1) { return null; } + static AnyOf anyOf(@NotModified Matcher arg0, @NotModified Matcher arg1, @NotModified Matcher arg2) { return null; } + static AnyOf anyOf(@NotModified Matcher arg0, @NotModified Matcher arg1, @NotModified Matcher arg2, @NotModified Matcher arg3) { return null; } + static AnyOf anyOf(@NotModified Matcher arg0, @NotModified Matcher arg1, @NotModified Matcher arg2, @NotModified Matcher arg3, @NotModified Matcher arg4) { return null; } + static AnyOf anyOf(@NotModified Matcher arg0, @NotModified Matcher arg1, @NotModified Matcher arg2, @NotModified Matcher arg3, @NotModified Matcher arg4, @NotModified Matcher arg5) { return null; } + static CombinableMatcher.CombinableBothMatcher both(@NotModified Matcher arg0) { return null; } + static CombinableMatcher.CombinableEitherMatcher either(@NotModified Matcher arg0) { return null; } + static Matcher describedAs(String arg0, @NotModified Matcher arg1, @NotModified Object... arg2) { return null; } + static Matcher> everyItem(@NotModified Matcher arg0) { return null; } + static Matcher is(@NotModified Matcher arg0) { return null; } + static Matcher is(@NotModified T arg0) { return null; } + static Matcher isA(@NotModified Class arg0) { return null; } + static Matcher anything() { return null; } + static Matcher anything(String arg0) { return null; } + static Matcher> hasItem(@NotModified Matcher arg0) { return null; } + static Matcher> hasItem(@NotModified T arg0) { return null; } + static Matcher> hasItems(@NotModified Matcher... arg0) { return null; } + static Matcher> hasItems(@NotModified T... arg0) { return null; } + static Matcher equalTo(@NotModified T arg0) { return null; } + static Matcher equalToObject(@NotModified Object arg0) { return null; } + static Matcher any(@NotModified Class arg0) { return null; } + static Matcher instanceOf(@NotModified Class arg0) { return null; } + static Matcher not(@NotModified Matcher arg0) { return null; } + static Matcher not(@NotModified T arg0) { return null; } + static Matcher notNullValue() { return null; } + static Matcher notNullValue(@NotModified Class arg0) { return null; } + static Matcher nullValue() { return null; } + static Matcher nullValue(@NotModified Class arg0) { return null; } + static Matcher sameInstance(@NotModified T arg0) { return null; } + static Matcher theInstance(@NotModified T arg0) { return null; } + static Matcher containsString(String arg0) { return null; } + static Matcher containsStringIgnoringCase(String arg0) { return null; } + static Matcher startsWith(String arg0) { return null; } + static Matcher startsWithIgnoringCase(String arg0) { return null; } + static Matcher endsWith(String arg0) { return null; } + static Matcher endsWithIgnoringCase(String arg0) { return null; } + static Matcher matchesRegex(@NotModified Pattern arg0) { return null; } + static Matcher matchesRegex(String arg0) { return null; } + static IsArray array(@NotModified Matcher... arg0) { return null; } + static Matcher hasItemInArray(@NotModified Matcher arg0) { return null; } + static Matcher hasItemInArray(@NotModified T arg0) { return null; } + static Matcher arrayContaining(@NotModified E... arg0) { return null; } + static Matcher arrayContaining(@NotModified Matcher... arg0) { return null; } + static Matcher arrayContaining(@NotModified List> arg0) { return null; } + static Matcher arrayContainingInAnyOrder(@NotModified Matcher... arg0) { return null; } + static Matcher arrayContainingInAnyOrder(@NotModified Collection> arg0) { return null; } + static Matcher arrayContainingInAnyOrder(@NotModified E... arg0) { return null; } + static Matcher arrayWithSize(@NotModified Matcher arg0) { return null; } + static Matcher arrayWithSize(int arg0) { return null; } + static Matcher emptyArray() { return null; } + static Matcher> aMapWithSize(@NotModified Matcher arg0) { return null; } + static Matcher> aMapWithSize(int arg0) { return null; } + static Matcher> anEmptyMap() { return null; } + static Matcher> hasSize(@NotModified Matcher arg0) { return null; } + static Matcher> hasSize(int arg0) { return null; } + static Matcher> empty() { return null; } + static Matcher> emptyCollectionOf(@NotModified Class arg0) { return null; } + static Matcher> emptyIterable() { return null; } + static Matcher> emptyIterableOf(@NotModified Class arg0) { return null; } + static Matcher> contains(@NotModified E... arg0) { return null; } + static Matcher> contains(@NotModified Matcher arg0) { return null; } + static Matcher> contains(@NotModified Matcher... arg0) { return null; } + static Matcher> contains(@NotModified List> arg0) { return null; } + static Matcher> containsInAnyOrder(@NotModified Matcher... arg0) { return null; } + static Matcher> containsInAnyOrder(@NotModified T... arg0) { return null; } + static Matcher> containsInAnyOrder(@NotModified Collection> arg0) { return null; } + static Matcher> containsInRelativeOrder(@NotModified E... arg0) { return null; } + static Matcher> containsInRelativeOrder(@NotModified Matcher... arg0) { return null; } + static Matcher> containsInRelativeOrder(@NotModified List> arg0) { return null; } + static Matcher> iterableWithSize(@NotModified Matcher arg0) { return null; } + static Matcher> iterableWithSize(int arg0) { return null; } + static Matcher> hasEntry(@NotModified Matcher arg0, @NotModified Matcher arg1) { return null; } + static Matcher> hasEntry(@NotModified K arg0, @NotModified V arg1) { return null; } + static Matcher> hasKey(@NotModified Matcher arg0) { return null; } + static Matcher> hasKey(@NotModified K arg0) { return null; } + static Matcher> hasValue(@NotModified Matcher arg0) { return null; } + static Matcher> hasValue(@NotModified V arg0) { return null; } + static Matcher in(@NotModified Collection arg0) { return null; } + static Matcher in(@NotModified T[] arg0) { return null; } + static Matcher isIn(@NotModified Collection arg0) { return null; } + static Matcher isIn(@NotModified T[] arg0) { return null; } + static Matcher isOneOf(@NotModified T... arg0) { return null; } + static Matcher oneOf(@NotModified T... arg0) { return null; } + static Matcher closeTo(double arg0, double arg1) { return null; } + static Matcher notANumber() { return null; } + static Matcher closeTo(@NotModified BigDecimal arg0, @NotModified BigDecimal arg1) { return null; } + static > Matcher comparesEqualTo(@NotModified T arg0) { return null; } + static > Matcher greaterThan(@NotModified T arg0) { return null; } + static > Matcher greaterThanOrEqualTo(@NotModified T arg0) { return null; } + static > Matcher lessThan(@NotModified T arg0) { return null; } + static > Matcher lessThanOrEqualTo(@NotModified T arg0) { return null; } + static Matcher equalToIgnoringCase(String arg0) { return null; } + static Matcher equalToIgnoringWhiteSpace(String arg0) { return null; } + static Matcher equalToCompressingWhiteSpace(String arg0) { return null; } + static Matcher emptyOrNullString() { return null; } + static Matcher emptyString() { return null; } + static Matcher isEmptyOrNullString() { return null; } + static Matcher isEmptyString() { return null; } + static Matcher blankOrNullString() { return null; } + static Matcher blankString() { return null; } + static Matcher matchesPattern(@NotModified Pattern arg0) { return null; } + static Matcher matchesPattern(String arg0) { return null; } + static Matcher stringContainsInOrder(@NotModified Iterable arg0) { return null; } + static Matcher stringContainsInOrder(@NotModified String... arg0) { return null; } + static Matcher hasLength(int arg0) { return null; } + static Matcher hasToString(@NotModified Matcher arg0) { return null; } + static Matcher hasToString(String arg0) { return null; } + static Matcher> typeCompatibleWith(@NotModified Class arg0) { return null; } + static Matcher eventFrom(@NotModified Class arg0, @NotModified Object arg1) { return null; } + static Matcher eventFrom(@NotModified Object arg0) { return null; } + static Matcher hasProperty(String arg0) { return null; } + static Matcher hasProperty(String arg0, @NotModified Matcher arg1) { return null; } + static Matcher samePropertyValuesAs(@NotModified B arg0, @NotModified String... arg1) { return null; } + static Matcher hasXPath(String arg0, @NotModified Matcher arg1) { return null; } + static Matcher hasXPath(String arg0, @NotModified NamespaceContext arg1, @NotModified Matcher arg2) { return null; } + static Matcher hasXPath(String arg0) { return null; } + static Matcher hasXPath(String arg0, @NotModified NamespaceContext arg1) { return null; } } //public class org.hamcrest.CoreMatchers class CoreMatchers$ { - static org.hamcrest.Matcher allOf(@NotModified java.lang.Iterable> arg0) { return null; } - static org.hamcrest.Matcher allOf(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified java.lang.Iterable> arg0) { return null; } - static org.hamcrest.core.AnyOf anyOf(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.core.CombinableMatcher.CombinableBothMatcher both(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.core.CombinableMatcher.CombinableEitherMatcher either(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher describedAs(java.lang.String arg0, @NotModified org.hamcrest.Matcher arg1, @NotModified java.lang.Object... arg2) { return null; } - static org.hamcrest.Matcher> everyItem(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher is(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher is(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher isA(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher anything() { return null; } - static org.hamcrest.Matcher anything(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher> hasItem(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher> hasItem(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher> hasItems(@NotModified org.hamcrest.Matcher... arg0) { return null; } - static org.hamcrest.Matcher> hasItems(@NotModified T... arg0) { return null; } - static org.hamcrest.Matcher equalTo(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher equalToObject(@NotModified java.lang.Object arg0) { return null; } - static org.hamcrest.Matcher any(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher instanceOf(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher not(@NotModified org.hamcrest.Matcher arg0) { return null; } - static org.hamcrest.Matcher not(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher notNullValue() { return null; } - static org.hamcrest.Matcher notNullValue(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher nullValue() { return null; } - static org.hamcrest.Matcher nullValue(@NotModified java.lang.Class arg0) { return null; } - static org.hamcrest.Matcher sameInstance(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher theInstance(@NotModified T arg0) { return null; } - static org.hamcrest.Matcher containsString(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher containsStringIgnoringCase(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher startsWith(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher startsWithIgnoringCase(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher endsWith(java.lang.String arg0) { return null; } - static org.hamcrest.Matcher endsWithIgnoringCase(java.lang.String arg0) { return null; } + static Matcher allOf(@NotModified Iterable> arg0) { return null; } + static Matcher allOf(@NotModified Matcher... arg0) { return null; } + static AnyOf anyOf(@NotModified Iterable> arg0) { return null; } + static AnyOf anyOf(@NotModified Matcher... arg0) { return null; } + static CombinableMatcher.CombinableBothMatcher both(@NotModified Matcher arg0) { return null; } + static CombinableMatcher.CombinableEitherMatcher either(@NotModified Matcher arg0) { return null; } + static Matcher describedAs(String arg0, @NotModified Matcher arg1, @NotModified Object... arg2) { return null; } + static Matcher> everyItem(@NotModified Matcher arg0) { return null; } + static Matcher is(@NotModified Matcher arg0) { return null; } + static Matcher is(@NotModified T arg0) { return null; } + static Matcher isA(@NotModified Class arg0) { return null; } + static Matcher anything() { return null; } + static Matcher anything(String arg0) { return null; } + static Matcher> hasItem(@NotModified Matcher arg0) { return null; } + static Matcher> hasItem(@NotModified T arg0) { return null; } + static Matcher> hasItems(@NotModified Matcher... arg0) { return null; } + static Matcher> hasItems(@NotModified T... arg0) { return null; } + static Matcher equalTo(@NotModified T arg0) { return null; } + static Matcher equalToObject(@NotModified Object arg0) { return null; } + static Matcher any(@NotModified Class arg0) { return null; } + static Matcher instanceOf(@NotModified Class arg0) { return null; } + static Matcher not(@NotModified Matcher arg0) { return null; } + static Matcher not(@NotModified T arg0) { return null; } + static Matcher notNullValue() { return null; } + static Matcher notNullValue(@NotModified Class arg0) { return null; } + static Matcher nullValue() { return null; } + static Matcher nullValue(@NotModified Class arg0) { return null; } + static Matcher sameInstance(@NotModified T arg0) { return null; } + static Matcher theInstance(@NotModified T arg0) { return null; } + static Matcher containsString(String arg0) { return null; } + static Matcher containsStringIgnoringCase(String arg0) { return null; } + static Matcher startsWith(String arg0) { return null; } + static Matcher startsWithIgnoringCase(String arg0) { return null; } + static Matcher endsWith(String arg0) { return null; } + static Matcher endsWithIgnoringCase(String arg0) { return null; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabind.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabind.java index 769f9822d5..05a6497092 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabind.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabind.java @@ -17,6 +17,84 @@ package io.codelaser.maddi.aapi.archive.libs.jackson; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.Type; +import java.net.URL; +import java.text.DateFormat; +import java.util.Collection; +import java.util.Map; +import java.util.Set; +import java.util.TimeZone; +import java.util.concurrent.atomic.AtomicReference; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.core.Base64Variant; +import com.fasterxml.jackson.core.FormatSchema; +import com.fasterxml.jackson.core.JsonEncoding; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.PrettyPrinter; +import com.fasterxml.jackson.core.StreamReadFeature; +import com.fasterxml.jackson.core.StreamWriteFeature; +import com.fasterxml.jackson.core.TreeNode; +import com.fasterxml.jackson.core.Version; +import com.fasterxml.jackson.core.io.CharacterEscapes; +import com.fasterxml.jackson.core.type.ResolvedType; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.AnnotationIntrospector; +import com.fasterxml.jackson.databind.DeserializationConfig; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.EnumNamingStrategy; +import com.fasterxml.jackson.databind.InjectableValues; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.MappingIterator; +import com.fasterxml.jackson.databind.Module; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectReader; +import com.fasterxml.jackson.databind.ObjectWriter; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.SerializationConfig; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.cfg.CacheProvider; +import com.fasterxml.jackson.databind.cfg.ConstructorDetector; +import com.fasterxml.jackson.databind.cfg.ContextAttributes; +import com.fasterxml.jackson.databind.cfg.DatatypeFeature; +import com.fasterxml.jackson.databind.cfg.HandlerInstantiator; +import com.fasterxml.jackson.databind.cfg.MutableCoercionConfig; +import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler; +import com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy; +import com.fasterxml.jackson.databind.introspect.ClassIntrospector; +import com.fasterxml.jackson.databind.introspect.VisibilityChecker; +import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; +import com.fasterxml.jackson.databind.jsonschema.JsonSchema; +import com.fasterxml.jackson.databind.jsontype.NamedType; +import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator; +import com.fasterxml.jackson.databind.jsontype.SubtypeResolver; +import com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider; +import com.fasterxml.jackson.databind.ser.FilterProvider; +import com.fasterxml.jackson.databind.ser.SerializerFactory; +import com.fasterxml.jackson.databind.type.LogicalType; +import com.fasterxml.jackson.databind.type.TypeFactory; + import io.codelaser.maddi.annotation.NotModified; /** @@ -40,223 +118,223 @@ public class ComFasterxmlJacksonDatabind { //public class com.fasterxml.jackson.databind.ObjectMapper extends com.fasterxml.jackson.core.ObjectCodec implements com.fasterxml.jackson.core.Versioned,java.io.Serializable // reading, writing and converting leave the mapper as it is (its configuration; caches are bookkeeping); configuration arguments are read or stored, never changed class ObjectMapper$ { - @NotModified com.fasterxml.jackson.databind.ObjectMapper copy() { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectMapper copyWith(@NotModified com.fasterxml.jackson.core.JsonFactory p0) { return null; } - @NotModified com.fasterxml.jackson.core.Version version() { return null; } - com.fasterxml.jackson.databind.ObjectMapper registerModule(@NotModified com.fasterxml.jackson.databind.Module p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper registerModules(@NotModified com.fasterxml.jackson.databind.Module... p0) { return null; } - @NotModified java.util.Set getRegisteredModuleIds() { return null; } - @NotModified com.fasterxml.jackson.core.JsonGenerator createGenerator(java.io.OutputStream p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonGenerator createGenerator(java.io.OutputStream p0, @NotModified com.fasterxml.jackson.core.JsonEncoding p1) { return null; } - @NotModified com.fasterxml.jackson.core.JsonGenerator createGenerator(java.io.Writer p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonGenerator createGenerator(java.io.File p0, @NotModified com.fasterxml.jackson.core.JsonEncoding p1) { return null; } - @NotModified com.fasterxml.jackson.core.JsonGenerator createGenerator(java.io.DataOutput p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(java.io.File p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(java.net.URL p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(java.io.InputStream p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(java.io.Reader p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(@NotModified byte[] p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(@NotModified byte[] p0, int p1, int p2) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(java.lang.String p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(@NotModified char[] p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(@NotModified char[] p0, int p1, int p2) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createParser(java.io.DataInput p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser createNonBlockingByteArrayParser() { return null; } - @NotModified com.fasterxml.jackson.databind.SerializationConfig getSerializationConfig() { return null; } - @NotModified com.fasterxml.jackson.databind.DeserializationConfig getDeserializationConfig() { return null; } - @NotModified com.fasterxml.jackson.databind.DeserializationContext getDeserializationContext() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setSerializerFactory(@NotModified com.fasterxml.jackson.databind.ser.SerializerFactory p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ser.SerializerFactory getSerializerFactory() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setSerializerProvider(@NotModified com.fasterxml.jackson.databind.ser.DefaultSerializerProvider p0) { return null; } - @NotModified com.fasterxml.jackson.databind.SerializerProvider getSerializerProvider() { return null; } - @NotModified com.fasterxml.jackson.databind.SerializerProvider getSerializerProviderInstance() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setMixIns(@NotModified java.util.Map, java.lang.Class> p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setMixInResolver(@NotModified com.fasterxml.jackson.databind.introspect.ClassIntrospector.MixInResolver p0) { return null; } - void setMixInAnnotations(@NotModified java.util.Map, java.lang.Class> p0) { } - @NotModified com.fasterxml.jackson.databind.introspect.VisibilityChecker getVisibilityChecker() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setVisibility(@NotModified com.fasterxml.jackson.databind.introspect.VisibilityChecker p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setVisibility(@NotModified com.fasterxml.jackson.annotation.PropertyAccessor p0, @NotModified com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility p1) { return null; } - @NotModified com.fasterxml.jackson.databind.jsontype.SubtypeResolver getSubtypeResolver() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setSubtypeResolver(@NotModified com.fasterxml.jackson.databind.jsontype.SubtypeResolver p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setAnnotationIntrospector(@NotModified com.fasterxml.jackson.databind.AnnotationIntrospector p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setAnnotationIntrospectors(@NotModified com.fasterxml.jackson.databind.AnnotationIntrospector p0, @NotModified com.fasterxml.jackson.databind.AnnotationIntrospector p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setPropertyNamingStrategy(@NotModified com.fasterxml.jackson.databind.PropertyNamingStrategy p0) { return null; } - @NotModified com.fasterxml.jackson.databind.PropertyNamingStrategy getPropertyNamingStrategy() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setEnumNamingStrategy(@NotModified com.fasterxml.jackson.databind.EnumNamingStrategy p0) { return null; } - @NotModified com.fasterxml.jackson.databind.EnumNamingStrategy getEnumNamingStrategy() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setAccessorNaming(@NotModified com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setDefaultPrettyPrinter(@NotModified com.fasterxml.jackson.core.PrettyPrinter p0) { return null; } - void setVisibilityChecker(@NotModified com.fasterxml.jackson.databind.introspect.VisibilityChecker p0) { } - com.fasterxml.jackson.databind.ObjectMapper setPolymorphicTypeValidator(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0) { return null; } - @NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator getPolymorphicTypeValidator() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setSerializationInclusion(@NotModified com.fasterxml.jackson.annotation.JsonInclude.Include p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setPropertyInclusion(@NotModified com.fasterxml.jackson.annotation.JsonInclude.Value p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setDefaultPropertyInclusion(@NotModified com.fasterxml.jackson.annotation.JsonInclude.Value p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setDefaultPropertyInclusion(@NotModified com.fasterxml.jackson.annotation.JsonInclude.Include p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setDefaultSetterInfo(@NotModified com.fasterxml.jackson.annotation.JsonSetter.Value p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setDefaultVisibility(@NotModified com.fasterxml.jackson.annotation.JsonAutoDetect.Value p0) { return null; } - void registerSubtypes(@NotModified java.lang.Class... p0) { } - void registerSubtypes(@NotModified com.fasterxml.jackson.databind.jsontype.NamedType... p0) { } - void registerSubtypes(@NotModified java.util.Collection> p0) { } - com.fasterxml.jackson.databind.ObjectMapper activateDefaultTyping(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper activateDefaultTyping(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0, @NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper activateDefaultTyping(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0, @NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p1, @NotModified com.fasterxml.jackson.annotation.JsonTypeInfo.As p2) { return null; } - com.fasterxml.jackson.databind.ObjectMapper activateDefaultTypingAsProperty(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0, @NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p1, java.lang.String p2) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setDefaultTyping(@NotModified com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper enableDefaultTyping(@NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper enableDefaultTyping(@NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p0, @NotModified com.fasterxml.jackson.annotation.JsonTypeInfo.As p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper enableDefaultTypingAsProperty(@NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p0, java.lang.String p1) { return null; } - com.fasterxml.jackson.databind.cfg.MutableCoercionConfig coercionConfigFor(@NotModified com.fasterxml.jackson.databind.type.LogicalType p0) { return null; } - @NotModified com.fasterxml.jackson.databind.type.TypeFactory getTypeFactory() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setTypeFactory(@NotModified com.fasterxml.jackson.databind.type.TypeFactory p0) { return null; } - @NotModified com.fasterxml.jackson.databind.JavaType constructType(java.lang.reflect.Type p0) { return null; } - @NotModified com.fasterxml.jackson.databind.JavaType constructType(@NotModified com.fasterxml.jackson.core.type.TypeReference p0) { return null; } - @NotModified com.fasterxml.jackson.databind.node.JsonNodeFactory getNodeFactory() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setNodeFactory(@NotModified com.fasterxml.jackson.databind.node.JsonNodeFactory p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setConstructorDetector(@NotModified com.fasterxml.jackson.databind.cfg.ConstructorDetector p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setCacheProvider(@NotModified com.fasterxml.jackson.databind.cfg.CacheProvider p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper addHandler(@NotModified com.fasterxml.jackson.databind.deser.DeserializationProblemHandler p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setConfig(@NotModified com.fasterxml.jackson.databind.DeserializationConfig p0) { return null; } - void setFilters(@NotModified com.fasterxml.jackson.databind.ser.FilterProvider p0) { } - com.fasterxml.jackson.databind.ObjectMapper setFilterProvider(@NotModified com.fasterxml.jackson.databind.ser.FilterProvider p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setBase64Variant(@NotModified com.fasterxml.jackson.core.Base64Variant p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setConfig(@NotModified com.fasterxml.jackson.databind.SerializationConfig p0) { return null; } - @NotModified com.fasterxml.jackson.core.JsonFactory tokenStreamFactory() { return null; } - @NotModified com.fasterxml.jackson.core.JsonFactory getFactory() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setDateFormat(@NotModified java.text.DateFormat p0) { return null; } - @NotModified java.text.DateFormat getDateFormat() { return null; } - java.lang.Object setHandlerInstantiator(@NotModified com.fasterxml.jackson.databind.cfg.HandlerInstantiator p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setInjectableValues(@NotModified com.fasterxml.jackson.databind.InjectableValues p0) { return null; } - @NotModified com.fasterxml.jackson.databind.InjectableValues getInjectableValues() { return null; } - com.fasterxml.jackson.databind.ObjectMapper setTimeZone(@NotModified java.util.TimeZone p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper setDefaultAttributes(@NotModified com.fasterxml.jackson.databind.cfg.ContextAttributes p0) { return null; } - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.databind.MapperFeature p0) { return false; } - com.fasterxml.jackson.databind.ObjectMapper configure(@NotModified com.fasterxml.jackson.databind.MapperFeature p0, boolean p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper enable(@NotModified com.fasterxml.jackson.databind.MapperFeature... p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper disable(@NotModified com.fasterxml.jackson.databind.MapperFeature... p0) { return null; } - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0) { return false; } - com.fasterxml.jackson.databind.ObjectMapper configure(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0, boolean p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper enable(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper enable(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0, @NotModified com.fasterxml.jackson.databind.SerializationFeature... p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper disable(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper disable(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0, @NotModified com.fasterxml.jackson.databind.SerializationFeature... p1) { return null; } - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0) { return false; } - com.fasterxml.jackson.databind.ObjectMapper configure(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0, boolean p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper enable(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper enable(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0, @NotModified com.fasterxml.jackson.databind.DeserializationFeature... p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper disable(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0) { return null; } - com.fasterxml.jackson.databind.ObjectMapper disable(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0, @NotModified com.fasterxml.jackson.databind.DeserializationFeature... p1) { return null; } - com.fasterxml.jackson.databind.ObjectMapper configure(@NotModified com.fasterxml.jackson.databind.cfg.DatatypeFeature p0, boolean p1) { return null; } - @NotModified boolean isEnabled(com.fasterxml.jackson.core.JsonParser.Feature p0) { return false; } - @NotModified boolean isEnabled(com.fasterxml.jackson.core.JsonGenerator.Feature p0) { return false; } - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.core.JsonFactory.Feature p0) { return false; } - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.core.StreamReadFeature p0) { return false; } - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.core.StreamWriteFeature p0) { return false; } - @NotModified T readValue(com.fasterxml.jackson.core.JsonParser p0, java.lang.Class p1) { return null; } - @NotModified T readValue(com.fasterxml.jackson.core.JsonParser p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T readValue(com.fasterxml.jackson.core.JsonParser p0, @NotModified com.fasterxml.jackson.core.type.ResolvedType p1) { return null; } - @NotModified T readValue(com.fasterxml.jackson.core.JsonParser p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T readTree(com.fasterxml.jackson.core.JsonParser p0) { return null; } - @NotModified com.fasterxml.jackson.databind.MappingIterator readValues(com.fasterxml.jackson.core.JsonParser p0, @NotModified com.fasterxml.jackson.core.type.ResolvedType p1) { return null; } - @NotModified com.fasterxml.jackson.databind.MappingIterator readValues(com.fasterxml.jackson.core.JsonParser p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified com.fasterxml.jackson.databind.MappingIterator readValues(com.fasterxml.jackson.core.JsonParser p0, java.lang.Class p1) { return null; } - @NotModified com.fasterxml.jackson.databind.MappingIterator readValues(com.fasterxml.jackson.core.JsonParser p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode readTree(java.io.InputStream p0) { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode readTree(java.io.Reader p0) { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode readTree(java.lang.String p0) { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode readTree(@NotModified byte[] p0) { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode readTree(@NotModified byte[] p0, int p1, int p2) { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode readTree(java.io.File p0) { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode readTree(java.net.URL p0) { return null; } - @NotModified void writeValue(com.fasterxml.jackson.core.JsonGenerator p0, @NotModified java.lang.Object p1) { } - @NotModified void writeTree(com.fasterxml.jackson.core.JsonGenerator p0, @NotModified com.fasterxml.jackson.core.TreeNode p1) { } - @NotModified void writeTree(com.fasterxml.jackson.core.JsonGenerator p0, @NotModified com.fasterxml.jackson.databind.JsonNode p1) { } - @NotModified com.fasterxml.jackson.databind.node.ObjectNode createObjectNode() { return null; } - @NotModified com.fasterxml.jackson.databind.node.ArrayNode createArrayNode() { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode missingNode() { return null; } - @NotModified com.fasterxml.jackson.databind.JsonNode nullNode() { return null; } - @NotModified com.fasterxml.jackson.core.JsonParser treeAsTokens(@NotModified com.fasterxml.jackson.core.TreeNode p0) { return null; } - @NotModified T treeToValue(@NotModified com.fasterxml.jackson.core.TreeNode p0, java.lang.Class p1) { return null; } - @NotModified T treeToValue(@NotModified com.fasterxml.jackson.core.TreeNode p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T treeToValue(@NotModified com.fasterxml.jackson.core.TreeNode p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T valueToTree(@NotModified java.lang.Object p0) { return null; } - @NotModified boolean canSerialize(java.lang.Class p0) { return false; } - @NotModified boolean canSerialize(java.lang.Class p0, @NotModified java.util.concurrent.atomic.AtomicReference p1) { return false; } - @NotModified boolean canDeserialize(@NotModified com.fasterxml.jackson.databind.JavaType p0) { return false; } - @NotModified boolean canDeserialize(@NotModified com.fasterxml.jackson.databind.JavaType p0, @NotModified java.util.concurrent.atomic.AtomicReference p1) { return false; } - @NotModified T readValue(java.io.File p0, java.lang.Class p1) { return null; } - @NotModified T readValue(java.io.File p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T readValue(java.io.File p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T readValue(java.net.URL p0, java.lang.Class p1) { return null; } - @NotModified T readValue(java.net.URL p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T readValue(java.net.URL p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T readValue(java.lang.String p0, java.lang.Class p1) { return null; } - @NotModified T readValue(java.lang.String p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T readValue(java.lang.String p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T readValue(java.io.Reader p0, java.lang.Class p1) { return null; } - @NotModified T readValue(java.io.Reader p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T readValue(java.io.Reader p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T readValue(java.io.InputStream p0, java.lang.Class p1) { return null; } - @NotModified T readValue(java.io.InputStream p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T readValue(java.io.InputStream p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T readValue(@NotModified byte[] p0, java.lang.Class p1) { return null; } - @NotModified T readValue(@NotModified byte[] p0, int p1, int p2, java.lang.Class p3) { return null; } - @NotModified T readValue(@NotModified byte[] p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T readValue(@NotModified byte[] p0, int p1, int p2, @NotModified com.fasterxml.jackson.core.type.TypeReference p3) { return null; } - @NotModified T readValue(@NotModified byte[] p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T readValue(@NotModified byte[] p0, int p1, int p2, @NotModified com.fasterxml.jackson.databind.JavaType p3) { return null; } - @NotModified T readValue(java.io.DataInput p0, java.lang.Class p1) { return null; } - @NotModified T readValue(java.io.DataInput p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified void writeValue(java.io.File p0, @NotModified java.lang.Object p1) { } - @NotModified void writeValue(java.io.OutputStream p0, @NotModified java.lang.Object p1) { } - @NotModified void writeValue(java.io.DataOutput p0, @NotModified java.lang.Object p1) { } - @NotModified void writeValue(java.io.Writer p0, @NotModified java.lang.Object p1) { } - @NotModified java.lang.String writeValueAsString(@NotModified java.lang.Object p0) { return null; } - @NotModified byte[] writeValueAsBytes(@NotModified java.lang.Object p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer() { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0, @NotModified com.fasterxml.jackson.databind.SerializationFeature... p1) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified java.text.DateFormat p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writerWithView(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writerFor(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writerFor(@NotModified com.fasterxml.jackson.core.type.TypeReference p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writerFor(@NotModified com.fasterxml.jackson.databind.JavaType p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified com.fasterxml.jackson.core.PrettyPrinter p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writerWithDefaultPrettyPrinter() { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified com.fasterxml.jackson.databind.ser.FilterProvider p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified com.fasterxml.jackson.core.FormatSchema p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified com.fasterxml.jackson.core.Base64Variant p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified com.fasterxml.jackson.core.io.CharacterEscapes p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writer(@NotModified com.fasterxml.jackson.databind.cfg.ContextAttributes p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writerWithType(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writerWithType(@NotModified com.fasterxml.jackson.core.type.TypeReference p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectWriter writerWithType(@NotModified com.fasterxml.jackson.databind.JavaType p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader() { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0, @NotModified com.fasterxml.jackson.databind.DeserializationFeature... p1) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader readerForUpdating(java.lang.Object p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader readerFor(@NotModified com.fasterxml.jackson.databind.JavaType p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader readerFor(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader readerFor(@NotModified com.fasterxml.jackson.core.type.TypeReference p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader readerForArrayOf(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader readerForListOf(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader readerForMapOf(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.databind.node.JsonNodeFactory p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.core.FormatSchema p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.databind.InjectableValues p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader readerWithView(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.core.Base64Variant p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.databind.cfg.ContextAttributes p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.databind.JavaType p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(java.lang.Class p0) { return null; } - @NotModified com.fasterxml.jackson.databind.ObjectReader reader(@NotModified com.fasterxml.jackson.core.type.TypeReference p0) { return null; } - @NotModified T convertValue(@NotModified java.lang.Object p0, java.lang.Class p1) { return null; } - @NotModified T convertValue(@NotModified java.lang.Object p0, @NotModified com.fasterxml.jackson.core.type.TypeReference p1) { return null; } - @NotModified T convertValue(@NotModified java.lang.Object p0, @NotModified com.fasterxml.jackson.databind.JavaType p1) { return null; } - @NotModified T updateValue(T p0, java.lang.Object p1) { return null; } - @NotModified com.fasterxml.jackson.databind.jsonschema.JsonSchema generateJsonSchema(java.lang.Class p0) { return null; } - @NotModified void acceptJsonFormatVisitor(java.lang.Class p0, com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper p1) { } - @NotModified void acceptJsonFormatVisitor(@NotModified com.fasterxml.jackson.databind.JavaType p0, com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper p1) { } + @NotModified ObjectMapper copy() { return null; } + @NotModified ObjectMapper copyWith(@NotModified JsonFactory p0) { return null; } + @NotModified Version version() { return null; } + ObjectMapper registerModule(@NotModified Module p0) { return null; } + ObjectMapper registerModules(@NotModified Module... p0) { return null; } + @NotModified Set getRegisteredModuleIds() { return null; } + @NotModified JsonGenerator createGenerator(OutputStream p0) { return null; } + @NotModified JsonGenerator createGenerator(OutputStream p0, @NotModified JsonEncoding p1) { return null; } + @NotModified JsonGenerator createGenerator(Writer p0) { return null; } + @NotModified JsonGenerator createGenerator(File p0, @NotModified JsonEncoding p1) { return null; } + @NotModified JsonGenerator createGenerator(DataOutput p0) { return null; } + @NotModified JsonParser createParser(File p0) { return null; } + @NotModified JsonParser createParser(URL p0) { return null; } + @NotModified JsonParser createParser(InputStream p0) { return null; } + @NotModified JsonParser createParser(Reader p0) { return null; } + @NotModified JsonParser createParser(@NotModified byte[] p0) { return null; } + @NotModified JsonParser createParser(@NotModified byte[] p0, int p1, int p2) { return null; } + @NotModified JsonParser createParser(String p0) { return null; } + @NotModified JsonParser createParser(@NotModified char[] p0) { return null; } + @NotModified JsonParser createParser(@NotModified char[] p0, int p1, int p2) { return null; } + @NotModified JsonParser createParser(DataInput p0) { return null; } + @NotModified JsonParser createNonBlockingByteArrayParser() { return null; } + @NotModified SerializationConfig getSerializationConfig() { return null; } + @NotModified DeserializationConfig getDeserializationConfig() { return null; } + @NotModified DeserializationContext getDeserializationContext() { return null; } + ObjectMapper setSerializerFactory(@NotModified SerializerFactory p0) { return null; } + @NotModified SerializerFactory getSerializerFactory() { return null; } + ObjectMapper setSerializerProvider(@NotModified DefaultSerializerProvider p0) { return null; } + @NotModified SerializerProvider getSerializerProvider() { return null; } + @NotModified SerializerProvider getSerializerProviderInstance() { return null; } + ObjectMapper setMixIns(@NotModified Map, Class> p0) { return null; } + ObjectMapper setMixInResolver(@NotModified ClassIntrospector.MixInResolver p0) { return null; } + void setMixInAnnotations(@NotModified Map, Class> p0) { } + @NotModified VisibilityChecker getVisibilityChecker() { return null; } + ObjectMapper setVisibility(@NotModified VisibilityChecker p0) { return null; } + ObjectMapper setVisibility(@NotModified PropertyAccessor p0, @NotModified JsonAutoDetect.Visibility p1) { return null; } + @NotModified SubtypeResolver getSubtypeResolver() { return null; } + ObjectMapper setSubtypeResolver(@NotModified SubtypeResolver p0) { return null; } + ObjectMapper setAnnotationIntrospector(@NotModified AnnotationIntrospector p0) { return null; } + ObjectMapper setAnnotationIntrospectors(@NotModified AnnotationIntrospector p0, @NotModified AnnotationIntrospector p1) { return null; } + ObjectMapper setPropertyNamingStrategy(@NotModified PropertyNamingStrategy p0) { return null; } + @NotModified PropertyNamingStrategy getPropertyNamingStrategy() { return null; } + ObjectMapper setEnumNamingStrategy(@NotModified EnumNamingStrategy p0) { return null; } + @NotModified EnumNamingStrategy getEnumNamingStrategy() { return null; } + ObjectMapper setAccessorNaming(@NotModified AccessorNamingStrategy.Provider p0) { return null; } + ObjectMapper setDefaultPrettyPrinter(@NotModified PrettyPrinter p0) { return null; } + void setVisibilityChecker(@NotModified VisibilityChecker p0) { } + ObjectMapper setPolymorphicTypeValidator(@NotModified PolymorphicTypeValidator p0) { return null; } + @NotModified PolymorphicTypeValidator getPolymorphicTypeValidator() { return null; } + ObjectMapper setSerializationInclusion(@NotModified JsonInclude.Include p0) { return null; } + ObjectMapper setPropertyInclusion(@NotModified JsonInclude.Value p0) { return null; } + ObjectMapper setDefaultPropertyInclusion(@NotModified JsonInclude.Value p0) { return null; } + ObjectMapper setDefaultPropertyInclusion(@NotModified JsonInclude.Include p0) { return null; } + ObjectMapper setDefaultSetterInfo(@NotModified JsonSetter.Value p0) { return null; } + ObjectMapper setDefaultVisibility(@NotModified JsonAutoDetect.Value p0) { return null; } + void registerSubtypes(@NotModified Class... p0) { } + void registerSubtypes(@NotModified NamedType... p0) { } + void registerSubtypes(@NotModified Collection> p0) { } + ObjectMapper activateDefaultTyping(@NotModified PolymorphicTypeValidator p0) { return null; } + ObjectMapper activateDefaultTyping(@NotModified PolymorphicTypeValidator p0, @NotModified ObjectMapper.DefaultTyping p1) { return null; } + ObjectMapper activateDefaultTyping(@NotModified PolymorphicTypeValidator p0, @NotModified ObjectMapper.DefaultTyping p1, @NotModified JsonTypeInfo.As p2) { return null; } + ObjectMapper activateDefaultTypingAsProperty(@NotModified PolymorphicTypeValidator p0, @NotModified ObjectMapper.DefaultTyping p1, String p2) { return null; } + ObjectMapper setDefaultTyping(@NotModified TypeResolverBuilder p0) { return null; } + ObjectMapper enableDefaultTyping(@NotModified ObjectMapper.DefaultTyping p0) { return null; } + ObjectMapper enableDefaultTyping(@NotModified ObjectMapper.DefaultTyping p0, @NotModified JsonTypeInfo.As p1) { return null; } + ObjectMapper enableDefaultTypingAsProperty(@NotModified ObjectMapper.DefaultTyping p0, String p1) { return null; } + MutableCoercionConfig coercionConfigFor(@NotModified LogicalType p0) { return null; } + @NotModified TypeFactory getTypeFactory() { return null; } + ObjectMapper setTypeFactory(@NotModified TypeFactory p0) { return null; } + @NotModified JavaType constructType(Type p0) { return null; } + @NotModified JavaType constructType(@NotModified TypeReference p0) { return null; } + @NotModified JsonNodeFactory getNodeFactory() { return null; } + ObjectMapper setNodeFactory(@NotModified JsonNodeFactory p0) { return null; } + ObjectMapper setConstructorDetector(@NotModified ConstructorDetector p0) { return null; } + ObjectMapper setCacheProvider(@NotModified CacheProvider p0) { return null; } + ObjectMapper addHandler(@NotModified DeserializationProblemHandler p0) { return null; } + ObjectMapper setConfig(@NotModified DeserializationConfig p0) { return null; } + void setFilters(@NotModified FilterProvider p0) { } + ObjectMapper setFilterProvider(@NotModified FilterProvider p0) { return null; } + ObjectMapper setBase64Variant(@NotModified Base64Variant p0) { return null; } + ObjectMapper setConfig(@NotModified SerializationConfig p0) { return null; } + @NotModified JsonFactory tokenStreamFactory() { return null; } + @NotModified JsonFactory getFactory() { return null; } + ObjectMapper setDateFormat(@NotModified DateFormat p0) { return null; } + @NotModified DateFormat getDateFormat() { return null; } + Object setHandlerInstantiator(@NotModified HandlerInstantiator p0) { return null; } + ObjectMapper setInjectableValues(@NotModified InjectableValues p0) { return null; } + @NotModified InjectableValues getInjectableValues() { return null; } + ObjectMapper setTimeZone(@NotModified TimeZone p0) { return null; } + ObjectMapper setDefaultAttributes(@NotModified ContextAttributes p0) { return null; } + @NotModified boolean isEnabled(@NotModified MapperFeature p0) { return false; } + ObjectMapper configure(@NotModified MapperFeature p0, boolean p1) { return null; } + ObjectMapper enable(@NotModified MapperFeature... p0) { return null; } + ObjectMapper disable(@NotModified MapperFeature... p0) { return null; } + @NotModified boolean isEnabled(@NotModified SerializationFeature p0) { return false; } + ObjectMapper configure(@NotModified SerializationFeature p0, boolean p1) { return null; } + ObjectMapper enable(@NotModified SerializationFeature p0) { return null; } + ObjectMapper enable(@NotModified SerializationFeature p0, @NotModified SerializationFeature... p1) { return null; } + ObjectMapper disable(@NotModified SerializationFeature p0) { return null; } + ObjectMapper disable(@NotModified SerializationFeature p0, @NotModified SerializationFeature... p1) { return null; } + @NotModified boolean isEnabled(@NotModified DeserializationFeature p0) { return false; } + ObjectMapper configure(@NotModified DeserializationFeature p0, boolean p1) { return null; } + ObjectMapper enable(@NotModified DeserializationFeature p0) { return null; } + ObjectMapper enable(@NotModified DeserializationFeature p0, @NotModified DeserializationFeature... p1) { return null; } + ObjectMapper disable(@NotModified DeserializationFeature p0) { return null; } + ObjectMapper disable(@NotModified DeserializationFeature p0, @NotModified DeserializationFeature... p1) { return null; } + ObjectMapper configure(@NotModified DatatypeFeature p0, boolean p1) { return null; } + @NotModified boolean isEnabled(JsonParser.Feature p0) { return false; } + @NotModified boolean isEnabled(JsonGenerator.Feature p0) { return false; } + @NotModified boolean isEnabled(@NotModified JsonFactory.Feature p0) { return false; } + @NotModified boolean isEnabled(@NotModified StreamReadFeature p0) { return false; } + @NotModified boolean isEnabled(@NotModified StreamWriteFeature p0) { return false; } + @NotModified T readValue(JsonParser p0, Class p1) { return null; } + @NotModified T readValue(JsonParser p0, @NotModified TypeReference p1) { return null; } + @NotModified T readValue(JsonParser p0, @NotModified ResolvedType p1) { return null; } + @NotModified T readValue(JsonParser p0, @NotModified JavaType p1) { return null; } + @NotModified T readTree(JsonParser p0) { return null; } + @NotModified MappingIterator readValues(JsonParser p0, @NotModified ResolvedType p1) { return null; } + @NotModified MappingIterator readValues(JsonParser p0, @NotModified JavaType p1) { return null; } + @NotModified MappingIterator readValues(JsonParser p0, Class p1) { return null; } + @NotModified MappingIterator readValues(JsonParser p0, @NotModified TypeReference p1) { return null; } + @NotModified JsonNode readTree(InputStream p0) { return null; } + @NotModified JsonNode readTree(Reader p0) { return null; } + @NotModified JsonNode readTree(String p0) { return null; } + @NotModified JsonNode readTree(@NotModified byte[] p0) { return null; } + @NotModified JsonNode readTree(@NotModified byte[] p0, int p1, int p2) { return null; } + @NotModified JsonNode readTree(File p0) { return null; } + @NotModified JsonNode readTree(URL p0) { return null; } + @NotModified void writeValue(JsonGenerator p0, @NotModified Object p1) { } + @NotModified void writeTree(JsonGenerator p0, @NotModified TreeNode p1) { } + @NotModified void writeTree(JsonGenerator p0, @NotModified JsonNode p1) { } + @NotModified ObjectNode createObjectNode() { return null; } + @NotModified ArrayNode createArrayNode() { return null; } + @NotModified JsonNode missingNode() { return null; } + @NotModified JsonNode nullNode() { return null; } + @NotModified JsonParser treeAsTokens(@NotModified TreeNode p0) { return null; } + @NotModified T treeToValue(@NotModified TreeNode p0, Class p1) { return null; } + @NotModified T treeToValue(@NotModified TreeNode p0, @NotModified JavaType p1) { return null; } + @NotModified T treeToValue(@NotModified TreeNode p0, @NotModified TypeReference p1) { return null; } + @NotModified T valueToTree(@NotModified Object p0) { return null; } + @NotModified boolean canSerialize(Class p0) { return false; } + @NotModified boolean canSerialize(Class p0, @NotModified AtomicReference p1) { return false; } + @NotModified boolean canDeserialize(@NotModified JavaType p0) { return false; } + @NotModified boolean canDeserialize(@NotModified JavaType p0, @NotModified AtomicReference p1) { return false; } + @NotModified T readValue(File p0, Class p1) { return null; } + @NotModified T readValue(File p0, @NotModified TypeReference p1) { return null; } + @NotModified T readValue(File p0, @NotModified JavaType p1) { return null; } + @NotModified T readValue(URL p0, Class p1) { return null; } + @NotModified T readValue(URL p0, @NotModified TypeReference p1) { return null; } + @NotModified T readValue(URL p0, @NotModified JavaType p1) { return null; } + @NotModified T readValue(String p0, Class p1) { return null; } + @NotModified T readValue(String p0, @NotModified TypeReference p1) { return null; } + @NotModified T readValue(String p0, @NotModified JavaType p1) { return null; } + @NotModified T readValue(Reader p0, Class p1) { return null; } + @NotModified T readValue(Reader p0, @NotModified TypeReference p1) { return null; } + @NotModified T readValue(Reader p0, @NotModified JavaType p1) { return null; } + @NotModified T readValue(InputStream p0, Class p1) { return null; } + @NotModified T readValue(InputStream p0, @NotModified TypeReference p1) { return null; } + @NotModified T readValue(InputStream p0, @NotModified JavaType p1) { return null; } + @NotModified T readValue(@NotModified byte[] p0, Class p1) { return null; } + @NotModified T readValue(@NotModified byte[] p0, int p1, int p2, Class p3) { return null; } + @NotModified T readValue(@NotModified byte[] p0, @NotModified TypeReference p1) { return null; } + @NotModified T readValue(@NotModified byte[] p0, int p1, int p2, @NotModified TypeReference p3) { return null; } + @NotModified T readValue(@NotModified byte[] p0, @NotModified JavaType p1) { return null; } + @NotModified T readValue(@NotModified byte[] p0, int p1, int p2, @NotModified JavaType p3) { return null; } + @NotModified T readValue(DataInput p0, Class p1) { return null; } + @NotModified T readValue(DataInput p0, @NotModified JavaType p1) { return null; } + @NotModified void writeValue(File p0, @NotModified Object p1) { } + @NotModified void writeValue(OutputStream p0, @NotModified Object p1) { } + @NotModified void writeValue(DataOutput p0, @NotModified Object p1) { } + @NotModified void writeValue(Writer p0, @NotModified Object p1) { } + @NotModified String writeValueAsString(@NotModified Object p0) { return null; } + @NotModified byte[] writeValueAsBytes(@NotModified Object p0) { return null; } + @NotModified ObjectWriter writer() { return null; } + @NotModified ObjectWriter writer(@NotModified SerializationFeature p0) { return null; } + @NotModified ObjectWriter writer(@NotModified SerializationFeature p0, @NotModified SerializationFeature... p1) { return null; } + @NotModified ObjectWriter writer(@NotModified DateFormat p0) { return null; } + @NotModified ObjectWriter writerWithView(Class p0) { return null; } + @NotModified ObjectWriter writerFor(Class p0) { return null; } + @NotModified ObjectWriter writerFor(@NotModified TypeReference p0) { return null; } + @NotModified ObjectWriter writerFor(@NotModified JavaType p0) { return null; } + @NotModified ObjectWriter writer(@NotModified PrettyPrinter p0) { return null; } + @NotModified ObjectWriter writerWithDefaultPrettyPrinter() { return null; } + @NotModified ObjectWriter writer(@NotModified FilterProvider p0) { return null; } + @NotModified ObjectWriter writer(@NotModified FormatSchema p0) { return null; } + @NotModified ObjectWriter writer(@NotModified Base64Variant p0) { return null; } + @NotModified ObjectWriter writer(@NotModified CharacterEscapes p0) { return null; } + @NotModified ObjectWriter writer(@NotModified ContextAttributes p0) { return null; } + @NotModified ObjectWriter writerWithType(Class p0) { return null; } + @NotModified ObjectWriter writerWithType(@NotModified TypeReference p0) { return null; } + @NotModified ObjectWriter writerWithType(@NotModified JavaType p0) { return null; } + @NotModified ObjectReader reader() { return null; } + @NotModified ObjectReader reader(@NotModified DeserializationFeature p0) { return null; } + @NotModified ObjectReader reader(@NotModified DeserializationFeature p0, @NotModified DeserializationFeature... p1) { return null; } + @NotModified ObjectReader readerForUpdating(Object p0) { return null; } + @NotModified ObjectReader readerFor(@NotModified JavaType p0) { return null; } + @NotModified ObjectReader readerFor(Class p0) { return null; } + @NotModified ObjectReader readerFor(@NotModified TypeReference p0) { return null; } + @NotModified ObjectReader readerForArrayOf(Class p0) { return null; } + @NotModified ObjectReader readerForListOf(Class p0) { return null; } + @NotModified ObjectReader readerForMapOf(Class p0) { return null; } + @NotModified ObjectReader reader(@NotModified JsonNodeFactory p0) { return null; } + @NotModified ObjectReader reader(@NotModified FormatSchema p0) { return null; } + @NotModified ObjectReader reader(@NotModified InjectableValues p0) { return null; } + @NotModified ObjectReader readerWithView(Class p0) { return null; } + @NotModified ObjectReader reader(@NotModified Base64Variant p0) { return null; } + @NotModified ObjectReader reader(@NotModified ContextAttributes p0) { return null; } + @NotModified ObjectReader reader(@NotModified JavaType p0) { return null; } + @NotModified ObjectReader reader(Class p0) { return null; } + @NotModified ObjectReader reader(@NotModified TypeReference p0) { return null; } + @NotModified T convertValue(@NotModified Object p0, Class p1) { return null; } + @NotModified T convertValue(@NotModified Object p0, @NotModified TypeReference p1) { return null; } + @NotModified T convertValue(@NotModified Object p0, @NotModified JavaType p1) { return null; } + @NotModified T updateValue(T p0, Object p1) { return null; } + @NotModified JsonSchema generateJsonSchema(Class p0) { return null; } + @NotModified void acceptJsonFormatVisitor(Class p0, JsonFormatVisitorWrapper p1) { } + @NotModified void acceptJsonFormatVisitor(@NotModified JavaType p0, JsonFormatVisitorWrapper p1) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabindCfg.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabindCfg.java index 77953e68c3..97b01ff343 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabindCfg.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabindCfg.java @@ -17,6 +17,52 @@ package io.codelaser.maddi.aapi.archive.libs.jackson; +import java.text.DateFormat; +import java.util.Collection; +import java.util.TimeZone; +import java.util.function.Consumer; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.core.Base64Variant; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.PrettyPrinter; +import com.fasterxml.jackson.core.StreamReadFeature; +import com.fasterxml.jackson.core.StreamWriteFeature; +import com.fasterxml.jackson.databind.AnnotationIntrospector; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.EnumNamingStrategy; +import com.fasterxml.jackson.databind.InjectableValues; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.Module; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.cfg.CacheProvider; +import com.fasterxml.jackson.databind.cfg.ConstructorDetector; +import com.fasterxml.jackson.databind.cfg.ContextAttributes; +import com.fasterxml.jackson.databind.cfg.DatatypeFeature; +import com.fasterxml.jackson.databind.cfg.HandlerInstantiator; +import com.fasterxml.jackson.databind.cfg.MapperBuilder; +import com.fasterxml.jackson.databind.cfg.MutableCoercionConfig; +import com.fasterxml.jackson.databind.cfg.MutableConfigOverride; +import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler; +import com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy; +import com.fasterxml.jackson.databind.introspect.VisibilityChecker; +import com.fasterxml.jackson.databind.jsontype.NamedType; +import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator; +import com.fasterxml.jackson.databind.jsontype.SubtypeResolver; +import com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.ser.FilterProvider; +import com.fasterxml.jackson.databind.ser.SerializerFactory; +import com.fasterxml.jackson.databind.type.LogicalType; +import com.fasterxml.jackson.databind.type.TypeFactory; + import io.codelaser.maddi.annotation.NotModified; /** @@ -27,69 +73,69 @@ public class ComFasterxmlJacksonDatabindCfg { //public abstract class com.fasterxml.jackson.databind.cfg.MapperBuilder> // configuration arguments are read or stored, never changed - class MapperBuilder$> { - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.databind.MapperFeature p0) { return false; } - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0) { return false; } - @NotModified boolean isEnabled(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0) { return false; } - @NotModified boolean isEnabled(com.fasterxml.jackson.core.JsonParser.Feature p0) { return false; } - @NotModified boolean isEnabled(com.fasterxml.jackson.core.JsonGenerator.Feature p0) { return false; } - B enable(@NotModified com.fasterxml.jackson.databind.MapperFeature... p0) { return null; } - B disable(@NotModified com.fasterxml.jackson.databind.MapperFeature... p0) { return null; } - B configure(@NotModified com.fasterxml.jackson.databind.MapperFeature p0, boolean p1) { return null; } - B enable(@NotModified com.fasterxml.jackson.databind.SerializationFeature... p0) { return null; } - B disable(@NotModified com.fasterxml.jackson.databind.SerializationFeature... p0) { return null; } - B configure(@NotModified com.fasterxml.jackson.databind.SerializationFeature p0, boolean p1) { return null; } - B enable(@NotModified com.fasterxml.jackson.databind.DeserializationFeature... p0) { return null; } - B disable(@NotModified com.fasterxml.jackson.databind.DeserializationFeature... p0) { return null; } - B configure(@NotModified com.fasterxml.jackson.databind.DeserializationFeature p0, boolean p1) { return null; } - B enable(@NotModified com.fasterxml.jackson.databind.cfg.DatatypeFeature... p0) { return null; } - B disable(@NotModified com.fasterxml.jackson.databind.cfg.DatatypeFeature... p0) { return null; } - B configure(@NotModified com.fasterxml.jackson.databind.cfg.DatatypeFeature p0, boolean p1) { return null; } - B enable(@NotModified com.fasterxml.jackson.core.StreamReadFeature... p0) { return null; } - B disable(@NotModified com.fasterxml.jackson.core.StreamReadFeature... p0) { return null; } - B configure(@NotModified com.fasterxml.jackson.core.StreamReadFeature p0, boolean p1) { return null; } - B enable(@NotModified com.fasterxml.jackson.core.StreamWriteFeature... p0) { return null; } - B disable(@NotModified com.fasterxml.jackson.core.StreamWriteFeature... p0) { return null; } - B configure(@NotModified com.fasterxml.jackson.core.StreamWriteFeature p0, boolean p1) { return null; } - B withConfigOverride(java.lang.Class p0, @NotModified java.util.function.Consumer p1) { return null; } - B withCoercionConfig(@NotModified com.fasterxml.jackson.databind.type.LogicalType p0, @NotModified java.util.function.Consumer p1) { return null; } - B withCoercionConfig(java.lang.Class p0, @NotModified java.util.function.Consumer p1) { return null; } - B withCoercionConfigDefaults(@NotModified java.util.function.Consumer p0) { return null; } - B addModule(@NotModified com.fasterxml.jackson.databind.Module p0) { return null; } - B addModules(@NotModified com.fasterxml.jackson.databind.Module... p0) { return null; } - B annotationIntrospector(@NotModified com.fasterxml.jackson.databind.AnnotationIntrospector p0) { return null; } - B defaultAttributes(@NotModified com.fasterxml.jackson.databind.cfg.ContextAttributes p0) { return null; } - B typeFactory(@NotModified com.fasterxml.jackson.databind.type.TypeFactory p0) { return null; } - B subtypeResolver(@NotModified com.fasterxml.jackson.databind.jsontype.SubtypeResolver p0) { return null; } - B visibility(@NotModified com.fasterxml.jackson.databind.introspect.VisibilityChecker p0) { return null; } - B visibility(@NotModified com.fasterxml.jackson.annotation.PropertyAccessor p0, @NotModified com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility p1) { return null; } - B handlerInstantiator(@NotModified com.fasterxml.jackson.databind.cfg.HandlerInstantiator p0) { return null; } - B propertyNamingStrategy(@NotModified com.fasterxml.jackson.databind.PropertyNamingStrategy p0) { return null; } - B enumNamingStrategy(@NotModified com.fasterxml.jackson.databind.EnumNamingStrategy p0) { return null; } - B accessorNaming(@NotModified com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider p0) { return null; } - B serializerFactory(@NotModified com.fasterxml.jackson.databind.ser.SerializerFactory p0) { return null; } - B filterProvider(@NotModified com.fasterxml.jackson.databind.ser.FilterProvider p0) { return null; } - B defaultPrettyPrinter(@NotModified com.fasterxml.jackson.core.PrettyPrinter p0) { return null; } - B injectableValues(@NotModified com.fasterxml.jackson.databind.InjectableValues p0) { return null; } - B nodeFactory(@NotModified com.fasterxml.jackson.databind.node.JsonNodeFactory p0) { return null; } - B constructorDetector(@NotModified com.fasterxml.jackson.databind.cfg.ConstructorDetector p0) { return null; } - B cacheProvider(@NotModified com.fasterxml.jackson.databind.cfg.CacheProvider p0) { return null; } - B addHandler(@NotModified com.fasterxml.jackson.databind.deser.DeserializationProblemHandler p0) { return null; } - B defaultSetterInfo(@NotModified com.fasterxml.jackson.annotation.JsonSetter.Value p0) { return null; } - B defaultDateFormat(@NotModified java.text.DateFormat p0) { return null; } - B defaultTimeZone(@NotModified java.util.TimeZone p0) { return null; } - B defaultBase64Variant(@NotModified com.fasterxml.jackson.core.Base64Variant p0) { return null; } - B serializationInclusion(@NotModified com.fasterxml.jackson.annotation.JsonInclude.Include p0) { return null; } - B defaultPropertyInclusion(@NotModified com.fasterxml.jackson.annotation.JsonInclude.Value p0) { return null; } - B registerSubtypes(@NotModified java.lang.Class... p0) { return null; } - B registerSubtypes(@NotModified com.fasterxml.jackson.databind.jsontype.NamedType... p0) { return null; } - B registerSubtypes(@NotModified java.util.Collection> p0) { return null; } - B polymorphicTypeValidator(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0) { return null; } - B activateDefaultTyping(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0) { return null; } - B activateDefaultTyping(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0, @NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p1) { return null; } - B activateDefaultTyping(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0, @NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p1, @NotModified com.fasterxml.jackson.annotation.JsonTypeInfo.As p2) { return null; } - B activateDefaultTypingAsProperty(@NotModified com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator p0, @NotModified com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping p1, java.lang.String p2) { return null; } - B setDefaultTyping(@NotModified com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder p0) { return null; } + class MapperBuilder$> { + @NotModified boolean isEnabled(@NotModified MapperFeature p0) { return false; } + @NotModified boolean isEnabled(@NotModified DeserializationFeature p0) { return false; } + @NotModified boolean isEnabled(@NotModified SerializationFeature p0) { return false; } + @NotModified boolean isEnabled(JsonParser.Feature p0) { return false; } + @NotModified boolean isEnabled(JsonGenerator.Feature p0) { return false; } + B enable(@NotModified MapperFeature... p0) { return null; } + B disable(@NotModified MapperFeature... p0) { return null; } + B configure(@NotModified MapperFeature p0, boolean p1) { return null; } + B enable(@NotModified SerializationFeature... p0) { return null; } + B disable(@NotModified SerializationFeature... p0) { return null; } + B configure(@NotModified SerializationFeature p0, boolean p1) { return null; } + B enable(@NotModified DeserializationFeature... p0) { return null; } + B disable(@NotModified DeserializationFeature... p0) { return null; } + B configure(@NotModified DeserializationFeature p0, boolean p1) { return null; } + B enable(@NotModified DatatypeFeature... p0) { return null; } + B disable(@NotModified DatatypeFeature... p0) { return null; } + B configure(@NotModified DatatypeFeature p0, boolean p1) { return null; } + B enable(@NotModified StreamReadFeature... p0) { return null; } + B disable(@NotModified StreamReadFeature... p0) { return null; } + B configure(@NotModified StreamReadFeature p0, boolean p1) { return null; } + B enable(@NotModified StreamWriteFeature... p0) { return null; } + B disable(@NotModified StreamWriteFeature... p0) { return null; } + B configure(@NotModified StreamWriteFeature p0, boolean p1) { return null; } + B withConfigOverride(Class p0, @NotModified Consumer p1) { return null; } + B withCoercionConfig(@NotModified LogicalType p0, @NotModified Consumer p1) { return null; } + B withCoercionConfig(Class p0, @NotModified Consumer p1) { return null; } + B withCoercionConfigDefaults(@NotModified Consumer p0) { return null; } + B addModule(@NotModified Module p0) { return null; } + B addModules(@NotModified Module... p0) { return null; } + B annotationIntrospector(@NotModified AnnotationIntrospector p0) { return null; } + B defaultAttributes(@NotModified ContextAttributes p0) { return null; } + B typeFactory(@NotModified TypeFactory p0) { return null; } + B subtypeResolver(@NotModified SubtypeResolver p0) { return null; } + B visibility(@NotModified VisibilityChecker p0) { return null; } + B visibility(@NotModified PropertyAccessor p0, @NotModified JsonAutoDetect.Visibility p1) { return null; } + B handlerInstantiator(@NotModified HandlerInstantiator p0) { return null; } + B propertyNamingStrategy(@NotModified PropertyNamingStrategy p0) { return null; } + B enumNamingStrategy(@NotModified EnumNamingStrategy p0) { return null; } + B accessorNaming(@NotModified AccessorNamingStrategy.Provider p0) { return null; } + B serializerFactory(@NotModified SerializerFactory p0) { return null; } + B filterProvider(@NotModified FilterProvider p0) { return null; } + B defaultPrettyPrinter(@NotModified PrettyPrinter p0) { return null; } + B injectableValues(@NotModified InjectableValues p0) { return null; } + B nodeFactory(@NotModified JsonNodeFactory p0) { return null; } + B constructorDetector(@NotModified ConstructorDetector p0) { return null; } + B cacheProvider(@NotModified CacheProvider p0) { return null; } + B addHandler(@NotModified DeserializationProblemHandler p0) { return null; } + B defaultSetterInfo(@NotModified JsonSetter.Value p0) { return null; } + B defaultDateFormat(@NotModified DateFormat p0) { return null; } + B defaultTimeZone(@NotModified TimeZone p0) { return null; } + B defaultBase64Variant(@NotModified Base64Variant p0) { return null; } + B serializationInclusion(@NotModified JsonInclude.Include p0) { return null; } + B defaultPropertyInclusion(@NotModified JsonInclude.Value p0) { return null; } + B registerSubtypes(@NotModified Class... p0) { return null; } + B registerSubtypes(@NotModified NamedType... p0) { return null; } + B registerSubtypes(@NotModified Collection> p0) { return null; } + B polymorphicTypeValidator(@NotModified PolymorphicTypeValidator p0) { return null; } + B activateDefaultTyping(@NotModified PolymorphicTypeValidator p0) { return null; } + B activateDefaultTyping(@NotModified PolymorphicTypeValidator p0, @NotModified ObjectMapper.DefaultTyping p1) { return null; } + B activateDefaultTyping(@NotModified PolymorphicTypeValidator p0, @NotModified ObjectMapper.DefaultTyping p1, @NotModified JsonTypeInfo.As p2) { return null; } + B activateDefaultTypingAsProperty(@NotModified PolymorphicTypeValidator p0, @NotModified ObjectMapper.DefaultTyping p1, String p2) { return null; } + B setDefaultTyping(@NotModified TypeResolverBuilder p0) { return null; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabindModule.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabindModule.java index 1594b3be4e..78eeb9e954 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabindModule.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/jackson/ComFasterxmlJacksonDatabindModule.java @@ -17,6 +17,23 @@ package io.codelaser.maddi.aapi.archive.libs.jackson; +import java.util.Collection; + +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.KeyDeserializer; +import com.fasterxml.jackson.databind.Module; +import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier; +import com.fasterxml.jackson.databind.deser.ValueInstantiator; +import com.fasterxml.jackson.databind.jsontype.NamedType; +import com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver; +import com.fasterxml.jackson.databind.module.SimpleDeserializers; +import com.fasterxml.jackson.databind.module.SimpleKeyDeserializers; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.module.SimpleSerializers; +import com.fasterxml.jackson.databind.module.SimpleValueInstantiators; +import com.fasterxml.jackson.databind.ser.BeanSerializerModifier; + import io.codelaser.maddi.annotation.NotModified; /** @@ -28,26 +45,26 @@ public class ComFasterxmlJacksonDatabindModule { //public class com.fasterxml.jackson.databind.module.SimpleModule extends com.fasterxml.jackson.databind.Module implements java.io.Serializable // the (de)serializers and other handlers are stored, never changed class SimpleModule$ { - @NotModified java.lang.Object getTypeId() { return null; } - void setSerializers(@NotModified com.fasterxml.jackson.databind.module.SimpleSerializers p0) { } - void setDeserializers(@NotModified com.fasterxml.jackson.databind.module.SimpleDeserializers p0) { } - void setKeySerializers(@NotModified com.fasterxml.jackson.databind.module.SimpleSerializers p0) { } - void setKeyDeserializers(@NotModified com.fasterxml.jackson.databind.module.SimpleKeyDeserializers p0) { } - void setAbstractTypes(@NotModified com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver p0) { } - void setValueInstantiators(@NotModified com.fasterxml.jackson.databind.module.SimpleValueInstantiators p0) { } - com.fasterxml.jackson.databind.module.SimpleModule setDeserializerModifier(@NotModified com.fasterxml.jackson.databind.deser.BeanDeserializerModifier p0) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule setSerializerModifier(@NotModified com.fasterxml.jackson.databind.ser.BeanSerializerModifier p0) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule addSerializer(@NotModified com.fasterxml.jackson.databind.JsonSerializer p0) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule addSerializer(java.lang.Class p0, @NotModified com.fasterxml.jackson.databind.JsonSerializer p1) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule addKeySerializer(java.lang.Class p0, @NotModified com.fasterxml.jackson.databind.JsonSerializer p1) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule addDeserializer(java.lang.Class p0, @NotModified com.fasterxml.jackson.databind.JsonDeserializer p1) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule addKeyDeserializer(java.lang.Class p0, @NotModified com.fasterxml.jackson.databind.KeyDeserializer p1) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule registerSubtypes(@NotModified java.lang.Class... p0) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule registerSubtypes(@NotModified com.fasterxml.jackson.databind.jsontype.NamedType... p0) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule registerSubtypes(@NotModified java.util.Collection> p0) { return null; } - com.fasterxml.jackson.databind.module.SimpleModule addValueInstantiator(java.lang.Class p0, @NotModified com.fasterxml.jackson.databind.deser.ValueInstantiator p1) { return null; } - @NotModified java.lang.String getModuleName() { return null; } - void setupModule(@NotModified com.fasterxml.jackson.databind.Module.SetupContext p0) { } + @NotModified Object getTypeId() { return null; } + void setSerializers(@NotModified SimpleSerializers p0) { } + void setDeserializers(@NotModified SimpleDeserializers p0) { } + void setKeySerializers(@NotModified SimpleSerializers p0) { } + void setKeyDeserializers(@NotModified SimpleKeyDeserializers p0) { } + void setAbstractTypes(@NotModified SimpleAbstractTypeResolver p0) { } + void setValueInstantiators(@NotModified SimpleValueInstantiators p0) { } + SimpleModule setDeserializerModifier(@NotModified BeanDeserializerModifier p0) { return null; } + SimpleModule setSerializerModifier(@NotModified BeanSerializerModifier p0) { return null; } + SimpleModule addSerializer(@NotModified JsonSerializer p0) { return null; } + SimpleModule addSerializer(Class p0, @NotModified JsonSerializer p1) { return null; } + SimpleModule addKeySerializer(Class p0, @NotModified JsonSerializer p1) { return null; } + SimpleModule addDeserializer(Class p0, @NotModified JsonDeserializer p1) { return null; } + SimpleModule addKeyDeserializer(Class p0, @NotModified KeyDeserializer p1) { return null; } + SimpleModule registerSubtypes(@NotModified Class... p0) { return null; } + SimpleModule registerSubtypes(@NotModified NamedType... p0) { return null; } + SimpleModule registerSubtypes(@NotModified Collection> p0) { return null; } + SimpleModule addValueInstantiator(Class p0, @NotModified ValueInstantiator p1) { return null; } + @NotModified String getModuleName() { return null; } + void setupModule(@NotModified Module.SetupContext p0) { } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/junitparams/OrgJunitJupiterParamsProvider.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/junitparams/OrgJunitJupiterParamsProvider.java index 7999beee50..597d9952a1 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/junitparams/OrgJunitJupiterParamsProvider.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/junitparams/OrgJunitJupiterParamsProvider.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.aapi.archive.libs.junitparams; +import org.junit.jupiter.params.provider.Arguments; + import io.codelaser.maddi.annotation.NotModified; /** @@ -29,8 +31,8 @@ public class OrgJunitJupiterParamsProvider { //public class org.junit.jupiter.params.provider.Arguments class Arguments$ { - static org.junit.jupiter.params.provider.Arguments of(@NotModified java.lang.Object... arg0) { return null; } - static org.junit.jupiter.params.provider.Arguments arguments(@NotModified java.lang.Object... arg0) { return null; } - static org.junit.jupiter.params.provider.Arguments.ArgumentSet argumentSet(java.lang.String arg0, @NotModified java.lang.Object... arg1) { return null; } + static Arguments of(@NotModified Object... arg0) { return null; } + static Arguments arguments(@NotModified Object... arg0) { return null; } + static Arguments.ArgumentSet argumentSet(String arg0, @NotModified Object... arg1) { return null; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinCollections.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinCollections.java index c29d2c53c9..e1d37adddb 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinCollections.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinCollections.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.aapi.archive.libs.kotlin; +import java.util.Collection; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; + import io.codelaser.maddi.annotation.Identity; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; @@ -29,14 +37,6 @@ import kotlin.ranges.IntRange; import kotlin.sequences.Sequence; -import java.util.Collection; -import java.util.Comparator; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedSet; - /** * The annotated API for {@code kotlin.collections}: the extension functions every Kotlin codebase calls on a * collection. Each is a static whose first parameter is the receiver — what kotlinc emits, and what maddi diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinIo.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinIo.java index eb0287d696..03a58c30f6 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinIo.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinIo.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.aapi.archive.libs.kotlin; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; - import java.io.File; import java.nio.charset.Charset; import java.util.List; +import io.codelaser.maddi.annotation.NotModified; +import io.codelaser.maddi.annotation.NotNull; +import kotlin.io.FileTreeWalk; +import kotlin.io.FileWalkDirection; +import kotlin.jvm.functions.Function1; +import kotlin.sequences.Sequence; + /** * The annotated API for {@code kotlin.io}: reading a file through a {@link File} leaves the File object as it * was. The stream extensions (readBytes, copyTo, reader) DO consume their stream and stay uncontracted. @@ -66,14 +70,14 @@ static void writeText(@NotModified File receiver, @NotModified String text, @Not } static T useLines(@NotModified File receiver, @NotModified Charset charset, - kotlin.jvm.functions.Function1, ? extends T> block) { + Function1, ? extends T> block) { return null; } } class FilesKt__FileTreeWalkKt$ { @NotNull - static kotlin.io.FileTreeWalk walk(@NotModified File receiver, @NotModified kotlin.io.FileWalkDirection direction) { + static FileTreeWalk walk(@NotModified File receiver, @NotModified FileWalkDirection direction) { return null; } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinIoPath.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinIoPath.java index c63bf9d52f..e7cc21a0ff 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinIoPath.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinIoPath.java @@ -16,14 +16,16 @@ */ package io.codelaser.maddi.aapi.archive.libs.kotlin; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; - import java.nio.charset.Charset; import java.nio.file.OpenOption; import java.nio.file.Path; import java.nio.file.attribute.FileAttribute; +import io.codelaser.maddi.annotation.NotModified; +import io.codelaser.maddi.annotation.NotNull; +import kotlin.io.path.PathWalkOption; +import kotlin.sequences.Sequence; + /** * The annotated API for {@code kotlin.io.path}: like {@link KotlinIo}, a Path only names a file, and writing or * walking the file leaves the Path as it was. Each vararg array of options is read, never written. @@ -46,8 +48,8 @@ static Path createParentDirectories(@NotModified Path receiver, @NotModified Fil } @NotNull - static kotlin.sequences.Sequence walk(@NotModified Path receiver, - @NotModified kotlin.io.path.PathWalkOption... options) { + static Sequence walk(@NotModified Path receiver, + @NotModified PathWalkOption... options) { return null; } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinJvm.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinJvm.java index 762141b96d..e3303570ae 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinJvm.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinJvm.java @@ -17,6 +17,7 @@ package io.codelaser.maddi.aapi.archive.libs.kotlin; import io.codelaser.maddi.annotation.NotModified; +import kotlin.reflect.KClass; /** * The annotated API for {@code kotlin.jvm}: the bridge between a {@code KClass} and its {@code java.lang.Class}. @@ -35,11 +36,11 @@ public class KotlinJvm { public val Class.kotlin: KClass @get:JvmName("getKotlinClass") */ class JvmClassMappingKt$ { - static Class getJavaClass(@NotModified kotlin.reflect.KClass receiver) { + static Class getJavaClass(@NotModified KClass receiver) { return null; } - static kotlin.reflect.KClass getKotlinClass(@NotModified Class receiver) { + static KClass getKotlinClass(@NotModified Class receiver) { return null; } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinReflect.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinReflect.java index b2953558f3..8b51baad6c 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinReflect.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinReflect.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.aapi.archive.libs.kotlin; -import io.codelaser.maddi.annotation.NotModified; - import java.lang.reflect.Type; +import io.codelaser.maddi.annotation.NotModified; +import kotlin.reflect.KType; + /** * The annotated API for {@code kotlin.reflect}: the read-only accessors the library-call census found read as * modifying. A KClass, KCallable or KType is a description of code, and asking it a question changes nothing. @@ -50,7 +51,7 @@ interface KCallable$ { /* public val KType.javaType: Type */ class TypesJVMKt$ { - static Type getJavaType(@NotModified kotlin.reflect.KType receiver) { + static Type getJavaType(@NotModified KType receiver) { return null; } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinSequences.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinSequences.java index 6c974ca417..c10af256b7 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinSequences.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinSequences.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.aapi.archive.libs.kotlin; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; @@ -29,11 +34,6 @@ import kotlin.sequences.Sequence; import kotlin.sequences.SequenceScope; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * The annotated API for {@code kotlin.sequences}: the extensions on {@link Sequence}, the census's largest * uncontracted part class after the scope functions. A Sequence is an interface the defaults treat as mutable, so diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinText.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinText.java index b34e92ec7b..111778e817 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinText.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/kotlin/KotlinText.java @@ -17,19 +17,19 @@ package io.codelaser.maddi.aapi.archive.libs.kotlin; +import java.util.List; + import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; -import kotlin.sequences.Sequence; import kotlin.ranges.IntRange; +import kotlin.sequences.Sequence; import kotlin.text.MatchGroup; import kotlin.text.MatchGroupCollection; import kotlin.text.MatchResult; import kotlin.text.RegexOption; -import java.util.List; - /** * The annotated API for {@code kotlin.text}. The type that matters here is {@link kotlin.text.Regex}, the exact * analogue of {@code java.util.regex.Pattern} in {@code jdk/JavaUtilRegex}: it wraps a compiled {@code Pattern} diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/log/OrgSlf4j.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/log/OrgSlf4j.java index 8c2eb0d38d..d4bbeb0f9f 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/log/OrgSlf4j.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/log/OrgSlf4j.java @@ -16,16 +16,17 @@ */ package io.codelaser.maddi.aapi.archive.libs.log; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; import org.slf4j.ILoggerFactory; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.event.Level; import org.slf4j.spi.LoggingEventBuilder; +import io.codelaser.maddi.annotation.Container; +import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.NotModified; +import io.codelaser.maddi.annotation.rare.IgnoreModifications; + /* A Logger is a @Container: a log call reads its arguments. It is not immutable: a log call writes into the logging machinery's buffers, which is a modification, just not one we care about. So the log methods (trace ... error) carry diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/mockito/OrgMockito.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/mockito/OrgMockito.java index 443c9bf71e..c53327f984 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/mockito/OrgMockito.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/mockito/OrgMockito.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.aapi.archive.libs.mockito; +import org.mockito.BDDMockito; +import org.mockito.InOrder; +import org.mockito.stubbing.Answer; +import org.mockito.stubbing.Stubber; +import org.mockito.verification.VerificationMode; + import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; @@ -55,19 +61,19 @@ class Mockito$ { @Independent static T verify(@Independent @NotModified T mock) { return null; } @Independent - static T verify(@Independent @NotModified T mock, @NotModified org.mockito.verification.VerificationMode mode) { return null; } - static void verifyNoMoreInteractions(@NotModified java.lang.Object... mocks) { } - static void verifyNoInteractions(@NotModified java.lang.Object... mocks) { } + static T verify(@Independent @NotModified T mock, @NotModified VerificationMode mode) { return null; } + static void verifyNoMoreInteractions(@NotModified Object... mocks) { } + static void verifyNoInteractions(@NotModified Object... mocks) { } @SafeVarargs static void reset(@Modified T... mocks) { } - static T mock(java.lang.Class classToMock, @IgnoreModifications org.mockito.stubbing.Answer defaultAnswer) { return null; } + static T mock(Class classToMock, @IgnoreModifications Answer defaultAnswer) { return null; } @SafeVarargs - static T mock(@IgnoreModifications org.mockito.stubbing.Answer defaultAnswer, T... reified) { return null; } - static org.mockito.stubbing.Stubber doThrow(@NotModified java.lang.Throwable... toBeThrown) { return null; } - static org.mockito.stubbing.Stubber doAnswer(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - static org.mockito.stubbing.Stubber doReturn(java.lang.Object toBeReturned, @NotModified java.lang.Object... toBeReturnedNext) { return null; } - static org.mockito.InOrder inOrder(@NotModified java.lang.Object... mocks) { return null; } + static T mock(@IgnoreModifications Answer defaultAnswer, T... reified) { return null; } + static Stubber doThrow(@NotModified Throwable... toBeThrown) { return null; } + static Stubber doAnswer(@IgnoreModifications Answer answer) { return null; } + static Stubber doReturn(Object toBeReturned, @NotModified Object... toBeReturnedNext) { return null; } + static InOrder inOrder(@NotModified Object... mocks) { return null; } } //public interface org.mockito.InOrder @@ -75,33 +81,33 @@ class InOrder$ { @Independent T verify(@Independent @NotModified T mock) { return null; } @Independent - T verify(@Independent @NotModified T mock, @NotModified org.mockito.verification.VerificationMode mode) { return null; } + T verify(@Independent @NotModified T mock, @NotModified VerificationMode mode) { return null; } } //public class org.mockito.BDDMockito extends Mockito class BDDMockito$ { @Independent - static org.mockito.BDDMockito.Then then(@Independent @NotModified T mock) { return null; } + static BDDMockito.Then then(@Independent @NotModified T mock) { return null; } - static org.mockito.BDDMockito.BDDStubber willThrow(@NotModified java.lang.Throwable... toBeThrown) { return null; } - static org.mockito.BDDMockito.BDDStubber willAnswer(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - static org.mockito.BDDMockito.BDDStubber will(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - static org.mockito.BDDMockito.BDDStubber willReturn(java.lang.Object toBeReturned, @NotModified java.lang.Object... toBeReturnedNext) { return null; } + static BDDMockito.BDDStubber willThrow(@NotModified Throwable... toBeThrown) { return null; } + static BDDMockito.BDDStubber willAnswer(@IgnoreModifications Answer answer) { return null; } + static BDDMockito.BDDStubber will(@IgnoreModifications Answer answer) { return null; } + static BDDMockito.BDDStubber willReturn(Object toBeReturned, @NotModified Object... toBeReturnedNext) { return null; } //public static interface BDDMyOngoingStubbing class BDDMyOngoingStubbing { - org.mockito.BDDMockito.BDDMyOngoingStubbing willAnswer(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - org.mockito.BDDMockito.BDDMyOngoingStubbing will(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - org.mockito.BDDMockito.BDDMyOngoingStubbing willReturn(T value, @NotModified T... values) { return null; } - org.mockito.BDDMockito.BDDMyOngoingStubbing willThrow(@NotModified java.lang.Throwable... throwables) { return null; } + BDDMockito.BDDMyOngoingStubbing willAnswer(@IgnoreModifications Answer answer) { return null; } + BDDMockito.BDDMyOngoingStubbing will(@IgnoreModifications Answer answer) { return null; } + BDDMockito.BDDMyOngoingStubbing willReturn(T value, @NotModified T... values) { return null; } + BDDMockito.BDDMyOngoingStubbing willThrow(@NotModified Throwable... throwables) { return null; } } //public static interface BDDStubber class BDDStubber { - org.mockito.BDDMockito.BDDStubber willAnswer(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - org.mockito.BDDMockito.BDDStubber will(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - org.mockito.BDDMockito.BDDStubber willReturn(java.lang.Object toBeReturned, @NotModified java.lang.Object... toBeReturnedNext) { return null; } - org.mockito.BDDMockito.BDDStubber willThrow(@NotModified java.lang.Throwable... toBeThrown) { return null; } + BDDMockito.BDDStubber willAnswer(@IgnoreModifications Answer answer) { return null; } + BDDMockito.BDDStubber will(@IgnoreModifications Answer answer) { return null; } + BDDMockito.BDDStubber willReturn(Object toBeReturned, @NotModified Object... toBeReturnedNext) { return null; } + BDDMockito.BDDStubber willThrow(@NotModified Throwable... toBeThrown) { return null; } } //public static interface Then @@ -109,11 +115,11 @@ class Then { @Independent T should() { return null; } @Independent - T should(@NotModified org.mockito.verification.VerificationMode mode) { return null; } + T should(@NotModified VerificationMode mode) { return null; } @Independent - T should(@NotModified org.mockito.InOrder inOrder) { return null; } + T should(@NotModified InOrder inOrder) { return null; } @Independent - T should(@NotModified org.mockito.InOrder inOrder, @NotModified org.mockito.verification.VerificationMode mode) { return null; } + T should(@NotModified InOrder inOrder, @NotModified VerificationMode mode) { return null; } } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/mockito/OrgMockitoStubbing.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/mockito/OrgMockitoStubbing.java index f7410ea6bf..372e4d01cc 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/mockito/OrgMockitoStubbing.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/mockito/OrgMockitoStubbing.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.aapi.archive.libs.mockito; +import org.mockito.stubbing.Answer; +import org.mockito.stubbing.OngoingStubbing; +import org.mockito.stubbing.Stubber; + import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.rare.IgnoreModifications; @@ -29,16 +33,16 @@ public class OrgMockitoStubbing { //public interface OngoingStubbing class OngoingStubbing$ { - org.mockito.stubbing.OngoingStubbing thenReturn(T value, @NotModified T... values) { return null; } - org.mockito.stubbing.OngoingStubbing thenThrow(@NotModified java.lang.Throwable... throwables) { return null; } - org.mockito.stubbing.OngoingStubbing thenAnswer(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - org.mockito.stubbing.OngoingStubbing then(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } + OngoingStubbing thenReturn(T value, @NotModified T... values) { return null; } + OngoingStubbing thenThrow(@NotModified Throwable... throwables) { return null; } + OngoingStubbing thenAnswer(@IgnoreModifications Answer answer) { return null; } + OngoingStubbing then(@IgnoreModifications Answer answer) { return null; } } //public interface BaseStubber class BaseStubber$ { - org.mockito.stubbing.Stubber doThrow(@NotModified java.lang.Throwable... toBeThrown) { return null; } - org.mockito.stubbing.Stubber doAnswer(@IgnoreModifications org.mockito.stubbing.Answer answer) { return null; } - org.mockito.stubbing.Stubber doReturn(java.lang.Object toBeReturned, @NotModified java.lang.Object... nextToBeReturned) { return null; } + Stubber doThrow(@NotModified Throwable... toBeThrown) { return null; } + Stubber doAnswer(@IgnoreModifications Answer answer) { return null; } + Stubber doReturn(Object toBeReturned, @NotModified Object... nextToBeReturned) { return null; } } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/support/OrgE2immuSupport.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/support/OrgE2immuSupport.java index 6ae075ca68..98e3074144 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/support/OrgE2immuSupport.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/support/OrgE2immuSupport.java @@ -25,6 +25,7 @@ import io.codelaser.maddi.annotation.eventual.Mark; import io.codelaser.maddi.annotation.eventual.Only; import io.codelaser.maddi.annotation.eventual.TestMark; +import io.codelaser.maddi.support.Either; import io.codelaser.maddi.support.SetOnce; /** @@ -46,8 +47,8 @@ class Either$ { @NotModified B getRight() { return null; } @NotModified boolean isLeft() { return false; } @NotModified boolean isRight() { return false; } - @NotModified static io.codelaser.maddi.support.Either right(@NotNull R right) { return null; } - @NotModified static io.codelaser.maddi.support.Either left(@NotNull L left) { return null; } + @NotModified static Either right(@NotNull R right) { return null; } + @NotModified static Either left(@NotNull L left) { return null; } @NotModified A getLeftOrElse(@NotNull A orElse) { return null; } @NotModified B getRightOrElse(@NotNull B orElse) { return null; } } diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/test/OrgJunitJupiterApi.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/test/OrgJunitJupiterApi.java index e411fe3b5a..829fc1ddae 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/test/OrgJunitJupiterApi.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/test/OrgJunitJupiterApi.java @@ -23,11 +23,12 @@ import java.util.function.Supplier; import java.util.stream.Stream; -import io.codelaser.maddi.annotation.Immutable; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.function.Executable; import org.junit.jupiter.api.function.ThrowingSupplier; +import io.codelaser.maddi.annotation.Immutable; + public class OrgJunitJupiterApi { public static final String PACKAGE_NAME = "org.junit.jupiter.api"; //public class Assertions diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavr.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavr.java index 354e9d517c..dcc1360021 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavr.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavr.java @@ -1,19 +1,4 @@ package io.codelaser.maddi.aapi.archive.libs.vavr; -import io.vavr.*; -import io.vavr.collection.Array; -import io.vavr.collection.CharSeq; -import io.vavr.collection.IndexedSeq; -import io.vavr.collection.Iterator; -import io.vavr.collection.List; -import io.vavr.collection.PriorityQueue; -import io.vavr.collection.Queue; -import io.vavr.collection.Seq; -import io.vavr.collection.SortedMap; -import io.vavr.collection.SortedSet; -import io.vavr.collection.Tree; -import io.vavr.collection.Vector; -import io.vavr.concurrent.Future; -import io.vavr.control.*; import java.io.PrintStream; import java.io.PrintWriter; import java.util.Collection; @@ -27,6 +12,7 @@ import java.util.function.*; import java.util.stream.Collector; import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; @@ -40,6 +26,21 @@ import io.codelaser.maddi.annotation.method.GetSet; import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.annotation.type.UtilityClass; +import io.vavr.*; +import io.vavr.collection.Array; +import io.vavr.collection.CharSeq; +import io.vavr.collection.IndexedSeq; +import io.vavr.collection.Iterator; +import io.vavr.collection.List; +import io.vavr.collection.PriorityQueue; +import io.vavr.collection.Queue; +import io.vavr.collection.Seq; +import io.vavr.collection.SortedMap; +import io.vavr.collection.SortedSet; +import io.vavr.collection.Tree; +import io.vavr.collection.Vector; +import io.vavr.concurrent.Future; +import io.vavr.control.*; @Independent(absent = true) public class IoVavr { public static final String PACKAGE_NAME = "io.vavr"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrCollection.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrCollection.java index ee61afc9e7..04e3fb1da1 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrCollection.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrCollection.java @@ -1,29 +1,4 @@ package io.codelaser.maddi.aapi.archive.libs.vavr; -import io.vavr.*; -import io.vavr.collection.Array; -import io.vavr.collection.BitSet; -import io.vavr.collection.CharSeq; -import io.vavr.collection.HashMultimap; -import io.vavr.collection.IndexedSeq; -import io.vavr.collection.Iterator; -import io.vavr.collection.LinearSeq; -import io.vavr.collection.LinkedHashMap; -import io.vavr.collection.LinkedHashMultimap; -import io.vavr.collection.LinkedHashSet; -import io.vavr.collection.List; -import io.vavr.collection.Multimap; -import io.vavr.collection.PriorityQueue; -import io.vavr.collection.Queue; -import io.vavr.collection.Seq; -import io.vavr.collection.SortedMap; -import io.vavr.collection.SortedMultimap; -import io.vavr.collection.Traversable; -import io.vavr.collection.Tree; -import io.vavr.collection.TreeMap; -import io.vavr.collection.TreeMultimap; -import io.vavr.collection.TreeSet; -import io.vavr.collection.Vector; -import io.vavr.control.Option; import java.math.BigDecimal; import java.nio.charset.Charset; import java.util.ArrayList; @@ -39,6 +14,7 @@ import java.util.function.*; import java.util.stream.Collector; import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; @@ -51,6 +27,31 @@ import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.annotation.method.GetSet; import io.codelaser.maddi.annotation.rare.IgnoreModifications; +import io.vavr.*; +import io.vavr.collection.Array; +import io.vavr.collection.BitSet; +import io.vavr.collection.CharSeq; +import io.vavr.collection.HashMultimap; +import io.vavr.collection.IndexedSeq; +import io.vavr.collection.Iterator; +import io.vavr.collection.LinearSeq; +import io.vavr.collection.LinkedHashMap; +import io.vavr.collection.LinkedHashMultimap; +import io.vavr.collection.LinkedHashSet; +import io.vavr.collection.List; +import io.vavr.collection.Multimap; +import io.vavr.collection.PriorityQueue; +import io.vavr.collection.Queue; +import io.vavr.collection.Seq; +import io.vavr.collection.SortedMap; +import io.vavr.collection.SortedMultimap; +import io.vavr.collection.Traversable; +import io.vavr.collection.Tree; +import io.vavr.collection.TreeMap; +import io.vavr.collection.TreeMultimap; +import io.vavr.collection.TreeSet; +import io.vavr.collection.Vector; +import io.vavr.control.Option; @Independent(absent = true) public class IoVavrCollection { public static final String PACKAGE_NAME = "io.vavr.collection"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrConcurrent.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrConcurrent.java index aac0bb21b6..4c7a760862 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrConcurrent.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrConcurrent.java @@ -1,28 +1,24 @@ package io.codelaser.maddi.aapi.archive.libs.vavr; -import io.vavr.*; -import io.vavr.collection.Iterator; -import io.vavr.collection.Seq; -import io.vavr.concurrent.Promise; -import io.vavr.control.Option; -import io.vavr.control.Try; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.function.*; -import io.codelaser.maddi.annotation.Container; + import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.annotation.Identity; -import io.codelaser.maddi.annotation.Immutable; -import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; -import io.codelaser.maddi.annotation.method.GetSet; import io.codelaser.maddi.annotation.rare.IgnoreModifications; +import io.vavr.*; +import io.vavr.collection.Iterator; +import io.vavr.collection.Seq; +import io.vavr.concurrent.Promise; +import io.vavr.control.Option; +import io.vavr.control.Try; @Independent(absent = true) public class IoVavrConcurrent { public static final String PACKAGE_NAME = "io.vavr.concurrent"; diff --git a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrControl.java b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrControl.java index 7198b67e39..7e13741cc7 100644 --- a/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrControl.java +++ b/maddi-aapi-archive/src/main/java/io/codelaser/maddi/aapi/archive/libs/vavr/IoVavrControl.java @@ -1,11 +1,8 @@ package io.codelaser.maddi.aapi.archive.libs.vavr; -import io.vavr.*; -import io.vavr.collection.Iterator; -import io.vavr.collection.Seq; -import io.vavr.control.*; import java.util.Optional; import java.util.concurrent.Callable; import java.util.function.*; + import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Fluent; @@ -17,7 +14,10 @@ import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.annotation.method.GetSet; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; +import io.vavr.*; +import io.vavr.collection.Iterator; +import io.vavr.collection.Seq; +import io.vavr.control.*; @Independent(absent = true) public class IoVavrControl { public static final String PACKAGE_NAME = "io.vavr.control"; diff --git a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/AnalysisEngine.java b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/AnalysisEngine.java index dddbbb4b17..d849984ced 100644 --- a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/AnalysisEngine.java +++ b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/AnalysisEngine.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.analysis.api; +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.function.Predicate; + import io.codelaser.maddi.cst.api.analysis.Message; import io.codelaser.maddi.cst.api.analysis.Property; import io.codelaser.maddi.cst.api.element.Element; @@ -32,15 +41,6 @@ import io.codelaser.maddi.inspection.api.integration.JavaInspectorFactory; import io.codelaser.maddi.util.Trie; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Function; -import java.util.function.Predicate; - /** * ⭐ The only way into the modification analysis from outside maddi-mod. The base tier (the run drivers, * the refactor engine) and the ext tier (the IDE daemon, the build plugins) compile against this interface; the diff --git a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/AnalysisValueFeed.java b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/AnalysisValueFeed.java index c7560b95ca..1a692d377c 100644 --- a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/AnalysisValueFeed.java +++ b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/AnalysisValueFeed.java @@ -17,10 +17,10 @@ package io.codelaser.maddi.analysis.api; -import io.codelaser.maddi.cst.api.info.Info; - import java.util.Collection; +import io.codelaser.maddi.cst.api.info.Info; + /** * Streaming view of analysis values as the fixpoint iteration progresses, for consumers (the IDE daemon) * that want to display established values before certification. The design rests on the property diff --git a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/ModificationOutcome.java b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/ModificationOutcome.java index d2d926cadd..06d6cdafc0 100644 --- a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/ModificationOutcome.java +++ b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/ModificationOutcome.java @@ -17,10 +17,10 @@ package io.codelaser.maddi.analysis.api; -import io.codelaser.maddi.cst.api.analysis.Message; - import java.util.List; +import io.codelaser.maddi.cst.api.analysis.Message; + /** * @param fingerprintedSourceSets the number of source sets whose fingerprint was stored; 0 unless asked for */ diff --git a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/ModificationRequest.java b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/ModificationRequest.java index 930e45673a..d522993749 100644 --- a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/ModificationRequest.java +++ b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/ModificationRequest.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.analysis.api; +import java.util.Collection; +import java.util.List; +import java.util.Set; + import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.graph.G; import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import java.util.Collection; -import java.util.List; -import java.util.Set; - /** * @param callGraph null: analyze the order without the graph (no worklist narrowing) * @param primaryTypes what the environment gates' incremental state is computed over; may be empty otherwise diff --git a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/PrepOutcome.java b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/PrepOutcome.java index dec24ed558..436a4bd1ef 100644 --- a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/PrepOutcome.java +++ b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/PrepOutcome.java @@ -17,9 +17,9 @@ package io.codelaser.maddi.analysis.api; -import io.codelaser.maddi.callgraph.ComputeCallGraph; - import java.util.List; +import io.codelaser.maddi.callgraph.ComputeCallGraph; + public record PrepOutcome(ComputeCallGraph callGraph, List problems) { } diff --git a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/PrepRequest.java b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/PrepRequest.java index c7522976fd..a69335821b 100644 --- a/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/PrepRequest.java +++ b/maddi-analysis-api/src/main/java/io/codelaser/maddi/analysis/api/PrepRequest.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.analysis.api; +import java.util.Collection; +import java.util.Set; +import java.util.function.Predicate; + import io.codelaser.maddi.callgraph.CallGraphContributions; import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; -import java.util.Collection; -import java.util.Set; -import java.util.function.Predicate; - /** * @param faultTolerant null: the prep analyzer's own default options; otherwise its fault-tolerance switch. * @param callGraphContributions null: the call graph is walked in full. Otherwise the per-type call graph of an diff --git a/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/CallGraphContributions.java b/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/CallGraphContributions.java index bd2b09dac1..afa4777a4f 100644 --- a/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/CallGraphContributions.java +++ b/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/CallGraphContributions.java @@ -17,15 +17,6 @@ package io.codelaser.maddi.callgraph; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.graph.G; -import io.codelaser.maddi.inspection.api.byname.ByNameDangling; -import io.codelaser.maddi.inspection.api.byname.ByNameReference; -import io.codelaser.maddi.inspection.api.byname.ByNameSink; -import io.codelaser.maddi.inspection.api.parser.ParseResult; - import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -36,6 +27,15 @@ import java.util.Set; import java.util.function.Predicate; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.graph.G; +import io.codelaser.maddi.inspection.api.byname.ByNameDangling; +import io.codelaser.maddi.inspection.api.byname.ByNameReference; +import io.codelaser.maddi.inspection.api.byname.ByNameSink; +import io.codelaser.maddi.inspection.api.parser.ParseResult; + /** * The call graph kept per primary type, across runs: each primary type's vertices, edges and recursive methods are * its own contribution, and {@link ComputeCallGraph#go(CallGraphContributions)} unions them. After a partial re-parse diff --git a/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/ComputeAnalysisOrder.java b/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/ComputeAnalysisOrder.java index e50ecae98f..ace6e23f81 100644 --- a/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/ComputeAnalysisOrder.java +++ b/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/ComputeAnalysisOrder.java @@ -17,20 +17,22 @@ package io.codelaser.maddi.callgraph; -import io.codelaser.maddi.cst.api.element.ModuleInfo; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.graph.G; -import io.codelaser.maddi.graph.V; -import io.codelaser.maddi.graph.op.Linearize; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.ModuleInfo; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.graph.G; +import io.codelaser.maddi.graph.V; +import io.codelaser.maddi.graph.op.Linearize; + /* given the call graph, compute the linearization, and all supporting information to deal with cycles. @@ -72,7 +74,7 @@ public static List>> waves(G callGraph) { G subGraph = callGraph.subGraph(subSet, l -> l >= ComputeCallGraph.REFERENCES); Linearize.Result result = Linearize.linearize(subGraph, Linearize.LinearizationMode.ALL); Comparator cmp = Comparator.comparing(Info::fullyQualifiedName); - List>> waves = new java.util.ArrayList<>(); + List>> waves = new ArrayList<>(); for (Set> stratum : result.linearized().list()) { if (!stratum.isEmpty()) { waves.add(stratum.stream().map(V::t).sorted(cmp).map(i -> (List) List.of(i)).toList()); diff --git a/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/ComputeCallGraph.java b/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/ComputeCallGraph.java index 081b382419..f99d491928 100644 --- a/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/ComputeCallGraph.java +++ b/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/ComputeCallGraph.java @@ -18,6 +18,19 @@ package io.codelaser.maddi.callgraph; +import static io.codelaser.maddi.cst.impl.analysis.PropertyImpl.RECURSIVE_METHOD; +import static io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Predicate; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.element.ModuleInfo; @@ -35,25 +48,12 @@ import io.codelaser.maddi.cst.api.statement.TryStatement; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.FieldReference; +import io.codelaser.maddi.graph.G; +import io.codelaser.maddi.graph.ImmutableGraph; import io.codelaser.maddi.inspection.api.byname.ByNameDangling; import io.codelaser.maddi.inspection.api.byname.ByNameReference; import io.codelaser.maddi.inspection.api.byname.ByNameSink; import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.graph.G; -import io.codelaser.maddi.graph.ImmutableGraph; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Predicate; - -import static io.codelaser.maddi.cst.impl.analysis.PropertyImpl.RECURSIVE_METHOD; -import static io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE; /* call & reference graphs. diff --git a/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/PrimaryTypeUseGraph.java b/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/PrimaryTypeUseGraph.java index 792c79803e..3d7fc0e774 100644 --- a/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/PrimaryTypeUseGraph.java +++ b/maddi-callgraph/src/main/java/io/codelaser/maddi/callgraph/PrimaryTypeUseGraph.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.callgraph; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -25,10 +29,6 @@ import io.codelaser.maddi.graph.V; import io.codelaser.maddi.graph.op.Common; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - /** * The {@link ComputeCallGraph} projected down to primary types, and transposed: the answer to "who depends on * this type?". diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/CommonTest.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/CommonTest.java index ff6f5f8bea..30db31529c 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/CommonTest.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/CommonTest.java @@ -17,6 +17,22 @@ package io.codelaser.maddi.callgraph; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; +import static io.codelaser.maddi.inspection.resource.SourceSetImpl.sourceSetOf; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; + +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.slf4j.LoggerFactory; + import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import io.codelaser.maddi.cst.api.element.SourceSet; @@ -27,24 +43,8 @@ import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.support.SetOnce; -import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.BeforeEach; -import org.slf4j.LoggerFactory; - import io.codelaser.maddi.support.SetOnceMap; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; -import static io.codelaser.maddi.inspection.resource.SourceSetImpl.sourceSetOf; - public class CommonTest { private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(CommonTest.class); protected static final String ABX = "a.b.X"; diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestAnalysisOrder.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestAnalysisOrder.java index 9414f21e78..b647b6be37 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestAnalysisOrder.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestAnalysisOrder.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.callgraph; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.graph.G; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.graph.G; public class TestAnalysisOrder extends CommonTest { diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestByNameReferences.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestByNameReferences.java index 75f12ca77e..36e53d02c5 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestByNameReferences.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestByNameReferences.java @@ -17,39 +17,40 @@ package io.codelaser.maddi.callgraph; +import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; +import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.TEST_PROTOCOL_PREFIX; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.graph.G; import io.codelaser.maddi.graph.V; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.byname.ByNameDangling; import io.codelaser.maddi.inspection.api.byname.ByNameReference; import io.codelaser.maddi.inspection.api.byname.ByNameSink; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; -import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.TEST_PROTOCOL_PREFIX; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertInstanceOf; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertSame; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * A string literal that a declared {@link ByNameSink} turns into a type: the reference the compiler never sees and @@ -194,7 +195,7 @@ public void test() throws IOException { a.b.Holder.ambiguousMember() -> a.b.Target#overloaded (FIELD)""", ccg.byNameReferences().stream().map(Object::toString).sorted( // source order is the member order of the fixture, which is what a reader expects - java.util.Comparator.comparingInt(s -> HOLDER.indexOf(s.substring(9, s.indexOf('('))))) + Comparator.comparingInt(s -> HOLDER.indexOf(s.substring(9, s.indexOf('('))))) .reduce((a, b) -> a + "\n" + b).orElse("")); // ⛔ the blind spot is a NUMBER: a concatenation and a parameter, both calls to a declared sink whose name @@ -242,7 +243,7 @@ public void danglingLiteralsAreRecorded() throws IOException { public void members() throws IOException { ParseResult parseResult = parse(); Map byMember = compute(parseResult, SINKS).byNameReferences().stream() - .collect(java.util.stream.Collectors.toMap(r -> r.from().simpleName(), r -> r)); + .collect(Collectors.toMap(r -> r.from().simpleName(), r -> r)); TypeInfo target = parseResult.findType("a.b.Target"); assertSame(target.getFieldByName("instance", true), byMember.get("literal").targetMember()); @@ -259,7 +260,7 @@ public void members() throws IOException { public void theSiteIsWhereTheLiteralIsWritten() throws IOException { ParseResult parseResult = parse(); Map byMember = compute(parseResult, SINKS).byNameReferences().stream() - .collect(java.util.stream.Collectors.toMap(r -> r.from().simpleName(), r -> r)); + .collect(Collectors.toMap(r -> r.from().simpleName(), r -> r)); ByNameReference literal = byMember.get("literal"); assertEquals(false, literal.viaConstant()); diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraph.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraph.java index 08f07f2e93..2456bc376c 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraph.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraph.java @@ -17,20 +17,21 @@ package io.codelaser.maddi.callgraph; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.graph.G; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.*; public class TestCallGraph extends CommonTest { diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphArrayCreation.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphArrayCreation.java index 1c80d9893f..cd9a1fd11d 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphArrayCreation.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphArrayCreation.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.callgraph; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.graph.G; import io.codelaser.maddi.graph.V; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * {@code new X[n]} is an array creation, not a call to a constructor of {@code X}. diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphContributions.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphContributions.java index 40bb479ce4..04db0cdc36 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphContributions.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphContributions.java @@ -17,18 +17,8 @@ package io.codelaser.maddi.callgraph; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Files; @@ -36,10 +26,25 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeSet; +import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Collectors; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.byname.ByNameSink; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * The call graph per primary type (docs/design/incremental-and-overlay.md §7 item 5): after a partial re-parse only @@ -94,7 +99,7 @@ public void test() throws IOException { CallGraphContributions contributions = new CallGraphContributions(); // one predicate object for the whole sequence: another one clears the contributions (they were filtered by it) - java.util.function.Predicate noExternals = _ -> false; + Predicate noExternals = _ -> false; ComputeCallGraph first = new ComputeCallGraph(inspector.runtime(), pr, noExternals).go(contributions); assertEquals(3, contributions.computed()); assertAsFullWalk(first, pr); @@ -152,7 +157,7 @@ public void testStaleTarget() throws IOException { JavaInspector inspector = inspector(set); ParseResult pr = inspector.parse(Map.of(), JavaInspectorImpl.DETAILED_SOURCES).parseResult(); CallGraphContributions contributions = new CallGraphContributions(); - java.util.function.Predicate noExternals = _ -> false; + Predicate noExternals = _ -> false; new ComputeCallGraph(inspector.runtime(), pr, noExternals).go(contributions); write(src, "p/B.java", "// edited\n" + B); @@ -197,9 +202,9 @@ public Object m(String s) { } """; - private static final List SINKS = List.of( - new io.codelaser.maddi.inspection.api.byname.ByNameSink("p.R", "type", 1, 0, -1, - io.codelaser.maddi.inspection.api.byname.ByNameSink.Kind.TYPE)); + private static final List SINKS = List.of( + new ByNameSink("p.R", "type", 1, 0, -1, + ByNameSink.Kind.TYPE)); /* With by-name sinks declared, a type's by-name rows are part of its contribution: the refactor service always @@ -219,7 +224,7 @@ public void testByNameSinks() throws IOException { JavaInspector inspector = inspector(set); ParseResult pr = inspector.parse(Map.of(), JavaInspectorImpl.DETAILED_SOURCES).parseResult(); CallGraphContributions contributions = new CallGraphContributions(); - java.util.function.Predicate noExternals = _ -> false; + Predicate noExternals = _ -> false; ComputeCallGraph first = withSinks(inspector, pr, noExternals).go(contributions); assertEquals(5, contributions.computed()); @@ -261,12 +266,12 @@ public void testByNameSinks() throws IOException { } private static ComputeCallGraph withSinks(JavaInspector inspector, ParseResult pr, - java.util.function.Predicate externals) { + Predicate externals) { return new ComputeCallGraph(inspector.runtime(), pr, externals).withByNameSinks(SINKS, pr); } private static JavaInspector.ParseOptions options( - java.util.function.Function invalidated) { + Function invalidated) { return new JavaInspector.ParseOptions.Builder().setDetailedSources(true).setFailFast(true) .setInvalidated(invalidated::apply).build(); } @@ -296,7 +301,7 @@ private static void assertAsFullWalk(ComputeCallGraph incremental, ParseResult p private static Set names(ComputeCallGraph ccg) { return ccg.recursiveMethods().stream().map(mi -> mi.fullyQualifiedName()) - .collect(Collectors.toCollection(java.util.TreeSet::new)); + .collect(Collectors.toCollection(TreeSet::new)); } private static JavaInspector inspector(SourceSet set) { diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphExplicitConstructorInvocation.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphExplicitConstructorInvocation.java index 97ec218d29..1cccab6b3a 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphExplicitConstructorInvocation.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphExplicitConstructorInvocation.java @@ -17,18 +17,20 @@ package io.codelaser.maddi.callgraph; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.graph.G; import io.codelaser.maddi.graph.V; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * {@code this(..)} and {@code super(..)} are calls, and the graph says so with the R bit as well as the S one. @@ -124,7 +126,7 @@ public void test2() { TypeInfo l = X.findSubType("L"); MethodInfo constructor = constructor(l, 1, "int"); MethodInfo arrayListConstructor = javaInspector.compiledTypesManager() - .typeIfLoaded(java.util.ArrayList.class).constructors().stream() + .typeIfLoaded(ArrayList.class).constructors().stream() .filter(c -> c.parameters().size() == 1 && "int".equals(c.parameters().getFirst().parameterizedType() .typeInfo().fullyQualifiedName())) diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphSealedAnonEnum.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphSealedAnonEnum.java index 0b8df88565..ccb6ab6536 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphSealedAnonEnum.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphSealedAnonEnum.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.callgraph; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.graph.G; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.graph.G; /** * The call graph must record three forward type references it used to drop, each of which made periphery diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphSwitchPattern.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphSwitchPattern.java index 7f9bf36af6..2faaee88f9 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphSwitchPattern.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestCallGraphSwitchPattern.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.callgraph; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.graph.G; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.graph.G; /** * A type named ONLY by a switch type pattern is a compile dependency like any other, in both switch forms. diff --git a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestComputeCallGraph.java b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestComputeCallGraph.java index 45ed3bac33..776fff5c5a 100644 --- a/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestComputeCallGraph.java +++ b/maddi-callgraph/src/test/java/io/codelaser/maddi/callgraph/TestComputeCallGraph.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.callgraph; -import org.junit.jupiter.api.Test; - import static io.codelaser.maddi.callgraph.ComputeCallGraph.*; import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + public class TestComputeCallGraph { // every count odd and every weight distinct, so no field can be read from its neighbour's bits unnoticed; the // test below uses even counts only, and passed while the doc count was read from the reference count's low bit diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/AnalysisAccessRecorder.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/AnalysisAccessRecorder.java index b77bcdaba1..4e6c2eabf5 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/AnalysisAccessRecorder.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/AnalysisAccessRecorder.java @@ -17,9 +17,6 @@ package io.codelaser.maddi.cst.impl.analysis; -import io.codelaser.maddi.cst.api.analysis.Property; -import io.codelaser.maddi.cst.api.analysis.Value; - import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; @@ -28,6 +25,9 @@ import java.util.Objects; import java.util.Set; +import io.codelaser.maddi.cst.api.analysis.Property; +import io.codelaser.maddi.cst.api.analysis.Value; + /** * CodeLaser/maddi-mod#76: records, for one computation on one thread, every analysis value it read and every * value it left behind, so that a later run of the same computation can be skipped when nothing it read has diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ConsumptionEdgeRecorder.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ConsumptionEdgeRecorder.java index 1ec683b94c..1444339e28 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ConsumptionEdgeRecorder.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ConsumptionEdgeRecorder.java @@ -17,20 +17,20 @@ package io.codelaser.maddi.cst.impl.analysis; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.ParameterInfo; - -import java.util.ArrayList; import java.util.ArrayDeque; -import java.util.HashMap; +import java.util.ArrayList; import java.util.Comparator; import java.util.Deque; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.ParameterInfo; + /** * Task #35 Phase A (measure, GO/NO-GO): records, per analyzed element, which OTHER elements' * analysis maps were touched during its analysis — an UPPER BOUND on true summary consumption diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ForwardingNullabilityFacts.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ForwardingNullabilityFacts.java index 128dbbd255..1e3803e271 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ForwardingNullabilityFacts.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ForwardingNullabilityFacts.java @@ -16,18 +16,19 @@ */ package io.codelaser.maddi.cst.impl.analysis; +import java.util.Objects; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.Objects; - /** * {@link NullabilityFacts} that answer as {@code delegate} does: a base for facts that change one answer or add a * concern of their own (a printer's, beside nullability). @@ -101,7 +102,7 @@ public boolean rejectsNull(ParameterInfo parameterInfo) { } @Override - public boolean nonNullTypeParameter(io.codelaser.maddi.cst.api.info.TypeParameter typeParameter) { + public boolean nonNullTypeParameter(TypeParameter typeParameter) { return delegate.nonNullTypeParameter(typeParameter); } diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/LinkFacts.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/LinkFacts.java index dbdd6e2177..6ba954f2bf 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/LinkFacts.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/LinkFacts.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.impl.analysis; +import java.util.Set; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; -import java.util.Set; - /** * What the modification analysis's links say about a method's result, for a printer whose types state ownership * (Rust): a new object or one that existed before the call, and what of the receiver and the parameters it is or diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/MessageImpl.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/MessageImpl.java index 76fe9efa0f..87dee5fda7 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/MessageImpl.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/MessageImpl.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.impl.analysis; +import java.util.List; + import io.codelaser.maddi.cst.api.analysis.Message; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.Info; -import java.util.List; - public record MessageImpl(Source source, Info info, Level level, String message, String category, List causes) implements Message { public static final String GENERAL = "general"; diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ModificationFacts.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ModificationFacts.java index 5d3a4f2bf6..346f363c9e 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ModificationFacts.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ModificationFacts.java @@ -16,9 +16,9 @@ */ package io.codelaser.maddi.cst.impl.analysis; +import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/NullAnnotations.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/NullAnnotations.java index 0f2f0de9f0..1053ed4ecf 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/NullAnnotations.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/NullAnnotations.java @@ -18,6 +18,10 @@ package io.codelaser.maddi.cst.impl.analysis; +import java.util.List; +import java.util.Set; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -28,10 +32,6 @@ import io.codelaser.maddi.cst.api.type.NullableState; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; -import java.util.Set; -import java.util.stream.Stream; - /** * The null annotations, recognised by SIMPLE NAME, the way the families are actually used: JSpecify, JetBrains, * JSR-305, Jakarta, Checker Framework, FindBugs/SpotBugs, Android, Lombok, Eclipse JDT, maddi's own, and a project's diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/PropertyProviderImpl.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/PropertyProviderImpl.java index e8161f18c0..a7f27a9108 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/PropertyProviderImpl.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/PropertyProviderImpl.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.impl.analysis; -import io.codelaser.maddi.cst.api.analysis.Property; +import static io.codelaser.maddi.cst.impl.analysis.PropertyImpl.*; import java.util.*; -import static io.codelaser.maddi.cst.impl.analysis.PropertyImpl.*; +import io.codelaser.maddi.cst.api.analysis.Property; public class PropertyProviderImpl { diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/PropertyValueMapImpl.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/PropertyValueMapImpl.java index 81dc8e1b3b..bbabc47d59 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/PropertyValueMapImpl.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/PropertyValueMapImpl.java @@ -17,17 +17,17 @@ package io.codelaser.maddi.cst.impl.analysis; -import io.codelaser.maddi.cst.api.analysis.Property; -import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; -import io.codelaser.maddi.cst.api.analysis.Value; -import io.codelaser.maddi.cst.api.info.InfoMap; -import io.codelaser.maddi.cst.api.info.InfoMapView; - import java.util.HashMap; import java.util.Map; +import java.util.function.Predicate; import java.util.function.Supplier; import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.analysis.Property; +import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; +import io.codelaser.maddi.cst.api.analysis.Value; +import io.codelaser.maddi.cst.api.info.InfoMapView; + /* Does not use SetOnceMap<> because of controlled overwrites. @@ -56,7 +56,7 @@ public synchronized PropertyValueMap rewire(InfoMapView infoMap) { // filtered carry (docs/design/analysis-rewiring.md): the fingerprint-gated skip passes the analyzer-output predicate @Override - public synchronized PropertyValueMap rewire(InfoMapView infoMap, java.util.function.Predicate filter) { + public synchronized PropertyValueMap rewire(InfoMapView infoMap, Predicate filter) { PropertyValueMapImpl rewiredMap = new PropertyValueMapImpl(); map.forEach((key, value) -> { if (filter.test(key)) rewiredMap.set(key, value.rewire(infoMap)); @@ -163,7 +163,7 @@ public void setAll(PropertyValueMap analysis) { } @Override - public synchronized void removeIf(java.util.function.Predicate filter) { + public synchronized void removeIf(Predicate filter) { if (AnalysisAccessRecorder.active()) { map.keySet().removeIf(p -> { boolean remove = filter.test(p); diff --git a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ValueImpl.java b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ValueImpl.java index e370696952..c9f7dcfffe 100644 --- a/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ValueImpl.java +++ b/maddi-cst-analysis/src/main/java/io/codelaser/maddi/cst/impl/analysis/ValueImpl.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.cst.impl.analysis; +import java.util.*; +import java.util.function.BiFunction; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.analysis.Codec; import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.expression.Expression; @@ -29,10 +33,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.*; -import java.util.function.BiFunction; -import java.util.stream.Collectors; - public abstract class ValueImpl implements Value { private static final Map, BiFunction> decoderMap = new HashMap<>(); diff --git a/maddi-cst-analysis/src/test/java/io/codelaser/maddi/cst/impl/analysis/TestEveryWritablePropertyDecodes.java b/maddi-cst-analysis/src/test/java/io/codelaser/maddi/cst/impl/analysis/TestEveryWritablePropertyDecodes.java index 673d99b7f6..857f0cffed 100644 --- a/maddi-cst-analysis/src/test/java/io/codelaser/maddi/cst/impl/analysis/TestEveryWritablePropertyDecodes.java +++ b/maddi-cst-analysis/src/test/java/io/codelaser/maddi/cst/impl/analysis/TestEveryWritablePropertyDecodes.java @@ -16,17 +16,17 @@ */ package io.codelaser.maddi.cst.impl.analysis; -import io.codelaser.maddi.cst.api.analysis.Property; -import io.codelaser.maddi.cst.api.analysis.Property.AnalysisTier; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.analysis.Property; /** * ⛔ Everything the encoder can write, the decoder must be able to read. A {@link Property} declared diff --git a/maddi-cst-analysis/src/test/java/io/codelaser/maddi/cst/impl/analysis/TestNullabilityValue.java b/maddi-cst-analysis/src/test/java/io/codelaser/maddi/cst/impl/analysis/TestNullabilityValue.java index 6a92e5f61e..e06912c544 100644 --- a/maddi-cst-analysis/src/test/java/io/codelaser/maddi/cst/impl/analysis/TestNullabilityValue.java +++ b/maddi-cst-analysis/src/test/java/io/codelaser/maddi/cst/impl/analysis/TestNullabilityValue.java @@ -1,11 +1,12 @@ package io.codelaser.maddi.cst.impl.analysis; -import io.codelaser.maddi.cst.api.type.NullableState; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.type.NullableState; /** The encoded shape of {@link ValueImpl.NullabilityImpl}: what a results file holds. */ public class TestNullabilityValue { diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Codec.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Codec.java index 86d17a4966..b33ce2c508 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Codec.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Codec.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.api.analysis; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.BiFunction; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -26,13 +33,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.BiFunction; -import java.util.stream.Stream; - /* support for reading and writing the property-value pairs in many elements. */ diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Message.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Message.java index aeabf7f25c..e696e3195b 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Message.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Message.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.api.analysis; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.Info; -import java.util.List; - public interface Message { interface Level { diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/PropertyValueMap.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/PropertyValueMap.java index 843f96b9c2..9e8e2d8c12 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/PropertyValueMap.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/PropertyValueMap.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.cst.api.analysis; -import io.codelaser.maddi.annotation.Independent; +import java.util.function.Predicate; +import java.util.function.Supplier; +import java.util.stream.Stream; +import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; -import java.util.function.Supplier; -import java.util.stream.Stream; - public interface PropertyValueMap { boolean isEmpty(); @@ -38,14 +38,14 @@ public interface PropertyValueMap { * {@code VARIABLE_DATA}, which is recomputed anyway) — see {@code docs/design/analysis-rewiring.md}. Requires each kept * property's value to implement {@code rewire}. */ - PropertyValueMap rewire(@Independent(hc = true) InfoMapView infoMap, java.util.function.Predicate filter); + PropertyValueMap rewire(@Independent(hc = true) InfoMapView infoMap, Predicate filter); /** * Remove every property matching {@code filter}. The early-cutoff skip's clear-before-recompute: a type carried * optimistically but found dirty by the worklist must have its carried (possibly-stale) analyzer output cleared, * or re-analysis hits the monotonic-overwrite guard when it lowers a value. See {@code docs/design/analysis-rewiring.md}. */ - void removeIf(java.util.function.Predicate filter); + void removeIf(Predicate filter); record PropertyValue(Property property, Value value) { diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Value.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Value.java index ea16870012..78ece5f32c 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Value.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/analysis/Value.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.api.analysis; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.*; import io.codelaser.maddi.cst.api.runtime.Runtime; @@ -25,10 +30,6 @@ import io.codelaser.maddi.cst.api.util.ParSeq; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.List; -import java.util.Map; -import java.util.Set; - public interface Value extends Comparable { Codec.EncodedValue encode(Codec codec, Codec.Context context); @@ -285,7 +286,7 @@ default boolean isTestMark() { /** the {@code value=}/{@code before=}/{@code after=} string of the annotation */ default String markLabel() { - return fields().stream().sorted().collect(java.util.stream.Collectors.joining(",")); + return fields().stream().sorted().collect(Collectors.joining(",")); } /** two eventual values belong to the same state transition */ diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Comment.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Comment.java index 267d326d9a..af1d8b8b3b 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Comment.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Comment.java @@ -17,7 +17,6 @@ package io.codelaser.maddi.cst.api.element; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.translate.TranslationMap; diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/CompilationUnit.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/CompilationUnit.java index 3e5effe8e6..15becbdcde 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/CompilationUnit.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/CompilationUnit.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.api.element; +import java.net.URI; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.TypeInfo; -import java.net.URI; -import java.util.List; - /** * Represents a single Java source file — the top-level unit of compilation in the CST. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/DetailedSources.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/DetailedSources.java index e6eed9342f..1ecfb6dbf6 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/DetailedSources.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/DetailedSources.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.cst.api.element; -import io.codelaser.maddi.cst.api.variable.LocalVariable; +import java.util.List; +import java.util.function.BiConsumer; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; - -import java.util.List; -import java.util.function.BiConsumer; +import io.codelaser.maddi.cst.api.variable.LocalVariable; /** * A fine-grained map from well-known syntactic positions (keywords, punctuation, comma separators) @@ -248,7 +249,7 @@ default void forEachLocalReference(@NotNull BiConsumer co * instance the rewired element holds. Names, markers and positions are kept. A key the map cannot place is dropped * rather than kept: kept, it would answer no lookup and hold on to the previous generation. */ - DetailedSources rewire(io.codelaser.maddi.cst.api.info.InfoMapView infoMap); + DetailedSources rewire(InfoMapView infoMap); /** * Returns the object associated with {@code object} via a put-with-association call, diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Element.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Element.java index 4985dae2d2..95b9e9d6e9 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Element.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Element.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.cst.api.element; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.Independent; @@ -24,7 +28,6 @@ import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -33,10 +36,6 @@ import io.codelaser.maddi.cst.api.variable.DescendMode; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - /** * Represents an element in the Common Syntax Tree. * Each element has a diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/JavaDoc.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/JavaDoc.java index e65a75e257..5fb32b6bb7 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/JavaDoc.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/JavaDoc.java @@ -17,15 +17,13 @@ package io.codelaser.maddi.cst.api.element; -import io.codelaser.maddi.annotation.Independent; +import java.util.List; -import io.codelaser.maddi.cst.api.info.InfoMap; +import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.translate.TranslationMap; -import java.util.List; - /** * A structured {@code /** … *}{@code /} Javadoc comment, parsed into a list of {@link Tag} entries. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/ModuleInfo.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/ModuleInfo.java index dcb4b255d6..d1cb0ad52a 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/ModuleInfo.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/ModuleInfo.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.api.element; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.TypeInfo; - import java.util.HashMap; import java.util.List; import java.util.Map; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.TypeInfo; + /** * Represents the contents of a Java 9+ {@code module-info.java} file. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/RecordPattern.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/RecordPattern.java index ba499cafa1..5903b12aaa 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/RecordPattern.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/RecordPattern.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.api.element; +import java.util.List; + import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.LocalVariable; -import java.util.List; - /** * Represents a pattern used in an {@code instanceof} type test or a {@code switch} entry. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Source.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Source.java index 50874595c2..a37a2ccfe7 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Source.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/element/Source.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.api.element; +import io.codelaser.maddi.cst.api.info.InfoMapView; + /** * A source-position range describing where a CST element appears in source. *

@@ -81,7 +83,7 @@ default int posDiff() { * This source for a rewired element: its detailed sources keyed by the rewired objects (see * {@link DetailedSources#rewire}). Itself when it has no detailed sources. */ - default Source rewire(io.codelaser.maddi.cst.api.info.InfoMapView infoMap) { + default Source rewire(InfoMapView infoMap) { DetailedSources detailedSources = detailedSources(); if (detailedSources == null) return this; DetailedSources rewired = detailedSources.rewire(infoMap); diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/And.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/And.java index e525684587..4fda7d10cd 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/And.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/And.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.api.expression; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Element; -import java.util.List; - /** * Boolean conjunction of two or more operands ({@code a && b && ...}). Modelled as a flat list rather * than a nested {@link BinaryOperator} so the analyzer can normalise and simplify boolean formulae. diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/AnnotationExpression.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/AnnotationExpression.java index 88ceb7cae8..30a604524b 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/AnnotationExpression.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/AnnotationExpression.java @@ -17,18 +17,15 @@ package io.codelaser.maddi.cst.api.expression; -import io.codelaser.maddi.annotation.Independent; +import java.util.List; import io.codelaser.maddi.annotation.Fluent; +import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.element.Element; -import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.translate.TranslationMap; -import java.util.List; - /** * An annotation use, {@code @SomeAnnotation(key = value, ...)}. Modelled as an expression so it can be * attached to any {@link Element}. The annotation type is {@link #typeInfo()} and its arguments are the diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ArrayInitializer.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ArrayInitializer.java index c7eb9d0d48..89020273ec 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ArrayInitializer.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ArrayInitializer.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.api.expression; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - /** * An array initialiser, the brace-enclosed element list {@code { e0, e1, ... }} (as in * {@code new int[]{1, 2, 3}} or a field initialiser). The builder also records the common element type. diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/CommaExpression.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/CommaExpression.java index b6d88b6ff0..6412f700c3 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/CommaExpression.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/CommaExpression.java @@ -18,10 +18,10 @@ package io.codelaser.maddi.cst.api.expression; -import io.codelaser.maddi.annotation.Fluent; - import java.util.List; +import io.codelaser.maddi.annotation.Fluent; + /** * A sequence of expressions evaluated in order, the value being that of the last. Java has no comma * operator in general expression position (only in {@code for} clauses); this node is used by the diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ConstantExpression.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ConstantExpression.java index cdd107d114..728e4cab3d 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ConstantExpression.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ConstantExpression.java @@ -17,7 +17,6 @@ package io.codelaser.maddi.cst.api.expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; /** diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ConstructorCall.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ConstructorCall.java index 2fc0068895..7d7ace6eaf 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ConstructorCall.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/ConstructorCall.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.cst.api.expression; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.Diamond; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - /** * An object or array creation: {@code new Type(args)}, {@code new Type[n]}/{@code new Type[]{...}}, an * anonymous class instantiation {@code new Type(){ ... }}, or a qualified {@code outer.new Inner(...)}. diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Expression.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Expression.java index fd8eeaec87..14b6bd0d71 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Expression.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Expression.java @@ -20,7 +20,6 @@ import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.type.ParameterizedType; diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/InstanceOf.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/InstanceOf.java index 41f0b3e1ec..3d9a773c67 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/InstanceOf.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/InstanceOf.java @@ -21,7 +21,6 @@ import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.api.variable.LocalVariable; /** * An {@code expression instanceof TestType} test, including pattern-matching forms diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Lambda.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Lambda.java index 92ec0796ef..6001487d14 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Lambda.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Lambda.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.api.expression; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -28,8 +30,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - /** * A lambda expression, {@code (params) -> body}. It is represented through a synthetic * {@link MethodInfo}: the lambda's parameters and body are that method's parameters and body, and the diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/MethodCall.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/MethodCall.java index 8cb784a1ed..6b88aa3009 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/MethodCall.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/MethodCall.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.cst.api.expression; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.util.OneVariable; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - /** * A method invocation, {@code object.method(args)}. Operators are also modelled as method calls (see * {@link BinaryOperator}). It is a {@link io.codelaser.maddi.cst.api.expression.util.OneVariable} because diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/MethodReference.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/MethodReference.java index aaaf50c84c..7a17f75db8 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/MethodReference.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/MethodReference.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.api.expression; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - /** * A method reference, {@code scope::method} (including constructor references {@code Type::new}). Its * type is the functional interface it targets; the concrete parameter/return types record how that diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Or.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Or.java index 155d044770..7e62a027d0 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Or.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/Or.java @@ -17,11 +17,10 @@ package io.codelaser.maddi.cst.api.expression; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Element; -import io.codelaser.maddi.cst.api.type.ParameterizedType; - -import java.util.List; /** * Boolean disjunction of two or more operands ({@code a || b || ...}). Like {@link And}, a flat list so diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/SwitchExpression.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/SwitchExpression.java index 689f9491b8..ccd98d57d7 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/SwitchExpression.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/expression/SwitchExpression.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.cst.api.expression; +import java.util.Collection; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.statement.SwitchEntry; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.Collection; -import java.util.List; - /** * A switch expression, {@code switch (selector) { case ... -> value; ... }}, which yields a value. Like * the arrow-form switch statement it is modelled as a list of diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ComputeMethodOverrides.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ComputeMethodOverrides.java index d5d889a906..c19978b7b7 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ComputeMethodOverrides.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ComputeMethodOverrides.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.api.info; -import io.codelaser.maddi.cst.api.type.NamedType; -import io.codelaser.maddi.cst.api.type.ParameterizedType; - import java.util.List; import java.util.Map; import java.util.Set; +import io.codelaser.maddi.cst.api.type.NamedType; +import io.codelaser.maddi.cst.api.type.ParameterizedType; + public interface ComputeMethodOverrides { /* uses the same machinery as 'overrides', but is executed at a different stage. diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/FieldInfo.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/FieldInfo.java index 0a2aaf1d02..22c2ea131a 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/FieldInfo.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/FieldInfo.java @@ -17,6 +17,9 @@ package io.codelaser.maddi.cst.api.info; +import java.util.List; +import java.util.Set; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.element.CompilationUnit; @@ -26,9 +29,6 @@ import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; -import java.util.Set; - /** * Represents a field declaration in the CST. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ImportComputer.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ImportComputer.java index 1d9c1aa6cc..e81fb85aa9 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ImportComputer.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ImportComputer.java @@ -17,14 +17,13 @@ package io.codelaser.maddi.cst.api.info; +import java.util.List; +import java.util.Objects; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.output.Qualification; -import java.util.List; -import java.util.Objects; -import java.util.Set; - public interface ImportComputer { record ImportDetails(String importString, List comments) { @Override diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/Info.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/Info.java index 7082597e78..d1ff968a9c 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/Info.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/Info.java @@ -17,6 +17,9 @@ package io.codelaser.maddi.cst.api.info; +import java.util.List; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.CompilationUnit; @@ -25,9 +28,6 @@ import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.translate.TranslationMap; -import java.util.List; -import java.util.stream.Stream; - /** * Base interface for all named, inspectable program elements: types, methods, fields, and parameters. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/InfoMapView.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/InfoMapView.java index 1924eb930b..75c1a81061 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/InfoMapView.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/InfoMapView.java @@ -18,6 +18,7 @@ package io.codelaser.maddi.cst.api.info; import java.util.Set; +import java.util.function.Supplier; /** * The read-only lookup facet of a completed rewire (see {@link InfoMap}, which extends it). Every {@code rewire(...)} @@ -86,7 +87,7 @@ public interface InfoMapView { * such lookup misses on the rewired type, and the old keys keep the previous generation reachable (found by the * rewire driver on fernflower; docs/design/incremental-and-overlay.md). */ - T rewired(T original, java.util.function.Supplier rewire); + T rewired(T original, Supplier rewire); /** * Records {@code rewired} as the copy of {@code original}, for a copy made outside {@link #rewired} (a type's diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/MethodInfo.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/MethodInfo.java index 79e9567d90..7be6540190 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/MethodInfo.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/MethodInfo.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.api.info; +import java.util.*; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.element.CompilationUnit; @@ -26,9 +28,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.util.ParSeq; -import java.util.*; -import java.util.stream.Stream; - /** * Represents a method or constructor declaration in the CST. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/MethodModifier.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/MethodModifier.java index 4694c12fa0..cda38cf424 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/MethodModifier.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/MethodModifier.java @@ -17,9 +17,6 @@ package io.codelaser.maddi.cst.api.info; -import io.codelaser.maddi.cst.api.output.OutputBuilder; -import io.codelaser.maddi.cst.api.output.element.Keyword; - /** * A modifier that can appear on a method or constructor declaration: * {@code public}, {@code private}, {@code protected}, {@code abstract}, diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ParameterInfo.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ParameterInfo.java index 63204f18d5..edc220d320 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ParameterInfo.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/ParameterInfo.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.cst.api.info; +import java.util.List; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.List; -import java.util.stream.Stream; - /** * Represents a single parameter in a method or constructor declaration. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypeInfo.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypeInfo.java index 7b86892da2..477a693060 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypeInfo.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypeInfo.java @@ -18,6 +18,12 @@ package io.codelaser.maddi.cst.api.info; +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.function.Supplier; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.CompilationUnit; @@ -33,12 +39,6 @@ import io.codelaser.maddi.cst.api.type.TypeNature; import io.codelaser.maddi.support.Either; -import java.util.*; -import java.util.function.Consumer; -import java.util.function.Predicate; -import java.util.function.Supplier; -import java.util.stream.Stream; - /** * Represents a type declaration in the CST: a class, interface, enum, record, or annotation type. *

diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypeParameter.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypeParameter.java index 21cf425336..e68bd7d161 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypeParameter.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypeParameter.java @@ -17,25 +17,23 @@ package io.codelaser.maddi.cst.api.info; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; -import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.type.NamedType; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.support.Either; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Stream; - /** * Represents a type parameter declaration, such as {@code T} in {@code class Box} * or {@code E extends Comparable} in a method signature. diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypePrinter.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypePrinter.java index bb7d4c62a0..80c77dd245 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypePrinter.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/info/TypePrinter.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.api.info; +import java.util.List; + import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; -import java.util.List; - public interface TypePrinter { List minimalModifiers(TypeInfo typeInfo); diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/output/OutputBuilder.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/output/OutputBuilder.java index 3f90f64e53..e82768bd1b 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/output/OutputBuilder.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/output/OutputBuilder.java @@ -17,8 +17,6 @@ package io.codelaser.maddi.cst.api.output; -import io.codelaser.maddi.cst.api.output.element.Symbol; - import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/output/Qualification.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/output/Qualification.java index 27812484fa..aa03ece065 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/output/Qualification.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/output/Qualification.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.api.output; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.ImportStatement; @@ -27,8 +29,6 @@ import io.codelaser.maddi.cst.api.variable.This; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.List; - /** * This type helps determine how variables and types are qualified. * Its implementations are mutable. diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Eval.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Eval.java index 45568088af..8487be102f 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Eval.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Eval.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.api.runtime; -import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.variable.Variable; - import java.util.Collection; import java.util.List; import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.expression.*; +import io.codelaser.maddi.cst.api.variable.Variable; + /* All recursion takes place in sortAndSimplify, when required. None of the abstract methods should call sortAndSimplify again. diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Factory.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Factory.java index 2db3a8d9d8..d2057229a1 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Factory.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Factory.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.api.runtime; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collector; + +import org.jetbrains.annotations.Nullable; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.*; @@ -33,13 +41,6 @@ import io.codelaser.maddi.cst.api.type.TypeNature; import io.codelaser.maddi.cst.api.type.Wildcard; import io.codelaser.maddi.cst.api.variable.*; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; -import java.util.List; -import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collector; public interface Factory { diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Predefined.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Predefined.java index 1dc6b70873..7a6832c714 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Predefined.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Predefined.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.cst.api.runtime; +import java.util.Collection; +import java.util.List; + import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.Collection; -import java.util.List; - public interface Predefined extends PredefinedWithoutParameterizedType { MethodInfo assignOperator(ParameterizedType parameterizedType); diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Types.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Types.java index a1b9a8ea17..405bed4d03 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Types.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/runtime/Types.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.cst.api.runtime; +import java.util.List; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.TypeInfo; -import java.util.stream.Stream; - public interface Types { TypeInfo getFullyQualified(String name, boolean complain); @@ -43,8 +44,8 @@ default TypeInfo getFullyQualified(String name, boolean complain, SourceSet sour * (CodeLaser/maddi-mod#37). Nothing is loaded. Empty when none is, and by default, which means "this runtime does * not tell copies apart; resolve with {@link #getFullyQualified(String, boolean, SourceSet)}". */ - default java.util.List loadedCopies(String fullyQualifiedName) { - return java.util.List.of(); + default List loadedCopies(String fullyQualifiedName) { + return List.of(); } TypeInfo syntheticFunctionalType(int inputParameters, boolean hasReturnValue); diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/Block.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/Block.java index e473bb8417..5fd42d7971 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/Block.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/Block.java @@ -17,15 +17,13 @@ package io.codelaser.maddi.cst.api.statement; -import io.codelaser.maddi.annotation.Independent; +import java.util.List; import io.codelaser.maddi.annotation.Fluent; +import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.element.Comment; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; -import java.util.List; - /** * A brace-delimited sequence of statements, {@code { ... }}. * diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/ExplicitConstructorInvocation.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/ExplicitConstructorInvocation.java index 5f22407290..96226b24e0 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/ExplicitConstructorInvocation.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/ExplicitConstructorInvocation.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.api.statement; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.MethodInfo; -import java.util.List; - /** * An explicit constructor invocation as the first statement of a constructor body: {@code this(...)} or * {@code super(...)}. {@link #isSuper()} distinguishes the two, {@link #methodInfo()} is the invoked diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/ForStatement.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/ForStatement.java index 060d0e1157..1cc181fe6b 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/ForStatement.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/ForStatement.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.api.statement; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Expression; -import java.util.List; - /** * The classic {@code for (init; condition; update) body} loop. The condition is * {@link Statement#expression()} and the body is the primary {@link Statement#block()}; the init and diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/LocalVariableCreation.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/LocalVariableCreation.java index 93fadddb2a..2b8b0fe7c6 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/LocalVariableCreation.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/LocalVariableCreation.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.cst.api.statement; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.api.variable.LocalVariable; - import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; +import io.codelaser.maddi.annotation.Fluent; +import io.codelaser.maddi.cst.api.element.Source; +import io.codelaser.maddi.cst.api.variable.LocalVariable; + /** * A local variable declaration statement, for example {@code int i = 0;} or {@code final var a = b, c = d;}. * diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/Statement.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/Statement.java index f74abba112..77fe5f21b8 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/Statement.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/Statement.java @@ -17,21 +17,19 @@ package io.codelaser.maddi.cst.api.statement; -import io.codelaser.maddi.annotation.Independent; +import java.util.List; +import java.util.stream.Stream; import io.codelaser.maddi.annotation.Fluent; +import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.translate.TranslationMap; -import java.util.List; -import java.util.stream.Stream; - /** * A statement in the common syntax tree (CST). * diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchEntry.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchEntry.java index 4dc89bfd42..d1f17f7c0e 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchEntry.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchEntry.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.cst.api.statement; +import java.util.Collection; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.translate.TranslationMap; -import java.util.Collection; -import java.util.List; - /** * One arm of an arrow-form switch ({@link SwitchStatementNewStyle}): the labels on the left of the * {@code ->} together with the code on its right. A {@code SwitchEntry} is an {@link Element}, not a diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchStatementNewStyle.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchStatementNewStyle.java index 8bbb36acf5..1260996ead 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchStatementNewStyle.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchStatementNewStyle.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.api.statement; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.cst.api.expression.Expression; - import java.util.Collection; import java.util.List; +import io.codelaser.maddi.annotation.Fluent; +import io.codelaser.maddi.cst.api.expression.Expression; + /** * The arrow-form {@code switch (selector) { case ... -> ...; }} statement (Java 14+), modelled as a list * of {@link SwitchEntry entries}. The selector is {@link Statement#expression()}; this statement has no diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchStatementOldStyle.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchStatementOldStyle.java index 8e2f1f5562..d581832ce8 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchStatementOldStyle.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/SwitchStatementOldStyle.java @@ -17,29 +17,24 @@ package io.codelaser.maddi.cst.api.statement; -import io.codelaser.maddi.annotation.Independent; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.function.Predicate; +import java.util.stream.Stream; import io.codelaser.maddi.annotation.Fluent; +import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.RecordPattern; -import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.translate.TranslationMap; -import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.DescendMode; -import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.function.Predicate; -import java.util.stream.Stream; - /** * The colon-form {@code switch (selector) { case X: ...; default: ...; }} statement with fall-through. * The selector is {@link Statement#expression()} and the whole body is a single primary diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/TryStatement.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/TryStatement.java index 53c2e09bd4..58b21ca06d 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/TryStatement.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/statement/TryStatement.java @@ -17,18 +17,16 @@ package io.codelaser.maddi.cst.api.statement; -import io.codelaser.maddi.annotation.Independent; +import java.util.List; import io.codelaser.maddi.annotation.Fluent; +import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.element.Element; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.LocalVariable; -import java.util.List; - /** * The {@code try ... catch ... finally} statement, including try-with-resources. The {@code try} body is * the primary {@link Statement#block()}; the {@code catch} clauses are {@link #catchClauses()}, the diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/translate/TranslationMap.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/translate/TranslationMap.java index b1dffbbd17..97e974ede0 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/translate/TranslationMap.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/translate/TranslationMap.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.api.translate; +import java.util.*; +import java.util.function.BiConsumer; +import java.util.function.BinaryOperator; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collector; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.element.Element; @@ -31,13 +38,6 @@ import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.*; -import java.util.function.BiConsumer; -import java.util.function.BinaryOperator; -import java.util.function.Function; -import java.util.function.Supplier; -import java.util.stream.Collector; - public interface TranslationMap { // only called upon change diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/type/ParameterizedType.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/type/ParameterizedType.java index 4df3235903..5048c3ee40 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/type/ParameterizedType.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/type/ParameterizedType.java @@ -17,12 +17,17 @@ package io.codelaser.maddi.cst.api.type; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Stream; import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; -import io.codelaser.maddi.cst.api.info.InfoMap; +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; @@ -31,13 +36,6 @@ import io.codelaser.maddi.cst.api.runtime.Predefined; import io.codelaser.maddi.cst.api.runtime.PredefinedWithoutParameterizedType; -import java.util.HashSet; -import java.util.List; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import java.util.stream.Stream; - public interface ParameterizedType { // Nullability as a first-class dimension of the type (Kotlin String?). Languages that do not track diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/util/ParSeq.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/util/ParSeq.java index 3ef4cfaabe..30b1453b97 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/util/ParSeq.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/util/ParSeq.java @@ -17,8 +17,6 @@ package io.codelaser.maddi.cst.api.util; -import io.codelaser.maddi.cst.api.info.InfoMap; - import java.util.Comparator; import java.util.List; diff --git a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/variable/Variable.java b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/variable/Variable.java index d90ba09bc3..1cfe993eab 100644 --- a/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/variable/Variable.java +++ b/maddi-cst-api/src/main/java/io/codelaser/maddi/cst/api/variable/Variable.java @@ -17,19 +17,17 @@ package io.codelaser.maddi.cst.api.variable; -import io.codelaser.maddi.annotation.Independent; +import java.util.function.Predicate; +import java.util.stream.Stream; +import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.util.OneVariable; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.function.Predicate; -import java.util.stream.Stream; - /** * Base interface for all variable kinds in the CST. *

diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/CompilationUnitImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/CompilationUnitImpl.java index 54ef4ee987..0c871b77f3 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/CompilationUnitImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/CompilationUnitImpl.java @@ -17,9 +17,17 @@ package io.codelaser.maddi.cst.impl.element; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -30,15 +38,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.support.SetOnce; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class CompilationUnitImpl extends ElementImpl implements CompilationUnit { private final URI uri; private final String packageName; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/CompilationUnitStub.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/CompilationUnitStub.java index fd969f01b8..378a079371 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/CompilationUnitStub.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/CompilationUnitStub.java @@ -17,8 +17,12 @@ package io.codelaser.maddi.cst.impl.element; +import java.net.URI; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -27,11 +31,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.support.SetOnce; -import java.net.URI; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class CompilationUnitStub implements CompilationUnit { private final String packageName; private final SetOnce> types = new SetOnce<>(); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/DetailedSourcesImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/DetailedSourcesImpl.java index 2f1aa8079c..7fc32d7391 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/DetailedSourcesImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/DetailedSourcesImpl.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -31,14 +39,6 @@ import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.function.BiConsumer; -import java.util.stream.Stream; - public class DetailedSourcesImpl implements DetailedSources { private final IdentityHashMap identityHashMap; private final IdentityHashMap association; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/ElementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/ElementImpl.java index 81e5e71b96..b8a1d6995e 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/ElementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/ElementImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +import org.jetbrains.annotations.NotNull; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.SingleLineComment; @@ -27,11 +33,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.output.QualificationImpl; import io.codelaser.maddi.cst.impl.variable.DescendModeEnum; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Stream; public abstract class ElementImpl implements Element { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/JavaDocImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/JavaDocImpl.java index f7e3c5b118..bf102f79a5 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/JavaDocImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/JavaDocImpl.java @@ -17,13 +17,20 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; +import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Formatter; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -35,14 +42,6 @@ import io.codelaser.maddi.cst.impl.output.SpaceEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Stream; - /** * Convention: the "comment" string in {@link MultiLineCommentImpl} may hold a {@link JavaDoc#placeholder} for each tag * in this object, which {@link #comment()} replaces by the tag as written. The maddi parser writes them; the openjdk diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/MaddiAnnotationsImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/MaddiAnnotationsImpl.java index e0ea88ccdb..a2a24e85d0 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/MaddiAnnotationsImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/MaddiAnnotationsImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.*; import io.codelaser.maddi.annotation.eventual.BeforeMark; import io.codelaser.maddi.annotation.eventual.Mark; @@ -34,12 +40,6 @@ import io.codelaser.maddi.cst.impl.expression.AnnotationExpressionImpl; import io.codelaser.maddi.cst.impl.info.TypeInfoImpl; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Stream; - public class MaddiAnnotationsImpl { public final static String IMPLIED = "implied"; public final static String ABSENT = "absent"; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/ModuleInfoImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/ModuleInfoImpl.java index bb41fb3841..fd0809b625 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/ModuleInfoImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/ModuleInfoImpl.java @@ -17,10 +17,15 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.info.Access; import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -35,12 +40,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.support.SetOnce; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ModuleInfoImpl extends ElementImpl implements ModuleInfo { private final CompilationUnit compilationUnit; private final String name; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/MultiLineCommentImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/MultiLineCommentImpl.java index 28e48449a7..eb0609f41a 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/MultiLineCommentImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/MultiLineCommentImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.output.Formatter; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -25,12 +31,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.output.*; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class MultiLineCommentImpl implements MultiLineComment { private final String comment; private final Source source; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/RecordPatternImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/RecordPatternImpl.java index 3d4b238776..53bf488f06 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/RecordPatternImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/RecordPatternImpl.java @@ -17,8 +17,11 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -30,10 +33,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class RecordPatternImpl extends ElementImpl implements RecordPattern { private final List comments; private final Source source; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/SingleLineCommentImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/SingleLineCommentImpl.java index 86bec1df63..5cc0f45dc5 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/SingleLineCommentImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/SingleLineCommentImpl.java @@ -17,8 +17,12 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.variable.DescendMode; @@ -28,11 +32,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class SingleLineCommentImpl implements SingleLineComment { private final String comment; private final Source source; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/SourceImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/SourceImpl.java index 1d167e4706..2336448374 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/SourceImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/element/SourceImpl.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.impl.element; +import java.util.Objects; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; -import java.util.Objects; - /* we must be a bit memory-conscious: no unnecessary fields because there may be millions of elements */ diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AndImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AndImpl.java index aa34427c75..eef943728c 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AndImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AndImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; @@ -25,7 +31,6 @@ import io.codelaser.maddi.cst.api.expression.And; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -41,12 +46,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.util.ListUtil; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class AndImpl extends ExpressionImpl implements And { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AnnotationExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AnnotationExpressionImpl.java index 943bfdaa04..23df6059ef 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AnnotationExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AnnotationExpressionImpl.java @@ -17,9 +17,16 @@ package io.codelaser.maddi.cst.impl.expression; +import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -35,14 +42,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.ParameterizedTypeImpl; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - -import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT; - public class AnnotationExpressionImpl extends ExpressionImpl implements AnnotationExpression { private final TypeInfo typeInfo; private final List keyValuePairs; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ArrayInitializerImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ArrayInitializerImpl.java index 3bc92559d9..e901b2438d 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ArrayInitializerImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ArrayInitializerImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -24,7 +29,6 @@ import io.codelaser.maddi.cst.api.expression.ArrayInitializer; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -40,11 +44,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.util.ListUtil; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ArrayInitializerImpl extends ExpressionImpl implements ArrayInitializer { private final ParameterizedType commonType; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ArrayLengthImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ArrayLengthImpl.java index 13e8b5c4f4..55e300bb3a 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ArrayLengthImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ArrayLengthImpl.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -24,7 +28,6 @@ import io.codelaser.maddi.cst.api.expression.ArrayLength; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -40,10 +43,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ArrayLengthImpl extends ExpressionImpl implements ArrayLength { private final Expression scope; private final ParameterizedType intPt; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AssignmentImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AssignmentImpl.java index d9c93a3257..87c35cc6a7 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AssignmentImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/AssignmentImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -25,7 +30,6 @@ import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.VariableExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -40,11 +44,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class AssignmentImpl extends ExpressionImpl implements Assignment { private final VariableExpression target; private final Expression value; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BinaryOperatorImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BinaryOperatorImpl.java index e5272f5513..d6b09fe3cf 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BinaryOperatorImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BinaryOperatorImpl.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -25,7 +33,6 @@ import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.GreaterThanZero; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -39,14 +46,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Collectors; -import java.util.stream.Stream; - public class BinaryOperatorImpl extends ExpressionImpl implements BinaryOperator { protected final MethodInfo operator; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BitwiseNegationImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BitwiseNegationImpl.java index 1d5e554dec..3fb4c8ac1d 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BitwiseNegationImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BitwiseNegationImpl.java @@ -17,18 +17,17 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.BitwiseNegation; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.util.IntUtil; -import java.util.List; - public class BitwiseNegationImpl extends UnaryOperatorImpl implements BitwiseNegation { public BitwiseNegationImpl(List comments, Source source, MethodInfo operator, Precedence precedence, Expression expression) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BooleanConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BooleanConstantImpl.java index 86840394a9..79f7a86855 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BooleanConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/BooleanConstantImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.BooleanConstant; @@ -29,8 +31,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; - public class BooleanConstantImpl extends ConstantExpressionImpl implements BooleanConstant { private final ParameterizedType booleanPt; private final boolean constant; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ByteConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ByteConstantImpl.java index f4a99df402..be5c30a06a 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ByteConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ByteConstantImpl.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.ByteConstant; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.IntConstant; import io.codelaser.maddi.cst.api.expression.Numeric; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -31,8 +32,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; - public class ByteConstantImpl extends ConstantExpressionImpl implements Numeric, ByteConstant { private final byte value; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CastImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CastImpl.java index 8c446dbc90..e74332b7fc 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CastImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CastImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -24,7 +29,6 @@ import io.codelaser.maddi.cst.api.expression.Cast; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -39,11 +43,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class CastImpl extends ExpressionImpl implements Cast { private final Expression expression; private final ParameterizedType parameterizedType; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CharConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CharConstantImpl.java index 3eab24501f..83b45ad3ef 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CharConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CharConstantImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.CharConstant; @@ -29,8 +31,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; - public class CharConstantImpl extends ConstantExpressionImpl implements CharConstant { private final char constant; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ClassExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ClassExpressionImpl.java index 2c0c9cb08b..4ea4945534 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ClassExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ClassExpressionImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -35,11 +40,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ClassExpressionImpl extends ConstantExpressionImpl implements ClassExpression { public final ParameterizedType parameterizedType; // String.class -> String public final ParameterizedType classType; // String.class -> Class diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CommaExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CommaExpressionImpl.java index c9ae1fb80a..dcf6ac1ffb 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CommaExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/CommaExpressionImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -24,7 +29,6 @@ import io.codelaser.maddi.cst.api.expression.CommaExpression; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -40,11 +44,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.util.ListUtil; -import java.util.ArrayList; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class CommaExpressionImpl extends ExpressionImpl implements CommaExpression { private final List expressions; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ConstantExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ConstantExpressionImpl.java index d1f8685e12..cc69990c36 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ConstantExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ConstantExpressionImpl.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -29,10 +33,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.expression.util.PrecedenceEnum; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public abstract class ConstantExpressionImpl extends ExpressionImpl implements ConstantExpression { protected ConstantExpressionImpl(List comments, Source source, int complexity) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ConstructorCallImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ConstructorCallImpl.java index 4c980eeb8c..be7a08b590 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ConstructorCallImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ConstructorCallImpl.java @@ -17,7 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.impl.type.ParameterizedTypePrinter; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.element.*; @@ -25,7 +29,6 @@ import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -44,13 +47,9 @@ import io.codelaser.maddi.cst.impl.expression.util.PrecedenceEnum; import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.DiamondEnum; +import io.codelaser.maddi.cst.impl.type.ParameterizedTypePrinter; import io.codelaser.maddi.util.ListUtil; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ConstructorCallImpl extends ExpressionImpl implements ConstructorCall { private final MethodInfo constructor; private final Diamond diamond; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/DivideImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/DivideImpl.java index c63bb32a41..ddd4963d4e 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/DivideImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/DivideImpl.java @@ -17,19 +17,18 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Divide; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - public class DivideImpl extends BinaryOperatorImpl implements Divide { public DivideImpl(List comments, Source source, MethodInfo operator, Precedence precedence, diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/DoubleConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/DoubleConstantImpl.java index ad14a79230..fad6e1d3d9 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/DoubleConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/DoubleConstantImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.DoubleConstant; @@ -32,8 +34,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.util.IntUtil; -import java.util.List; - public class DoubleConstantImpl extends ConstantExpressionImpl implements Numeric, DoubleConstant { private final double value; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EmptyExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EmptyExpressionImpl.java index e5150e42fe..8d5f82c457 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EmptyExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EmptyExpressionImpl.java @@ -17,13 +17,16 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.EmptyExpression; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -38,10 +41,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class EmptyExpressionImpl extends ExpressionImpl implements EmptyExpression { public static final String EMPTY_EXPRESSION = ""; public static final String DEFAULT_EXPRESSION = ""; // negation of the disjunction of all earlier conditions diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EnclosedExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EnclosedExpressionImpl.java index 2f5de965d0..4fd9e1eaad 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EnclosedExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EnclosedExpressionImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -24,7 +29,6 @@ import io.codelaser.maddi.cst.api.expression.EnclosedExpression; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -37,11 +41,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class EnclosedExpressionImpl extends ExpressionImpl implements EnclosedExpression { private final Expression inner; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EqualsImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EqualsImpl.java index 57eebcd625..30310efac4 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EqualsImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/EqualsImpl.java @@ -17,20 +17,19 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Equals; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - public class EqualsImpl extends BinaryOperatorImpl implements Equals { public EqualsImpl(List comments, Source source, MethodInfo operator, Precedence precedence, diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ExpressionImpl.java index 3f4d1a3117..fe4601f9be 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ExpressionImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; @@ -29,8 +31,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; - public abstract class ExpressionImpl extends ElementImpl implements Expression { private final int complexity; private final Source source; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/FloatConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/FloatConstantImpl.java index 2d1e094ec5..62477d0b27 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/FloatConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/FloatConstantImpl.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.FloatConstant; -import io.codelaser.maddi.cst.api.expression.IntConstant; import io.codelaser.maddi.cst.api.expression.Numeric; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -31,8 +32,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; - public class FloatConstantImpl extends ConstantExpressionImpl implements Numeric, FloatConstant { private final float value; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/GreaterThanZeroImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/GreaterThanZeroImpl.java index b07d8e1eb8..0699fed868 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/GreaterThanZeroImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/GreaterThanZeroImpl.java @@ -17,12 +17,16 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -41,11 +45,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.util.IntUtil; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class GreaterThanZeroImpl extends ExpressionImpl implements GreaterThanZero { private final Expression expression; private final boolean allowEquals; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/InlineConditionalImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/InlineConditionalImpl.java index 8effbbcb7d..5bb5d81119 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/InlineConditionalImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/InlineConditionalImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -25,7 +30,6 @@ import io.codelaser.maddi.cst.api.expression.InlineConditional; import io.codelaser.maddi.cst.api.expression.Negation; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -40,11 +44,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class InlineConditionalImpl extends ExpressionImpl implements InlineConditional { private final Expression condition; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/InstanceOfImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/InstanceOfImpl.java index 9115b10d4b..fd2cb46c47 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/InstanceOfImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/InstanceOfImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.element.*; @@ -24,7 +29,6 @@ import io.codelaser.maddi.cst.api.expression.InstanceOf; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.VariableExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -41,11 +45,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class InstanceOfImpl extends ExpressionImpl implements InstanceOf { private final Expression expression; private final ParameterizedType testType; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/IntConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/IntConstantImpl.java index 7cad4f0b40..8426a2b2ee 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/IntConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/IntConstantImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; @@ -30,8 +32,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; - public class IntConstantImpl extends ConstantExpressionImpl implements Numeric, IntConstant { private final int value; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/LambdaImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/LambdaImpl.java index 4b84f51a1a..993a037846 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/LambdaImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/LambdaImpl.java @@ -17,15 +17,18 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; -import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -48,10 +51,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class LambdaImpl extends ExpressionImpl implements Lambda { private final MethodInfo methodInfo; private final List outputVariants; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/LongConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/LongConstantImpl.java index 8fb52d905f..1118dfa634 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/LongConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/LongConstantImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; @@ -31,8 +33,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; - public class LongConstantImpl extends ConstantExpressionImpl implements Numeric, LongConstant { private final long value; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/MethodCallImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/MethodCallImpl.java index abe3c29cc6..7d95c3eccc 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/MethodCallImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/MethodCallImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.element.Comment; @@ -24,7 +29,6 @@ import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -44,11 +48,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class MethodCallImpl extends ExpressionImpl implements MethodCall { private final Expression object; private final boolean objectIsImplicit; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/MethodReferenceImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/MethodReferenceImpl.java index 661aebe34b..124cc16e35 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/MethodReferenceImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/MethodReferenceImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -24,14 +30,12 @@ import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodReference; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; +import io.codelaser.maddi.cst.api.expression.TypeExpression; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.translate.TranslationMap; -import io.codelaser.maddi.cst.api.expression.TypeExpression; -import io.codelaser.maddi.cst.impl.type.DiamondEnum; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.DescendMode; import io.codelaser.maddi.cst.api.variable.Variable; @@ -42,12 +46,7 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; +import io.codelaser.maddi.cst.impl.type.DiamondEnum; public class MethodReferenceImpl extends ExpressionImpl implements MethodReference { private final ParameterizedType parameterizedType; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/NegationImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/NegationImpl.java index 98720481c1..d1bbca3ec5 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/NegationImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/NegationImpl.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Equals; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Negation; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -32,8 +33,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; - public class NegationImpl extends UnaryOperatorImpl implements Negation { public NegationImpl(MethodInfo operator, Precedence precedence, Expression expression) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/NullConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/NullConstantImpl.java index d791ecb9e1..f802f98e6e 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/NullConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/NullConstantImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; @@ -28,8 +30,6 @@ import io.codelaser.maddi.cst.impl.output.KeywordImpl; import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; -import java.util.List; - public class NullConstantImpl extends ConstantExpressionImpl implements NullConstant { private final ParameterizedType parameterizedType; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/OrImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/OrImpl.java index a0f0685dba..a47f0faa1a 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/OrImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/OrImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; @@ -25,7 +31,6 @@ import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Or; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -41,12 +46,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.util.ListUtil; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class OrImpl extends ExpressionImpl implements Or { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ProductImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ProductImpl.java index 9aad2503bf..8d36349e09 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ProductImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ProductImpl.java @@ -17,20 +17,19 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.Product; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - public class ProductImpl extends BinaryOperatorImpl implements Product { public ProductImpl(Runtime runtime, Expression lhs, Expression rhs) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/RemainderImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/RemainderImpl.java index 238616e6e2..3f08f5a328 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/RemainderImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/RemainderImpl.java @@ -17,20 +17,18 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.api.expression.Divide; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.Remainder; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - public class RemainderImpl extends BinaryOperatorImpl implements Remainder { public RemainderImpl(List comments, Source source, MethodInfo operator, Precedence precedence, diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ShortConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ShortConstantImpl.java index 83e52a5f6b..cd2780cb0b 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ShortConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/ShortConstantImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; @@ -30,8 +32,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; - public class ShortConstantImpl extends ConstantExpressionImpl implements Numeric, ShortConstant { private final short value; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/StringConcatImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/StringConcatImpl.java index a61850ad2c..09e5ea407e 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/StringConcatImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/StringConcatImpl.java @@ -17,22 +17,19 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.StringConcat; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.runtime.Factory; import io.codelaser.maddi.cst.api.runtime.Predefined; -import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.impl.expression.util.PrecedenceEnum; -import java.util.List; - public class StringConcatImpl extends BinaryOperatorImpl implements StringConcat { public StringConcatImpl(List comments, Source source, MethodInfo operator, Precedence precedence, Expression lhs, Expression rhs, ParameterizedType parameterizedType) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/StringConstantImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/StringConstantImpl.java index 679d0718c3..965b3d2cd8 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/StringConstantImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/StringConstantImpl.java @@ -17,6 +17,9 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; @@ -30,9 +33,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.util.StringUtil; -import java.util.List; -import java.util.Objects; - public class StringConstantImpl extends ConstantExpressionImpl implements StringConstant { private final ParameterizedType stringPt; private final String constant; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/SumImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/SumImpl.java index 3eb6672c43..93dca990ec 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/SumImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/SumImpl.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -32,8 +33,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; - public class SumImpl extends BinaryOperatorImpl implements Sum { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/SwitchExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/SwitchExpressionImpl.java index 26f7f8bdbf..0dd27e80f8 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/SwitchExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/SwitchExpressionImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -24,7 +30,6 @@ import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.SwitchExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -42,12 +47,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class SwitchExpressionImpl extends ExpressionImpl implements SwitchExpression { private final Expression selector; private final List entries; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/TextBlockImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/TextBlockImpl.java index 0f6b798ef3..3b0c1e079b 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/TextBlockImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/TextBlockImpl.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; @@ -28,8 +30,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; - public class TextBlockImpl extends StringConstantImpl implements TextBlock { private final TextBlockFormatting textBlockFormatting; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/TypeExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/TypeExpressionImpl.java index f952cbccff..438ecccf9d 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/TypeExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/TypeExpressionImpl.java @@ -17,11 +17,17 @@ package io.codelaser.maddi.cst.impl.expression; +import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT; + +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.TypeExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -37,13 +43,6 @@ import io.codelaser.maddi.cst.impl.expression.util.PrecedenceEnum; import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - -import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT; - public class TypeExpressionImpl extends ExpressionImpl implements TypeExpression { public final ParameterizedType parameterizedType; public final Diamond diamond; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/UnaryOperatorImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/UnaryOperatorImpl.java index f97811785d..d27130bc44 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/UnaryOperatorImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/UnaryOperatorImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.element.Comment; @@ -26,7 +31,6 @@ import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.UnaryOperator; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -39,11 +43,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class UnaryOperatorImpl extends ExpressionImpl implements UnaryOperator { public final Expression expression; public final Precedence precedence; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/VariableExpressionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/VariableExpressionImpl.java index ae87b271c1..413b062344 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/VariableExpressionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/VariableExpressionImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -24,7 +29,6 @@ import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; import io.codelaser.maddi.cst.api.expression.VariableExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -39,11 +43,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class VariableExpressionImpl extends ExpressionImpl implements VariableExpression { private final Variable variable; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalAnd.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalAnd.java index 465ea3298d..8623f3b40e 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalAnd.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalAnd.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.impl.expression.eval; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.variable.Variable; @@ -26,12 +33,6 @@ import io.codelaser.maddi.cst.impl.expression.util.InequalitySolver; import io.codelaser.maddi.cst.impl.expression.util.LhsRhs; import io.codelaser.maddi.util.IntUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; public class EvalAnd { private static final Logger LOGGER = LoggerFactory.getLogger(EvalAnd.class); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalBoolean.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalBoolean.java index 629880191d..81e698772b 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalBoolean.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalBoolean.java @@ -17,12 +17,6 @@ package io.codelaser.maddi.cst.impl.expression.eval; -import io.codelaser.maddi.cst.api.expression.And; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.Negation; -import io.codelaser.maddi.cst.api.expression.Or; -import io.codelaser.maddi.cst.api.runtime.Runtime; - import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -30,6 +24,12 @@ import java.util.Set; import java.util.stream.Collectors; +import io.codelaser.maddi.cst.api.expression.And; +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.api.expression.Negation; +import io.codelaser.maddi.cst.api.expression.Or; +import io.codelaser.maddi.cst.api.runtime.Runtime; + public class EvalBoolean { private final Runtime runtime; private final EvalNegation evalNegation; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalConstant.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalConstant.java index 1f3185becb..d4d8324e42 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalConstant.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalConstant.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.impl.expression.eval; +import java.util.Objects; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.util.IntUtil; -import java.util.Objects; - public class EvalConstant { private final Runtime runtime; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalDivide.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalDivide.java index fc5ff97e5a..7cfbcfb0f6 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalDivide.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalDivide.java @@ -23,7 +23,6 @@ import io.codelaser.maddi.cst.api.expression.Numeric; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.impl.expression.DivideImpl; -import io.codelaser.maddi.cst.impl.expression.IntConstantImpl; public class EvalDivide { private final Runtime runtime; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalEquals.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalEquals.java index adc5062274..8b0dc717a5 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalEquals.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalEquals.java @@ -17,15 +17,14 @@ package io.codelaser.maddi.cst.impl.expression.eval; -import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.expression.EqualsImpl; - import java.util.Arrays; import java.util.List; import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.expression.*; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.expression.EqualsImpl; + public class EvalEquals { private final Runtime runtime; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalInequality.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalInequality.java index e91ba40ae9..817be88d53 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalInequality.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalInequality.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.impl.expression.eval; +import java.util.Arrays; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.util.IntUtil; -import java.util.Arrays; - public class EvalInequality { private final Runtime runtime; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalInlineConditional.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalInlineConditional.java index 2f49141f60..b5cba64fee 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalInlineConditional.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalInlineConditional.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.impl.expression.eval; +import java.util.concurrent.atomic.AtomicBoolean; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.expression.util.LhsRhs; -import java.util.concurrent.atomic.AtomicBoolean; - public class EvalInlineConditional { private final Runtime runtime; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalNegation.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalNegation.java index ab030e93c6..e6accc12ab 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalNegation.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalNegation.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.expression.eval; +import java.util.HashMap; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.expression.*; @@ -25,10 +30,6 @@ import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.impl.expression.NegationImpl; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; - public class EvalNegation { private final Runtime runtime; private final EvalOptions evalOptions; @@ -74,8 +75,8 @@ The screen sits on the PUT, not the GET, so the hit path stays O(1). That is sou // scale; the degraded-result guard above keeps the memoized values canonical, so the mutation is // observationally invisible. The last never-forms holdout of the eventual cluster (2026-08-01). @IgnoreModifications - private final java.util.concurrent.ConcurrentHashMap negationCache = - new java.util.concurrent.ConcurrentHashMap<>(); + private final ConcurrentHashMap negationCache = + new ConcurrentHashMap<>(); private boolean mentionsLocalVariable(Expression v) { return v.variables(runtime.descendModeYes()).anyMatch(x -> x instanceof LocalVariable); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalOr.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalOr.java index 22f3a360cd..0d2e58f26e 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalOr.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalOr.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.cst.impl.expression.eval; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.impl.expression.OrImpl; import io.codelaser.maddi.cst.impl.expression.util.AndOrSorter; import io.codelaser.maddi.util.IntUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; public class EvalOr { private static final Logger LOGGER = LoggerFactory.getLogger(EvalOr.class); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalProduct.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalProduct.java index 7122c88de4..8042a22546 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalProduct.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalProduct.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.cst.impl.expression.eval; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Product; import io.codelaser.maddi.cst.api.expression.Sum; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.impl.expression.ProductImpl; -import java.util.stream.Stream; - public class EvalProduct { private final Runtime runtime; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalRemainder.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalRemainder.java index 9b53a2f4b2..0ab6a5880b 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalRemainder.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalRemainder.java @@ -21,7 +21,6 @@ import io.codelaser.maddi.cst.api.expression.IntConstant; import io.codelaser.maddi.cst.api.expression.Numeric; import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.expression.DivideImpl; import io.codelaser.maddi.cst.impl.expression.RemainderImpl; public class EvalRemainder { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalSum.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalSum.java index 8d039b4d6b..76d783c576 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalSum.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/eval/EvalSum.java @@ -17,16 +17,16 @@ package io.codelaser.maddi.cst.impl.expression.eval; -import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.expression.SumImpl; - import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.expression.*; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.expression.SumImpl; + public class EvalSum { private final Runtime runtime; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/AndOrSorter.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/AndOrSorter.java index a1f96ce33b..6642044405 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/AndOrSorter.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/AndOrSorter.java @@ -18,15 +18,15 @@ package io.codelaser.maddi.cst.impl.expression.util; +import java.util.*; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.expression.VariableExpressionImpl; import io.codelaser.maddi.cst.impl.expression.eval.EvalSwitches; import io.codelaser.maddi.cst.impl.variable.DescendModeEnum; -import java.util.*; -import java.util.stream.Collectors; - /* Full sorting of clauses in an "And" or "Or" is not allowed; we want, e.g., in != null before in.isEmpty() diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/ExpressionComparator.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/ExpressionComparator.java index e9304811dc..32d57272a1 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/ExpressionComparator.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/ExpressionComparator.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.cst.impl.expression.util; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.ExpressionWrapper; +import java.util.Comparator; +import java.util.IdentityHashMap; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Comparator; -import java.util.IdentityHashMap; +import io.codelaser.maddi.annotation.rare.IgnoreModifications; +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.api.expression.ExpressionWrapper; public class ExpressionComparator implements Comparator { private static final Logger LOGGER = LoggerFactory.getLogger(ExpressionComparator.class); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/ExtractComponentsOfTooComplex.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/ExtractComponentsOfTooComplex.java index 06846088df..15bb9b710f 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/ExtractComponentsOfTooComplex.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/ExtractComponentsOfTooComplex.java @@ -18,15 +18,15 @@ package io.codelaser.maddi.cst.impl.expression.util; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Predicate; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.HashSet; -import java.util.Set; -import java.util.function.Predicate; - public class ExtractComponentsOfTooComplex implements Predicate { final Set expressions = new HashSet<>(); final Set variablesToIgnore = new HashSet<>(); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/InequalityHelper.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/InequalityHelper.java index 4cf84cfe15..847b571667 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/InequalityHelper.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/InequalityHelper.java @@ -18,12 +18,12 @@ package io.codelaser.maddi.cst.impl.expression.util; -import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.expression.util.OneVariable; - import java.util.ArrayList; import java.util.List; +import io.codelaser.maddi.cst.api.expression.*; +import io.codelaser.maddi.cst.api.expression.util.OneVariable; + public class InequalityHelper { private record Term(double a, OneVariable v) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/InequalitySolver.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/InequalitySolver.java index 08820c0807..80c49870bd 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/InequalitySolver.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/InequalitySolver.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.impl.expression.util; +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.expression.util.OneVariable; import io.codelaser.maddi.cst.api.runtime.Runtime; -import java.util.*; -import java.util.concurrent.atomic.AtomicBoolean; - /* very simple inequality solver diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/Interval.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/Interval.java index 436e940fe2..0e258c039b 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/Interval.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/Interval.java @@ -18,11 +18,11 @@ package io.codelaser.maddi.cst.impl.expression.util; +import java.util.List; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.GreaterThanZero; -import java.util.List; - public record Interval(double left, boolean leftIncluded, double right, boolean rightIncluded) { public Interval { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LhsRhs.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LhsRhs.java index 6d1d7ad88d..53521988c8 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LhsRhs.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LhsRhs.java @@ -18,13 +18,13 @@ package io.codelaser.maddi.cst.impl.expression.util; +import java.util.List; + import io.codelaser.maddi.cst.api.expression.And; import io.codelaser.maddi.cst.api.expression.Equals; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; -import java.util.List; - public record LhsRhs(Expression lhs, Expression rhs) { public static List extractEqualities(Expression e) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LinearInequalityInOneVariable.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LinearInequalityInOneVariable.java index 46f43add2a..5475ce2046 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LinearInequalityInOneVariable.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LinearInequalityInOneVariable.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.impl.expression.util; +import java.util.List; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.util.OneVariable; -import java.util.List; - /* av + b >= 0 or av + b > 0 (we're not using x because IntelliJ complains passing y onto x) diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LinearInequalityInTwoVariables.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LinearInequalityInTwoVariables.java index 6cce63db29..b5f67d3e51 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LinearInequalityInTwoVariables.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/expression/util/LinearInequalityInTwoVariables.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.impl.expression.util; +import java.util.List; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.util.OneVariable; -import java.util.List; - public record LinearInequalityInTwoVariables(double a, OneVariable x, double b, diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/CompilationUnitPrinterImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/CompilationUnitPrinterImpl.java index 899e08e319..d8bfa03e9b 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/CompilationUnitPrinterImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/CompilationUnitPrinterImpl.java @@ -17,9 +17,11 @@ package io.codelaser.maddi.cst.impl.info; -import io.codelaser.maddi.cst.api.element.ModuleInfo; +import java.util.List; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.ImportStatement; +import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.CompilationUnitPrinter; import io.codelaser.maddi.cst.api.info.ImportComputer; @@ -29,8 +31,6 @@ import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.impl.output.*; -import java.util.List; - public record CompilationUnitPrinterImpl(CompilationUnit compilationUnit, boolean formatter2) implements CompilationUnitPrinter { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ComputeMethodOverridesImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ComputeMethodOverridesImpl.java index a63ad29117..c21ecd1f51 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ComputeMethodOverridesImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ComputeMethodOverridesImpl.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.cst.impl.info; -import io.codelaser.maddi.cst.api.info.*; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.api.type.NamedType; -import io.codelaser.maddi.cst.api.type.ParameterizedType; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Stream; + import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.info.*; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.api.type.NamedType; +import io.codelaser.maddi.cst.api.type.ParameterizedType; public class ComputeMethodOverridesImpl implements ComputeMethodOverrides { private static final Logger LOGGER = LoggerFactory.getLogger(ComputeMethodOverridesImpl.class); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInfoImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInfoImpl.java index 32c0b337b6..2126e1dcb9 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInfoImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInfoImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.analysis.Value; @@ -24,7 +30,6 @@ import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.*; - import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.translate.TranslationMap; @@ -36,12 +41,6 @@ import io.codelaser.maddi.cst.impl.analysis.ValueImpl; import io.codelaser.maddi.support.EventuallyFinal; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class FieldInfoImpl extends InfoImpl implements FieldInfo { private final String name; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInspection.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInspection.java index 1434933c46..0e4dfb5bd0 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInspection.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInspection.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.Set; + import io.codelaser.maddi.annotation.Independent; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.FieldModifier; -import java.util.Set; - public interface FieldInspection extends Inspection { /* diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInspectionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInspectionImpl.java index c98570bef2..c226f53a17 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInspectionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldInspectionImpl.java @@ -18,6 +18,9 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.HashSet; +import java.util.Set; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.expression.Expression; @@ -27,9 +30,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.impl.analysis.PropertyValueMapImpl; -import java.util.HashSet; -import java.util.Set; - public class FieldInspectionImpl extends InspectionImpl implements FieldInspection { private final Set fieldModifiers; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldPrinterImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldPrinterImpl.java index 6bc85caf70..ce0eb7b868 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldPrinterImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/FieldPrinterImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -30,11 +35,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.stream.Stream; - public class FieldPrinterImpl implements FieldPrinter { private final boolean formatter2; private final FieldInfo fieldInfo; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ImportComputerImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ImportComputerImpl.java index a1edd67580..e5bb4d9bdb 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ImportComputerImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ImportComputerImpl.java @@ -17,22 +17,23 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.ImportStatement; import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.output.Qualification; +import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.impl.output.QualificationImpl; import io.codelaser.maddi.cst.impl.output.TypeNameImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; public class ImportComputerImpl implements ImportComputer { private static final Logger LOGGER = LoggerFactory.getLogger(ImportComputerImpl.class); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InfoImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InfoImpl.java index ded1514bec..833429b316 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InfoImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InfoImpl.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.stream.Stream; + +import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.variable.Variable; +import io.codelaser.maddi.cst.impl.analysis.ConsumptionEdgeRecorder; import io.codelaser.maddi.cst.impl.analysis.PropertyImpl; import io.codelaser.maddi.cst.impl.analysis.PropertyValueMapImpl; import io.codelaser.maddi.cst.impl.analysis.ValueImpl; import io.codelaser.maddi.cst.impl.variable.DescendModeEnum; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; - -import java.util.stream.Stream; public abstract class InfoImpl implements Info { @@ -51,8 +52,8 @@ public Stream variableStreamDoNotDescend() { @Override public PropertyValueMap analysis() { - if (io.codelaser.maddi.cst.impl.analysis.ConsumptionEdgeRecorder.ENABLED) { - io.codelaser.maddi.cst.impl.analysis.ConsumptionEdgeRecorder.record(this); + if (ConsumptionEdgeRecorder.ENABLED) { + ConsumptionEdgeRecorder.record(this); } return propertyValueMap; } diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InfoMapImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InfoMapImpl.java index 7fbf267ac4..13d77c60dc 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InfoMapImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InfoMapImpl.java @@ -17,17 +17,19 @@ package io.codelaser.maddi.cst.impl.info; -import io.codelaser.maddi.cst.impl.element.CompilationUnitImpl; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.*; -import io.codelaser.maddi.cst.impl.statement.BlockImpl; - import java.util.HashMap; +import java.util.IdentityHashMap; import java.util.Map; import java.util.Objects; import java.util.Set; +import java.util.function.Supplier; import java.util.stream.Collectors; +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.info.*; +import io.codelaser.maddi.cst.impl.element.CompilationUnitImpl; +import io.codelaser.maddi.cst.impl.statement.BlockImpl; + /* BASIC RULE OF REWIRING: the fqn stays the same, as does the (name of the) source set. Conceptually the object stays the same. @@ -38,7 +40,7 @@ public class InfoMapImpl implements InfoMap { private final Map> setOfPrimaryTypesToRewire; private final Set toRewire; // see InfoMapView#rewired: one copy per original object, so that identity-keyed DetailedSources find it - private final java.util.IdentityHashMap rewiredObjects = new java.util.IdentityHashMap<>(); + private final IdentityHashMap rewiredObjects = new IdentityHashMap<>(); private final boolean carryIntrinsic; public InfoMapImpl(Set setOfPrimaryTypesToRewire) { @@ -133,7 +135,7 @@ public void put(ParameterInfo original, ParameterInfo rewired) { @SuppressWarnings("unchecked") @Override - public T rewired(T original, java.util.function.Supplier rewire) { + public T rewired(T original, Supplier rewire) { Object done = rewiredObjects.get(original); if (done != null) return (T) done; T result = rewire.get(); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/Inspection.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/Inspection.java index 74c354a32c..5f6d714bf7 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/Inspection.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/Inspection.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.List; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.JavaDoc; @@ -24,8 +26,6 @@ import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.Access; -import java.util.List; - public interface Inspection { Access access(); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InspectionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InspectionImpl.java index 904dc6b94e..179d083eda 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InspectionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/InspectionImpl.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.JavaDoc; @@ -25,11 +29,6 @@ import io.codelaser.maddi.cst.api.info.Access; import io.codelaser.maddi.cst.api.info.Info; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Stream; - public abstract class InspectionImpl implements Inspection { private final Access access; private final List comments; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInfoImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInfoImpl.java index 4f953caa95..83c69f34f1 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInfoImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInfoImpl.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.element.*; @@ -36,14 +44,6 @@ import io.codelaser.maddi.cst.impl.translate.TranslationMapImpl; import io.codelaser.maddi.support.EventuallyFinal; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Collectors; -import java.util.stream.Stream; - public class MethodInfoImpl extends InfoImpl implements MethodInfo { public enum MethodTypeEnum implements MethodType { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInspection.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInspection.java index 69841e809d..2a570ef321 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInspection.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInspection.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.List; +import java.util.Set; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.MethodModifier; import io.codelaser.maddi.cst.api.info.ParameterInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.api.info.TypeParameter; - -import java.util.List; -import java.util.Set; public interface MethodInspection extends Inspection { List exceptionTypes(); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInspectionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInspectionImpl.java index dc26989cf3..01812a2e1a 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInspectionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodInspectionImpl.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.*; +import java.util.stream.Collectors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.info.*; import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.impl.variable.LocalVariableImpl; import io.codelaser.maddi.support.SetOnce; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; -import java.util.stream.Collectors; public class MethodInspectionImpl extends InspectionImpl implements MethodInspection { private static final Logger LOGGER = LoggerFactory.getLogger(MethodInspectionImpl.class); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodPrinterImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodPrinterImpl.java index cfea4513e3..35fcde6e1e 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodPrinterImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/MethodPrinterImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; @@ -30,12 +36,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; - /* we allow for a different type when translating types, see TypePrinter, TypeInfoImpl.translate()... where method ownership is not changed correctly. diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ParameterInfoImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ParameterInfoImpl.java index c01bc9668e..f134e798d6 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ParameterInfoImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ParameterInfoImpl.java @@ -17,7 +17,13 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotModified; +import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.element.*; @@ -29,6 +35,7 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.DescendMode; import io.codelaser.maddi.cst.api.variable.Variable; +import io.codelaser.maddi.cst.impl.analysis.ConsumptionEdgeRecorder; import io.codelaser.maddi.cst.impl.analysis.PropertyImpl; import io.codelaser.maddi.cst.impl.analysis.PropertyValueMapImpl; import io.codelaser.maddi.cst.impl.analysis.ValueImpl; @@ -37,12 +44,6 @@ import io.codelaser.maddi.cst.impl.variable.DescendModeEnum; import io.codelaser.maddi.cst.impl.variable.LocalVariableImpl; import io.codelaser.maddi.support.EventuallyFinal; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; - -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; public class ParameterInfoImpl implements ParameterInfo { private final int index; @@ -252,8 +253,8 @@ public Stream variableStreamDoNotDescend() { @Override public PropertyValueMap analysis() { - if (io.codelaser.maddi.cst.impl.analysis.ConsumptionEdgeRecorder.ENABLED) { - io.codelaser.maddi.cst.impl.analysis.ConsumptionEdgeRecorder.record(this); + if (ConsumptionEdgeRecorder.ENABLED) { + ConsumptionEdgeRecorder.record(this); } return analysis; } diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ParameterInspectionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ParameterInspectionImpl.java index 0d81c7580b..89bf854408 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ParameterInspectionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/ParameterInspectionImpl.java @@ -19,7 +19,6 @@ import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.info.ParameterInfo; public class ParameterInspectionImpl extends InspectionImpl implements ParameterInspection { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInfoImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInfoImpl.java index 303b5549d1..1fef696e32 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInfoImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInfoImpl.java @@ -17,7 +17,15 @@ package io.codelaser.maddi.cst.impl.info; -import io.codelaser.maddi.cst.impl.element.CompilationUnitImpl; +import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT; + +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -33,6 +41,7 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.analysis.PropertyImpl; import io.codelaser.maddi.cst.impl.analysis.ValueImpl; +import io.codelaser.maddi.cst.impl.element.CompilationUnitImpl; import io.codelaser.maddi.cst.impl.element.ElementImpl; import io.codelaser.maddi.cst.impl.translate.TranslationMapImpl; import io.codelaser.maddi.cst.impl.type.ParameterizedTypeImpl; @@ -40,15 +49,6 @@ import io.codelaser.maddi.support.Either; import io.codelaser.maddi.support.EventuallyFinalOnDemand; -import java.util.*; -import java.util.function.Consumer; -import java.util.function.Predicate; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT; - public class TypeInfoImpl extends InfoImpl implements TypeInfo { public static final String JAVA_LANG_OBJECT = "java.lang.Object"; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInspection.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInspection.java index a73de6478b..91a52943f0 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInspection.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInspection.java @@ -17,16 +17,16 @@ package io.codelaser.maddi.cst.impl.info; -import io.codelaser.maddi.cst.api.element.Comment; -import io.codelaser.maddi.cst.api.info.*; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.api.type.TypeNature; - import java.util.List; import java.util.Set; import java.util.function.Supplier; import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.element.Comment; +import io.codelaser.maddi.cst.api.info.*; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.cst.api.type.TypeNature; + public interface TypeInspection extends Inspection { interface MethodMap { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInspectionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInspectionImpl.java index 0a8075b298..d421ea93cb 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInspectionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeInspectionImpl.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.*; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.info.*; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.type.TypeNature; import io.codelaser.maddi.cst.impl.info.util.MethodMapImpl; -import java.util.*; -import java.util.stream.Stream; - public class TypeInspectionImpl extends InspectionImpl implements TypeInspection { private final Set typeModifiers; private final List methods; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeParameterInspection.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeParameterInspection.java index d5ee8d2f25..8e9a2c42cf 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeParameterInspection.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeParameterInspection.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.List; + import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.info.Access; import io.codelaser.maddi.cst.api.info.Variance; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; - public interface TypeParameterInspection extends Inspection { List typeBounds(); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeParameterInspectionImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeParameterInspectionImpl.java index cfbfe5f47d..d92c6a67ec 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeParameterInspectionImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypeParameterInspectionImpl.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.ArrayList; +import java.util.List; + import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.info.Variance; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.impl.type.TypeParameterImpl; -import java.util.ArrayList; -import java.util.List; - // Note: we store the bounds as separate types, rather than as an intersection type public class TypeParameterInspectionImpl extends InspectionImpl implements TypeParameterInspection { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypePrinterImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypePrinterImpl.java index 7a3bc2931b..f0d11ade4c 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypePrinterImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/TypePrinterImpl.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.impl.info; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Set; +import java.util.stream.IntStream; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -30,13 +37,6 @@ import io.codelaser.maddi.cst.impl.type.DiamondEnum; import io.codelaser.maddi.cst.impl.variable.ThisImpl; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Set; -import java.util.stream.IntStream; -import java.util.stream.Stream; - public record TypePrinterImpl(TypeInfo typeInfo, boolean formatter2) implements TypePrinter { @Override diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/util/MethodMapImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/util/MethodMapImpl.java index 03c136b7c7..0573ab7baf 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/util/MethodMapImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/info/util/MethodMapImpl.java @@ -1,9 +1,5 @@ package io.codelaser.maddi.cst.impl.info.util; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.impl.info.TypeInspection; -import org.jetbrains.annotations.NotNull; - import java.util.HashMap; import java.util.List; import java.util.Map; @@ -11,6 +7,11 @@ import java.util.function.Supplier; import java.util.stream.Collectors; +import org.jetbrains.annotations.NotNull; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.impl.info.TypeInspection; + /** * Index of a type's methods by name → parameter count → erased-parameter FQNs → method. A fourth level, * keyed by the erased return type, is inserted only when two methods share the same erased parameters diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/BlankLineImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/BlankLineImpl.java index 8c6b20a8ab..23ca0c6caa 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/BlankLineImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/BlankLineImpl.java @@ -18,6 +18,8 @@ package io.codelaser.maddi.cst.impl.output; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -27,8 +29,6 @@ import io.codelaser.maddi.cst.api.output.element.ElementarySpace; import io.codelaser.maddi.cst.api.output.element.Split; -import java.util.List; - /** * The one {@link BlankLine}, and when to add it: when the source has a blank line between two neighbours. */ diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/ElementarySpaceEnum.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/ElementarySpaceEnum.java index 3ad25f6e50..4b19c8660f 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/ElementarySpaceEnum.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/ElementarySpaceEnum.java @@ -17,10 +17,10 @@ package io.codelaser.maddi.cst.impl.output; -import io.codelaser.maddi.cst.api.output.element.ElementarySpace; - import java.util.Objects; +import io.codelaser.maddi.cst.api.output.element.ElementarySpace; + public enum ElementarySpaceEnum implements ElementarySpace { ONE(" "), NICE(" "), NONE(""), RELAXED_NONE(""), NEWLINE("\n"), ; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/GuideImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/GuideImpl.java index da727e09ab..b7cff61ee7 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/GuideImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/GuideImpl.java @@ -18,13 +18,13 @@ package io.codelaser.maddi.cst.impl.output; +import java.util.concurrent.atomic.AtomicInteger; + import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.element.Guide; -import java.util.concurrent.atomic.AtomicInteger; - @ImmutableContainer public record GuideImpl(String name, int index, diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/OutputBuilderImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/OutputBuilderImpl.java index 7b69265370..ce3a0b47df 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/OutputBuilderImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/OutputBuilderImpl.java @@ -18,9 +18,6 @@ package io.codelaser.maddi.cst.impl.output; -import io.codelaser.maddi.cst.api.output.OutputBuilder; -import io.codelaser.maddi.cst.api.output.OutputElement; - import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.BiConsumer; @@ -31,6 +28,9 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.output.OutputBuilder; +import io.codelaser.maddi.cst.api.output.OutputElement; + public class OutputBuilderImpl implements OutputBuilder { private final List list = new LinkedList<>(); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/QualificationImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/QualificationImpl.java index efbab45357..f2b263d713 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/QualificationImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/QualificationImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.output; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -26,11 +31,6 @@ import io.codelaser.maddi.cst.api.variable.This; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - public class QualificationImpl implements Qualification { public static final Qualification FULLY_QUALIFIED_NAMES = new QualificationImpl(false, TypeNameImpl.Required.FQN, null); public static final Qualification DESCRIPTORS = new QualificationImpl(false, TypeNameImpl.Required.DESCRIPTOR, null); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/SpaceEnum.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/SpaceEnum.java index f7bf4f256e..cae59babc6 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/SpaceEnum.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/SpaceEnum.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.impl.output; +import java.util.Objects; + import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.element.ElementarySpace; import io.codelaser.maddi.cst.api.output.element.Space; import io.codelaser.maddi.cst.api.output.element.Split; -import java.util.Objects; - public enum SpaceEnum implements Space { // no space, do not split diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/SymbolEnum.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/SymbolEnum.java index c7321faa8c..4f9d049db8 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/SymbolEnum.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/SymbolEnum.java @@ -17,14 +17,13 @@ package io.codelaser.maddi.cst.impl.output; +import static io.codelaser.maddi.cst.impl.output.SpaceEnum.*; + import io.codelaser.maddi.cst.api.output.FormattingOptions; -import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.element.Space; import io.codelaser.maddi.cst.api.output.element.Symbol; import io.codelaser.maddi.util.StringUtil; -import static io.codelaser.maddi.cst.impl.output.SpaceEnum.*; - public record SymbolEnum(String symbol, Space left, Space right, String constant) implements Symbol { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/TextBlockFormattingImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/TextBlockFormattingImpl.java index d8935e7d5b..1eb28cf5de 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/TextBlockFormattingImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/output/TextBlockFormattingImpl.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.impl.output; -import io.codelaser.maddi.cst.api.output.element.TextBlockFormatting; - import java.util.HashSet; import java.util.Set; +import io.codelaser.maddi.cst.api.output.element.TextBlockFormatting; + public record TextBlockFormattingImpl(Set lineBreaks, boolean optOutWhiteSpaceStripping, boolean trailingClosingQuotes) implements TextBlockFormatting { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/EvalImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/EvalImpl.java index 68cae364c4..ecf5770c31 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/EvalImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/EvalImpl.java @@ -17,17 +17,17 @@ package io.codelaser.maddi.cst.impl.runtime; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.runtime.Eval; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.expression.eval.*; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.stream.Stream; - public class EvalImpl implements Eval { private final EvalProduct evalProduct; private final EvalSum evalSum; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/FactoryImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/FactoryImpl.java index 590b6b28d2..ff3231e241 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/FactoryImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/FactoryImpl.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.impl.runtime; +import java.util.*; +import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collector; + +import org.jetbrains.annotations.Nullable; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.*; @@ -47,13 +55,6 @@ import io.codelaser.maddi.cst.impl.variable.*; import io.codelaser.maddi.support.Either; import io.codelaser.maddi.util.IntUtil; -import org.jetbrains.annotations.Nullable; - -import java.util.*; -import java.util.function.Function; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collector; public class FactoryImpl extends PredefinedImpl implements Factory { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/PredefinedImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/PredefinedImpl.java index 26b21d99d4..b29a43e90a 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/PredefinedImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/PredefinedImpl.java @@ -17,6 +17,9 @@ package io.codelaser.maddi.cst.impl.runtime; +import java.net.URI; +import java.util.*; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -35,9 +38,6 @@ import io.codelaser.maddi.cst.impl.type.IsAssignableFrom2; import io.codelaser.maddi.cst.impl.type.ParameterizedTypeImpl; -import java.net.URI; -import java.util.*; - public class PredefinedImpl implements Predefined { /** * The synthetic source set the primitives and the {@code java.lang} types belong to. diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/RuntimeImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/RuntimeImpl.java index 4722215957..db4698ac3c 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/RuntimeImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/runtime/RuntimeImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.runtime; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.ComputeMethodOverrides; @@ -34,12 +40,6 @@ import io.codelaser.maddi.cst.impl.expression.eval.EvalOptions; import io.codelaser.maddi.cst.impl.info.ComputeMethodOverridesImpl; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Stream; - public class RuntimeImpl extends FactoryImpl implements Runtime { private final Eval eval; private final MaddiAnnotationsImpl maddiAnnotations = new MaddiAnnotationsImpl(); diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/AssertStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/AssertStatementImpl.java index bf2e0aef67..fd76545457 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/AssertStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/AssertStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -38,11 +42,6 @@ import io.codelaser.maddi.cst.impl.output.SpaceEnum; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class AssertStatementImpl extends StatementImpl implements AssertStatement { private final Expression message; private final Expression expression; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BlockImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BlockImpl.java index 8103512aa0..3824a8cd7a 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BlockImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BlockImpl.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.IntStream; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; @@ -25,7 +32,6 @@ import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -40,13 +46,6 @@ import io.codelaser.maddi.cst.impl.output.SpaceEnum; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.IntStream; -import java.util.stream.Stream; - public class BlockImpl extends StatementImpl implements Block { private final List statements; private final List trailingComments; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BreakOrContinueStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BreakOrContinueStatementImpl.java index 8204b7cc8b..347ae01aba 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BreakOrContinueStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BreakOrContinueStatementImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -28,11 +33,6 @@ import io.codelaser.maddi.cst.api.variable.DescendMode; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public abstract class BreakOrContinueStatementImpl extends StatementImpl implements BreakOrContinueStatement { private final String goToLabel; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BreakStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BreakStatementImpl.java index 5196bc8fe1..15e6495441 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BreakStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/BreakStatementImpl.java @@ -17,10 +17,12 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -32,9 +34,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; -import java.util.Objects; - public class BreakStatementImpl extends BreakOrContinueStatementImpl implements BreakStatement { public BreakStatementImpl(List comments, Source source, List annotationExpressions, String label, String goToLabel) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ContinueStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ContinueStatementImpl.java index 97125357c1..5bc8394693 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ContinueStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ContinueStatementImpl.java @@ -17,10 +17,12 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -32,9 +34,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; -import java.util.Objects; - public class ContinueStatementImpl extends BreakOrContinueStatementImpl implements ContinueStatement { public ContinueStatementImpl(List comments, Source source, List annotationExpressions, String label, String goToLabel) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/DoStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/DoStatementImpl.java index 61b8918b6c..2bfcef7c39 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/DoStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/DoStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -36,11 +40,6 @@ import io.codelaser.maddi.cst.impl.output.KeywordImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class DoStatementImpl extends StatementImpl implements DoStatement { private final Expression expression; private final Block block; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/EmptyStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/EmptyStatementImpl.java index a35e193ada..a461ce6b38 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/EmptyStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/EmptyStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -35,11 +39,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class EmptyStatementImpl extends StatementImpl implements EmptyStatement { public EmptyStatementImpl(List comments, Source source, List annotations, String label) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ExplicitConstructorInvocationImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ExplicitConstructorInvocationImpl.java index 731c48df6c..9a57f58f26 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ExplicitConstructorInvocationImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ExplicitConstructorInvocationImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -38,11 +42,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ExplicitConstructorInvocationImpl extends StatementImpl implements ExplicitConstructorInvocation { private final boolean isSuper; private final MethodInfo methodInfo; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ExpressionAsStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ExpressionAsStatementImpl.java index fa04604077..a108c7ad04 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ExpressionAsStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ExpressionAsStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -35,11 +39,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ExpressionAsStatementImpl extends StatementImpl implements ExpressionAsStatement { private final Expression expression; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ForEachStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ForEachStatementImpl.java index 7af6014eb9..cdd18109ad 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ForEachStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ForEachStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -38,11 +42,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ForEachStatementImpl extends StatementImpl implements ForEachStatement { private final LocalVariableCreation initializer; private final Expression expression; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ForStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ForStatementImpl.java index 8b3d2d1388..086a41f1dd 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ForStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ForStatementImpl.java @@ -17,13 +17,19 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -38,13 +44,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Collectors; -import java.util.stream.Stream; - public class ForStatementImpl extends StatementImpl implements ForStatement { private final List initializers; private final List updaters; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/IfElseStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/IfElseStatementImpl.java index d093a0e76e..95f592aa13 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/IfElseStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/IfElseStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -37,11 +41,6 @@ import io.codelaser.maddi.cst.impl.output.KeywordImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class IfElseStatementImpl extends StatementImpl implements IfElseStatement { private final Expression expression; private final Block block; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ImportStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ImportStatementImpl.java index 1fdaaa6fd9..93b420f808 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ImportStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ImportStatementImpl.java @@ -17,8 +17,12 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -32,11 +36,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ImportStatementImpl extends StatementImpl implements ImportStatement { private final String importString; private final boolean isStatic; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/LocalTypeDeclarationImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/LocalTypeDeclarationImpl.java index 8740da0464..e34cb9b93f 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/LocalTypeDeclarationImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/LocalTypeDeclarationImpl.java @@ -17,12 +17,15 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -34,10 +37,6 @@ import io.codelaser.maddi.cst.api.variable.DescendMode; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class LocalTypeDeclarationImpl extends StatementImpl implements LocalTypeDeclaration { private final TypeInfo typeInfo; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/LocalVariableCreationImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/LocalVariableCreationImpl.java index 0a6bf1bd74..2703626f23 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/LocalVariableCreationImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/LocalVariableCreationImpl.java @@ -17,12 +17,15 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.*; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -37,10 +40,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.*; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class LocalVariableCreationImpl extends StatementImpl implements LocalVariableCreation { private final LocalVariable localVariable; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ReturnStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ReturnStatementImpl.java index 2efcfdf2c5..e124f6819c 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ReturnStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ReturnStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -38,11 +42,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ReturnStatementImpl extends StatementImpl implements ReturnStatement { private final Expression expression; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/StatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/StatementImpl.java index 00b0c92a41..fbe149e0c8 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/StatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/StatementImpl.java @@ -17,13 +17,15 @@ package io.codelaser.maddi.cst.impl.statement; -import io.codelaser.maddi.cst.api.info.InfoMapView; +import java.util.List; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.OutputElement; import io.codelaser.maddi.cst.api.output.Qualification; @@ -36,8 +38,6 @@ import io.codelaser.maddi.cst.impl.element.SourceImpl; import io.codelaser.maddi.cst.impl.output.*; -import java.util.List; - public abstract class StatementImpl extends ElementImpl implements Statement { private final List comments; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchEntryImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchEntryImpl.java index 83451991ec..883ecf6f0a 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchEntryImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchEntryImpl.java @@ -17,10 +17,15 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.VariableExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -35,12 +40,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.util.ListUtil; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class SwitchEntryImpl implements SwitchEntry { private final List conditions; private final RecordPattern patternVariable; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchStatementNewStyleImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchStatementNewStyleImpl.java index 388adf03f5..b5b38e92ba 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchStatementNewStyleImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchStatementNewStyleImpl.java @@ -17,13 +17,19 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -39,13 +45,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.util.ZipLists; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class SwitchStatementNewStyleImpl extends StatementImpl implements SwitchStatementNewStyle { private final Expression selector; private final List entries; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchStatementOldStyleImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchStatementOldStyleImpl.java index 681c739b82..48b4f682d9 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchStatementOldStyleImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SwitchStatementOldStyleImpl.java @@ -17,10 +17,13 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.*; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -32,10 +35,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.output.*; -import java.util.*; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class SwitchStatementOldStyleImpl extends StatementImpl implements SwitchStatementOldStyle { private final Expression selector; private final Block block; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SynchronizedStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SynchronizedStatementImpl.java index b6c57327bf..c0874a8852 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SynchronizedStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/SynchronizedStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -36,11 +40,6 @@ import io.codelaser.maddi.cst.impl.output.KeywordImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class SynchronizedStatementImpl extends StatementImpl implements SynchronizedStatement { private final Block block; private final Expression expression; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ThrowStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ThrowStatementImpl.java index c18aac84d5..6180a6c19d 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ThrowStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/ThrowStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -37,11 +41,6 @@ import io.codelaser.maddi.cst.impl.output.SpaceEnum; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class ThrowStatementImpl extends StatementImpl implements ThrowStatement { private final Expression expression; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/TryStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/TryStatementImpl.java index 3b9d4c6e1e..640c56e445 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/TryStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/TryStatementImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.element.Comment; @@ -24,7 +30,6 @@ import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -45,12 +50,6 @@ import io.codelaser.maddi.cst.impl.type.DiamondEnum; import io.codelaser.maddi.util.ZipLists; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class TryStatementImpl extends StatementImpl implements TryStatement { private final Block block; private final Block finallyBlock; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/WhileStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/WhileStatementImpl.java index e2a2930e0e..12fa78a6c1 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/WhileStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/WhileStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -36,11 +40,6 @@ import io.codelaser.maddi.cst.impl.output.KeywordImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class WhileStatementImpl extends StatementImpl implements WhileStatement { private final Expression expression; private final Block block; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/YieldStatementImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/YieldStatementImpl.java index 98565d4b1a..6dbcd4eaec 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/YieldStatementImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/statement/YieldStatementImpl.java @@ -17,13 +17,17 @@ package io.codelaser.maddi.cst.impl.statement; +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -37,11 +41,6 @@ import io.codelaser.maddi.cst.impl.output.SpaceEnum; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class YieldStatementImpl extends StatementImpl implements YieldStatement { private final Expression expression; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/translate/TranslationMapImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/translate/TranslationMapImpl.java index 9844df4d98..703f0f6a3b 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/translate/TranslationMapImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/translate/TranslationMapImpl.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.impl.translate; +import java.util.Collections; +import java.util.HashMap; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -34,12 +42,6 @@ import io.codelaser.maddi.cst.impl.variable.FieldReferenceImpl; import io.codelaser.maddi.cst.impl.variable.ThisImpl; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - public class TranslationMapImpl implements TranslationMap { private final Map variables; @@ -397,7 +399,7 @@ public Variable translateVariableRecursively(Variable variable) { // by identity, for the life of this map; see TranslationMap.translatedLocalVariable private final Map translatedLocalVariables = - java.util.Collections.synchronizedMap(new java.util.IdentityHashMap<>()); + Collections.synchronizedMap(new IdentityHashMap<>()); @Override public LocalVariable translatedLocalVariable(LocalVariable original) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/CommonType.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/CommonType.java index 6d41f0c45b..6c091f5b1d 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/CommonType.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/CommonType.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.cst.impl.type; +import java.util.*; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Predefined; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.*; - public class CommonType { private final Predefined runtime; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/DeclaredNullability.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/DeclaredNullability.java index 0dd01d71bd..ffaf097e57 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/DeclaredNullability.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/DeclaredNullability.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.impl.type; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.function.Function; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -28,10 +33,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.impl.analysis.NullAnnotations; -import java.util.List; -import java.util.Set; -import java.util.function.Function; - /** * What the SOURCE says about nullability: the null annotations written on a declaration and on the type arguments * of its type, read against the {@code @NullMarked} scope the declaration sits in. The answer is the declared type @@ -138,7 +139,7 @@ private ParameterizedType element(ParameterizedType component, List all = new java.util.ArrayList<>(component.annotations()); + ArrayList all = new ArrayList<>(component.annotations()); all.addAll(extra); NullableState state = explicit(all); if (state == null && contentNonNull) state = NullableState.NONNULL; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/IsAssignableFrom.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/IsAssignableFrom.java index 663d05814d..aef1bf299e 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/IsAssignableFrom.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/IsAssignableFrom.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.impl.type; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.IntBinaryOperator; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -26,12 +32,6 @@ import io.codelaser.maddi.cst.api.type.Wildcard; import io.codelaser.maddi.util.ListUtil; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.function.IntBinaryOperator; - public class IsAssignableFrom { private final Predefined runtime; private final ParameterizedType target; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/IsAssignableFrom2.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/IsAssignableFrom2.java index dfc7bfc9b7..fbefd52e1f 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/IsAssignableFrom2.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/IsAssignableFrom2.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.impl.type; +import java.util.HashSet; +import java.util.Set; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Predefined; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.HashSet; -import java.util.Set; - public record IsAssignableFrom2(Predefined runtime) { diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/ParameterizedTypeImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/ParameterizedTypeImpl.java index 394820e17d..8e5b30f793 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/ParameterizedTypeImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/ParameterizedTypeImpl.java @@ -17,11 +17,14 @@ package io.codelaser.maddi.cst.impl.type; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -39,10 +42,6 @@ import io.codelaser.maddi.cst.impl.element.ElementImpl; import io.codelaser.maddi.cst.impl.output.QualificationImpl; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; - public class ParameterizedTypeImpl implements ParameterizedType { public static final ParameterizedType NULL_CONSTANT = new ParameterizedTypeImpl(); public static final ParameterizedType RETURN_TYPE_OF_CONSTRUCTOR = new ParameterizedTypeImpl() { @@ -383,7 +382,7 @@ public Stream typesReferenced(Element.TypeReferenceNature */ private Stream annotationsReferenced() { return annotations.stream() - .map(io.codelaser.maddi.cst.api.expression.AnnotationExpression::typeInfo) + .map(AnnotationExpression::typeInfo) .filter(Objects::nonNull) .map(ti -> new ElementImpl.TypeReference(ti, Element.TypeReferenceNature.EXPLICIT, ti)); } @@ -737,7 +736,7 @@ public static ParameterizedType nestedArgument(ParameterizedType p, Parameterize return WILDCARD_PARAMETERIZED_TYPE; } - private boolean bestOwnTypeParameter(io.codelaser.maddi.cst.api.info.TypeParameter typeParameter) { + private boolean bestOwnTypeParameter(TypeParameter typeParameter) { TypeInfo best = bestTypeInfo(); return best != null && typeParameter.getOwner() != null && typeParameter.getOwner().isLeft() && typeParameter.getOwner().getLeft() == best; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/ParameterizedTypePrinter.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/ParameterizedTypePrinter.java index 709e09f038..ef1d9fb6d6 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/ParameterizedTypePrinter.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/ParameterizedTypePrinter.java @@ -18,10 +18,14 @@ package io.codelaser.maddi.cst.impl.type; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.output.OutputBuilder; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.output.TypeNameRequired; import io.codelaser.maddi.cst.api.type.Diamond; @@ -29,10 +33,6 @@ import io.codelaser.maddi.cst.api.type.Wildcard; import io.codelaser.maddi.cst.impl.output.*; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - public class ParameterizedTypePrinter { /** diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/TypeParameterImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/TypeParameterImpl.java index 34535eaf3c..3177de0e31 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/TypeParameterImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/type/TypeParameterImpl.java @@ -17,7 +17,12 @@ package io.codelaser.maddi.cst.impl.type; +import java.util.*; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotModified; +import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -36,11 +41,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.support.Either; import io.codelaser.maddi.support.EventuallyFinal; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; - -import java.util.*; -import java.util.function.Predicate; -import java.util.stream.Stream; public class TypeParameterImpl extends InfoImpl implements TypeParameter { private final int index; @@ -212,7 +212,7 @@ public List typeBounds() { } @Override - public io.codelaser.maddi.cst.api.info.Variance variance() { + public Variance variance() { return inspection.get().variance(); } diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/DependentVariableImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/DependentVariableImpl.java index ce83318f85..e9fc0fc912 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/DependentVariableImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/DependentVariableImpl.java @@ -17,6 +17,9 @@ package io.codelaser.maddi.cst.impl.variable; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.cst.api.element.DetailedSources; @@ -24,7 +27,6 @@ import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -37,9 +39,6 @@ import io.codelaser.maddi.cst.impl.output.QualificationImpl; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class DependentVariableImpl extends VariableImpl implements DependentVariable { @NotNull private final Expression indexExpression; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/FieldReferenceImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/FieldReferenceImpl.java index a3a2366b05..72ceb98272 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/FieldReferenceImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/FieldReferenceImpl.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.impl.variable; +import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.IMPLICIT; + +import java.util.List; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.annotation.Nullable; import io.codelaser.maddi.cst.api.element.DetailedSources; @@ -26,7 +33,6 @@ import io.codelaser.maddi.cst.api.expression.TypeExpression; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -45,13 +51,6 @@ import io.codelaser.maddi.cst.impl.output.*; import io.codelaser.maddi.cst.impl.type.DiamondEnum; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - -import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.IMPLICIT; - public class FieldReferenceImpl extends VariableImpl implements FieldReference { @NotNull private final FieldInfo fieldInfo; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/LocalVariableImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/LocalVariableImpl.java index b6da0ff274..7ba8c1fd19 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/LocalVariableImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/LocalVariableImpl.java @@ -17,11 +17,14 @@ package io.codelaser.maddi.cst.impl.variable; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Visitor; import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -33,10 +36,6 @@ import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl; import io.codelaser.maddi.cst.impl.output.QualifiedNameImpl; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.Stream; - public class LocalVariableImpl extends VariableImpl implements LocalVariable { public static final String UNNAMED = ":"; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/ThisImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/ThisImpl.java index f1aaa44210..e8be32ae11 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/ThisImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/ThisImpl.java @@ -17,10 +17,15 @@ package io.codelaser.maddi.cst.impl.variable; +import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT; +import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.IMPLICIT; + +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Visitor; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -37,12 +42,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.cst.impl.output.TypeNameImpl; -import java.util.function.Predicate; -import java.util.stream.Stream; - -import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT; -import static io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.IMPLICIT; - public class ThisImpl extends VariableImpl implements This { private final boolean writeSuper; diff --git a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/VariableImpl.java b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/VariableImpl.java index 8a650ef5bd..821ad6d267 100644 --- a/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/VariableImpl.java +++ b/maddi-cst-impl/src/main/java/io/codelaser/maddi/cst/impl/variable/VariableImpl.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.cst.impl.variable; +import java.util.List; +import java.util.Objects; +import java.util.stream.Stream; + import io.codelaser.maddi.annotation.rare.IgnoreModifications; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; @@ -25,10 +29,6 @@ import io.codelaser.maddi.cst.impl.element.SourceImpl; import io.codelaser.maddi.cst.impl.output.QualificationImpl; -import java.util.List; -import java.util.Objects; -import java.util.stream.Stream; - public abstract class VariableImpl implements Variable { private final ParameterizedType parameterizedType; diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestDetailedSourcesOwnsItsState.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestDetailedSourcesOwnsItsState.java index 967d8ab232..9b12dde8fb 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestDetailedSourcesOwnsItsState.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestDetailedSourcesOwnsItsState.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.cst.impl.element; -import io.codelaser.maddi.cst.api.element.DetailedSources; -import io.codelaser.maddi.cst.api.element.Source; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.ArrayList; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.element.Source; /** * A built {@link DetailedSources} owns its state (#51): before, {@code build()} handed over the builder's maps and diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestModuleInfoPrint.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestModuleInfoPrint.java index b4723357b4..10dfba1130 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestModuleInfoPrint.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestModuleInfoPrint.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.cst.impl.element; -import io.codelaser.maddi.cst.api.element.ModuleInfo; -import io.codelaser.maddi.cst.api.output.Qualification; -import io.codelaser.maddi.cst.impl.output.QualificationImpl; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; +import java.util.function.Consumer; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.ModuleInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.output.QualificationImpl; +import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; /** * Every module directive used to answer {@code print(Qualification)} with {@code null}, so the only way to produce @@ -48,7 +49,7 @@ public class TestModuleInfoPrint { private static final Runtime RUNTIME = new RuntimeImpl(); - private static ModuleInfo build(java.util.function.Consumer directives) { + private static ModuleInfo build(Consumer directives) { ModuleInfo.Builder builder = RUNTIME.newModuleInfoBuilder().setName("m.example"); directives.accept(builder); return builder.build(); diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestMultiLineCommentPrint.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestMultiLineCommentPrint.java index 5ebe4a3f5b..2d1f972c67 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestMultiLineCommentPrint.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/element/TestMultiLineCommentPrint.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.cst.impl.element; -import io.codelaser.maddi.cst.api.output.OutputBuilder; -import io.codelaser.maddi.cst.impl.output.TextImpl; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.output.OutputBuilder; +import io.codelaser.maddi.cst.impl.output.TextImpl; /** * Real-world sources carry trailing whitespace before the newline inside block comments (closed-core, diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAbstractValue.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAbstractValue.java index 176de24316..484d52e72f 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAbstractValue.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAbstractValue.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.expression.Expression; public class TestAbstractValue extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndComparison.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndComparison.java index 7a6b8daf0b..118ffbceee 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndComparison.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndComparison.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.expression.Expression; public class TestAndComparison extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndOr.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndOr.java index 0bd04c73bd..079c1d60af 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndOr.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndOr.java @@ -17,13 +17,16 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.impl.expression.eval.EvalOptions; +import io.codelaser.maddi.cst.impl.expression.eval.EvalOr; public class TestAndOr extends CommonTest { @@ -134,8 +137,8 @@ public void test4() { @Test public void tooComplexOrOfOne() { // complexity 1: every disjunction is 'too complex', and only the trivial step (4b) runs - io.codelaser.maddi.cst.impl.expression.eval.EvalOr evalOr = new io.codelaser.maddi.cst.impl.expression.eval.EvalOr(r, - new io.codelaser.maddi.cst.impl.expression.eval.EvalOptions(1)); + EvalOr evalOr = new EvalOr(r, + new EvalOptions(1)); Expression x1 = r.equals(r.newChar('!'), x); assertEquals(x1, evalOr.eval(List.of(x1, FALSE)), "the false is removed, one term is left"); assertEquals(x1, evalOr.eval(List.of(x1, x1)), "A || A, one term is left"); diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndSorting.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndSorting.java index 2c9c58b5d9..1baef83e64 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndSorting.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestAndSorting.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.Expression; public class TestAndSorting extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestBooleanAndComparison.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestBooleanAndComparison.java index 21470219aa..f125756daf 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestBooleanAndComparison.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestBooleanAndComparison.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.GreaterThanZero; +import static org.junit.jupiter.api.Assertions.*; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.api.expression.GreaterThanZero; public class TestBooleanAndComparison extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestBooleanExpressions.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestBooleanExpressions.java index be6a3bd74a..9471b34a01 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestBooleanExpressions.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestBooleanExpressions.java @@ -18,10 +18,11 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.expression.Expression; public class TestBooleanExpressions extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestCastAndArrayAccess.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestCastAndArrayAccess.java index 0df91596d8..79dba41dc9 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestCastAndArrayAccess.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestCastAndArrayAccess.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.cst.impl.expression; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Cast; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.DependentVariable; import io.codelaser.maddi.cst.api.variable.LocalVariable; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestCastAndArrayAccess extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestCharLiteral.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestCharLiteral.java index 1495443a68..cc2709503d 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestCharLiteral.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestCharLiteral.java @@ -17,13 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.runtime.Predefined; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; public class TestCharLiteral { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestComplexity.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestComplexity.java index 092965cfb6..252970f297 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestComplexity.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestComplexity.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.cst.impl.expression; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.IntConstant; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.variable.DependentVariable; import io.codelaser.maddi.cst.api.variable.Variable; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestComplexity extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestEvalBudget.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestEvalBudget.java index 72674cc582..94b7f275ab 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestEvalBudget.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestEvalBudget.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.Negation; -import io.codelaser.maddi.cst.impl.expression.eval.EvalBudget; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.time.Duration; import java.util.concurrent.CancellationException; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.api.expression.Negation; +import io.codelaser.maddi.cst.impl.expression.eval.EvalBudget; /** * maddi-mod#20: the boolean evaluator must stop when its thread is interrupted, and negating an And/Or whose diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestExpressionComparatorConcurrent.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestExpressionComparatorConcurrent.java index 4f92d4d4de..4ca14c3b8f 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestExpressionComparatorConcurrent.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestExpressionComparatorConcurrent.java @@ -17,10 +17,8 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.impl.expression.util.ExpressionComparator; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTimeoutPreemptively; import java.time.Duration; import java.util.ArrayList; @@ -29,8 +27,11 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTimeoutPreemptively; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.impl.expression.util.ExpressionComparator; /** * The comparator's SINGLETON is shared by every thread that sorts expressions; its memoization cache was one diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestGreaterThanAndOr.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestGreaterThanAndOr.java index 75a7c5e2ff..5062748237 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestGreaterThanAndOr.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestGreaterThanAndOr.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.Expression; + /* NOTE: there are some rules commented out in EvalOr */ diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestInequality.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestInequality.java index 21c3230d95..b804107fe3 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestInequality.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestInequality.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.cst.impl.expression; +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.DoubleConstant; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.GreaterThanZero; import io.codelaser.maddi.cst.api.expression.IntConstant; import io.codelaser.maddi.util.IntUtil; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestInequality extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestInstanceOf.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestInstanceOf.java index 20b6ecef6c..fed2d6a130 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestInstanceOf.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestInstanceOf.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; +import static org.junit.jupiter.api.Assertions.*; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.expression.Expression; public class TestInstanceOf extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestMethod.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestMethod.java index 56f16bfde4..dc5912e1b3 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestMethod.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestMethod.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.impl.expression; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.NoSuchElementException; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -25,13 +33,6 @@ import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.impl.info.TypePrinterImpl; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.NoSuchElementException; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethod { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestNegationStructure.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestNegationStructure.java index 99e72f261a..a048b10e14 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestNegationStructure.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestNegationStructure.java @@ -17,6 +17,19 @@ package io.codelaser.maddi.cst.impl.expression; +import static org.junit.jupiter.api.Assertions.*; + +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.Set; +import java.util.function.BooleanSupplier; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.InstanceOf; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -26,18 +39,6 @@ import io.codelaser.maddi.cst.impl.expression.eval.EvalSwitches; import io.codelaser.maddi.cst.impl.expression.util.AndOrSorter; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.time.Duration; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; -import java.util.Set; -import java.util.function.BooleanSupplier; - -import static org.junit.jupiter.api.Assertions.*; /** * The structural answer to isNegationOf for an And against an Or (gate NOSTRUCTNEG), the per-operation negation diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestParameterOrder.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestParameterOrder.java index f6c6428fa1..98c5c582c3 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestParameterOrder.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestParameterOrder.java @@ -1,5 +1,14 @@ package io.codelaser.maddi.cst.impl.expression; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -8,14 +17,6 @@ import io.codelaser.maddi.cst.api.variable.DependentVariable; import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * The order of variables is one order, by fully qualified name. Parameters of one method used to compare by index diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestProduct.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestProduct.java index 9ecee54a3c..2898dfcb87 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestProduct.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestProduct.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.VariableExpression; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.expression.Expression; public class TestProduct extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestStringConcat.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestStringConcat.java index 9b3a5ca5e3..6ee8421dcf 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestStringConcat.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestStringConcat.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.cst.impl.expression; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.StringConcat; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertInstanceOf; public class TestStringConcat extends CommonTest { @Test diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestSum.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestSum.java index 904238160b..3544136858 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestSum.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/expression/TestSum.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.cst.impl.expression; -import io.codelaser.maddi.cst.api.expression.Expression; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.expression.Expression; public class TestSum extends CommonTest { diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/info/TestOverridesOrder.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/info/TestOverridesOrder.java index cd259793a6..ab127dbe9d 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/info/TestOverridesOrder.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/info/TestOverridesOrder.java @@ -1,18 +1,19 @@ package io.codelaser.maddi.cst.impl.info; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; /** * A method's overrides iterate in the order of their fully qualified names, whatever order they were added in. They diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/info/TestParameterFullyQualifiedName.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/info/TestParameterFullyQualifiedName.java index eaafb6db42..a72af2a09c 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/info/TestParameterFullyQualifiedName.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/info/TestParameterFullyQualifiedName.java @@ -1,16 +1,17 @@ package io.codelaser.maddi.cst.impl.info; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertSame; /** * A parameter's fully qualified name holds its method's full signature. The prepwork analysis keys every statement's diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/output/TestTextBlockFormattingImpl.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/output/TestTextBlockFormattingImpl.java index 7b5d3436df..a858261fbc 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/output/TestTextBlockFormattingImpl.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/output/TestTextBlockFormattingImpl.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.impl.output; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; - public class TestTextBlockFormattingImpl { String s1 = """ diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/runtime/TestPredefinedSourceSetName.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/runtime/TestPredefinedSourceSetName.java index 67239e89bc..446226c121 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/runtime/TestPredefinedSourceSetName.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/runtime/TestPredefinedSourceSetName.java @@ -1,11 +1,12 @@ package io.codelaser.maddi.cst.impl.runtime; -import io.codelaser.maddi.cst.api.element.SourceSet; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.element.SourceSet; /** * A source set that claims {@link SourceSet#partOfJdk()} is named after its JPMS module. That is the convention diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/translate/TestTranslateDependentVariable.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/translate/TestTranslateDependentVariable.java index 395745fd79..f14b4fe883 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/translate/TestTranslateDependentVariable.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/translate/TestTranslateDependentVariable.java @@ -17,17 +17,16 @@ package io.codelaser.maddi.cst.impl.translate; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.VariableExpression; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.variable.*; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestTranslateDependentVariable { private final Runtime r = new RuntimeImpl(); diff --git a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/type/TestCachedHashes.java b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/type/TestCachedHashes.java index ff46bd36a0..681c03c3b3 100644 --- a/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/type/TestCachedHashes.java +++ b/maddi-cst-impl/src/test/java/io/codelaser/maddi/cst/impl/type/TestCachedHashes.java @@ -1,5 +1,15 @@ package io.codelaser.maddi.cst.impl.type; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import java.util.Objects; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -7,15 +17,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; import io.codelaser.maddi.support.Either; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Objects; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * The cached hashes of ParameterizedTypeImpl and TypeParameterImpl (docs/status/performance-2026-10-22.md) keep the diff --git a/maddi-cst-io/src/main/java/io/codelaser/maddi/cst/io/CodecImpl.java b/maddi-cst-io/src/main/java/io/codelaser/maddi/cst/io/CodecImpl.java index f78b3bd62b..87504401c7 100644 --- a/maddi-cst-io/src/main/java/io/codelaser/maddi/cst/io/CodecImpl.java +++ b/maddi-cst-io/src/main/java/io/codelaser/maddi/cst/io/CodecImpl.java @@ -17,6 +17,22 @@ package io.codelaser.maddi.cst.io; +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.util.*; +import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.parsers.json.Node; +import org.parsers.json.ast.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.analysis.Codec; import io.codelaser.maddi.cst.api.analysis.Property; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; @@ -31,21 +47,6 @@ import io.codelaser.maddi.cst.api.type.Wildcard; import io.codelaser.maddi.cst.api.variable.*; import io.codelaser.maddi.cst.impl.analysis.PropertyImpl; -import org.parsers.json.Node; -import org.parsers.json.ast.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.io.StringWriter; -import java.io.Writer; -import java.util.*; -import java.util.function.BiFunction; -import java.util.function.Function; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; public class CodecImpl implements Codec { private static final Logger LOGGER = LoggerFactory.getLogger(CodecImpl.class); diff --git a/maddi-cst-io/src/main/java/io/codelaser/maddi/cst/io/ExpressionCodec.java b/maddi-cst-io/src/main/java/io/codelaser/maddi/cst/io/ExpressionCodec.java index c90e12e680..bfca496ecf 100644 --- a/maddi-cst-io/src/main/java/io/codelaser/maddi/cst/io/ExpressionCodec.java +++ b/maddi-cst-io/src/main/java/io/codelaser/maddi/cst/io/ExpressionCodec.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.io; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.analysis.Codec; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.*; @@ -26,11 +31,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.Variable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Stream; - public class ExpressionCodec { private final Codec codec; private final Codec.Context context; @@ -49,7 +49,7 @@ public ExpressionCodec(Runtime runtime, Codec codec, Codec.Context context) { map.put(Cast.NAME, new CastCodec()); map.put(BooleanConstant.NAME, new BooleanConstantCodec()); map.put(IntConstant.NAME, new IntConstantCodec()); - map.put(io.codelaser.maddi.cst.api.expression.TypeExpression.NAME, new TypeExpressionCodec()); + map.put(TypeExpression.NAME, new TypeExpressionCodec()); } private interface ECodec { @@ -204,8 +204,8 @@ class TypeExpressionCodec implements ECodec { @Override public List encode(Expression e) { - io.codelaser.maddi.cst.api.expression.TypeExpression te = - (io.codelaser.maddi.cst.api.expression.TypeExpression) e; + TypeExpression te = + (TypeExpression) e; return List.of(codec.encodeType(context, te.parameterizedType())); } diff --git a/maddi-cst-io/src/main/java/org/parsers/json/JSONLexer.java b/maddi-cst-io/src/main/java/org/parsers/json/JSONLexer.java index 53c74cb545..2aef85f6f9 100644 --- a/maddi-cst-io/src/main/java/org/parsers/json/JSONLexer.java +++ b/maddi-cst-io/src/main/java/org/parsers/json/JSONLexer.java @@ -18,13 +18,13 @@ /* Generated by: CongoCC Parser Generator. JSONLexer.java */ package org.parsers.json; -import org.parsers.json.Token.TokenType; +import static org.parsers.json.Token.TokenType.*; import java.util.BitSet; import java.util.EnumSet; import java.util.Objects; -import static org.parsers.json.Token.TokenType.*; +import org.parsers.json.Token.TokenType; public class JSONLexer extends TokenSource { diff --git a/maddi-cst-io/src/main/java/org/parsers/json/JSONParser.java b/maddi-cst-io/src/main/java/org/parsers/json/JSONParser.java index c1183faf94..aef3dc32ae 100644 --- a/maddi-cst-io/src/main/java/org/parsers/json/JSONParser.java +++ b/maddi-cst-io/src/main/java/org/parsers/json/JSONParser.java @@ -18,8 +18,7 @@ /* Generated by: CongoCC Parser Generator. JSONParser.java */ package org.parsers.json; -import org.parsers.json.Token.TokenType; -import org.parsers.json.ast.*; +import static org.parsers.json.Token.TokenType.*; import java.io.IOException; import java.io.PrintStream; @@ -29,7 +28,8 @@ import java.util.*; import java.util.concurrent.CancellationException; -import static org.parsers.json.Token.TokenType.*; +import org.parsers.json.Token.TokenType; +import org.parsers.json.ast.*; public class JSONParser { diff --git a/maddi-cst-io/src/main/java/org/parsers/json/Node.java b/maddi-cst-io/src/main/java/org/parsers/json/Node.java index fbc0873c23..01daaaf069 100644 --- a/maddi-cst-io/src/main/java/org/parsers/json/Node.java +++ b/maddi-cst-io/src/main/java/org/parsers/json/Node.java @@ -92,7 +92,7 @@ default Node get(int i) { } default List children() { - return java.util.Collections.emptyList(); + return Collections.emptyList(); } } @@ -456,7 +456,7 @@ default T firstDescendantOfType(Class clazz) { } default List childrenOfType(Class clazz, Predicate pred) { - List result = new java.util.ArrayList<>(); + List result = new ArrayList<>(); for (int i = 0; i < size(); i++) { Node child = get(i); if (clazz.isInstance(child)) { @@ -468,7 +468,7 @@ default List childrenOfType(Class clazz, Predicate pred) { } default List childrenOfType(NodeType type, Predicate pred) { - List result = new java.util.ArrayList<>(); + List result = new ArrayList<>(); for (int i = 0; i < size(); i++) { Node child = get(i); if (child.getType() == type) { diff --git a/maddi-cst-io/src/main/java/org/parsers/json/ParseException.java b/maddi-cst-io/src/main/java/org/parsers/json/ParseException.java index 9e65d2ecfd..6de6713576 100644 --- a/maddi-cst-io/src/main/java/org/parsers/json/ParseException.java +++ b/maddi-cst-io/src/main/java/org/parsers/json/ParseException.java @@ -18,6 +18,7 @@ /* Generated by: CongoCC Parser Generator. ParseException.java */ package org.parsers.json; +import java.io.PrintStream; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; @@ -108,7 +109,7 @@ public StackTraceElement[] getStackTrace() { } @Override - public void printStackTrace(java.io.PrintStream s) { + public void printStackTrace(PrintStream s) { adjustStackTrace(); super.printStackTrace(s); } @@ -184,7 +185,7 @@ private static String addEscapes(String str) { continue; default : if (Character.isISOControl(ch)) { - String s = "0000" + java.lang.Integer.toString(ch, 16); + String s = "0000" + Integer.toString(ch, 16); retval.append("\\u" + s.substring(s.length() - 4)); } else { retval.appendCodePoint(ch); diff --git a/maddi-cst-io/src/main/java/org/parsers/json/Token.java b/maddi-cst-io/src/main/java/org/parsers/json/Token.java index b893986bd6..4f3fdc8e42 100644 --- a/maddi-cst-io/src/main/java/org/parsers/json/Token.java +++ b/maddi-cst-io/src/main/java/org/parsers/json/Token.java @@ -20,12 +20,13 @@ */ package org.parsers.json; -import org.parsers.json.ast.*; - import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.NoSuchElementException; + +import org.parsers.json.ast.*; public class Token implements CharSequence, Node.TerminalNode { @@ -244,7 +245,7 @@ public boolean hasNext() { public Token next() { Token previous = currentPoint.previousCachedToken(); - if (previous == null) throw new java.util.NoSuchElementException("No previous token!"); + if (previous == null) throw new NoSuchElementException("No previous token!"); return currentPoint = previous; } @@ -269,7 +270,7 @@ public List precedingUnparsedTokens() { * @return An iterator of the (cached) tokens that follow this one. */ public Iterator followingTokens() { - return new java.util.Iterator() { + return new Iterator() { Token currentPoint = Token.this; public boolean hasNext() { @@ -278,7 +279,7 @@ public boolean hasNext() { public Token next() { Token next = currentPoint.nextCachedToken(); - if (next == null) throw new java.util.NoSuchElementException("No next token!"); + if (next == null) throw new NoSuchElementException("No next token!"); return currentPoint = next; } diff --git a/maddi-cst-io/src/main/java/org/parsers/json/TokenSource.java b/maddi-cst-io/src/main/java/org/parsers/json/TokenSource.java index a8709fee21..5d2d6bb761 100644 --- a/maddi-cst-io/src/main/java/org/parsers/json/TokenSource.java +++ b/maddi-cst-io/src/main/java/org/parsers/json/TokenSource.java @@ -20,6 +20,8 @@ */ package org.parsers.json; +import static java.nio.charset.StandardCharsets.*; + import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharacterCodingException; @@ -29,8 +31,6 @@ import java.util.Arrays; import java.util.BitSet; -import static java.nio.charset.StandardCharsets.*; - abstract public class TokenSource implements CharSequence { private int tabSize = 1; diff --git a/maddi-cst-io/src/main/java/org/parsers/json/ast/BaseNode.java b/maddi-cst-io/src/main/java/org/parsers/json/ast/BaseNode.java index 2580aec0a0..3d5d57bf1a 100644 --- a/maddi-cst-io/src/main/java/org/parsers/json/ast/BaseNode.java +++ b/maddi-cst-io/src/main/java/org/parsers/json/ast/BaseNode.java @@ -18,13 +18,13 @@ /* Generated by: CongoCC Parser Generator. Do not edit. BaseNode.java */ package org.parsers.json.ast; +import java.util.*; + import org.parsers.json.JSONLexer; import org.parsers.json.Node; import org.parsers.json.Token; import org.parsers.json.TokenSource; -import java.util.*; - /** * The base concrete class for non-terminal Nodes diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/CommonTest.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/CommonTest.java index 3afe50c4af..bf196abc95 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/CommonTest.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/CommonTest.java @@ -17,9 +17,11 @@ package io.codelaser.maddi.cst.io; +import org.parsers.json.JSONParser; +import org.parsers.json.Node; + import io.codelaser.maddi.cst.api.analysis.Codec; import io.codelaser.maddi.cst.api.element.CompilationUnit; -import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -28,8 +30,6 @@ import io.codelaser.maddi.cst.impl.analysis.PropertyProviderImpl; import io.codelaser.maddi.cst.impl.analysis.ValueImpl; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.parsers.json.JSONParser; -import org.parsers.json.Node; public abstract class CommonTest { diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodec.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodec.java index 497ad8c484..e861f3c33f 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodec.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodec.java @@ -17,15 +17,12 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import io.codelaser.maddi.cst.api.analysis.Property; -import io.codelaser.maddi.cst.api.element.CompilationUnit; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.analysis.PropertyImpl; -import io.codelaser.maddi.cst.impl.analysis.PropertyProviderImpl; -import io.codelaser.maddi.cst.impl.analysis.ValueImpl; -import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.parsers.json.JSONParser; @@ -35,11 +32,15 @@ import org.parsers.json.ast.Root; import org.parsers.json.ast.StringLiteral; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Stream; - -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.analysis.Codec; +import io.codelaser.maddi.cst.api.analysis.Property; +import io.codelaser.maddi.cst.api.element.CompilationUnit; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.analysis.PropertyImpl; +import io.codelaser.maddi.cst.impl.analysis.PropertyProviderImpl; +import io.codelaser.maddi.cst.impl.analysis.ValueImpl; +import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; public class TestCodec { diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecCollections.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecCollections.java index 30421f0e87..ce360efddc 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecCollections.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecCollections.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.*; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.analysis.Codec; /** * Robustness tests for the structural layer of {@link CodecImpl}: list / set / map / mapAsList encoding and diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecExpression.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecExpression.java index f1481a63a3..f7cf2ec9ea 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecExpression.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecExpression.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.cst.io; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.analysis.Codec; import io.codelaser.maddi.cst.api.expression.EnclosedExpression; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.LocalVariable; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestCodecExpression extends CommonTest { diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecFieldByName.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecFieldByName.java index cbdb375152..a01e8b73b5 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecFieldByName.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecFieldByName.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.Info; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertSame; -import static org.junit.jupiter.api.Assertions.assertThrows; +import io.codelaser.maddi.cst.api.analysis.Codec; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.Info; /** * A field reference decodes by its (unique) name; the encoded positional index is a fast-path hint only. This makes diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecInfo.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecInfo.java index 76970fb085..c3961edd63 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecInfo.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecInfo.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.cst.io; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; - public class TestCodecInfo extends CommonTest { diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecInfoInContext.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecInfoInContext.java index a635b3d433..b0579c7762 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecInfoInContext.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecInfoInContext.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertSame; import static org.junit.jupiter.api.Assertions.assertThrows; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.analysis.Codec; +import io.codelaser.maddi.cst.api.info.MethodInfo; + /** * Round-trips for the in-context info encoding ({@link CodecImpl#encodeInfoInContext} / {@code decodeInfoInContext}): * a single short token (e.g. {@code "Ff(0)"}) resolved against the {@code Context} stack (current type / method). diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMemberDataOnly.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMemberDataOnly.java index 6196ce8df1..80695db8ac 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMemberDataOnly.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMemberDataOnly.java @@ -17,15 +17,7 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import io.codelaser.maddi.cst.api.element.CompilationUnit; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.analysis.PropertyProviderImpl; -import io.codelaser.maddi.cst.impl.analysis.ValueImpl; -import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.io.StringWriter; @@ -33,7 +25,16 @@ import java.util.List; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.analysis.Codec; +import io.codelaser.maddi.cst.api.element.CompilationUnit; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.analysis.PropertyProviderImpl; +import io.codelaser.maddi.cst.impl.analysis.ValueImpl; +import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; /** * An element with no data of its own but with members that carry some must be written. The codec dropped it: diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMethodByDescriptor.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMethodByDescriptor.java index d0ec8bc999..ec9c1b0e3a 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMethodByDescriptor.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMethodByDescriptor.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.ParameterInfo; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Comparator; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertSame; -import static org.junit.jupiter.api.Assertions.assertThrows; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.analysis.Codec; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.ParameterInfo; /** * A method token carries the erased parameter types, {@code Mname(index,p1,p2)}, because for an OVERLOADED name a diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMethodByName.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMethodByName.java index b323a96040..6204531c5d 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMethodByName.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecMethodByName.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.MethodInfo; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertSame; -import static org.junit.jupiter.api.Assertions.assertThrows; +import io.codelaser.maddi.cst.api.analysis.Codec; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.MethodInfo; /** * A method reference with a unique (non-overloaded) name decodes by name; the encoded index is a fast-path hint. diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecPrimitives.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecPrimitives.java index e2176f2f37..e3d640e869 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecPrimitives.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecPrimitives.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; +import static org.junit.jupiter.api.Assertions.*; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.analysis.Codec; /** * Robustness tests for the scalar layer of {@link CodecImpl}: the pure quote/unquote helpers and the diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecSetOfMethodInfo.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecSetOfMethodInfo.java index af49d0f5b5..215b7e0060 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecSetOfMethodInfo.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecSetOfMethodInfo.java @@ -17,18 +17,20 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import io.codelaser.maddi.cst.api.analysis.Value; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.impl.analysis.ValueImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Set; +import java.util.stream.Collectors; import java.util.stream.StreamSupport; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.analysis.Codec; +import io.codelaser.maddi.cst.api.analysis.Value; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.impl.analysis.ValueImpl; /** * #30: a decoded {@code SetOfMethodInfo} is a registry like any other. Prep's addImplementation adds to it when a @@ -55,10 +57,10 @@ public void test() { Value.SetOfMethodInfo decoded = ValueImpl.SetOfMethodInfoImpl.from(codec, context, encoded); assertEquals(Set.of(alpha), StreamSupport.stream(decoded.methodInfoSet().spliterator(), false) - .collect(java.util.stream.Collectors.toSet())); + .collect(Collectors.toSet())); // the add that used to throw assertTrue(decoded.add(beta)); assertEquals(Set.of(alpha, beta), StreamSupport.stream(decoded.methodInfoSet().spliterator(), false) - .collect(java.util.stream.Collectors.toSet())); + .collect(Collectors.toSet())); } } diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecType.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecType.java index d6a3907a5c..f207f7797e 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecType.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecType.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.type.ParameterizedType; public class TestCodecType extends CommonTest { diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecVariableRoundTrip.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecVariableRoundTrip.java index ea658c1462..f2c46a1e14 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecVariableRoundTrip.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestCodecVariableRoundTrip.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.cst.io; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.variable.DependentVariable; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.api.variable.This; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * Round-trips for every variable kind handled by {@link CodecImpl#encodeVariable} / {@code decodeVariable}: diff --git a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestValueImpl.java b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestValueImpl.java index 925f28c4ca..be6991c0d3 100644 --- a/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestValueImpl.java +++ b/maddi-cst-io/src/test/java/io/codelaser/maddi/cst/io/TestValueImpl.java @@ -17,12 +17,11 @@ package io.codelaser.maddi.cst.io; -import io.codelaser.maddi.cst.api.analysis.Codec; -import io.codelaser.maddi.cst.api.analysis.Value; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.analysis.PropertyProviderImpl; -import io.codelaser.maddi.cst.impl.analysis.ValueImpl; -import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.Map; + import org.junit.jupiter.api.Test; import org.parsers.json.JSONParser; import org.parsers.json.Node; @@ -31,10 +30,12 @@ import org.parsers.json.ast.KeyValuePair; import org.parsers.json.ast.StringLiteral; -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.analysis.Codec; +import io.codelaser.maddi.cst.api.analysis.Value; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.analysis.PropertyProviderImpl; +import io.codelaser.maddi.cst.impl.analysis.ValueImpl; +import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; public class TestValueImpl { Runtime runtime = new RuntimeImpl(); diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAccess.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAccess.java index 4074df913e..caa2877354 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAccess.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAccess.java @@ -17,7 +17,10 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.print.translate.CstQueries; +import java.util.HashSet; +import java.util.Set; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.ConstructorCall; @@ -31,10 +34,7 @@ import io.codelaser.maddi.cst.api.info.TypeModifier; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.FieldReference; - -import java.util.HashSet; -import java.util.Set; -import java.util.stream.Stream; +import io.codelaser.maddi.cst.print.translate.CstQueries; /** * Java's {@code private} is private to the top-level type: a class reaches the private members of the classes nested diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAnonymous.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAnonymous.java index 9c90728f03..ec835a2e36 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAnonymous.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAnonymous.java @@ -17,8 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.print.translate.CstQueries; -import io.codelaser.maddi.cst.print.translate.CstSupertypes; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.ConstructorCall; @@ -34,13 +39,8 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.api.variable.This; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; +import io.codelaser.maddi.cst.print.translate.CstQueries; +import io.codelaser.maddi.cst.print.translate.CstSupertypes; /** * C# has no anonymous classes. One that does not become a lambda (see {@link CSharpProgram#lambdaLike}) is hoisted: diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAttributes.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAttributes.java index e13a58218e..2c4579dda4 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAttributes.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpAttributes.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.ArrayInitializer; import io.codelaser.maddi.cst.api.expression.Expression; @@ -34,13 +41,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * Java's annotations as C#'s attributes. An annotation type of the program is a sealed attribute class, * {@code ToolAttribute}: its elements are properties with their defaults, a {@code value} element also the diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpBcl.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpBcl.java index 3bdcb7386d..a56d11b9ce 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpBcl.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpBcl.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.MethodReference; @@ -28,14 +36,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Stream; - /** * The JDK → BCL mapping: what a JDK type, a call of a JDK method and a JDK field are in C#. Its rules are data, the * file {@code jdk-bcl.csmap} ({@link CSharpMappingFile}); the rules it chooses per call, by an argument's or the diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpCompilationUnitPrinter.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpCompilationUnitPrinter.java index 80772a4509..3c2af9268a 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpCompilationUnitPrinter.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpCompilationUnitPrinter.java @@ -17,7 +17,12 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.print.translate.PrintMessage; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -25,12 +30,7 @@ import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.impl.info.CompilationUnitPrinterImpl; import io.codelaser.maddi.cst.impl.output.*; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; +import io.codelaser.maddi.cst.print.translate.PrintMessage; /** * Prints a {@link CompilationUnit} as a C# file: the {@code using} directives, a file-scoped {@code namespace}, and diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpContext.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpContext.java index ee045736cb..8632746d07 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpContext.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpContext.java @@ -17,6 +17,17 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Deque; +import java.util.HashMap; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; @@ -31,17 +42,6 @@ import io.codelaser.maddi.cst.print.translate.PrintMessage; import io.codelaser.maddi.cst.print.translate.TranslationState; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Deque; -import java.util.HashMap; -import java.util.HashSet; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; - /** * The state of one file's printing, shared by the printers: they are created through the cst-api factories, whose * signatures carry no context. One per thread; {@link CSharpCompilationUnitPrinter} resets it per file. What every diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpErasures.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpErasures.java index 054c3f3223..9e8976f0b0 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpErasures.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpErasures.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -32,12 +38,6 @@ import io.codelaser.maddi.cst.print.translate.CstQueries; import io.codelaser.maddi.cst.print.translate.CstSupertypes; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * Java's {@code UniConstraintCollector} of a program interface without a wildcard interface * ({@link CSharpWildcardInterfaces}: the code passes the wildcard where a generic method captures the type parameter) diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpExpressionPrinter.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpExpressionPrinter.java index 1d2a657ef0..603b2fe2c5 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpExpressionPrinter.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpExpressionPrinter.java @@ -17,6 +17,20 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Deque; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -43,20 +57,6 @@ import io.codelaser.maddi.cst.print.translate.Emission; import io.codelaser.maddi.cst.print.translate.Literals; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Deque; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.IntStream; -import java.util.stream.Stream; - /** * Prints an {@link Expression} as C#. Every expression form is printed here, recursively, so that a Java-only form * nested anywhere is translated too; only a form this class does not know falls back to the Java diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpFacts.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpFacts.java index 11b5bac00e..c27e05a7e3 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpFacts.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpFacts.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.function.Predicate; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -26,8 +28,6 @@ import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts; -import java.util.function.Predicate; - /** * What the analysis knows about the program, for the C# the printer chooses: the modification analysis's verdicts * (an unmodified collection parameter is read-only in C#) and the nullability analysis's ({@code string?}), the diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpFieldPrinter.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpFieldPrinter.java index e78cc7e5f9..7eb0d7ace8 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpFieldPrinter.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpFieldPrinter.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.List; + import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.FieldPrinter; @@ -28,8 +30,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.List; - /** * Prints a {@link FieldInfo} as a C# field: {@code [access] [static] [const|readonly] [volatile] Type name [= init];}. * A static final primitive or String with a constant initializer is a {@code const}; another final field is diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpHierarchy.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpHierarchy.java index e698dfe7bb..eee933778b 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpHierarchy.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpHierarchy.java @@ -17,13 +17,6 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.TypeParameter; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.print.translate.CstQueries; -import io.codelaser.maddi.cst.print.translate.CstSupertypes; - import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; @@ -34,6 +27,13 @@ import java.util.Map; import java.util.Set; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.cst.print.translate.CstQueries; +import io.codelaser.maddi.cst.print.translate.CstSupertypes; + /** * The type hierarchy as C# needs it: a supertype as a type extends or implements it, in its own type parameters, and * what the type parameters of a generic supertype are in a subtype; the interface methods an abstract class leaves to diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpInner.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpInner.java index 15f2ee1ea8..c434c9764e 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpInner.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpInner.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -33,11 +38,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * A Java inner class, a non-static member class, has an enclosing instance; a C# nested class has none. One that uses * its enclosing instance gets it as a field, {@code outer}, which every constructor takes first: diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLibraries.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLibraries.java index 921ef599ff..4bc673eb1a 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLibraries.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLibraries.java @@ -17,15 +17,6 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.MethodCall; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.output.Qualification; -import io.codelaser.maddi.cst.api.type.ParameterizedType; - import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -39,6 +30,15 @@ import java.util.function.Supplier; import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.api.expression.MethodCall; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.output.Qualification; +import io.codelaser.maddi.cst.api.type.ParameterizedType; + /** * The library mappings of a translation, in order: the first that answers wins. A client puts its own overrides in * front, and leaves out the mapping of a library it does not want translated; the JDK's is normally last. diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLocalTypes.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLocalTypes.java index 100820f2c8..3dc77e8474 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLocalTypes.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLocalTypes.java @@ -17,7 +17,12 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.print.translate.CstQueries; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -29,13 +34,7 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.LocalVariable; -import io.codelaser.maddi.cst.api.variable.This; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.stream.Stream; +import io.codelaser.maddi.cst.print.translate.CstQueries; /** * C# has no local classes. A local class that captures nothing of its method (no local variable, no parameter, no diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLocals.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLocals.java index 59c3d28bae..df362b8659 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLocals.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpLocals.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.InstanceOf; @@ -26,10 +30,6 @@ import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.variable.LocalVariable; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - /** * The names a block declares at its own level, for {@link CSharpContext#enterScope}. C#'s scoping of locals is * stricter than Java's in two ways: diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpMappingFile.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpMappingFile.java index 44aa31bb20..548a96d281 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpMappingFile.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpMappingFile.java @@ -17,16 +17,6 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.MethodCall; -import io.codelaser.maddi.cst.api.expression.StringConstant; -import io.codelaser.maddi.cst.api.expression.VariableExpression; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; - import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; @@ -47,6 +37,16 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.api.expression.MethodCall; +import io.codelaser.maddi.cst.api.expression.StringConstant; +import io.codelaser.maddi.cst.api.expression.VariableExpression; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; + /** * A library mapping written as text, a {@code .csmap} file: what a client writes to override rules without Java, and * how the simpler library mappings are written. One directive per line, {@code #} starts a comment: diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpMethodPrinter.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpMethodPrinter.java index fb00fa7b66..dca0d76535 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpMethodPrinter.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpMethodPrinter.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.MethodPrinter; @@ -34,13 +41,6 @@ import io.codelaser.maddi.cst.print.translate.CstQueries; import io.codelaser.maddi.cst.print.translate.CstSupertypes; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Function; -import java.util.stream.Stream; - /** * Prints a {@link MethodInfo} as a C# method or constructor: * {@code [access] [static] [virtual|override|abstract] ReturnType Name(T p, params U[] us) where T : … body}. diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNames.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNames.java index 1e47c7f24d..f47153a5d5 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNames.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNames.java @@ -17,16 +17,6 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.api.element.Element; -import io.codelaser.maddi.cst.api.expression.ConstructorCall; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.TypeParameter; -import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; -import io.codelaser.maddi.cst.print.translate.CstQueries; -import io.codelaser.maddi.cst.print.translate.CstSupertypes; - import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; @@ -37,6 +27,16 @@ import java.util.Set; import java.util.stream.Collectors; +import io.codelaser.maddi.cst.api.element.Element; +import io.codelaser.maddi.cst.api.expression.ConstructorCall; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; +import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; +import io.codelaser.maddi.cst.print.translate.CstQueries; +import io.codelaser.maddi.cst.print.translate.CstSupertypes; + /** * The naming policy: Java's names, written the way C# code names things. Every name is a function of the declaration * alone, so a declaration and all its uses agree without a renaming pass: diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNotNullKeys.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNotNullKeys.java index efb28012d6..70be8b371b 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNotNullKeys.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNotNullKeys.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; @@ -29,15 +38,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.ArrayDeque; -import java.util.Deque; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Stream; - /** * The type parameters that are {@code where T : notnull} in a nullable context. C#'s Dictionary, SortedDictionary and * OrderedDictionary want a key type that is not null (CS8714); Java's HashMap, TreeMap and LinkedHashMap, which they diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNullability.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNullability.java index 647841dcd7..95a7e1c800 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNullability.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpNullability.java @@ -38,8 +38,6 @@ import io.codelaser.maddi.cst.impl.output.SpaceEnum; import io.codelaser.maddi.cst.impl.output.SymbolEnum; -import java.util.List; - /** * Where C#'s nullable reference types need a {@code !}: when the analysis's facts say the program's nullability is * known ({@link CSharpFacts#nullabilityAnalysed}), a dereference of a value that may be null is {@code x!.m()}. Java diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProgram.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProgram.java index 163ea880a5..0f979c4118 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProgram.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProgram.java @@ -17,6 +17,19 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Deque; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; @@ -33,19 +46,6 @@ import io.codelaser.maddi.cst.print.translate.CstQueries; import io.codelaser.maddi.cst.print.translate.CstSupertypes; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Deque; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Stream; - /** * What the printer knows of the whole translated program, beyond the file it prints: computed once, before the * files are printed, and handed to each {@link CSharpCompilationUnitPrinter}. Without it ({@link #NONE}), every diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProgramIndex.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProgramIndex.java index 8dfff477d2..ddf62ce591 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProgramIndex.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProgramIndex.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; @@ -27,13 +34,6 @@ import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * What the whole-program analyses of {@link CSharpProgram} ask of the program, gathered in one pass over its types and * one walk of its code: the methods that override one another, the methods a method reference names, and the diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProperties.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProperties.java index 5d73cbe343..d3185c1d9b 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProperties.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpProperties.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Assignment; import io.codelaser.maddi.cst.api.expression.Expression; @@ -31,13 +38,6 @@ import io.codelaser.maddi.cst.api.variable.This; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * Java's getters and setters as C#'s properties, decided for the whole program. A class's getter whose body is * {@code return f;}, of a field of its own of the same type, is the property that takes the field's place: diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpReadOnly.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpReadOnly.java index 99c16d8184..5855697497 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpReadOnly.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpReadOnly.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; @@ -30,15 +39,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.print.translate.CstSupertypes; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * The collection parameters that are read-only in C#: {@code IReadOnlyList}, {@code IReadOnlyCollection}, * {@code IReadOnlySet}, {@code IReadOnlyDictionary} for Java's {@code List}, {@code Collection}, {@code Set} diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpStatementPrinter.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpStatementPrinter.java index 15e0a553bf..b81a2671ec 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpStatementPrinter.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpStatementPrinter.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.function.Supplier; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.Assignment; @@ -44,13 +51,6 @@ import io.codelaser.maddi.cst.print.translate.CstQueries; import io.codelaser.maddi.cst.print.translate.CstSupertypes; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.function.Supplier; - /** * Prints a {@link Statement} as C#. Most of Java's statements are C#'s; where they differ: *
    diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTemplate.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTemplate.java index 5e8866e92c..ef51f7c919 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTemplate.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTemplate.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.function.Supplier; +import java.util.regex.Pattern; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -34,12 +40,6 @@ import io.codelaser.maddi.cst.impl.output.TextImpl; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.function.Supplier; -import java.util.regex.Pattern; - /** * Renders a {@link CSharpBcl} template. The pieces are printed when the template names them, and only then: printing * declares pattern variables, so an argument a template drops must not be printed. diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTranslator.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTranslator.java index a6bd059c70..492549664f 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTranslator.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTranslator.java @@ -17,13 +17,6 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; -import io.codelaser.maddi.cst.print.FormattingOptionsImpl; -import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import io.codelaser.maddi.cst.print.translate.PrintMessage; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -34,6 +27,13 @@ import java.util.Set; import java.util.stream.Collectors; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; +import io.codelaser.maddi.cst.print.FormattingOptionsImpl; +import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; +import io.codelaser.maddi.cst.print.translate.PrintMessage; + /** * Java to C# for a list of types: each compilation unit as a {@code .cs} file under a directory, by package, and * beside them what the policy's library mappings need to build ({@link #writeProject}). What the CLI's diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTypeName.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTypeName.java index 6dad33a21e..91caed4ffc 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTypeName.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTypeName.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Supplier; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.output.Qualification; @@ -27,14 +35,6 @@ import io.codelaser.maddi.cst.impl.type.WildcardEnum; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Supplier; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * Renders a {@link ParameterizedType} as a C# type reference. *
      diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTypePrinter.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTypePrinter.java index f8cb315222..2098f7de35 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTypePrinter.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpTypePrinter.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.*; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -27,15 +36,6 @@ import io.codelaser.maddi.cst.print.translate.CstQueries; import io.codelaser.maddi.cst.print.translate.CstSupertypes; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.IntStream; -import java.util.stream.Stream; - /** * Prints a {@link TypeInfo} as a C# type declaration, with the same pluggable-printer seam as the Java * {@code TypePrinterImpl}: the method, field and enclosed-type printers come from factories, defaulting to the C# diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpWildcardInterfaces.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpWildcardInterfaces.java index 52f4e02a40..1d0c0aded7 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpWildcardInterfaces.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpWildcardInterfaces.java @@ -17,6 +17,19 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Assignment; import io.codelaser.maddi.cst.api.expression.Cast; @@ -27,11 +40,13 @@ import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.output.OutputBuilder; -import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.output.Qualification; +import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; +import io.codelaser.maddi.cst.api.type.NamedType; import io.codelaser.maddi.cst.api.type.NullableState; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.FieldReference; @@ -41,17 +56,6 @@ import io.codelaser.maddi.cst.print.translate.CstQueries; import io.codelaser.maddi.cst.print.translate.CstSupertypes; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.BiConsumer; -import java.util.function.Consumer; -import java.util.stream.Collectors; - /** * Java's wildcard of a self-bounded type, {@code Score} where {@code Score>}, has no * C# type argument: none satisfies {@code where Score_ : IScore}. As C#'s own {@code IComparable} beside @@ -265,7 +269,7 @@ private record PassedAsGeneric(ParameterizedType formal) { } private static void passed(MethodInfo method, List arguments, BiConsumer through) { - List parameters = method.parameters(); + List parameters = method.parameters(); for (int i = 0; i < arguments.size() && !parameters.isEmpty(); i++) { ParameterizedType formal = parameters.get(Math.min(i, parameters.size() - 1)).parameterizedType(); ParameterizedType actual = arguments.get(i).parameterizedType(); @@ -545,7 +549,7 @@ private static boolean adapted(TypeInfo t) { /** The single abstract method's parameter types, then its result's (null when void), as {@code pt} has them. */ private static List samTypes(ParameterizedType pt, MethodInfo sam) { - Map map = pt.initialTypeParameterMap(); + Map map = pt.initialTypeParameterMap(); List types = new ArrayList<>(); for (var p : sam.parameters()) types.add(substituted(p.parameterizedType(), map)); if (!sam.isVoid()) types.add(substituted(sam.returnType(), map)); @@ -553,7 +557,7 @@ private static List samTypes(ParameterizedType pt, MethodInfo } private static ParameterizedType substituted(ParameterizedType formal, - Map map) { + Map map) { if (formal.isTypeParameter()) { ParameterizedType concrete = map.get(formal.typeParameter()); return concrete == null ? formal : concrete; @@ -565,8 +569,8 @@ private static ParameterizedType substituted(ParameterizedType formal, static String erasedDelegateType(ParameterizedType pt, List removed, Qualification q) { String printed = CSharpTypeName.of(pt, q); for (TypeParameter tp : removed) { - printed = printed.replaceAll("\\b" + java.util.regex.Pattern.quote(CSharpNames.typeParameter(tp)) + "\\b", - java.util.regex.Matcher.quoteReplacement(erasedBound(tp, removed, new HashSet<>(), q))); + printed = printed.replaceAll("\\b" + Pattern.quote(CSharpNames.typeParameter(tp)) + "\\b", + Matcher.quoteReplacement(erasedBound(tp, removed, new HashSet<>(), q))); } return printed; } diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpWildcards.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpWildcards.java index 773d62c5ac..a9af2e79f6 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpWildcards.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/CSharpWildcards.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; @@ -25,13 +32,6 @@ import io.codelaser.maddi.cst.print.translate.CstQueries; import io.codelaser.maddi.cst.print.translate.CstSupertypes; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * A method's parameter {@code EmbeddingStoreRequestContext c} takes any context, whose type argument Java captures * in the body. C# has no wildcard; the method captures it as a type parameter of its own: diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/ComposedFacts.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/ComposedFacts.java index 9fa47ef43b..93eb7016f7 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/ComposedFacts.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/ComposedFacts.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.Objects; +import java.util.function.Predicate; + import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.impl.analysis.ForwardingNullabilityFacts; import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts; -import java.util.Objects; -import java.util.function.Predicate; - /** {@link CSharpFacts#of}: the nullability facts as given, and the modification analysis's {@code unmodified}. */ final class ComposedFacts extends ForwardingNullabilityFacts implements CSharpFacts { diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/FamilyFacts.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/FamilyFacts.java index 9c3864d71c..3268ccd660 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/FamilyFacts.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/FamilyFacts.java @@ -16,6 +16,10 @@ */ package io.codelaser.maddi.cst.print.csharp; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -26,10 +30,6 @@ import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.impl.analysis.ForwardingNullabilityFacts; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - /** * The analysis's facts, with a method's result nullable where a method of the program overriding it may return null: * C# lets an override narrow {@code T?} to {@code T}, not widen {@code T} to {@code T?} (CS8764, CS8766), and a call diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/JacksonAttributes.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/JacksonAttributes.java index d2eb17ac34..425fa02854 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/JacksonAttributes.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/JacksonAttributes.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.ClassExpression; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.TypeInfo; -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; - /** * The part of the {@code jackson:system-text-json} mapping that a template cannot write: {@code @JsonSubTypes}, a * list of subtypes, is one {@code [JsonDerivedType(typeof(X), "x")]} per subtype. Its name is the one the list gives, diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/JaxbXmlSerialization.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/JaxbXmlSerialization.java index a6cad3ba54..12b6dcfca7 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/JaxbXmlSerialization.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/JaxbXmlSerialization.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.UnaryOperator; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Assignment; @@ -34,15 +43,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.print.translate.CstQueries; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.Function; -import java.util.function.UnaryOperator; - /** * JAXB as System.Xml.Serialization's XmlSerializer. JAXB binds a type's fields, private ones too; XmlSerializer binds * public properties. So each field JAXB binds gets a public property, {@code XmlName}, that carries the attributes of diff --git a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/LibraryMapping.java b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/LibraryMapping.java index 4facc5329a..bbac92e122 100644 --- a/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/LibraryMapping.java +++ b/maddi-cst-print-csharp/src/main/java/io/codelaser/maddi/cst/print/csharp/LibraryMapping.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; +import java.util.List; +import java.util.Set; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.regex.Pattern; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -26,13 +33,6 @@ import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.List; -import java.util.Set; -import java.util.function.Function; -import java.util.function.Supplier; -import java.util.regex.Pattern; -import java.util.stream.Stream; - /** * What the types, members and fields of a library the program uses are in C#: the JDK's ({@link CSharpBcl#JDK}), * slf4j's, Jackson's. The translation asks an ordered list of mappings ({@link CSharpLibraries}), and the first that diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/CommonJavaToCSharp.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/CommonJavaToCSharp.java index d4e5c32d99..1ee7962815 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/CommonJavaToCSharp.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/CommonJavaToCSharp.java @@ -17,18 +17,9 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.print.translate.PrintMessage; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; -import io.codelaser.maddi.cst.print.FormattingOptionsImpl; -import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.TestInfo; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.io.UncheckedIOException; @@ -41,9 +32,19 @@ import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.TestInfo; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; +import io.codelaser.maddi.cst.print.FormattingOptionsImpl; +import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; +import io.codelaser.maddi.cst.print.translate.PrintMessage; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** Parses a Java compilation unit with the openjdk front end and prints it as C#. */ public abstract class CommonJavaToCSharp { diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestCSharpMappingFile.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestCSharpMappingFile.java index 5e9c3caa03..d61f0a6092 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestCSharpMappingFile.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestCSharpMappingFile.java @@ -17,10 +17,7 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Files; @@ -28,7 +25,11 @@ import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; /** * A mapping file's errors, each with its file and line, and the parts of the format that only a client's file uses: diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestCstSupertypes.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestCstSupertypes.java index 4d2eca83c4..d099a7b242 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestCstSupertypes.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestCstSupertypes.java @@ -1,15 +1,16 @@ package io.codelaser.maddi.cst.print.csharp; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.print.translate.CstSupertypes; import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * {@link CstSupertypes}, the printers' shared supertype search: here, because this module's tests have the front end. diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpBcl.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpBcl.java index 494dad9b55..33bd60e8cd 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpBcl.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpBcl.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.cst.print.csharp; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + /** * The JDK in C# ({@link CSharpBcl}, {@code jdk-bcl.csmap}): values, collections and their navigation, concurrency, * reflection, services, the compatibility library where the BCL has no counterpart. Each test writes its samples' translations to {@code build/csharp-samples/}. diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpFacts.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpFacts.java index 56836e6b5f..3d225eaa27 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpFacts.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpFacts.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.cst.print.csharp; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -24,15 +34,6 @@ import io.codelaser.maddi.cst.api.type.NullableState; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.print.translate.PrintMessage; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * The analyses' facts in the printing ({@link CSharpFacts}): read-only parameters, nullable declarations and the diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpLibraries.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpLibraries.java index 23c16dd3c4..27589e3250 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpLibraries.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpLibraries.java @@ -17,21 +17,22 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.api.expression.MethodCall; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.print.translate.PrintMessage; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Set; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.List; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.MethodCall; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.print.translate.PrintMessage; + /** * The library mappings besides the JDK's: slf4j, Jackson, JAXB and Micrometer, a client's overrides in Java and as a * mapping file, and what a mapping requires of the translated project. Each test writes its samples' translations to {@code build/csharp-samples/}. diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpMessages.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpMessages.java index 389d57c578..e32e4ed131 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpMessages.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpMessages.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.print.translate.PrintMessage; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.print.translate.PrintMessage; /** * The printer's messages ({@link CSharpPrintCode}): code, severity, type and line, as the ratchets' reports and a diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpPolicies.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpPolicies.java index ea47ce3e30..a32ba917cf 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpPolicies.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpPolicies.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.cst.print.csharp; -import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts; /** * The whole-program policies ({@link CSharpProgram.Policy}) besides the default: functional interfaces as adapters, diff --git a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpStructure.java b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpStructure.java index 0494ce206a..d8a3c4ae13 100644 --- a/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpStructure.java +++ b/maddi-cst-print-csharp/src/test/java/io/codelaser/maddi/cst/print/csharp/TestJavaToCSharpStructure.java @@ -17,14 +17,16 @@ package io.codelaser.maddi.cst.print.csharp; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; + import java.util.List; import java.util.Set; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + /** * The Java forms C# says differently: types and their members, statements and expressions, generics, inner * and anonymous classes, functional interfaces as delegates. Each test writes its samples' translations to {@code build/csharp-samples/}. diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinAnnotations.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinAnnotations.java index bcb541e83f..f789c153a4 100644 --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinAnnotations.java +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinAnnotations.java @@ -17,6 +17,9 @@ package io.codelaser.maddi.cst.print.kotlin; +import java.util.List; +import java.util.Set; + import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.ArrayInitializer; import io.codelaser.maddi.cst.api.expression.ClassExpression; @@ -24,6 +27,7 @@ import io.codelaser.maddi.cst.api.expression.IntConstant; import io.codelaser.maddi.cst.api.expression.LongConstant; import io.codelaser.maddi.cst.api.expression.UnaryOperator; +import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.type.ParameterizedType; @@ -32,9 +36,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.List; -import java.util.Set; - /** * A declaration's Java annotations, as Kotlin writes them: {@code @Timeout(value = 60, unit = TimeUnit.SECONDS)}, * a class literal {@code X::class}, an array {@code [a, b]}. JUnit finds a translated test by its {@code @Test}. @@ -112,7 +113,7 @@ private static OutputBuilder annotation(AnnotationExpression ae, String at, Qual } /** The element's type, when it is a primitive other than the value's: a widening the value needs. */ - private static ParameterizedType primitiveElement(io.codelaser.maddi.cst.api.info.TypeInfo annotationType, + private static ParameterizedType primitiveElement(TypeInfo annotationType, AnnotationExpression.KV kv) { String key = kv.keyIsDefault() ? "value" : kv.key(); ParameterizedType type = annotationType.methods().stream() @@ -125,7 +126,7 @@ private static ParameterizedType primitiveElement(io.codelaser.maddi.cst.api.inf return type; } - private static boolean arrayElement(io.codelaser.maddi.cst.api.info.TypeInfo annotationType, AnnotationExpression.KV kv) { + private static boolean arrayElement(TypeInfo annotationType, AnnotationExpression.KV kv) { String key = kv.keyIsDefault() ? "value" : kv.key(); return annotationType.methods().stream().anyMatch(m -> m.name().equals(key) && m.parameters().isEmpty() && m.returnType().arrays() > 0); @@ -135,9 +136,9 @@ private static boolean arrayElement(io.codelaser.maddi.cst.api.info.TypeInfo ann * A member annotation type is named through its enclosing type, {@code JsonSubTypes.Type}: bare, {@code Type} * resolves to whatever else the file imports by that name ({@code java.lang.reflect.Type}). */ - private static String annotationName(io.codelaser.maddi.cst.api.info.TypeInfo typeInfo, Qualification q) { + private static String annotationName(TypeInfo typeInfo, Qualification q) { String name = KotlinTypeName.name(typeInfo, q); - io.codelaser.maddi.cst.api.info.TypeInfo primary = typeInfo.primaryType(); + TypeInfo primary = typeInfo.primaryType(); if (name.contains(".") || typeInfo.isPrimaryType() || primary == null) return name; return KotlinTypeName.name(primary, q) + typeInfo.fullyQualifiedName().substring(primary.fullyQualifiedName().length()); } diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinApply.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinApply.java index 60c28a5a02..9215938e8c 100644 --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinApply.java +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinApply.java @@ -16,12 +16,17 @@ */ package io.codelaser.maddi.cst.print.kotlin; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.MethodReference; +import io.codelaser.maddi.cst.api.expression.TypeExpression; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -39,9 +44,6 @@ import io.codelaser.maddi.cst.impl.output.SymbolEnum; import io.codelaser.maddi.cst.impl.output.TextImpl; -import java.util.ArrayList; -import java.util.List; - /** * Construct, configure, return (CodeLaser/maddi#165): *
      @@ -147,7 +149,7 @@ private static boolean keepsMeaning(Expression argument, LocalVariable local, Ty
                                                                || v.variable() instanceof FieldReference fr && bare(fr)
                                                                   && hasMember(type, fr.fieldInfo().name()))
                       || e instanceof MethodCall m && m.objectIsImplicit()
      -                   && (!(m.object() instanceof io.codelaser.maddi.cst.api.expression.TypeExpression)
      +                   && (!(m.object() instanceof TypeExpression)
                              || hasMember(type, m.methodInfo().name()))) {
                       ok[0] = false;
                   }
      @@ -159,7 +161,7 @@ && hasMember(type, fr.fieldInfo().name()))
           // a field read by its bare name: of this, or a static of the enclosing classes
           private static boolean bare(FieldReference fr) {
               if (fr.scopeIsRecursivelyThis()) return true;
      -        return fr.isStatic() && (fr.scope() == null || fr.scope() instanceof io.codelaser.maddi.cst.api.expression.TypeExpression te
      +        return fr.isStatic() && (fr.scope() == null || fr.scope() instanceof TypeExpression te
                                                              && KotlinContext.typeInScope(te.parameterizedType().typeInfo()));
           }
       
      @@ -169,7 +171,7 @@ private static boolean bare(FieldReference fr) {
            */
           private static boolean hasMember(TypeInfo type, String name) {
               String capitalized = name.isEmpty() ? name : Character.toUpperCase(name.charAt(0)) + name.substring(1);
      -        return java.util.stream.Stream.concat(java.util.stream.Stream.of(type), type.superTypesExcludingJavaLangObject().stream())
      +        return Stream.concat(Stream.of(type), type.superTypesExcludingJavaLangObject().stream())
                       .anyMatch(t -> t.fields().stream().anyMatch(f -> f.name().equals(name))
                                      || t.methods().stream().anyMatch(m -> m.name().equals(name)
                                                                            || m.name().equals("get" + capitalized)
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinAssignments.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinAssignments.java
      index bd4dadd86d..4de2ca7927 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinAssignments.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinAssignments.java
      @@ -16,26 +16,30 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.CstQueries;
      +import java.util.ArrayList;
      +import java.util.Collections;
      +import java.util.HashSet;
      +import java.util.IdentityHashMap;
      +import java.util.List;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
      +import io.codelaser.maddi.cst.api.expression.Expression;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration;
      -import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.api.statement.Block;
       import io.codelaser.maddi.cst.api.statement.BreakOrContinueStatement;
       import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement;
       import io.codelaser.maddi.cst.api.statement.IfElseStatement;
      +import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration;
       import io.codelaser.maddi.cst.api.statement.ReturnStatement;
       import io.codelaser.maddi.cst.api.statement.Statement;
       import io.codelaser.maddi.cst.api.statement.ThrowStatement;
      +import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.api.variable.Variable;
      -
      -import java.util.HashSet;
      -import java.util.List;
      -import java.util.Set;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
       
       /**
        * Which variables are assigned after their declaration, for {@code val} versus {@code var}. Syntactic, and exact
      @@ -66,8 +70,8 @@ static boolean assignedIn(Element scope, Variable variable) {
       
           /** An assignment to {@code variable} in {@code scope} that is not a statement of its own, but a value. */
           static boolean assignedAsValue(Element scope, Variable variable) {
      -        Set statements = java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>());
      -        List assignments = new java.util.ArrayList<>();
      +        Set statements = Collections.newSetFromMap(new IdentityHashMap<>());
      +        List assignments = new ArrayList<>();
               scope.visit((Element e) -> {
                   if (e instanceof ExpressionAsStatement eas) statements.add(CstQueries.unwrap(eas.expression()));
                   if (e instanceof Assignment a && variable.equals(a.variableTarget())) assignments.add(a);
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinCollectionFactories.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinCollectionFactories.java
      index f5264b928b..ee59f5e2aa 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinCollectionFactories.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinCollectionFactories.java
      @@ -16,18 +16,23 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.List;
      +import java.util.Map;
      +import java.util.stream.Collectors;
      +
      +import io.codelaser.maddi.cst.api.expression.ArrayInitializer;
      +import io.codelaser.maddi.cst.api.expression.ConstructorCall;
       import io.codelaser.maddi.cst.api.expression.Expression;
      +import io.codelaser.maddi.cst.api.expression.InlineConditional;
      +import io.codelaser.maddi.cst.api.expression.Lambda;
       import io.codelaser.maddi.cst.api.expression.MethodCall;
      +import io.codelaser.maddi.cst.api.expression.MethodReference;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.output.Qualification;
       import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl;
       import io.codelaser.maddi.cst.impl.output.SymbolEnum;
       import io.codelaser.maddi.cst.impl.output.TextImpl;
       
      -import java.util.List;
      -import java.util.Map;
      -import java.util.stream.Collectors;
      -
       /**
        * Java's immutable collection factories as Kotlin's (CodeLaser/maddi#141): {@code List.of(a, b)} is
        * {@code listOf(a, b)}, {@code List.of()} is {@code emptyList()}, {@code Map.of(k, v)} is {@code mapOf(k to v)}; a Set.of
      @@ -78,11 +83,11 @@ private static boolean keepsOrder(MethodCall mc) {
            */
           private static boolean typedByTarget(Expression e) {
               Expression u = KotlinExpressionPrinter.unwrap(e);
      -        return u instanceof io.codelaser.maddi.cst.api.expression.ConstructorCall
      -               || u instanceof io.codelaser.maddi.cst.api.expression.ArrayInitializer
      -               || u instanceof io.codelaser.maddi.cst.api.expression.Lambda
      -               || u instanceof io.codelaser.maddi.cst.api.expression.MethodReference
      -               || u instanceof io.codelaser.maddi.cst.api.expression.InlineConditional;
      +        return u instanceof ConstructorCall
      +               || u instanceof ArrayInitializer
      +               || u instanceof Lambda
      +               || u instanceof MethodReference
      +               || u instanceof InlineConditional;
           }
       
           static OutputBuilder print(MethodCall mc, Qualification q) {
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinComments.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinComments.java
      index a194d7c9d2..8dc8f3d8ff 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinComments.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinComments.java
      @@ -16,6 +16,12 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.Arrays;
      +import java.util.List;
      +import java.util.regex.Matcher;
      +import java.util.regex.Pattern;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.element.Comment;
       import io.codelaser.maddi.cst.api.element.JavaDoc;
       import io.codelaser.maddi.cst.api.element.MultiLineComment;
      @@ -28,12 +34,6 @@
       import io.codelaser.maddi.cst.impl.output.SpaceEnum;
       import io.codelaser.maddi.cst.impl.output.TextImpl;
       
      -import java.util.Arrays;
      -import java.util.List;
      -import java.util.regex.Matcher;
      -import java.util.regex.Pattern;
      -import java.util.stream.Stream;
      -
       /**
        * Java's comments as Kotlin's: a line or block comment as written, a Javadoc as a KDoc. KDoc keeps the
        * {@code /** … *}{@code /} form and the block tags; the inline tags are Markdown there, so {@code {@link Foo#bar}}
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinCompilationUnitPrinter.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinCompilationUnitPrinter.java
      index fd5ae5bda3..ae5dc71cff 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinCompilationUnitPrinter.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinCompilationUnitPrinter.java
      @@ -16,7 +16,11 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.PrintMessage;
      +import java.util.ArrayList;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.element.CompilationUnit;
       import io.codelaser.maddi.cst.api.info.ImportComputer;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      @@ -24,11 +28,7 @@
       import io.codelaser.maddi.cst.api.output.Qualification;
       import io.codelaser.maddi.cst.impl.info.CompilationUnitPrinterImpl;
       import io.codelaser.maddi.cst.impl.output.*;
      -
      -import java.util.ArrayList;
      -import java.util.HashSet;
      -import java.util.List;
      -import java.util.Set;
      +import io.codelaser.maddi.cst.print.translate.PrintMessage;
       
       /**
        * Prints a {@link CompilationUnit} as a Kotlin file: the {@code package} line, the imports the
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinContext.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinContext.java
      index 3abbdd7e2e..475cf1ad2c 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinContext.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinContext.java
      @@ -16,19 +16,29 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.ArrayDeque;
      +import java.util.Deque;
      +import java.util.HashMap;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Optional;
      +import java.util.Set;
      +import java.util.TreeSet;
      +import java.util.function.Supplier;
      +
      +import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.expression.Expression;
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.ParameterInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.statement.Statement;
      +import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.Variable;
       import io.codelaser.maddi.cst.print.translate.PrintMessage;
       import io.codelaser.maddi.cst.print.translate.TranslationState;
       
      -import java.util.ArrayDeque;
      -import java.util.Deque;
      -import java.util.HashMap;
      -import java.util.Map;
      -import java.util.function.Supplier;
      -
       /**
        * What a statement needs to know about where it is printed, which the CST does not say: the printers are static
        * and recursive, so this is a per-thread stack, pushed and popped around the constructs that change the answer.
      @@ -89,12 +99,12 @@ enum Kind {LOOP, SWITCH, LAMBDA, METHOD}
           private static final ThreadLocal> STATE =
                   ThreadLocal.withInitial(TranslationState::new);
           private static final ThreadLocal OPTIONS = ThreadLocal.withInitial(() -> KotlinPrintOptions.DEFAULT);
      -    private static final ThreadLocal> LOCAL_TYPES =
      +    private static final ThreadLocal> LOCAL_TYPES =
                   ThreadLocal.withInitial(HashMap::new);
           // the body a local variable is declared in: the method's, or a lambda's
      -    private static final ThreadLocal>> SCOPES =
      +    private static final ThreadLocal>> SCOPES =
                   ThreadLocal.withInitial(ArrayDeque::new);
      -    private static final ThreadLocal> SHADOWING = ThreadLocal.withInitial(java.util.Set::of);
      +    private static final ThreadLocal> SHADOWING = ThreadLocal.withInitial(Set::of);
           // by name: a local variable's equality is its name, and so is its scope as far as Kotlin is concerned
           private static final ThreadLocal>> PATTERNS =
                   ThreadLocal.withInitial(HashMap::new);
      @@ -154,11 +164,11 @@ static TranslationState state() {
           }
       
           /** The call around the innermost one: {@code Collections.sort(list, …)} while printing its comparingInt(…). */
      -    static io.codelaser.maddi.cst.api.expression.Expression enclosingCall() {
      +    static Expression enclosingCall() {
               return STATE.get().enclosingCall();
           }
       
      -    static void pushCall(io.codelaser.maddi.cst.api.expression.Expression call) {
      +    static void pushCall(Expression call) {
               STATE.get().pushCall(call);
           }
       
      @@ -179,16 +189,16 @@ static void popStatement() {
               STATE.get().popStatement();
           }
       
      -    static io.codelaser.maddi.cst.api.info.MethodInfo currentMethod() {
      +    static MethodInfo currentMethod() {
               return STATE.get().currentMethod();
           }
       
           /** The type a local variable was printed with, by name (the innermost declaration of that name wins). */
      -    static void localType(String name, io.codelaser.maddi.cst.api.type.ParameterizedType type) {
      +    static void localType(String name, ParameterizedType type) {
               LOCAL_TYPES.get().put(name, type);
           }
       
      -    static io.codelaser.maddi.cst.api.type.ParameterizedType localType(String name) {
      +    static ParameterizedType localType(String name) {
               return LOCAL_TYPES.get().get(name);
           }
       
      @@ -199,17 +209,17 @@ static void referencedType(TypeInfo primaryType) {
           }
       
           /** The types referenced since the last call, which starts a new record. */
      -    static java.util.Set takeReferencedTypes() {
      +    static Set takeReferencedTypes() {
               return STATE.get().takeReferenced();
           }
       
           // the file's imports by simple name: a type Java never named (a SAM constructor's guava Function, where the file
           // imports java.util.function.Function) cannot take a name another import holds
      -    private static final ThreadLocal> IMPORTED_NAMES =
      -            ThreadLocal.withInitial(java.util.Map::of);
      +    private static final ThreadLocal> IMPORTED_NAMES =
      +            ThreadLocal.withInitial(Map::of);
       
      -    static void importedNames(java.util.List imports) {
      -        java.util.Map names = new java.util.HashMap<>();
      +    static void importedNames(List imports) {
      +        Map names = new HashMap<>();
               imports.stream().filter(i -> !i.endsWith(".*"))
                       .forEach(i -> names.putIfAbsent(i.substring(i.lastIndexOf('.') + 1), i));
               IMPORTED_NAMES.set(names);
      @@ -221,31 +231,31 @@ static String importedName(String simpleName) {
           }
       
           // the file's private helpers its text calls (KotlinCompilationUnitPrinter appends their declarations)
      -    private static final ThreadLocal> FILE_HELPERS = ThreadLocal.withInitial(java.util.TreeSet::new);
      +    private static final ThreadLocal> FILE_HELPERS = ThreadLocal.withInitial(TreeSet::new);
       
           static void fileHelper(String declaration) {
               FILE_HELPERS.get().add(declaration);
           }
       
           /** The helpers asked for since the last call, which starts a new record. */
      -    static java.util.Set takeFileHelpers() {
      -        java.util.Set taken = FILE_HELPERS.get();
      -        FILE_HELPERS.set(new java.util.TreeSet<>());
      +    static Set takeFileHelpers() {
      +        Set taken = FILE_HELPERS.get();
      +        FILE_HELPERS.set(new TreeSet<>());
               return taken;
           }
       
           /** Records a message about {@code subject}, an element of the type being printed. */
      -    static void message(KotlinPrintCode code, io.codelaser.maddi.cst.api.element.Element subject, String detail) {
      +    static void message(KotlinPrintCode code, Element subject, String detail) {
               STATE.get().message(code, subject, detail);
           }
       
           /** An element in a message: its Java text, on one line, shortened. */
      -    static String describe(io.codelaser.maddi.cst.api.element.Element e) {
      +    static String describe(Element e) {
               return TranslationState.describe(e);
           }
       
           /** The messages recorded since the last call, which starts a new record. */
      -    static java.util.List> takeMessages() {
      +    static List> takeMessages() {
               return STATE.get().takeMessages();
           }
       
      @@ -258,11 +268,11 @@ static void resetLabels() {
            * The primary constructor's parameter names, while printing property initializers and init blocks: there a field
            * of the same name must be written {@code this.x}, or it reads the parameter.
            */
      -    static void shadowingParameters(java.util.Set names) {
      +    static void shadowingParameters(Set names) {
               SHADOWING.set(names);
           }
       
      -    static java.util.Set shadowingParameters() {
      +    static Set shadowingParameters() {
               return SHADOWING.get();
           }
       
      @@ -298,7 +308,7 @@ static boolean typeInScope(TypeInfo typeInfo) {
            * A type parameter of one of the types being printed that Kotlin sees here, or of the method being printed: not the
            * outer class's in a nested class (jenkins's CopyOnWriteList.ConverterImpl and its E).
            */
      -    static boolean typeParameterInScope(io.codelaser.maddi.cst.api.info.TypeParameter typeParameter) {
      +    static boolean typeParameterInScope(TypeParameter typeParameter) {
               if (STATE.get().typeParameterInScope(typeParameter, KotlinTypePrinter::inner)) return true;
               // an enclosing method's too: guava's MultimapBuilder.enumKeys creates an EnumMap in the
               // createMap of the anonymous class it returns
      @@ -307,8 +317,8 @@ static boolean typeParameterInScope(io.codelaser.maddi.cst.api.info.TypeParamete
           }
       
           /** The method being printed, or one enclosing it, that declares {@code typeParameter}; null when none does. */
      -    static io.codelaser.maddi.cst.api.info.MethodInfo enclosingMethodOf(
      -            io.codelaser.maddi.cst.api.info.TypeParameter typeParameter) {
      +    static MethodInfo enclosingMethodOf(
      +            TypeParameter typeParameter) {
               return STATE.get().methods().stream().filter(m -> m.typeParameters().contains(typeParameter))
                       .findFirst().orElse(null);
           }
      @@ -342,11 +352,11 @@ static void declared(String name) {
       
           /** A method body starts: the pattern variables of the enclosing method are not in scope. Restore with the result. */
           record MethodScope(Map> patterns,
      -                       Map localTypes,
      -                       java.util.Deque smartCasts) {
      +                       Map localTypes,
      +                       Deque smartCasts) {
           }
       
      -    static MethodScope enterMethod(io.codelaser.maddi.cst.api.info.MethodInfo methodInfo) {
      +    static MethodScope enterMethod(MethodInfo methodInfo) {
               MethodScope saved = new MethodScope(new HashMap<>(PATTERNS.get()), new HashMap<>(LOCAL_TYPES.get()),
                       KotlinSmartCasts.enterMethod());
               PATTERNS.get().clear();
      @@ -369,24 +379,24 @@ static void exitMethod(MethodScope saved) {
               LOCAL_TYPES.get().putAll(saved.localTypes());
           }
       
      -    private static final ThreadLocal> LAMBDA_PARAMETERS = ThreadLocal.withInitial(HashMap::new);
      +    private static final ThreadLocal> LAMBDA_PARAMETERS = ThreadLocal.withInitial(HashMap::new);
       
           /** The type Kotlin gives this lambda parameter, from the call the lambda is an argument of; null if unknown. */
      -    static io.codelaser.maddi.cst.api.type.ParameterizedType lambdaParameterType(
      -            io.codelaser.maddi.cst.api.info.ParameterInfo parameter) {
      +    static ParameterizedType lambdaParameterType(
      +            ParameterInfo parameter) {
               return LAMBDA_PARAMETERS.get().get(parameter);
           }
       
      -    static void lambdaParameterType(io.codelaser.maddi.cst.api.info.ParameterInfo parameter,
      -                                    io.codelaser.maddi.cst.api.type.ParameterizedType type) {
      +    static void lambdaParameterType(ParameterInfo parameter,
      +                                    ParameterizedType type) {
               if (type == null) LAMBDA_PARAMETERS.get().remove(parameter);
               else LAMBDA_PARAMETERS.get().put(parameter, type);
           }
       
           /** A method or lambda body starts: the scope of the local variables declared in it. */
      -    static void pushScope(io.codelaser.maddi.cst.api.element.Element body) {
      -        SCOPES.get().push(java.util.Optional.ofNullable(body));
      +    static void pushScope(Element body) {
      +        SCOPES.get().push(Optional.ofNullable(body));
           }
       
           static void popScope() {
      @@ -412,7 +422,7 @@ static boolean assignedAsValue(Variable local) {
           }
       
           /** A local of the current body declared without a value, which each path assigns at most once: a val. */
      -    static boolean assignedOnce(io.codelaser.maddi.cst.api.statement.Statement declaration, Variable local) {
      +    static boolean assignedOnce(Statement declaration, Variable local) {
               var scope = SCOPES.get().peek();
               return scope != null && scope.isPresent() && KotlinAssignments.assignedOnce(scope.get(), declaration, local);
           }
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinExpressionPrinter.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinExpressionPrinter.java
      index 3420774f01..b7ce609b76 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinExpressionPrinter.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinExpressionPrinter.java
      @@ -17,33 +17,57 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.Emission;
      -import io.codelaser.maddi.cst.print.translate.Literals;
      -import io.codelaser.maddi.cst.print.translate.CstQueries;
      +import java.util.ArrayDeque;
      +import java.util.ArrayList;
      +import java.util.Collections;
      +import java.util.Deque;
      +import java.util.HashMap;
      +import java.util.HashSet;
      +import java.util.IdentityHashMap;
      +import java.util.LinkedHashMap;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Objects;
      +import java.util.Optional;
      +import java.util.Set;
      +import java.util.function.Supplier;
      +import java.util.regex.Matcher;
      +import java.util.regex.Pattern;
      +import java.util.stream.Collectors;
      +import java.util.stream.IntStream;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.element.DetailedSources;
       import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.element.RecordPattern;
       import io.codelaser.maddi.cst.api.element.Source;
       import io.codelaser.maddi.cst.api.expression.*;
      +import io.codelaser.maddi.cst.api.info.FieldInfo;
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.ParameterInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.output.Qualification;
       import io.codelaser.maddi.cst.api.output.element.Symbol;
       import io.codelaser.maddi.cst.api.statement.Block;
      +import io.codelaser.maddi.cst.api.statement.LocalVariableCreation;
       import io.codelaser.maddi.cst.api.statement.ReturnStatement;
       import io.codelaser.maddi.cst.api.statement.Statement;
      +import io.codelaser.maddi.cst.api.type.NamedType;
      +import io.codelaser.maddi.cst.api.type.NullableState;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.DependentVariable;
       import io.codelaser.maddi.cst.api.variable.FieldReference;
      +import io.codelaser.maddi.cst.api.variable.LocalVariable;
       import io.codelaser.maddi.cst.api.variable.This;
       import io.codelaser.maddi.cst.api.variable.Variable;
       import io.codelaser.maddi.cst.impl.expression.util.PrecedenceEnum;
       import io.codelaser.maddi.cst.impl.info.CompilationUnitPrinterImpl;
       import io.codelaser.maddi.cst.impl.output.*;
      -
      -import java.util.ArrayList;
      -import java.util.List;
      -import java.util.Map;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
      +import io.codelaser.maddi.cst.print.translate.Emission;
      +import io.codelaser.maddi.cst.print.translate.Literals;
       
       /**
        * Prints an {@link Expression} as Kotlin. Every expression form is printed here, recursively, so that a Java-only
      @@ -175,10 +199,10 @@ public static OutputBuilder printStatement(Expression e, Qualification q) {
           private static Assignment chainedToLocal(Assignment a) {
               if (!KotlinContext.translatingJava() || !plainAssignment(a)) return null;
               if (!(unwrap(a.value()) instanceof Assignment inner) || !plainAssignment(inner)
      -            || !(inner.variableTarget() instanceof io.codelaser.maddi.cst.api.variable.LocalVariable)) {
      +            || !(inner.variableTarget() instanceof LocalVariable)) {
                   return null;
               }
      -        boolean pureTarget = a.variableTarget() instanceof io.codelaser.maddi.cst.api.variable.LocalVariable
      +        boolean pureTarget = a.variableTarget() instanceof LocalVariable
                       || a.variableTarget() instanceof FieldReference fr && (fr.scope() == null || fr.fieldInfo().isStatic()
                               || unwrap(fr.scope()) instanceof VariableExpression s && s.variable() instanceof This);
               return pureTarget ? inner : null;
      @@ -190,8 +214,8 @@ private static boolean plainAssignment(Assignment a) {
           }
       
           // assignments printed before the statement they are an argument of; in it, they are their target
      -    private static final ThreadLocal> HOISTED =
      -            ThreadLocal.withInitial(() -> java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()));
      +    private static final ThreadLocal> HOISTED =
      +            ThreadLocal.withInitial(() -> Collections.newSetFromMap(new IdentityHashMap<>()));
       
           /**
            * {@code map.put(k, lst = new ArrayList<>())} as a statement: {@code lst = ArrayList()} first, then
      @@ -202,12 +226,12 @@ private static boolean plainAssignment(Assignment a) {
            */
           private static List hoistable(MethodCall mc) {
               List hoisted = new ArrayList<>();
      -        java.util.Set assigned = new java.util.HashSet<>();
      +        Set assigned = new HashSet<>();
               if (!mc.objectIsImplicit() && mc.object() != null && !pure(mc.object(), assigned)) return hoisted;
               for (Expression argument : mc.parameterExpressions()) {
                   if (unwrap(argument) instanceof Assignment a && a.prefixPrimitiveOperator() == null
                       && (a.assignmentOperator() == null || "=".equals(a.assignmentOperator().name()))
      -                && a.variableTarget() instanceof io.codelaser.maddi.cst.api.variable.LocalVariable
      +                && a.variableTarget() instanceof LocalVariable
                       && !(unwrap(a.value()) instanceof Assignment)) {
                       hoisted.add(a);
                       assigned.add(a.variableTarget());
      @@ -221,13 +245,13 @@ private static List hoistable(MethodCall mc) {
           }
       
           /** A constant, or a variable read (through fields of variables) that is none of {@code assigned}. */
      -    private static boolean pure(Expression e, java.util.Set assigned) {
      +    private static boolean pure(Expression e, Set assigned) {
               Expression x = unwrap(e);
               if (x instanceof ConstantExpression) return true;
               if (!(x instanceof VariableExpression ve) || assigned.contains(ve.variable())) return false;
               return switch (ve.variable()) {
                   case FieldReference fr -> fr.isStatic() || fr.scope() == null || pure(fr.scope(), assigned);
      -            case io.codelaser.maddi.cst.api.variable.DependentVariable dv -> false;
      +            case DependentVariable dv -> false;
                   default -> true;
               };
           }
      @@ -257,7 +281,7 @@ static OutputBuilder variable(Variable v, Qualification q) {
                   case DependentVariable dv -> new OutputBuilderImpl().add(KotlinNullability.asserted(dv.arrayExpression(), q))
                           .add(SymbolEnum.LEFT_BRACKET).add(arrayIndex(dv.indexExpression(), q)).add(SymbolEnum.RIGHT_BRACKET);
                   default -> {
      -                java.util.function.Supplier pattern = KotlinContext.patternVariable(v);
      +                Supplier pattern = KotlinContext.patternVariable(v);
                       yield pattern != null ? pattern.get() : new OutputBuilderImpl().add(new TextImpl(KotlinNames.name(v.simpleName())));
                   }
               };
      @@ -285,15 +309,15 @@ private static String thisOrSuper(This t, Qualification q) {
            * Splitr's fromSpliterator is its MapWithIndexSpliterator's part, not the method's whole spliterator.
            */
           private static boolean shadowedByCapturedLocal(TypeInfo current, TypeInfo owner, String name) {
      -        if (current == null || owner == null || !isSubtype(current, owner, new java.util.HashSet<>())) return false;
      +        if (current == null || owner == null || !isSubtype(current, owner, new HashSet<>())) return false;
               for (TypeInfo t = current; t != null; t = CstQueries.enclosing(t)) {
      -            io.codelaser.maddi.cst.api.info.MethodInfo method = t.enclosingMethod();
      +            MethodInfo method = t.enclosingMethod();
                   if (method == null) continue;
                   if (method.parameters().stream().anyMatch(p -> p.name().equals(name))) return true;
                   boolean[] declared = {false};
                   if (method.methodBody() != null) {
                       method.methodBody().visit((Element e) -> {
      -                    if (e instanceof io.codelaser.maddi.cst.api.statement.LocalVariableCreation lvc
      +                    if (e instanceof LocalVariableCreation lvc
                               && lvc.localVariableStream().anyMatch(lv -> lv.simpleName().equals(name))) {
                               declared[0] = true;
                           }
      @@ -336,7 +360,7 @@ private static OutputBuilder fieldReference(FieldReference fr, Qualification q)
           // ---------------------------------------------------------------- calls
       
           /** A call is printed: the per-expression nullability facts are asked for with it (its receiver, its arguments). */
      -    private static OutputBuilder inCall(Expression call, java.util.function.Supplier printer) {
      +    private static OutputBuilder inCall(Expression call, Supplier printer) {
               KotlinContext.pushCall(call);
               try {
                   return printer.get();
      @@ -487,8 +511,8 @@ && rawComparableReceiver(object.parameterizedType())) {
                                              && KotlinNullability.isNullable(receiver.parameters().getFirst());
                   String element = expected != null ? KotlinTypeName.of(expected, q)
                           : array == null || array.arrays() != 1 ? null : KotlinTypeName.of(array.componentType()
      -                    .withNullable(nullableElements ? io.codelaser.maddi.cst.api.type.NullableState.NULLABLE
      -                            : io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q);
      +                    .withNullable(nullableElements ? NullableState.NULLABLE
      +                            : NullableState.NONNULL), q);
                   if (element != null && uncheckedElement(object, mc.parameterExpressions().getFirst())) {
                       // guava's JdkBackedImmutableMultiset: entries.toArray((Entry[]) new Entry[0]) on a
                       // Collection>: Java's cast is unchecked, and so is the receiver's here,
      @@ -512,7 +536,7 @@ && rawComparableReceiver(object.parameterizedType())) {
                       && nullableElements(object)) {
                       // collection.toArray() of a Collection (guava's Ints.toArray): Kotlin's toTypedArray
                       // wants a T the elements fit, Java's Object[] holds the nulls too
      -                component = component.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE);
      +                component = component.withNullable(NullableState.NULLABLE);
                   }
                   String element = expected != null ? KotlinTypeName.of(expected, q)
                           : component == null ? null : KotlinTypeName.of(component, q);
      @@ -616,7 +640,7 @@ && nullableElements(object)) {
                   return new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS).add(b).add(SpaceEnum.ONE)
                           .add(KotlinKeyword.AS).add(SpaceEnum.ONE)
                           .add(new TextImpl(KotlinTypeName.of(mc.concreteReturnType()
      -                            .withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q)))
      +                            .withNullable(NullableState.NONNULL), q)))
                           .add(SymbolEnum.RIGHT_PARENTHESIS);
               }
               b.add(new TextImpl(KotlinNames.name(mc.methodInfo().name()) + (typeArguments == null ? "" : typeArguments)));
      @@ -630,10 +654,10 @@ && nullableElements(object)) {
            */
           private static String explicitTypeArguments(MethodCall mc, Qualification q) {
               List arguments = new ArrayList<>(mc.typeArguments().stream().map(KotlinTypePrinter::declared).toList());
      -        java.util.Map.Entry t = TYPE_ARGUMENTS_TARGET.get();
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      +        Map.Entry t = TYPE_ARGUMENTS_TARGET.get();
      +        MethodInfo m = mc.methodInfo();
               if (t != null && t.getKey() == mc && m.returnType() != null && m.typeParameters().size() == arguments.size()) {
      -            Map concrete;
      +            Map concrete;
                   try {
                       concrete = m.returnType().formalToConcrete(t.getValue());
                   } catch (RuntimeException | AssertionError e) {
      @@ -644,27 +668,27 @@ private static String explicitTypeArguments(MethodCall mc, Qualification q) {
                       ParameterizedType argument = arguments.get(i);
                       if (target != null && target.wildcard() == null && KotlinNullability.isNullable(target)
                           && sameUpToStates(target, argument)) {
      -                    arguments.set(i, argument.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE));
      +                    arguments.set(i, argument.withNullable(NullableState.NULLABLE));
                       }
                   }
               }
      -        return arguments.stream().map(a -> KotlinTypeName.of(a, q)).collect(java.util.stream.Collectors.joining(", ", "<", ">"));
      +        return arguments.stream().map(a -> KotlinTypeName.of(a, q)).collect(Collectors.joining(", ", "<", ">"));
           }
       
           /** The call with explicit type arguments that {@link #widened} prints into a declaration of this type. */
      -    private static final ThreadLocal> TYPE_ARGUMENTS_TARGET = new ThreadLocal<>();
      +    private static final ThreadLocal> TYPE_ARGUMENTS_TARGET = new ThreadLocal<>();
       
           /** The method returns a type whose type arguments Kotlin types nullable: {@code Ordering<@Nullable S>}. */
      -    private static boolean nullableArgument(io.codelaser.maddi.cst.api.info.MethodInfo methodInfo) {
      +    private static boolean nullableArgument(MethodInfo methodInfo) {
               ParameterizedType verdict = KotlinNullability.returnType(methodInfo);
               ParameterizedType declared = KotlinTypePrinter.declaredArguments(methodInfo.returnType());
      -        return java.util.stream.Stream.of(verdict, declared).anyMatch(t -> t != null
      +        return Stream.of(verdict, declared).anyMatch(t -> t != null
                       && t.parameters().stream().anyMatch(KotlinNullability::isNullable));
           }
       
           // calls assigned to a raw variable or returned from a raw method: nothing fixes their type arguments
      -    private static final ThreadLocal> RAW_TARGET =
      -            ThreadLocal.withInitial(() -> java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()));
      +    private static final ThreadLocal> RAW_TARGET =
      +            ThreadLocal.withInitial(() -> Collections.newSetFromMap(new IdentityHashMap<>()));
       
           /**
            * A generic class constructed raw, {@code new HashMap()}: no type arguments written, nor a diamond, into a raw
      @@ -688,7 +712,7 @@ private static boolean rawGeneric(ParameterizedType type) {
            * {@code getBytes(String)}, {@code new String(byte[], String)}, {@code new String(byte[], int, int, String)}; -1
            * for any other.
            */
      -    private static int charsetNameAt(io.codelaser.maddi.cst.api.info.MethodInfo m) {
      +    private static int charsetNameAt(MethodInfo m) {
               if (!KotlinContext.translatingJava() || m == null || m.parameters().isEmpty()
                   || !"java.lang.String".equals(m.typeInfo().fullyQualifiedName())) return -1;
               int last = m.parameters().size() - 1;
      @@ -711,14 +735,14 @@ private static OutputBuilder charsetOf(Expression name, Qualification q) {
            * A raw receiver of a member whose parameters take its class's type variables: Kotlin's star projection of the
            * raw type takes nothing there.
            */
      -    private static boolean rawReceiver(Expression object, io.codelaser.maddi.cst.api.info.MethodInfo method) {
      +    private static boolean rawReceiver(Expression object, MethodInfo method) {
               ParameterizedType t = object.parameterizedType();
               if (!KotlinContext.translatingJava() || method == null || method.isStatic() || t == null || t.typeInfo() == null
                   || t.arrays() > 0 || !t.parameters().isEmpty() || t.typeInfo().typeParameters().isEmpty()
                   || unwrap(object) instanceof TypeExpression) return false;
               // a raw Comparable's compareTo has its own cast, to Comparable
               if ("compareTo".equals(method.name())) return false;
      -        java.util.List own = method.typeInfo().typeParameters();
      +        List own = method.typeInfo().typeParameters();
               return !own.isEmpty() && method.parameters().stream()
                       .anyMatch(p -> own.stream().anyMatch(tp -> CstQueries.mentions(p.parameterizedType(), tp)));
           }
      @@ -728,10 +752,10 @@ private static boolean rawReceiver(Expression object, io.codelaser.maddi.cst.api
            * into a parameter typed by that type variable, which the verdicts hold non-null; null otherwise. See the caller.
            */
           private static String nullIntoVoid(MethodCall mc, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      +        MethodInfo m = mc.methodInfo();
               if (!KotlinContext.translatingJava() || m.typeParameters().isEmpty() || m.returnType() == null
                   || mc.concreteReturnType() == null || !KotlinNullability.translated(m.typeInfo())) return null;
      -        Map concrete =
      +        Map concrete =
                       m.returnType().formalToConcrete(mc.concreteReturnType());
               boolean found = false;
               List args = mc.parameterExpressions();
      @@ -746,14 +770,14 @@ private static String nullIntoVoid(MethodCall mc, Qualification q) {
               }
               if (!found) return null;
               List printed = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : m.typeParameters()) {
      +        for (TypeParameter tp : m.typeParameters()) {
                   ParameterizedType c = concrete.get(tp);
                   if (c == null || c.wildcard() != null || c.typeParameter() == tp) return null;
                   boolean isVoid = c.arrays() == 0 && c.typeInfo() != null
                                    && "java.lang.Void".equals(c.typeInfo().fullyQualifiedName());
                   printed.add(isVoid ? "Unit?" : KotlinTypeName.of(c, q));
               }
      -        return printed.stream().collect(java.util.stream.Collectors.joining(", ", "<", ">"));
      +        return printed.stream().collect(Collectors.joining(", ", "<", ">"));
           }
       
           private static String resultOnlyOrLambdaOnly(MethodCall mc, Qualification q) {
      @@ -774,9 +798,9 @@ private static String resultOnlyOrLambdaOnly(MethodCall mc, Qualification q) {
            * bound, the others Java's inferred ones. Null when a call has no such T, or an argument cannot be named.
            */
           private static String throwsOnlyTypeArguments(MethodCall mc, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      +        MethodInfo m = mc.methodInfo();
               if (!KotlinContext.translatingJava() || m.typeParameters().isEmpty() || m.returnType() == null) return null;
      -        List throwsOnly = m.typeParameters().stream()
      +        List throwsOnly = m.typeParameters().stream()
                       .filter(tp -> throwableBound(tp) != null && !CstQueries.mentions(m.returnType(), tp)).toList();
               if (throwsOnly.isEmpty()) return null;
               // only where a lambda or a reference takes the T: a typed argument fixes it (jenkins's channel.call(new
      @@ -789,27 +813,27 @@ private static String throwsOnlyTypeArguments(MethodCall mc, Qualification q) {
                       return null;
                   }
               }
      -        Map concrete = mc.concreteReturnType() == null
      +        Map concrete = mc.concreteReturnType() == null
                       ? Map.of() : m.returnType().formalToConcrete(mc.concreteReturnType());
               List printed = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : m.typeParameters()) {
      +        for (TypeParameter tp : m.typeParameters()) {
                   if (throwsOnly.contains(tp)) {
                       printed.add(KotlinTypeName.of(throwableBound(tp).withWildcard(null).withNullable(
      -                        io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q));
      +                        NullableState.NONNULL), q));
                       continue;
                   }
                   ParameterizedType t = concrete.get(tp);
                   if (t == null || t.wildcard() != null || mentionsOutOfScope(t)) return null;
                   printed.add(KotlinTypeName.of(t, q));
               }
      -        return printed.stream().collect(java.util.stream.Collectors.joining(", ", "<", ">"));
      +        return printed.stream().collect(Collectors.joining(", ", "<", ">"));
           }
       
           /** The bound of a type parameter declared {@code T extends Throwable} (or a subclass); null for any other. */
      -    private static ParameterizedType throwableBound(io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    private static ParameterizedType throwableBound(TypeParameter tp) {
               if (tp.typeBounds().size() != 1) return null;
               ParameterizedType bound = tp.typeBounds().getFirst();
      -        java.util.Set visited = new java.util.HashSet<>();
      +        Set visited = new HashSet<>();
               for (TypeInfo t = bound.typeInfo(); t != null && visited.add(t);
                    t = t.parentClass() == null ? null : t.parentClass().typeInfo()) {
                   if ("java.lang.Throwable".equals(t.fullyQualifiedName())) return bound.arrays() == 0 ? bound : null;
      @@ -825,14 +849,14 @@ private static ParameterizedType throwableBound(io.codelaser.maddi.cst.api.info.
            * {@code g.all(null!!)}. Null when there is no such type parameter, or one of the others is not known.
            */
           private static String nullOnlyTypeArguments(MethodCall mc, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      -        List typeParameters = m.typeParameters();
      +        MethodInfo m = mc.methodInfo();
      +        List typeParameters = m.typeParameters();
               if (typeParameters.isEmpty() || !KotlinContext.translatingJava() || m.returnType() == null
                   || !KotlinNullability.translated(m.typeInfo())) {
                   return null;
               }
               List args = mc.parameterExpressions();
      -        List nullOnly = typeParameters.stream().filter(tp -> {
      +        List nullOnly = typeParameters.stream().filter(tp -> {
                   boolean mentioned = false;
                   for (int i = 0; i < m.parameters().size(); i++) {
                       ParameterInfo p = m.parameters().get(i);
      @@ -846,10 +870,10 @@ private static String nullOnlyTypeArguments(MethodCall mc, Qualification q) {
                   return mentioned;
               }).toList();
               if (nullOnly.isEmpty()) return null;
      -        Map concrete = mc.concreteReturnType() == null
      +        Map concrete = mc.concreteReturnType() == null
                       ? Map.of() : m.returnType().formalToConcrete(mc.concreteReturnType());
               List printed = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : typeParameters) {
      +        for (TypeParameter tp : typeParameters) {
                   ParameterizedType t = concrete.get(tp);
                   if (t == null || t.wildcard() != null || CstQueries.mentionsAny(t, typeParameters)) {
                       if (!nullOnly.contains(tp)) return null;
      @@ -862,7 +886,7 @@ private static String nullOnlyTypeArguments(MethodCall mc, Qualification q) {
                   if (t.typeParameter() != null && !KotlinContext.typeParameterInScope(t.typeParameter())) return null;
                   printed.add(KotlinTypeName.of(t, q));
               }
      -        return printed.stream().collect(java.util.stream.Collectors.joining(", ", "<", ">"));
      +        return printed.stream().collect(Collectors.joining(", ", "<", ">"));
           }
       
           /**
      @@ -872,7 +896,7 @@ private static String nullOnlyTypeArguments(MethodCall mc, Qualification q) {
            * arguments leave only the one Java called.
            */
           private static String besideVarargsOverload(MethodCall mc, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      +        MethodInfo m = mc.methodInfo();
               if (!KotlinContext.translatingJava() || m.typeParameters().isEmpty() || m.isVarargs()
                   || mc.concreteReturnType() == null || m.returnType() == null) return null;
               // the parameter at the varargs position mentions a type parameter: a free one lets the argument be an
      @@ -883,10 +907,10 @@ private static String besideVarargsOverload(MethodCall mc, Qualification q) {
                       && o.parameters().size() == m.parameters().size())
                       && m.typeParameters().stream().anyMatch(tp -> CstQueries.mentions(m.parameters().get(last).parameterizedType(), tp));
               if (!varargsOverload) return null;
      -        Map concrete =
      +        Map concrete =
                       m.returnType().formalToConcrete(mc.concreteReturnType());
               List printed = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : m.typeParameters()) {
      +        for (TypeParameter tp : m.typeParameters()) {
                   ParameterizedType c = concrete.get(tp);
                   // a type variable of ours only: Java's inferred class (guava's whenAllSucceed(inputFutures()), V an
                   // Object) has lost the states Kotlin infers
      @@ -894,7 +918,7 @@ private static String besideVarargsOverload(MethodCall mc, Qualification q) {
                       || !KotlinContext.typeParameterInScope(c.typeParameter())) return null;
                   printed.add(KotlinTypeName.of(c, q));
               }
      -        return printed.stream().collect(java.util.stream.Collectors.joining(", ", "<", ">"));
      +        return printed.stream().collect(Collectors.joining(", ", "<", ">"));
           }
       
           /**
      @@ -906,8 +930,8 @@ private static String besideVarargsOverload(MethodCall mc, Qualification q) {
            * call's concrete result; null when they are not all there.
            */
           private static String lambdaOnlyTypeArguments(MethodCall mc, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      -        List typeParameters = m.typeParameters();
      +        MethodInfo m = mc.methodInfo();
      +        List typeParameters = m.typeParameters();
               if (typeParameters.isEmpty() || !KotlinContext.translatingJava() || m.returnType() == null
                   || mc.concreteReturnType() == null) {
                   return null;
      @@ -927,15 +951,15 @@ private static String lambdaOnlyTypeArguments(MethodCall mc, Qualification q) {
                   return input;
               });
               if (!lambdaOnly) return null;
      -        Map concrete =
      +        Map concrete =
                       m.returnType().formalToConcrete(mc.concreteReturnType());
               List printed = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : typeParameters) {
      +        for (TypeParameter tp : typeParameters) {
                   ParameterizedType c = concrete.get(tp);
                   if (c == null || c.wildcard() != null || c.typeParameter() == tp) return null;
                   printed.add(KotlinTypeName.of(c, q));
               }
      -        return printed.stream().collect(java.util.stream.Collectors.joining(", ", "<", ">"));
      +        return printed.stream().collect(Collectors.joining(", ", "<", ">"));
           }
       
           /**
      @@ -944,8 +968,8 @@ private static String lambdaOnlyTypeArguments(MethodCall mc, Qualification q) {
            * infers from the body.
            */
           // lambdas whose parameters are written with their types
      -    private static final ThreadLocal> TYPED_LAMBDAS =
      -            ThreadLocal.withInitial(() -> java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()));
      +    private static final ThreadLocal> TYPED_LAMBDAS =
      +            ThreadLocal.withInitial(() -> Collections.newSetFromMap(new IdentityHashMap<>()));
       
           /**
            * jenkins's DependencyGraph: {@code Comparator.comparing(lhs -> lhs.getUpstreamProject().getName())
      @@ -954,7 +978,7 @@ private static String lambdaOnlyTypeArguments(MethodCall mc, Qualification q) {
            * does, and Kotlin infers the result's from the body. Only where the call has no expected type to fix it (a
            * receiver), and only types Java has concrete, written where they are in scope.
            */
      -    private static boolean staticLambdaInput(io.codelaser.maddi.cst.api.info.MethodInfo method, MethodCall call, int i,
      +    private static boolean staticLambdaInput(MethodInfo method, MethodCall call, int i,
                                                    Lambda l) {
               if (!KotlinContext.translatingJava() || !method.isStatic() || method.typeParameters().isEmpty()
                   || !call.typeArguments().isEmpty() || l.parameters().isEmpty() || !noExpectedType(call)) {
      @@ -963,21 +987,21 @@ private static boolean staticLambdaInput(io.codelaser.maddi.cst.api.info.MethodI
               ParameterizedType p = method.parameters().get(i).parameterizedType();
               List args = call.parameterExpressions();
               boolean fixedOnlyHere = method.typeParameters().stream().anyMatch(tp -> lambdaInput(p, tp)
      -                && java.util.stream.IntStream.range(0, Math.min(args.size(), method.parameters().size()))
      +                && IntStream.range(0, Math.min(args.size(), method.parameters().size()))
                       .noneMatch(j -> j != i && CstQueries.mentions(method.parameters().get(j).parameterizedType(), tp)));
               return fixedOnlyHere && l.parameters().stream().map(ParameterInfo::parameterizedType).allMatch(t -> t != null
                       && t.wildcard() == null && t.typeInfo() != null && !mentionsOutOfScope(t));
           }
       
      -    private static boolean lambdaInput(ParameterizedType p, io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    private static boolean lambdaInput(ParameterizedType p, TypeParameter tp) {
               TypeInfo functional = p.typeInfo();
               if (functional == null || functional.singleAbstractMethod() == null
                   || functional.typeParameters().size() != p.parameters().size()) {
                   return false;
               }
      -        io.codelaser.maddi.cst.api.info.MethodInfo sam = functional.singleAbstractMethod();
      +        MethodInfo sam = functional.singleAbstractMethod();
               for (int j = 0; j < p.parameters().size(); j++) {
      -            io.codelaser.maddi.cst.api.info.TypeParameter formal = functional.typeParameters().get(j);
      +            TypeParameter formal = functional.typeParameters().get(j);
                   if (CstQueries.mentions(p.parameters().get(j), tp)
                       && sam.parameters().stream().anyMatch(sp -> CstQueries.mentions(sp.parameterizedType(), formal))) {
                       return true;
      @@ -995,15 +1019,15 @@ private static boolean lambdaInput(ParameterizedType p, io.codelaser.maddi.cst.a
            * Null when Kotlin infers them by itself.
            */
           private static String resultOnlyTypeArguments(MethodCall mc, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      -        io.codelaser.maddi.cst.api.info.MethodInfo generic = KotlinContext.translatingJava()
      +        MethodInfo m = mc.methodInfo();
      +        MethodInfo generic = KotlinContext.translatingJava()
                       ? KotlinMethodPrinter.genericOverridden(m) : null;
               if (generic != null) return overriddenTypeArguments(mc, generic, q);
      -        List typeParameters = m.typeParameters();
      +        List typeParameters = m.typeParameters();
               if (typeParameters.isEmpty() || !KotlinContext.translatingJava() || m.returnType() == null) return null;
               // an empty varargs fixes nothing: nacos's List columnList = CollectionUtils.list()
               boolean emptyVarargs = m.parameters().size() == mc.parameterExpressions().size() + 1 && m.parameters().getLast().isVarArgs();
      -        List resultOnly = typeParameters.stream()
      +        List resultOnly = typeParameters.stream()
                       .filter(tp -> m.parameters().stream().noneMatch(p -> CstQueries.mentions(p.parameterizedType(), tp)
                                                                            && !(emptyVarargs && p == m.parameters().getLast())))
                       .toList();
      @@ -1014,7 +1038,7 @@ private static String resultOnlyTypeArguments(MethodCall mc, Qualification q) {
               boolean unfixable = RAW_TARGET.get().contains(mc)
                                   || resultOnly.stream().anyMatch(tp -> !CstQueries.mentions(m.returnType(), tp));
               boolean noExpectedType = unfixable || noExpectedType(mc);
      -        Map concrete = mc.concreteReturnType() == null
      +        Map concrete = mc.concreteReturnType() == null
                       ? Map.of() : m.returnType().formalToConcrete(mc.concreteReturnType());
               // jenkins's MorphTagLibrary: return Collections.emptySet() into a Collection, meta = Collections.emptyMap()
               // into a Map, Optional.empty() into an Object: Java binds the variable to Object, where the
      @@ -1025,7 +1049,7 @@ private static String resultOnlyTypeArguments(MethodCall mc, Qualification q) {
                       && concrete.get(tp).isJavaLangObject() && concrete.get(tp).wildcard() == null);
               if (!bounded && !noExpectedType && !objectBound) return null;
               List printed = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : typeParameters) {
      +        for (TypeParameter tp : typeParameters) {
                   ParameterizedType t = concrete.get(tp);
                   if (t == null || t.wildcard() != null || CstQueries.mentionsAny(t, typeParameters)) {
                       if (!resultOnly.contains(tp)) return null;
      @@ -1048,7 +1072,7 @@ private static String resultOnlyTypeArguments(MethodCall mc, Qualification q) {
                   }
                   printed.add(KotlinTypeName.of(t, q));
               }
      -        return printed.stream().collect(java.util.stream.Collectors.joining(", ", "<", ">"));
      +        return printed.stream().collect(Collectors.joining(", ", "<", ">"));
           }
       
           /**
      @@ -1059,28 +1083,28 @@ private static String resultOnlyTypeArguments(MethodCall mc, Qualification q) {
            * {@code getValue>(entity)}. Null where a parameter mentions one (Kotlin infers it from the
            * argument) or Java's result does not bind each one.
            */
      -    private static String overriddenTypeArguments(MethodCall mc, io.codelaser.maddi.cst.api.info.MethodInfo generic,
      +    private static String overriddenTypeArguments(MethodCall mc, MethodInfo generic,
                                                         Qualification q) {
               ParameterizedType concrete = mc.concreteReturnType() != null ? mc.concreteReturnType()
                       : mc.methodInfo().returnType();
               if (concrete == null || generic.returnType() == null) return null;
      -        List typeParameters = generic.typeParameters();
      +        List typeParameters = generic.typeParameters();
               if (generic.parameters().stream().anyMatch(p -> CstQueries.mentionsAny(p.parameterizedType(), typeParameters))) {
                   return null;
               }
      -        Map bound =
      +        Map bound =
                       generic.returnType().formalToConcrete(concrete);
               List printed = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : typeParameters) {
      +        for (TypeParameter tp : typeParameters) {
                   ParameterizedType t = bound.get(tp);
                   if (t == null || t.wildcard() != null || mentionsOutOfScope(t)) return null;
                   printed.add(KotlinTypeName.of(t, q));
               }
      -        return printed.stream().collect(java.util.stream.Collectors.joining(", ", "<", ">"));
      +        return printed.stream().collect(Collectors.joining(", ", "<", ">"));
           }
       
           /** The single bound of a type parameter, when it is not Object and does not mention a type parameter. */
      -    private static ParameterizedType bound(io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    private static ParameterizedType bound(TypeParameter tp) {
               if (tp.typeBounds().size() != 1) return null;
               ParameterizedType bound = tp.typeBounds().getFirst();
               return bound.isJavaLangObject() || bound.typeParameter() != null || bound.hasTypeParameters() ? null : bound;
      @@ -1091,11 +1115,11 @@ private static ParameterizedType bound(io.codelaser.maddi.cst.api.info.TypeParam
            * ({@code map.put(k, v)}): Kotlin has nothing to infer its type arguments from.
            */
           // calls printed as the operand of an unchecked cast the printer adds: no expected type
      -    private static final ThreadLocal> NO_EXPECTED_TYPE =
      -            ThreadLocal.withInitial(() -> java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()));
      +    private static final ThreadLocal> NO_EXPECTED_TYPE =
      +            ThreadLocal.withInitial(() -> Collections.newSetFromMap(new IdentityHashMap<>()));
       
           /** {@code print}, with {@code value} known to have no expected type (the operand of a cast). */
      -    static OutputBuilder withoutExpectedType(Expression value, java.util.function.Supplier print) {
      +    static OutputBuilder withoutExpectedType(Expression value, Supplier print) {
               Expression unwrapped = unwrap(value);
               boolean added = NO_EXPECTED_TYPE.get().add(unwrapped);
               try {
      @@ -1108,12 +1132,12 @@ static OutputBuilder withoutExpectedType(Expression value, java.util.function.Su
           private static boolean noExpectedType(MethodCall mc) {
               if (NO_EXPECTED_TYPE.get().contains(mc)) return true;
               // guava's ImmutableTable.SerializedForm.readResolve(): return of(), the method's result an Object
      -        io.codelaser.maddi.cst.api.info.MethodInfo current = KotlinContext.currentMethod();
      +        MethodInfo current = KotlinContext.currentMethod();
               if (current != null && current.returnType() != null && current.returnType().isJavaLangObject()
                   && current.methodBody() != null) {
                   boolean[] returned = {false};
      -            current.methodBody().visit((io.codelaser.maddi.cst.api.element.Element el) -> {
      -                if (el instanceof io.codelaser.maddi.cst.api.statement.ReturnStatement rs && rs.expression() != null
      +            current.methodBody().visit((Element el) -> {
      +                if (el instanceof ReturnStatement rs && rs.expression() != null
                           && unwrap(rs.expression()) == mc) {
                           returned[0] = true;
                       }
      @@ -1151,7 +1175,7 @@ private static OutputBuilder arguments(List args, Qualification q) {
               return arguments(args, null, q);
           }
       
      -    static OutputBuilder arguments(List args, io.codelaser.maddi.cst.api.info.MethodInfo method,
      +    static OutputBuilder arguments(List args, MethodInfo method,
                                          Qualification q) {
               return arguments(args, method, null, q);
           }
      @@ -1161,7 +1185,7 @@ static OutputBuilder arguments(List args, io.codelaser.maddi.cst.api
            * same arity takes the same type non-null, and the argument is not nullable: with Java's choice more specific in
            * another parameter ({@code Class} over {@code Type}), Kotlin sees neither candidate as the more specific one.
            */
      -    private static boolean nullabilityTiesOverload(io.codelaser.maddi.cst.api.info.MethodInfo method, int i,
      +    private static boolean nullabilityTiesOverload(MethodInfo method, int i,
                                                          Expression argument) {
               if (!KotlinContext.translatingJava() || !KotlinNullability.translated(method.typeInfo())) return false;
               ParameterizedType mine = KotlinNullability.parameterType(method.parameters().get(i));
      @@ -1172,7 +1196,7 @@ private static boolean nullabilityTiesOverload(io.codelaser.maddi.cst.api.info.M
                   || KotlinNullability.nullableInKotlin(argument) || mentionsOutOfScope(mine)) {
                   return false;
               }
      -        List siblings = method.isConstructor()
      +        List siblings = method.isConstructor()
                       ? method.typeInfo().constructors()
                       : method.typeInfo().methods().stream().filter(m -> m.name().equals(method.name())).toList();
               return siblings.stream().anyMatch(m -> m != method && !m.isSynthetic()
      @@ -1194,7 +1218,7 @@ private static boolean libraryResult(Expression receiver) {
            * parameter typed by the receiver's type parameter takes the receiver's type argument as its target
            * ({@code list.add(x)} on a {@code List}: x is asserted non-null when Kotlin types it nullable).
            */
      -    static OutputBuilder arguments(List args, io.codelaser.maddi.cst.api.info.MethodInfo method,
      +    static OutputBuilder arguments(List args, MethodInfo method,
                                          MethodCall call, Qualification q) {
               boolean asArray = KotlinTypePrinter.varargsAsArray(method);
               if (args.isEmpty() && !asArray) return new OutputBuilderImpl().add(SymbolEnum.OPEN_CLOSE_PARENTHESIS);
      @@ -1234,7 +1258,7 @@ && rawComponent(raw.parameterizedType().componentType())) {
                       // no null, and a vararg takes any Array
                       printed.add(new OutputBuilderImpl().add(SPREAD).add(new TextImpl("emptyArray<"
                               + KotlinTypeName.of(emptyReferenceArray(args.get(i)).withNullable(
      -                                io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q) + ">()")));
      +                                NullableState.NONNULL), q) + ">()")));
                       continue;
                   }
                   if (spread(args, method, i)) {
      @@ -1297,7 +1321,7 @@ && unwrap(args.get(i)) instanceof MethodReference mr && nullableConstructedArgum
                       ParameterizedType functional = mr.methodInfo().isConstructor()
                               ? withoutBoundedWildcards(mr.parameterizedType()) : mr.parameterizedType();
                       printed.add(new OutputBuilderImpl().add(new TextImpl(KotlinTypeName.of(functional
      -                                .withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q)))
      +                                .withNullable(NullableState.NONNULL), q)))
                               .add(SymbolEnum.LEFT_PARENTHESIS).add(print(args.get(i), q)).add(SymbolEnum.RIGHT_PARENTHESIS));
                       continue;
                   }
      @@ -1310,7 +1334,7 @@ && unwrap(args.get(i)) instanceof MethodReference mr && nullableConstructedArgum
                                       && !functional.parameters().isEmpty()
                                       && functional.parameters().stream().allMatch(p -> p.wildcard() == null);
                       printed.add(new OutputBuilderImpl().add(new TextImpl(typed
      -                                ? KotlinTypeName.of(functional.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q)
      +                                ? KotlinTypeName.of(functional.withNullable(NullableState.NONNULL), q)
                                       : KotlinTypeName.name(samType, q)))
                               .add(SymbolEnum.LEFT_PARENTHESIS).add(print(args.get(i), q)).add(SymbolEnum.RIGHT_PARENTHESIS));
                       continue;
      @@ -1328,19 +1352,19 @@ && unwrap(args.get(i)) instanceof MethodReference mr && nullableConstructedArgum
                                            || sortsNullableArray(method, call))) {
                           // Kotlin infers the parameters nullable where Java hands over a value, or throws: `o!!.id`
                           types = params.stream().map(p -> p.parameterizedType().withNullable(
      -                            io.codelaser.maddi.cst.api.type.NullableState.NULLABLE)).toList();
      +                            NullableState.NULLABLE)).toList();
                       }
                       if (call != null && hasParameter && wildcardReceiver(call)) {
                           // metadata.forEach { key, value -> } on a Map: Kotlin's value is an Any?, where Java's
                           // capture of ? is an Object
                           List fromStar = new ArrayList<>(types.size() == params.size() ? types
      -                            : java.util.Collections.nCopies(params.size(), (ParameterizedType) null));
      +                            : Collections.nCopies(params.size(), (ParameterizedType) null));
                           for (int j = 0; j < params.size(); j++) {
                               ParameterizedType java = params.get(j).parameterizedType();
                               if ((fromStar.get(j) == null || fromStar.get(j).isTypeParameter()) && java.arrays() == 0
                                   && (java.typeInfo() == null ? !java.isTypeParameter() || java.isUnboundWildcard()
                                       : java.typeInfo().isJavaLangObject())) {
      -                            fromStar.set(j, java.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE));
      +                            fromStar.set(j, java.withNullable(NullableState.NULLABLE));
                               }
                           }
                           types = fromStar;
      @@ -1395,7 +1419,7 @@ && unwrap(args.get(i)) instanceof MethodReference mr && nullableConstructedArgum
                               // map.entries.contains(immutableEntry(key, value)) into a Set>: the extension's
                               // T is an Entry or an Entry, never both; the cast checks only the class
                               || !lookedUp.parameters().isEmpty()
      -                           && !java.util.Objects.equals(unwrap(args.get(i)).parameterizedType(), lookedUp)) {
      +                           && !Objects.equals(unwrap(args.get(i)).parameterizedType(), lookedUp)) {
                               // lst.remove(varassign) with a VarExprent? from a List: T is inferred from the
                               // inputs only, so the argument is cast up to the element type. Into a translated override
                               // whose Kotlin parameter is non-null (super.get(key) of guava's SynchronizedAsMap), to that
      @@ -1406,8 +1430,8 @@ && unwrap(args.get(i)) instanceof MethodReference mr && nullableConstructedArgum
                                       .add(operand(PrecedenceEnum.CAST, args.get(i), q))
                                       .add(SpaceEnum.ONE).add(KotlinKeyword.AS).add(SpaceEnum.ONE)
                                       .add(new TextImpl(KotlinTypeName.of(lookedUp.withNullable(nonNullOverride
      -                                        ? io.codelaser.maddi.cst.api.type.NullableState.NONNULL
      -                                        : io.codelaser.maddi.cst.api.type.NullableState.NULLABLE), q)))
      +                                        ? NullableState.NONNULL
      +                                        : NullableState.NULLABLE), q)))
                                       .add(SymbolEnum.RIGHT_PARENTHESIS));
                               continue;
                           }
      @@ -1426,7 +1450,7 @@ && unwrap(args.get(i)) instanceof ConstructorCall ec
                           // guava's annotations.toArray(new Annotation[0]) on its own ImmutableCollection: arrayOfNulls makes
                           // its T an Annotation?, and the result an Array; an empty array has no nulls
                           printed.add(text("emptyArray<" + KotlinTypeName.of(ec.parameterizedType().componentType()
      -                            .withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q) + ">()"));
      +                            .withNullable(NullableState.NONNULL), q) + ">()"));
                           continue;
                       }
                       if (hasParameter && translated && readOnlyIterator(args.get(i))
      @@ -1439,7 +1463,7 @@ && unwrap(args.get(i)) instanceof ConstructorCall ec
                           printed.add(new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS)
                                   .add(operand(PrecedenceEnum.CAST, args.get(i), q)).add(SpaceEnum.ONE).add(KotlinKeyword.AS)
                                   .add(SpaceEnum.ONE).add(new TextImpl(KotlinTypeName.of(KotlinNullability.parameterType(
      -                                    method.parameters().get(i)).withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q)))
      +                                    method.parameters().get(i)).withNullable(NullableState.NONNULL), q)))
                                   .add(SymbolEnum.RIGHT_PARENTHESIS));
                           continue;
                       }
      @@ -1455,7 +1479,7 @@ && unwrap(args.get(i)) instanceof ConstructorCall ec
                               printed.add(new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS)
                                       .add(operand(PrecedenceEnum.CAST, args.get(i), q)).add(SpaceEnum.ONE).add(KotlinKeyword.AS)
                                       .add(SpaceEnum.ONE).add(new TextImpl(KotlinTypeName.of(argument.withComponentType(
      -                                        argument.componentType().withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE)), q)))
      +                                        argument.componentType().withNullable(NullableState.NULLABLE)), q)))
                                       .add(SymbolEnum.RIGHT_PARENTHESIS));
                               continue;
                           }
      @@ -1521,7 +1545,7 @@ && widerOverloadOfTheSameName(method, i)
                           printed.add(new OutputBuilderImpl().add(operand(PrecedenceEnum.CAST, args.get(i), q))
                                   .add(SpaceEnum.ONE).add(KotlinKeyword.AS).add(SpaceEnum.ONE)
                                   .add(new TextImpl(KotlinTypeName.of(uncheckedTo.withNullable(
      -                                    io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q))));
      +                                    NullableState.NONNULL), q))));
                           continue;
                       }
                       // nacos's AbstractNacosRestTemplate: handlers.put(type, new BeanResponseHandler()) into a
      @@ -1570,7 +1594,7 @@ && widerOverloadOfTheSameName(method, i)
                           ParameterInfo vararg = varargsParameter(args.get(i));
                           KotlinContext.message(KotlinPrintCode.UNCHECKED_CAST, args.get(i), KotlinContext.describe(args.get(i)));
                           ParameterizedType castType = KotlinNullability.parameterType(vararg)
      -                            .withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL);
      +                            .withNullable(NullableState.NONNULL);
                           // ImmutableList.copyOf(futures) into copyOf(elements: Array): the elements' state is the
                           // callee's, as Kotlin's Array is invariant (the cast checks no element)
                           ParameterizedType into = KotlinNullability.parameterType(method.parameters().get(i));
      @@ -1578,7 +1602,7 @@ && widerOverloadOfTheSameName(method, i)
                               && KotlinNullability.isNullable(into.componentType())
                               && !KotlinNullability.isNullable(castType.componentType())) {
                               castType = castType.withComponentType(castType.componentType()
      -                                .withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE));
      +                                .withNullable(NullableState.NULLABLE));
                           }
                           argument = new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS).add(argument).add(SpaceEnum.ONE)
                                   .add(KotlinKeyword.AS).add(SpaceEnum.ONE)
      @@ -1678,11 +1702,11 @@ private static boolean isParameter(Expression e, ParameterInfo p) {
            * key, and an {@code Int?} is none; Java compares the null, and throws there. As
            * {@code comparing({ order.get(it)!! })}, which throws at the same point (and takes an {@code Int?} element too).
            */
      -    private static final java.util.Set COMPARING_KEY = java.util.Set.of("comparing", "thenComparing",
      +    private static final Set COMPARING_KEY = Set.of("comparing", "thenComparing",
                   "comparingInt", "comparingLong", "comparingDouble", "thenComparingInt", "thenComparingLong",
                   "thenComparingDouble");
       
      -    private static boolean comparingKey(io.codelaser.maddi.cst.api.info.MethodInfo method, Expression argument) {
      +    private static boolean comparingKey(MethodInfo method, Expression argument) {
               if (!"java.util.Comparator".equals(method.typeInfo().fullyQualifiedName())
                   || !COMPARING_KEY.contains(method.name())
                   || !(unwrap(argument) instanceof MethodReference mr) || mr.methodInfo().isConstructor()
      @@ -1691,7 +1715,7 @@ private static boolean comparingKey(io.codelaser.maddi.cst.api.info.MethodInfo m
                   || mr.scope() instanceof TypeExpression && !unboundGetter(mr)) {
                   return false;
               }
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mr.methodInfo();
      +        MethodInfo m = mr.methodInfo();
               return KotlinNullability.nullableJdkResult(m) || KotlinNullability.isNullable(KotlinNullability.returnType(m));
           }
       
      @@ -1701,7 +1725,7 @@ private static boolean comparingKey(io.codelaser.maddi.cst.api.info.MethodInfo m
            * type parameter.
            */
           private static boolean comparingKeyCall(MethodCall mc) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      +        MethodInfo m = mc.methodInfo();
               return m.isStatic() && m.typeParameters().size() == 1 && mc.parameterExpressions().size() == 1
                      && m.name().startsWith("comparing") && comparingKey(m, mc.parameterExpressions().getFirst())
                      && noExpectedType(mc);
      @@ -1724,7 +1748,7 @@ private static String comparedType(MethodCall mc, Qualification q) {
            * {@code { r, v -> r.add(v.toDouble()) }}. Null when no parameter needs it.
            */
           private static OutputBuilder wideningReference(MethodReference mr, ParameterizedType functional, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mr.methodInfo();
      +        MethodInfo m = mr.methodInfo();
               if (m == null || m.isConstructor() || m.parameters().stream().anyMatch(ParameterInfo::isVarArgs)) return null;
               // the functional method's parameters as the reference instantiates them; a library interface's methods may
               // not be loaded (ObjIntConsumer)
      @@ -1769,7 +1793,7 @@ private static OutputBuilder comparingKeyLambda(MethodReference mr, Qualificatio
                   // nacos's Comparator.comparing(ServerLoaderMetrics::getAddress), a String? key: the element typed, as
                   // comparing's T is fixed by nothing else
                   String type = KotlinTypeName.of(mr.scope().parameterizedType()
      -                    .withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q);
      +                    .withNullable(NullableState.NONNULL), q);
                   return new OutputBuilderImpl().add(SymbolEnum.LEFT_BRACE).add(SpaceEnum.ONE)
                           .add(new TextImpl("e: " + type)).add(SymbolEnum.LAMBDA)
                           .add(new TextImpl("e." + KotlinNames.name(mr.methodInfo().name()) + "()!!"))
      @@ -1785,7 +1809,7 @@ private static OutputBuilder comparingKeyLambda(MethodReference mr, Qualificatio
            * {@code getOrDefault(x, Foo::new)} beside an overload {@code getOrDefault(T, T)}: Kotlin takes the reference as
            * a value of T (Any) there, unless a SAM constructor makes it the Supplier.
            */
      -    private static boolean besideTypeParameter(io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static boolean besideTypeParameter(MethodInfo method, int i) {
               if (!KotlinContext.translatingJava()) return false;
               ParameterizedType functional = method.parameters().get(i).parameterizedType();
               if (functional.typeInfo() == null || !functional.typeInfo().isInterface()) return false;
      @@ -1799,7 +1823,7 @@ private static boolean besideTypeParameter(io.codelaser.maddi.cst.api.info.Metho
            * A method's own varargs parameter (Kotlin's {@code Array}) passed to a translated method's reference array
            * parameter, which Kotlin declares invariant.
            */
      -    private static boolean varargsIntoArray(io.codelaser.maddi.cst.api.info.MethodInfo method, int i, Expression arg) {
      +    private static boolean varargsIntoArray(MethodInfo method, int i, Expression arg) {
               if (!KotlinContext.translatingJava() || !KotlinNullability.translated(method.typeInfo())) return false;
               ParameterInfo pi = varargsParameter(arg);
               if (pi == null) return false;
      @@ -1852,8 +1876,8 @@ private static boolean starProjectedRead(Expression value) {
           }
       
           /** Another parameter than the i-th is typed {@code tp?}: {@code getOrDefault(value: T?, defaultValue: T)}. */
      -    private static boolean nullableSibling(io.codelaser.maddi.cst.api.info.MethodInfo method, int i,
      -                                           io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    private static boolean nullableSibling(MethodInfo method, int i,
      +                                           TypeParameter tp) {
               for (int j = 0; j < method.parameters().size(); j++) {
                   if (j == i) continue;
                   ParameterizedType pt = KotlinNullability.parameterType(method.parameters().get(j));
      @@ -1862,7 +1886,7 @@ private static boolean nullableSibling(io.codelaser.maddi.cst.api.info.MethodInf
               return false;
           }
       
      -    private static ParameterizedType varargsElement(io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static ParameterizedType varargsElement(MethodInfo method, int i) {
               if (method == null || method.parameters().isEmpty()) return null;
               ParameterInfo last = method.parameters().getLast();
               if (!last.isVarArgs() || i < method.parameters().size() - 1) return null;
      @@ -1874,7 +1898,7 @@ private static ParameterizedType varargsElement(io.codelaser.maddi.cst.api.info.
            * {@code withRetry(() -> …, n)} beside an overload {@code withRetry(Runnable, int)}: Kotlin may take the lambda as
            * the other interface (a Runnable, whose result is Unit), unless a SAM constructor names Java's.
            */
      -    private static boolean besideOtherInterface(io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static boolean besideOtherInterface(MethodInfo method, int i) {
               if (!KotlinContext.translatingJava()) return false;
               TypeInfo functional = method.parameters().get(i).parameterizedType().typeInfo();
               if (functional == null || !functional.isInterface()) return false;
      @@ -1892,7 +1916,7 @@ private static boolean besideOtherInterface(io.codelaser.maddi.cst.api.info.Meth
           }
       
           /** A call on a {@code Stream}: Kotlin hands its functions an X?. */
      -    private static boolean nullableStreamElements(io.codelaser.maddi.cst.api.info.MethodInfo method, MethodCall call) {
      +    private static boolean nullableStreamElements(MethodInfo method, MethodCall call) {
               if (method == null || !"java.util.stream.Stream".equals(method.typeInfo().fullyQualifiedName())
                   || call.object() == null || call.objectIsImplicit()) {
                   return false;
      @@ -1911,12 +1935,12 @@ private static boolean nullableStreamElements(io.codelaser.maddi.cst.api.info.Me
            * functional method's primitive, as Java widens it ({@code int getTiedJobCount()} into {@code float weight(T)}).
            */
           private static OutputBuilder assertingReference(MethodReference mr, ParameterizedType functional, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mr.methodInfo();
      +        MethodInfo m = mr.methodInfo();
               if (m.isConstructor() || m.isStatic() || !m.parameters().isEmpty() || mappedMember(mr) != null
                   || !(mr.scope() instanceof TypeExpression) || functional.typeInfo() == null) {
                   return assertingReference(mr, q);
               }
      -        io.codelaser.maddi.cst.api.info.MethodInfo sam;
      +        MethodInfo sam;
               try {
                   sam = functional.typeInfo().singleAbstractMethod();
               } catch (RuntimeException e) {
      @@ -1930,7 +1954,7 @@ private static OutputBuilder assertingReference(MethodReference mr, Parameterize
               return text("{ it!!." + KotlinNames.name(m.name()) + "()" + conversion + " }");
           }
       
      -    private static boolean hasParameterFor(io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static boolean hasParameterFor(MethodInfo method, int i) {
               return method != null && i < method.parameters().size() && !method.parameters().get(i).isVarArgs();
           }
       
      @@ -1939,7 +1963,7 @@ private static boolean hasParameterFor(io.codelaser.maddi.cst.api.info.MethodInf
            * {@code { it.m()!! }}. Null for any other shape.
            */
           private static OutputBuilder resultAssertingReference(MethodReference mr, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mr.methodInfo();
      +        MethodInfo m = mr.methodInfo();
               if (m.isConstructor() || mappedMember(mr) != null) return null;
               String name = KotlinNames.name(m.name());
               String call;
      @@ -1966,9 +1990,9 @@ private static OutputBuilder resultAssertingReference(MethodReference mr, Qualif
            * The constructor's parameter {@code i} is typed by one of its class's type parameters ({@code WeightFunction}),
            * and the type constructed takes a nullable argument for it ({@code TagCloud}).
            */
      -    private static boolean nullableConstructedArgument(io.codelaser.maddi.cst.api.info.MethodInfo constructor, int i,
      +    private static boolean nullableConstructedArgument(MethodInfo constructor, int i,
                                                              ParameterizedType constructed) {
      -        List own = constructor.typeInfo().typeParameters();
      +        List own = constructor.typeInfo().typeParameters();
               if (own.isEmpty() || constructed.parameters().size() != own.size()) return false;
               ParameterizedType p = constructor.parameters().get(i).parameterizedType();
               return p.arrays() == 0 && p.parameters().stream().anyMatch(a -> a.typeParameter() != null && a.arrays() == 0
      @@ -1983,7 +2007,7 @@ private static boolean nullableConstructedArgument(io.codelaser.maddi.cst.api.in
            * {@code { this.transform(it!!) }}. Null when the reference takes the element as it is.
            */
           private static OutputBuilder assertingReference(MethodReference mr, Qualification q) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mr.methodInfo();
      +        MethodInfo m = mr.methodInfo();
               if (m.isConstructor() || mappedMember(mr) != null) return null;
               String name = KotlinNames.name(m.name());
               if (!(mr.scope() instanceof TypeExpression te)) {
      @@ -2059,7 +2083,7 @@ private static boolean mayBeNull(Expression e) {
       
           private static boolean returnsNull(Lambda l) {
               boolean[] found = {false};
      -        l.methodBody().visit((io.codelaser.maddi.cst.api.element.Element e) -> {
      +        l.methodBody().visit((Element e) -> {
                   if (e instanceof ReturnStatement rs && !rs.hasNoValue() && mayBeNull(rs.expression())) found[0] = true;
                   return !found[0];
               });
      @@ -2076,7 +2100,7 @@ private static boolean returnsNull(Lambda l) {
            * nullable (guava's ImmutableSortedMap.fromEntries): its parameters are nullable too, and Java's requireNonNull(e1)
            * in it is Kotlin's e1!!.
            */
      -    private static boolean sortsNullableArray(io.codelaser.maddi.cst.api.info.MethodInfo method, MethodCall call) {
      +    private static boolean sortsNullableArray(MethodInfo method, MethodCall call) {
               if (method == null || !"java.util.Arrays".equals(method.typeInfo().fullyQualifiedName())
                   || !"sort".equals(method.name()) && !"parallelSort".equals(method.name())
                   || call.parameterExpressions().isEmpty()) {
      @@ -2086,7 +2110,7 @@ private static boolean sortsNullableArray(io.codelaser.maddi.cst.api.info.Method
               return array != null && array.arrays() == 1 && KotlinNullability.isNullable(array.componentType());
           }
       
      -    private static boolean sortsNullable(io.codelaser.maddi.cst.api.info.MethodInfo method) {
      +    private static boolean sortsNullable(MethodInfo method) {
               if (method == null || !"java.util.Comparator".equals(method.typeInfo().fullyQualifiedName())
                   || !method.name().startsWith("comparing") && !method.name().startsWith("thenComparing")) {
                   return false;
      @@ -2108,14 +2132,14 @@ private static boolean sortsNullable(io.codelaser.maddi.cst.api.info.MethodInfo
            * Kotlin type argument is nullable (a map lambda before it returned null, Java's empty): Java never calls it with
            * null, Kotlin types its parameter nullable. The {@code !!} on its dereferences cannot throw.
            */
      -    private static boolean optionalOfNullableValue(io.codelaser.maddi.cst.api.info.MethodInfo method, MethodCall call) {
      +    private static boolean optionalOfNullableValue(MethodInfo method, MethodCall call) {
               return method != null && "java.util.Optional".equals(method.typeInfo().fullyQualifiedName())
      -               && java.util.Set.of("map", "flatMap", "filter", "ifPresent", "ifPresentOrElse").contains(method.name())
      +               && Set.of("map", "flatMap", "filter", "ifPresent", "ifPresentOrElse").contains(method.name())
                      && !call.objectIsImplicit() && unwrap(call.object()) instanceof MethodCall receiver
                      && nullableInChain(receiver);
           }
       
      -    private static final java.util.Set LOOKUPS = java.util.Set.of("get", "getOrDefault", "containsKey",
      +    private static final Set LOOKUPS = Set.of("get", "getOrDefault", "containsKey",
                   "containsValue", "contains", "indexOf", "lastIndexOf", "remove");
       
           /**
      @@ -2128,12 +2152,12 @@ private static boolean optionalOfNullableValue(io.codelaser.maddi.cst.api.info.M
            *
            * @return the element (or key) type; null when this is no such lookup, or the argument is not of a subtype
            */
      -    private static ParameterizedType nullableLookup(io.codelaser.maddi.cst.api.info.MethodInfo method, MethodCall call,
      +    private static ParameterizedType nullableLookup(MethodInfo method, MethodCall call,
                                                 Expression argument, int i) {
               if (!LOOKUPS.contains(method.name()) || call.object() == null || call.objectIsImplicit()) return null;
               // this@LocalCache.get(key): the receiver's own override of a java.util lookup, which Kotlin declares
               // get(key: K) as Map's; and Map's remove(key, value), whose value is a V
      -        io.codelaser.maddi.cst.api.info.MethodInfo lookup = method.typeInfo().fullyQualifiedName().startsWith("java.util.")
      +        MethodInfo lookup = method.typeInfo().fullyQualifiedName().startsWith("java.util.")
                       ? method : method.overrides().stream()
                       .filter(o -> o.typeInfo().fullyQualifiedName().startsWith("java.util.")).findFirst().orElse(null);
               if (lookup == null) return null;
      @@ -2168,7 +2192,7 @@ private static ParameterizedType nullableLookup(io.codelaser.maddi.cst.api.info.
                               && element.wildcard() == null && element.typeInfo() != null
                               && (element.typeInfo() == argumentType.typeInfo()
                                   || element.arrays() == 0
      -                               && isSubtype(argumentType.typeInfo(), element.typeInfo(), new java.util.HashSet<>()));
      +                               && isSubtype(argumentType.typeInfo(), element.typeInfo(), new HashSet<>()));
               if (!found && element != null && element.wildcard() != null && !element.wildcard().isSuper()
                   && KotlinNullability.nullableInKotlin(argument)) {
                   // guava's Iterators.removeAll: elementsToRemove.contains(removeFrom.next()) on a Collection. Kotlin's
      @@ -2191,8 +2215,8 @@ private static boolean unrelatedLookup(ParameterizedType element, ParameterizedT
                      && element.typeInfo() != null && argumentType.typeInfo() != null
                      && !argumentType.isPrimitiveExcludingVoid() && !element.typeInfo().isJavaLangObject()
                      && !argumentType.typeInfo().isJavaLangObject()
      -               && !isSubtype(argumentType.typeInfo(), element.typeInfo(), new java.util.HashSet<>())
      -               && !isSubtype(element.typeInfo(), argumentType.typeInfo(), new java.util.HashSet<>());
      +               && !isSubtype(argumentType.typeInfo(), element.typeInfo(), new HashSet<>())
      +               && !isSubtype(element.typeInfo(), argumentType.typeInfo(), new HashSet<>());
           }
       
           /**
      @@ -2215,10 +2239,10 @@ private static boolean typeVariableLookup(ParameterizedType element, Parameteriz
            * the callee's own type parameters are inferred: {@code Collector.of(LinkedHashMultiset::create, …)}. Only a
            * supplier, with the reference's functional type fully known.
            */
      -    private static boolean genericReferenceTyping(io.codelaser.maddi.cst.api.info.MethodInfo method, int i,
      +    private static boolean genericReferenceTyping(MethodInfo method, int i,
                                                         MethodReference mr) {
               if (!KotlinContext.translatingJava() || castable(method, i) || mr.methodInfo() == null) return false;
      -        io.codelaser.maddi.cst.api.info.MethodInfo referenced = mr.methodInfo();
      +        MethodInfo referenced = mr.methodInfo();
               boolean generic = referenced.isConstructor() ? !referenced.typeInfo().typeParameters().isEmpty()
                       : referenced.isStatic() && !referenced.typeParameters().isEmpty();
               ParameterizedType functional = mr.parameterizedType();
      @@ -2248,7 +2272,7 @@ private static ParameterizedType withoutBoundedWildcards(ParameterizedType pt) {
               return pt.withParameters(arguments);
           }
       
      -    private static boolean castable(io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static boolean castable(MethodInfo method, int i) {
               ParameterizedType p = method.parameters().get(i).parameterizedType();
               return method.typeParameters().stream().noneMatch(tp -> CstQueries.mentions(p, tp));
           }
      @@ -2257,13 +2281,13 @@ private static boolean castable(io.codelaser.maddi.cst.api.info.MethodInfo metho
            * The callee's parameter is nullable in Kotlin, an overload of the same arity takes a non-null supertype there,
            * and the argument is non-null: Kotlin finds neither more specific, Java takes the narrower one.
            */
      -    private static boolean nullableBesideWiderOverload(io.codelaser.maddi.cst.api.info.MethodInfo method, int i,
      +    private static boolean nullableBesideWiderOverload(MethodInfo method, int i,
                                                              Expression argument, boolean named) {
               if (!KotlinContext.translatingJava() || !KotlinNullability.translated(method.typeInfo())
                   || i >= method.parameters().size() || method.parameters().get(i).isVarArgs()) return false;
               // a named argument needs the callee's Kotlin: a test compiles against the Java class where the callee's file
               // does not compile (guava's FauxveridesTest, ImmutableSortedSet.copyOf), so only within its own source set
      -        io.codelaser.maddi.cst.api.info.MethodInfo caller = KotlinContext.currentMethod();
      +        MethodInfo caller = KotlinContext.currentMethod();
               if (named && (caller == null || caller.typeInfo().compilationUnit().sourceSet()
                                               != method.typeInfo().compilationUnit().sourceSet())) return false;
               ParameterInfo p = method.parameters().get(i);
      @@ -2276,12 +2300,12 @@ private static boolean nullableBesideWiderOverload(io.codelaser.maddi.cst.api.in
                       && o.parameters().get(i).parameterizedType().arrays() == 0
                       && o.parameters().get(i).parameterizedType().typeInfo() != null
                       && o.parameters().get(i).parameterizedType().typeInfo() != type.typeInfo()
      -                && isSubtype(type.typeInfo(), o.parameters().get(i).parameterizedType().typeInfo(), new java.util.HashSet<>())
      +                && isSubtype(type.typeInfo(), o.parameters().get(i).parameterizedType().typeInfo(), new HashSet<>())
                       && !KotlinNullability.isNullable(KotlinNullability.parameterType(o.parameters().get(i))));
           }
       
           /** An overload of the same arity whose {@code i}-th parameter has the same name: naming it picks neither. */
      -    private static boolean widerOverloadOfTheSameName(io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static boolean widerOverloadOfTheSameName(MethodInfo method, int i) {
               String name = method.parameters().get(i).name();
               return method.typeInfo().methods().stream().anyMatch(o -> o != method && o.name().equals(method.name())
                       && o.parameters().size() == method.parameters().size() && o.parameters().get(i).name().equals(name)
      @@ -2289,7 +2313,7 @@ private static boolean widerOverloadOfTheSameName(io.codelaser.maddi.cst.api.inf
                          != method.parameters().get(i).parameterizedType().typeInfo());
           }
       
      -    private static boolean isSubtype(TypeInfo sub, TypeInfo sup, java.util.Set visited) {
      +    private static boolean isSubtype(TypeInfo sub, TypeInfo sup, Set visited) {
               if (sub == null || !visited.add(sub)) return false;
               if (sub == sup) return true;
               if (sub.parentClass() != null && isSubtype(sub.parentClass().typeInfo(), sup, visited)) return true;
      @@ -2300,7 +2324,7 @@ private static boolean isSubtype(TypeInfo sub, TypeInfo sup, java.util.Set}, and Kotlin then picks the other.
            */
      -    private static boolean collectionBesideObject(io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static boolean collectionBesideObject(MethodInfo method, int i) {
               if (method == null || i >= method.parameters().size() || !KotlinNullability.translated(method.typeInfo())) {
                   return false;
               }
      @@ -2309,7 +2333,7 @@ private static boolean collectionBesideObject(io.codelaser.maddi.cst.api.info.Me
                   || KotlinTypeName.readOnly(p, null).equals(KotlinTypeName.of(p, null))) {
                   return false;
               }
      -        List candidates = method.isConstructor()
      +        List candidates = method.isConstructor()
                       ? method.typeInfo().constructors() : method.typeInfo().methods();
               return candidates.stream().anyMatch(m -> m != method && m.name().equals(method.name())
                       && m.parameters().size() == method.parameters().size()
      @@ -2338,7 +2362,7 @@ private static boolean classOfClassTypeParameter(ParameterizedType target) {
           private static final String MOCKITO_MATCHED_DECLARATION = """
                   @Suppress("UNCHECKED_CAST")
                   private fun  mockitoMatched(value: T?): T = value as T""";
      -    private static final java.util.Set MOCKITO_MATCHER_TYPES = java.util.Set.of("org.mockito.ArgumentMatchers",
      +    private static final Set MOCKITO_MATCHER_TYPES = Set.of("org.mockito.ArgumentMatchers",
                   "org.mockito.AdditionalMatchers", "org.mockito.hamcrest.MockitoHamcrest");
       
           /**
      @@ -2348,7 +2372,7 @@ private static boolean classOfClassTypeParameter(ParameterizedType target) {
            */
           private static boolean mockitoMatcher(Expression arg) {
               if (!(unwrap(arg) instanceof MethodCall mc) || mc.methodInfo() == null) return false;
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      +        MethodInfo m = mc.methodInfo();
               if (m.returnType() == null || m.returnType().isPrimitiveExcludingVoid()) return false;
               String owner = m.typeInfo().fullyQualifiedName();
               return MOCKITO_MATCHER_TYPES.contains(owner)
      @@ -2359,7 +2383,7 @@ private static boolean mockitoMatcher(Expression arg) {
            * A boxed argument ({@code Integer}) into a reference parameter ({@code Object}) where an overload takes the
            * primitive at that position: Kotlin's type for both is {@code Int}, and it picks the primitive overload.
            */
      -    private static boolean boxedIntoReference(io.codelaser.maddi.cst.api.info.MethodInfo method, int i, Expression arg) {
      +    private static boolean boxedIntoReference(MethodInfo method, int i, Expression arg) {
               if (method == null || i >= method.parameters().size()) return false;
               ParameterizedType p = method.parameters().get(i).parameterizedType();
               ParameterizedType a = arg.parameterizedType();
      @@ -2368,7 +2392,7 @@ private static boolean boxedIntoReference(io.codelaser.maddi.cst.api.info.Method
                   return false;
               }
               Primitive boxed = primitive(a);
      -        List candidates = method.isConstructor()
      +        List candidates = method.isConstructor()
                       ? method.typeInfo().constructors() : method.typeInfo().methods();
               return candidates.stream().anyMatch(m -> m != method && m.name().equals(method.name())
                       && m.parameters().size() == method.parameters().size()
      @@ -2380,16 +2404,16 @@ private static boolean boxedIntoReference(io.codelaser.maddi.cst.api.info.Method
            * A nullable parameter of a method without varargs, where an overload starts with the same types, non-null, and
            * ends in varargs: Kotlin finds that one more specific for a non-null argument, and calls it without varargs.
            */
      -    private static boolean nullableBesideVarargs(io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static boolean nullableBesideVarargs(MethodInfo method, int i) {
               if (method == null || i >= method.parameters().size() || method.parameters().getLast().isVarArgs()) return false;
               ParameterizedType declared = KotlinNullability.parameterType(method.parameters().get(i));
               if (declared == null || declared.isPrimitiveExcludingVoid() || !KotlinNullability.isNullable(declared)) return false;
               int n = method.parameters().size();
      -        List candidates = method.isConstructor()
      +        List candidates = method.isConstructor()
                       ? method.typeInfo().constructors() : method.typeInfo().methods();
               return candidates.stream().anyMatch(m -> m != method && m.name().equals(method.name())
                       && m.parameters().size() == n + 1 && m.parameters().getLast().isVarArgs()
      -                && java.util.stream.IntStream.range(0, n).allMatch(j -> {
      +                && IntStream.range(0, n).allMatch(j -> {
                           ParameterizedType mine = method.parameters().get(j).parameterizedType();
                           ParameterizedType theirs = m.parameters().get(j).parameterizedType();
                           return mine.typeInfo() != null && mine.typeInfo() == theirs.typeInfo() && mine.arrays() == theirs.arrays();
      @@ -2417,7 +2441,7 @@ private static ParameterizedType lookedUp(ParameterizedType receiver, TypeInfo d
            * KotlinTypePrinter#varargsAsArray}): an array as it is, a vararg parameter copied ({@code arrayOf(*openOptions)},
            * an {@code Array}), single values as {@code arrayOf(a, b)}, none as {@code emptyArray()}.
            */
      -    private static OutputBuilder varargsArray(List args, io.codelaser.maddi.cst.api.info.MethodInfo method,
      +    private static OutputBuilder varargsArray(List args, MethodInfo method,
                                                     Qualification q) {
               int last = method.parameters().size() - 1;
               if (spread(args, method, last)) {
      @@ -2436,7 +2460,7 @@ private static OutputBuilder varargsArray(List args, io.codelaser.ma
                               SymbolEnum.RIGHT_PARENTHESIS, GuideImpl.defaultGuideGenerator())));
           }
       
      -    private static boolean spread(List args, io.codelaser.maddi.cst.api.info.MethodInfo method, int i) {
      +    private static boolean spread(List args, MethodInfo method, int i) {
               if (method == null || method.parameters().isEmpty() || i != args.size() - 1
                   || i != method.parameters().size() - 1) {
                   return false;
      @@ -2482,7 +2506,7 @@ static OutputBuilder assigned(Expression e, ParameterizedType target, Qualificat
                       TARGET_FIXED.get().remove(mc);
                   }
               }
      -        java.util.Map.Entry typed = targetTypedAnonymous(e, target);
      +        Map.Entry typed = targetTypedAnonymous(e, target);
               if (typed == null) return intoRawTarget(e, target, () -> assignedTo(e, target, q));
               ANONYMOUS_SUPERTYPE.get().put(typed.getKey(), typed.getValue());
               try {
      @@ -2552,8 +2576,8 @@ private static boolean isVoid(ParameterizedType t) {
           }
       
           // calls initializing or returned into a target with every type argument named: Kotlin infers from it
      -    private static final ThreadLocal> TARGET_FIXED =
      -            ThreadLocal.withInitial(() -> java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()));
      +    private static final ThreadLocal> TARGET_FIXED =
      +            ThreadLocal.withInitial(() -> Collections.newSetFromMap(new IdentityHashMap<>()));
       
           /** A generic class type whose arguments are all named, no wildcard (guava's {@code Set<@Nullable Object>}). */
           private static boolean fixingTarget(ParameterizedType target) {
      @@ -2562,8 +2586,8 @@ private static boolean fixingTarget(ParameterizedType target) {
           }
       
           // anonymous classes whose supertype's argument is the target of the call they are handed to: see below
      -    private static final ThreadLocal> ANONYMOUS_SUPERTYPE =
      -            ThreadLocal.withInitial(java.util.IdentityHashMap::new);
      +    private static final ThreadLocal> ANONYMOUS_SUPERTYPE =
      +            ThreadLocal.withInitial(IdentityHashMap::new);
       
           /**
            * nacos's UtilsAndCommons: {@code metadataMap = JacksonUtils.toObj(metadata, new TypeReference}: the anonymous class's supertype takes the target's type, or Kotlin's
            * invariant T differs. The anonymous class and that supertype; null when the call is not of that shape.
            */
      -    private static java.util.Map.Entry targetTypedAnonymous(Expression e,
      +    private static Map.Entry targetTypedAnonymous(Expression e,
                                                                                                   ParameterizedType target) {
               if (!KotlinContext.translatingJava() || target == null || target.arrays() > 0 || target.typeInfo() == null
                   || !(unwrap(e) instanceof MethodCall mc) || mc.methodInfo() == null) {
                   return null;
               }
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      -        io.codelaser.maddi.cst.api.info.TypeParameter tp = m.returnType().typeParameter();
      +        MethodInfo m = mc.methodInfo();
      +        TypeParameter tp = m.returnType().typeParameter();
               if (tp == null || m.returnType().arrays() > 0 || !m.typeParameters().contains(tp)) return null;
               List args = mc.parameterExpressions();
               for (int i = 0; i < args.size() && i < m.parameters().size(); i++) {
      @@ -2589,15 +2613,15 @@ private static java.util.Map.Entry targetTyp
                   }
                   ParameterizedType parent = cc.anonymousClass().parentClass();
                   if (parent == null || parent.typeInfo() != p.typeInfo() || parent.parameters().size() != 1) continue;
      -            return java.util.Map.entry(cc, parent.withParameters(List.of(target.withNullable(
      -                    io.codelaser.maddi.cst.api.type.NullableState.NONNULL))));
      +            return Map.entry(cc, parent.withParameters(List.of(target.withNullable(
      +                    NullableState.NONNULL))));
               }
               return null;
           }
       
           /** {@code print}, with {@code e} known to go into {@code target}, which may be raw: see {@link #RAW_TARGET}. */
           private static OutputBuilder intoRawTarget(Expression e, ParameterizedType target,
      -                                               java.util.function.Supplier print) {
      +                                               Supplier print) {
               Expression call = unwrap(e);
               // an Object target fixes nothing either: jenkins's createCollection(Class) { return new ArrayList(); }
               if (!KotlinContext.translatingJava() || !(call instanceof ConstructorCall || call instanceof MethodCall)
      @@ -2618,7 +2642,7 @@ && unwrap(e) instanceof VariableExpression ve) {
                   ParameterizedType erasure = KotlinTypeName.constructorTypeParameterErasure(ve.parameterizedType());
                   if (erasure != null && erasure.arrays() == 0 && erasure.typeInfo() != null
                       && erasure.typeInfo() != target.typeInfo()
      -                && !isSubtype(erasure.typeInfo(), target.typeInfo(), new java.util.HashSet<>())) {
      +                && !isSubtype(erasure.typeInfo(), target.typeInfo(), new HashSet<>())) {
                       // guava's Invokable: this.member = member, an  printed as its
                       // erasure, AccessibleObject; the other bound is checked, as Java's bytecode does
                       return new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS).add(print(e, q)).add(SpaceEnum.ONE)
      @@ -2633,7 +2657,7 @@ && unwrap(e) instanceof VariableExpression ve) {
                   // guava's Escaper: Function asFunction = this::escape. Kotlin converts a reference to a
                   // Java interface only as an argument; anywhere else the SAM constructor does
                   return new OutputBuilderImpl().add(new TextImpl(KotlinTypeName.of(
      -                            target.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q)))
      +                            target.withNullable(NullableState.NONNULL), q)))
                           .add(SymbolEnum.LEFT_PARENTHESIS).add(print(e, q)).add(SymbolEnum.RIGHT_PARENTHESIS);
               }
               // only where a value is assigned or returned: an argument's target is Java's parameter type, not Kotlin's
      @@ -2656,7 +2680,7 @@ && unwrap(e) instanceof MethodCall tc && tc.methodInfo() != null
                   }
               }
               if (KotlinContext.translatingJava() && target != null && target.arrays() == 0 && !target.parameters().isEmpty()
      -            && unwrap(e) instanceof VariableExpression ve && (ve.variable() instanceof io.codelaser.maddi.cst.api.variable.LocalVariable
      +            && unwrap(e) instanceof VariableExpression ve && (ve.variable() instanceof LocalVariable
                                                                      || ve.variable() instanceof ParameterInfo)) {
                   ParameterizedType value = KotlinNullability.kotlinType(e);
                   if (value != null && value.arrays() == 0 && sameUpToStatesAndWildcards(value, target)
      @@ -2708,13 +2732,13 @@ static OutputBuilder widened(Expression e, ParameterizedType target, Qualificati
                   && samConstructor(l, q) != null && sameUpToStates(l.concreteFunctionalType(), target)) {
                   // DEFAULT_MAX_RESULTS: Function = Function { 3 }: Kotlin's generics are
                   // invariant, so the SAM constructor takes the type arguments of what it initializes, states included
      -            return lambda(l, KotlinTypeName.of(target.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q), q);
      +            return lambda(l, KotlinTypeName.of(target.withNullable(NullableState.NONNULL), q), q);
               }
               if (unwrap(e) instanceof Cast c && target != null && target.arrays() > 0
                   && c.parameterizedType().arrays() == target.arrays() && (sameUpToStates(c.parameterizedType(), target)
      -                || target.arrays() == 1 && java.util.Objects.equals(
      -                        c.parameterizedType().componentType().withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL),
      -                        target.componentType().withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL)))) {
      +                || target.arrays() == 1 && Objects.equals(
      +                        c.parameterizedType().componentType().withNullable(NullableState.NONNULL),
      +                        target.componentType().withNullable(NullableState.NONNULL)))) {
                   // Futures.gwtCompatibleToArray: (ListenableFuture[]) c.toArray(…) into an
                   // Array?>, the element's wildcards as they are
                   // guava's ImmutableMap.SerializedForm: V[] values = (V[]) this.values into an Array: Kotlin's arrays are
      @@ -2732,7 +2756,7 @@ && samConstructor(l, q) != null && sameUpToStates(l.concreteFunctionalType(), ta
                   // and takes the element state of the parameter
                   ParameterizedType own = c.parameterizedType();
                   ParameterizedType castType = own.withComponentType(own.componentType()
      -                    .withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE));
      +                    .withNullable(NullableState.NULLABLE));
                   return cast(c, castType, KotlinNullability.isNullable(target) && KotlinNullability.nullableCast(c), q);
               }
               if (unwrap(e) instanceof Cast c && target != null && !target.parameters().isEmpty()
      @@ -2768,15 +2792,15 @@ && sameUpToStates(c.parameterizedType(), target)) {
                   return new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS)
                           .add(withoutExpectedType(e, () -> print(e, q))).add(SpaceEnum.ONE)
                           .add(KotlinKeyword.AS).add(SpaceEnum.ONE)
      -                    .add(new TextImpl(KotlinTypeName.of(target.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q)))
      +                    .add(new TextImpl(KotlinTypeName.of(target.withNullable(NullableState.NONNULL), q)))
                           .add(SymbolEnum.RIGHT_PARENTHESIS);
               }
               if (target != null && target.arrays() == 1 && unwrap(e) instanceof MethodCall mc && mc.methodInfo() != null
                   && (toArray(mc.methodInfo()) || toArrayOf(mc.methodInfo())) && KotlinNullability.isNullable(target.componentType())) {
                   // return c.toArray() into an Object[] whose elements are nullable: toTypedArray(), as Kotlin's
                   // arrays are invariant
      -            java.util.Map.Entry previous = TO_ARRAY_TARGET.get();
      -            TO_ARRAY_TARGET.set(java.util.Map.entry(mc, target.componentType()));
      +            Map.Entry previous = TO_ARRAY_TARGET.get();
      +            TO_ARRAY_TARGET.set(Map.entry(mc, target.componentType()));
                   try {
                       return print(e, q);
                   } finally {
      @@ -2788,8 +2812,8 @@ && sameUpToStates(c.parameterizedType(), target)) {
                   && !optionalOfNullable(e, target) && !rawOf(rawValueType(e), target)) {
                   // List r = Ranges.range(2, 4) into a MutableList: Kotlin's generics are invariant,
                   // so the explicit type arguments take the states of what the call initializes, range
      -            java.util.Map.Entry previous = TYPE_ARGUMENTS_TARGET.get();
      -            TYPE_ARGUMENTS_TARGET.set(java.util.Map.entry(mc, target));
      +            Map.Entry previous = TYPE_ARGUMENTS_TARGET.get();
      +            TYPE_ARGUMENTS_TARGET.set(Map.entry(mc, target));
                   try {
                       return print(e, q);
                   } finally {
      @@ -2836,7 +2860,7 @@ && sameUpToStates(c.parameterizedType(), target)) {
                   // 'new TypeReference<>() {}' takes the type arguments of what it initializes, states included, as a
                   // constructor call does (Kotlin's generics are invariant; langchain4j DefaultStructuredPromptFactory,
                   // maddi-mod#38). Only without members, which would override with the supertype's arguments
      -            return anonymousClass(cc, target.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q);
      +            return anonymousClass(cc, target.withNullable(NullableState.NONNULL), q);
               }
               if (unwrap(e) instanceof ConstructorCall cc && cc.arrayInitializer() == null && cc.anonymousClass() == null
                   && target != null && target.arrays() > 0 && cc.parameterizedType().arrays() == target.arrays()
      @@ -2988,8 +3012,8 @@ private static boolean passesParametersOn(TypeInfo sub, TypeInfo sup) {
                   if (seen.parameters().get(i).typeParameter() != formal.parameters().get(i).typeParameter()) return false;
               }
               // a direct supertype that annotates an argument @Nullable passes it on as T?
      -        java.util.stream.Stream direct = java.util.stream.Stream.concat(
      -                sub.parentClass() == null ? java.util.stream.Stream.empty() : java.util.stream.Stream.of(sub.parentClass()),
      +        Stream direct = Stream.concat(
      +                sub.parentClass() == null ? Stream.empty() : Stream.of(sub.parentClass()),
                       sub.interfacesImplemented().stream());
               return direct.filter(d -> d.typeInfo() == sup).noneMatch(d -> KotlinTypePrinter.declaredArguments(d).parameters()
                       .stream().anyMatch(KotlinNullability::isNullable));
      @@ -3013,9 +3037,9 @@ private static boolean sameArgumentStates(ParameterizedType a, ParameterizedType
           }
       
           private static boolean sameUpToStatesAndWildcards(ParameterizedType a, ParameterizedType b) {
      -        if (a == null || b == null || !java.util.Objects.equals(a.wildcard(), b.wildcard())
      -            || !java.util.Objects.equals(a.typeInfo(), b.typeInfo()) || a.arrays() != b.arrays()
      -            || !java.util.Objects.equals(a.typeParameter(), b.typeParameter())
      +        if (a == null || b == null || !Objects.equals(a.wildcard(), b.wildcard())
      +            || !Objects.equals(a.typeInfo(), b.typeInfo()) || a.arrays() != b.arrays()
      +            || !Objects.equals(a.typeParameter(), b.typeParameter())
                   || a.parameters().size() != b.parameters().size()) {
                   return false;
               }
      @@ -3027,8 +3051,8 @@ private static boolean sameUpToStatesAndWildcards(ParameterizedType a, Parameter
       
           private static boolean sameUpToStates(ParameterizedType a, ParameterizedType b) {
               if (a == null || b == null || a.wildcard() != null || b.wildcard() != null
      -            || !java.util.Objects.equals(a.typeInfo(), b.typeInfo()) || a.arrays() != b.arrays()
      -            || !java.util.Objects.equals(a.typeParameter(), b.typeParameter())
      +            || !Objects.equals(a.typeInfo(), b.typeInfo()) || a.arrays() != b.arrays()
      +            || !Objects.equals(a.typeParameter(), b.typeParameter())
                   || a.parameters().size() != b.parameters().size()) {
                   return false;
               }
      @@ -3075,7 +3099,7 @@ private static boolean covariantArray(Expression e, ParameterizedType target) {
            * A reference array handed to a translated method's array parameter that is invariant ({@code Array}, not
            * printed {@code Array}) where Java's covariance accepts it: {@code copyIntoArray(other, 0)} of a T[].
            */
      -    private static boolean covariantArrayArgument(io.codelaser.maddi.cst.api.info.MethodInfo method, int i,
      +    private static boolean covariantArrayArgument(MethodInfo method, int i,
                                                         Expression arg) {
               if (!KotlinContext.translatingJava() || method == null || i >= method.parameters().size()
                   || !KotlinNullability.translated(method.typeInfo()) || !castable(method, i)) {
      @@ -3092,7 +3116,7 @@ private static boolean covariantArrayArgument(io.codelaser.maddi.cst.api.info.Me
            * elements are nullable: guava's RegularImmutableSet.EMPTY, {@code new RegularImmutableSet<>(EMPTY_ARRAY, 0,
            * EMPTY_ARRAY, 0)}, an {@code Array} into {@code table: Array}. Erased, the cast checks nothing.
            */
      -    private static boolean nullableElementsParameter(io.codelaser.maddi.cst.api.info.MethodInfo method, int i,
      +    private static boolean nullableElementsParameter(MethodInfo method, int i,
                                                            Expression arg) {
               if (!KotlinContext.translatingJava() || method == null || i >= method.parameters().size()
                   || !KotlinNullability.translated(method.typeInfo())) {
      @@ -3157,19 +3181,19 @@ private static ParameterizedType rawValueType(Expression e) {
            */
           private static String outOfScopeErased(ParameterizedType type, Qualification q) {
               String printed = KotlinTypeName.of(type, q);
      -        java.util.Map replacements = new java.util.LinkedHashMap<>();
      +        Map replacements = new LinkedHashMap<>();
               collectOutOfScope(type, replacements, q);
      -        for (java.util.Map.Entry r : replacements.entrySet()) {
      -            printed = printed.replaceAll("(? r : replacements.entrySet()) {
      +            printed = printed.replaceAll("(? replacements,
      +    private static void collectOutOfScope(ParameterizedType type, Map replacements,
                                                 Qualification q) {
               if (type == null) return;
      -        io.codelaser.maddi.cst.api.info.TypeParameter tp = type.typeParameter();
      +        TypeParameter tp = type.typeParameter();
               if (tp != null && !KotlinContext.typeParameterInScope(tp)) {
                   ParameterizedType bound = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).findFirst().orElse(null);
                   String erased = bound == null || bound.typeInfo() == null ? "Any"
      @@ -3199,7 +3223,7 @@ private static ParameterizedType superWildcardsAsAny(ParameterizedType type) {
               ParameterizedType object = type.typeInfo().parentClass();
               while (object != null && !object.isJavaLangObject()) object = object.typeInfo().parentClass();
               if (object == null) return type;
      -        ParameterizedType any = object.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE);
      +        ParameterizedType any = object.withNullable(NullableState.NULLABLE);
               return type.withParameters(type.parameters().stream()
                       .map(p -> p != null && p.wildcard() != null && p.wildcard().isSuper() ? any : p).toList());
           }
      @@ -3228,7 +3252,7 @@ private static boolean rawInto(ParameterizedType raw, ParameterizedType typed) {
                   || typed.parameters().stream().anyMatch(p -> p.isTypeParameter() && p.typeParameter() == null)) {
                   return false;
               }
      -        return raw.typeInfo() == typed.typeInfo() || isSubtype(raw.typeInfo(), typed.typeInfo(), new java.util.HashSet<>());
      +        return raw.typeInfo() == typed.typeInfo() || isSubtype(raw.typeInfo(), typed.typeInfo(), new HashSet<>());
           }
       
           /** A cast to a raw type, into a parameterization of it: unlike a creation, a cast may write a wildcard. */
      @@ -3261,7 +3285,7 @@ private static OutputBuilder methodReference(MethodReference mr, Qualification q
                       ParameterizedType component = type.componentType();
                       String primitive = KotlinTypeName.primitiveArray(component);
                       if (primitive != null) return text("{ " + primitive + "(it) }");
      -                String element = KotlinTypeName.of(component.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q);
      +                String element = KotlinTypeName.of(component.withNullable(NullableState.NONNULL), q);
                       return text("{ arrayOfNulls<" + element + ">(it) as Array<" + element + "> }");
                   }
                   String name = type.arrays() > 0 ? KotlinTypeName.of(type, q) : KotlinTypeName.name(type.typeInfo(), q);
      @@ -3277,7 +3301,7 @@ private static OutputBuilder methodReference(MethodReference mr, Qualification q
               }
               String member = mappedMember(mr);
               if (member != null) return text("{ it" + member + " }");
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mr.methodInfo();
      +        MethodInfo m = mr.methodInfo();
               if (scope instanceof TypeExpression te && m.isStatic() && (!m.isVarargs() || m.parameters().size() == 1)
                   && KotlinTypeName.isMapped(te.parameterizedType().typeInfo().fullyQualifiedName()) && m.parameters().size() <= 2) {
                   // java.util.List::of: Kotlin wants the mapped type's arguments (List) and has no static to refer to;
      @@ -3306,7 +3330,7 @@ private static OutputBuilder methodReference(MethodReference mr, Qualification q
                       ParameterizedType receiver = m.isStatic() ? null : referenceReceiver(mr, owner);
                       if (m.isStatic()) name += ".Companion";
                       else if (receiver != null) name = KotlinTypeName.of(receiver
      -                        .withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q);
      +                        .withNullable(NullableState.NONNULL), q);
                   }
                   b.add(new TextImpl(name));
               } else {
      @@ -3341,9 +3365,9 @@ private static boolean typedOwner(ParameterizedType type, TypeInfo owner) {
           }
       
           private static boolean optionalFactory(MethodCall mc) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mc.methodInfo();
      +        MethodInfo m = mc.methodInfo();
               return m != null && m.isStatic() && "java.util.Optional".equals(m.typeInfo().fullyQualifiedName())
      -               && java.util.Set.of("of", "ofNullable", "empty").contains(m.name());
      +               && Set.of("of", "ofNullable", "empty").contains(m.name());
           }
       
           /** The receiver's element type (E of its Collection) is a type variable. */
      @@ -3353,14 +3377,14 @@ private static boolean typeVariableElement(Expression object, TypeInfo collectio
           }
       
           /** The toArray call {@link #widened} prints into an array whose elements are nullable, with that element type. */
      -    private static final ThreadLocal> TO_ARRAY_TARGET = new ThreadLocal<>();
      +    private static final ThreadLocal> TO_ARRAY_TARGET = new ThreadLocal<>();
       
           private static ParameterizedType expectedElement(MethodCall mc) {
      -        java.util.Map.Entry t = TO_ARRAY_TARGET.get();
      +        Map.Entry t = TO_ARRAY_TARGET.get();
               return t != null && t.getKey() == mc ? t.getValue() : null;
           }
       
      -    private static boolean toArray(io.codelaser.maddi.cst.api.info.MethodInfo m) {
      +    private static boolean toArray(MethodInfo m) {
               // not a stream's: IntStream.toArray() is an IntArray already, Stream.toArray() an Array
               return m != null && "toArray".equals(m.name()) && m.parameters().isEmpty()
                      && m.typeInfo().fullyQualifiedName().startsWith("java.util.")
      @@ -3377,7 +3401,7 @@ private static boolean nullableElements(Expression receiver) {
               return KotlinNullability.isNullable(element);
           }
       
      -    private static boolean toArrayOf(io.codelaser.maddi.cst.api.info.MethodInfo m) {
      +    private static boolean toArrayOf(MethodInfo m) {
               return m != null && "toArray".equals(m.name()) && m.parameters().size() == 1
                      && m.parameters().getFirst().parameterizedType().arrays() == 1
                      && m.typeInfo().fullyQualifiedName().startsWith("java.util.");
      @@ -3399,7 +3423,7 @@ private static ParameterizedType uncheckedArgument(MethodCall call, int i, Expre
                   || unwrap(arg) instanceof Lambda || unwrap(arg) instanceof MethodReference) {
                   return null;
               }
      -        io.codelaser.maddi.cst.api.info.MethodInfo method = call.methodInfo();
      +        MethodInfo method = call.methodInfo();
               if (call.object() != null && rawReceiver(call.object(), method) && i < method.parameters().size()) {
                   // guava's TypeToken: componentType.getSupertype(supertype.getComponentType()) on a raw TypeToken, cast to
                   // TypeToken, whose Class parameter no Class<*> is. Java's raw call takes a raw Class
      @@ -3412,7 +3436,7 @@ private static ParameterizedType uncheckedArgument(MethodCall call, int i, Expre
                   && argCall.typeArguments().isEmpty()) {
                   ParameterizedType raw = call.object().parameterizedType();
                   List bounds = new ArrayList<>();
      -            for (io.codelaser.maddi.cst.api.info.TypeParameter tp : raw.typeInfo().typeParameters()) {
      +            for (TypeParameter tp : raw.typeInfo().typeParameters()) {
                       ParameterizedType bound = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).findFirst().orElse(null);
                       if (bound == null || bound.typeInfo() == null) return null;
                       bounds.add(bound.typeInfo().asSimpleParameterizedType());
      @@ -3442,7 +3466,7 @@ private static ParameterizedType uncheckedArgument(MethodCall call, int i, Expre
           private static OutputBuilder supplied(Expression supplier, Qualification q) {
               Expression s = unwrap(supplier);
               if (s instanceof MethodReference mr && mr.methodInfo() != null && mr.methodInfo().parameters().isEmpty()) {
      -            io.codelaser.maddi.cst.api.info.MethodInfo m = mr.methodInfo();
      +            MethodInfo m = mr.methodInfo();
                   if (m.isConstructor()) {
                       return new OutputBuilderImpl().add(new TextImpl(KotlinTypeName.name(mr.scope().parameterizedType().typeInfo(), q)))
                               .add(SymbolEnum.OPEN_CLOSE_PARENTHESIS);
      @@ -3487,7 +3511,7 @@ private static boolean rawComparable(ParameterizedType type) {
            * null when the reference stays one.
            */
           private static String mappedMember(MethodReference mr) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo m = mr.methodInfo();
      +        MethodInfo m = mr.methodInfo();
               if (!(mr.scope() instanceof TypeExpression te) || m.isStatic() || !m.parameters().isEmpty()) return null;
               if (KotlinMappedMembers.isUnboxing(m)) return "";
               String property = KotlinMappedMembers.property(m);
      @@ -3553,7 +3577,7 @@ private static OutputBuilder constructorCall(ConstructorCall cc, ParameterizedTy
            * guava's static {@code ImmediateFuture.NULL = new ImmediateFuture<@Nullable Object>(null)} passes null into an
            * Any?, where the class's V is out of scope (a {@code null as V} would not resolve).
            */
      -    private static ParameterizedType constructedArgument(io.codelaser.maddi.cst.api.info.MethodInfo constructor,
      +    private static ParameterizedType constructedArgument(MethodInfo constructor,
                                                                ParameterizedType declared, ParameterizedType constructed) {
               if (constructed == null || declared == null || !declared.isTypeParameter() || declared.arrays() > 0
                   || declared.wildcard() != null || constructed.typeInfo() != constructor.typeInfo()) return declared;
      @@ -3612,10 +3636,10 @@ private static OutputBuilder anonymousSuperArguments(ConstructorCall cc, Paramet
           }
       
           /** The superclass constructor an anonymous class's arguments go to: the only one taking that many, else none. */
      -    private static io.codelaser.maddi.cst.api.info.MethodInfo superConstructor(ConstructorCall cc, ParameterizedType parent) {
      +    private static MethodInfo superConstructor(ConstructorCall cc, ParameterizedType parent) {
               if (cc.constructor() != null || parent.typeInfo() == null) return cc.constructor();
               int n = cc.parameterExpressions().size();
      -        List candidates = parent.typeInfo().constructors().stream()
      +        List candidates = parent.typeInfo().constructors().stream()
                       .filter(c -> c.parameters().size() == n && c.parameters().stream().noneMatch(p -> p.isVarArgs()))
                       .toList();
               return candidates.size() == 1 ? candidates.getFirst() : null;
      @@ -3816,7 +3840,7 @@ private static OutputBuilder arrayBranch(Expression branch, ParameterizedType ta
                   return new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS)
                           .add(withoutExpectedType(branch, () -> print(branch, q))).add(SpaceEnum.ONE)
                           .add(KotlinKeyword.AS).add(SpaceEnum.ONE).add(new TextImpl(KotlinTypeName.of(
      -                            target.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q)))
      +                            target.withNullable(NullableState.NONNULL), q)))
                           .add(SymbolEnum.RIGHT_PARENTHESIS);
               }
               if (target.arrays() == 1 && KotlinTypeName.primitiveArray(target.componentType()) == null
      @@ -3829,7 +3853,7 @@ && unwrap(branch) instanceof MethodCall mc && mc.methodInfo() != null
                   KotlinContext.message(KotlinPrintCode.UNCHECKED_CAST, branch, KotlinContext.describe(branch));
                   return new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS).add(print(branch, q)).add(SpaceEnum.ONE)
                           .add(KotlinKeyword.AS).add(SpaceEnum.ONE).add(new TextImpl(KotlinTypeName.of(
      -                            target.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q)))
      +                            target.withNullable(NullableState.NONNULL), q)))
                           .add(SymbolEnum.RIGHT_PARENTHESIS);
               }
               return widened(branch, target, q);
      @@ -3844,7 +3868,7 @@ private static boolean signaturePolymorphic(Expression e) {
           }
       
           /** {@code type} is {@code T[]} of one of {@code method}'s own type parameters. */
      -    private static boolean ownTypeVariableArray(io.codelaser.maddi.cst.api.info.MethodInfo method, ParameterizedType type) {
      +    private static boolean ownTypeVariableArray(MethodInfo method, ParameterizedType type) {
               return type != null && type.arrays() == 1 && type.componentType().typeParameter() != null
                      && method.typeParameters().contains(type.componentType().typeParameter());
           }
      @@ -3879,23 +3903,23 @@ private static OutputBuilder lambda(Lambda lambda, Qualification q) {
               return lambda(lambda, true, q);
           }
       
      -    private static final ThreadLocal> ITERABLE_LAMBDAS =
      -            ThreadLocal.withInitial(() -> java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()));
      +    private static final ThreadLocal> ITERABLE_LAMBDAS =
      +            ThreadLocal.withInitial(() -> Collections.newSetFromMap(new IdentityHashMap<>()));
       
           private static OutputBuilder lambda(Lambda lambda, boolean samConstructor, Qualification q) {
               return lambda(lambda, samConstructor ? samConstructor(lambda, q) : null, q);
           }
       
           // the result each enclosing block lambda's returns go into, where the verdicts decide it non-null
      -    private static final ThreadLocal>> LAMBDA_RESULT =
      -            ThreadLocal.withInitial(java.util.ArrayDeque::new);
      +    private static final ThreadLocal>> LAMBDA_RESULT =
      +            ThreadLocal.withInitial(ArrayDeque::new);
       
           /**
            * A value a block lambda returns, into its result: asserted where the verdicts hold the result non-null and Kotlin
            * types the value nullable, as a single-expression lambda's value is.
            */
           static OutputBuilder lambdaReturned(Expression value, Qualification q) {
      -        java.util.Optional decided = LAMBDA_RESULT.get().peek();
      +        Optional decided = LAMBDA_RESULT.get().peek();
               OutputBuilder printed = print(value, q);
               if (decided == null || decided.isEmpty() || unwrap(value) instanceof ConstructorCall cc && inferred(cc)) return printed;
               return KotlinNullability.toTarget(value, decided.get(), true, printed, q);
      @@ -3966,15 +3990,15 @@ private static OutputBuilder lambda(Lambda lambda, String sam, Qualification q)
                       // a block's returns go into the same result: jenkins's InstallUtil, return states.get(current)
                       ParameterizedType decided = KotlinNullability.verdicts().returnType(lambda.methodInfo());
                       LAMBDA_RESULT.get().push(decided != null && !KotlinNullability.isNullable(decided)
      -                        ? java.util.Optional.of(decided) : java.util.Optional.empty());
      +                        ? Optional.of(decided) : Optional.empty());
                       OutputBuilder lines;
                       try {
                           lines = KotlinStatementPrinter.lambdaBody(statements, q);
                       } finally {
                           LAMBDA_RESULT.get().pop();
                       }
      -                inner = reassigned.isEmpty() ? lines : java.util.stream.Stream.concat(reassigned.stream(),
      -                        java.util.stream.Stream.of(lines)).filter(o -> !o.isEmpty())
      +                inner = reassigned.isEmpty() ? lines : Stream.concat(reassigned.stream(),
      +                        Stream.of(lines)).filter(o -> !o.isEmpty())
                               .collect(OutputBuilderImpl.joining(SpaceEnum.NEWLINE, GuideImpl.generatorForBlock()));
                   }
               } finally {
      @@ -4081,7 +4105,7 @@ private static OutputBuilder writtenVarargs(Variable v, Qualification q) {
               if (component == null || component.isPrimitiveExcludingVoid()) return null;
               KotlinContext.message(KotlinPrintCode.UNCHECKED_CAST, dv.arrayExpression(), KotlinContext.describe(dv.arrayExpression()));
               String invariant = "Array<" + KotlinTypeName.of(component.withNullable(
      -                io.codelaser.maddi.cst.api.type.NullableState.NULLABLE), q) + ">";
      +                NullableState.NULLABLE), q) + ">";
               return new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS).add(print(dv.arrayExpression(), q))
                       .add(SpaceEnum.ONE).add(KotlinKeyword.AS).add(SpaceEnum.ONE).add(new TextImpl(invariant))
                       .add(SymbolEnum.RIGHT_PARENTHESIS).add(SymbolEnum.LEFT_BRACKET).add(arrayIndex(dv.indexExpression(), q))
      @@ -4098,7 +4122,7 @@ private static ParameterizedType declaredType(Variable v) {
                   }
                   case FieldReference fr -> KotlinNullability.fieldType(fr.fieldInfo());
                   case ParameterInfo pi -> KotlinNullability.parameterType(pi);
      -            case io.codelaser.maddi.cst.api.variable.LocalVariable lv -> {
      +            case LocalVariable lv -> {
                       ParameterizedType t = KotlinContext.localType(lv.simpleName());
                       yield t != null ? t : lv.parameterizedType();
                   }
      @@ -4111,10 +4135,10 @@ private static ParameterizedType declaredType(Variable v) {
            * {@code 0.also { counter = it }}. A local that a lambda assigns gets no smart casts anywhere, also not in the
            * other branch's {@code ++counter} (fernflower's {@code counter == null ? counter = 0 : ++counter}).
            */
      -    private static OutputBuilder branch(Expression e, java.util.function.Supplier otherwise, Qualification q) {
      +    private static OutputBuilder branch(Expression e, Supplier otherwise, Qualification q) {
               if (unwrap(e) instanceof Assignment a && a.prefixPrimitiveOperator() == null
                   && (a.assignmentOperator() == null || "=".equals(a.assignmentOperator().name()))
      -            && a.variableTarget() instanceof io.codelaser.maddi.cst.api.variable.LocalVariable) {
      +            && a.variableTarget() instanceof LocalVariable) {
                   return new OutputBuilderImpl().add(SymbolEnum.LEFT_BRACE).add(SpaceEnum.ONE).add(assignmentAsStatement(a, q))
                           .add(SymbolEnum.SEMICOLON).add(SpaceEnum.ONE).add(variable(a.variableTarget(), q)).add(SpaceEnum.ONE)
                           .add(SymbolEnum.RIGHT_BRACE);
      @@ -4265,9 +4289,9 @@ && primitive(bo.parameterizedType()) != Primitive.CHAR) {
                       .add(operand(bo.precedence(), bo.rhs(), q));
           }
       
      -    private static final java.util.Set COMPARISON = java.util.Set.of("<", ">", "<=", ">=");
      +    private static final Set COMPARISON = Set.of("<", ">", "<=", ">=");
       
      -    private static final java.util.Set RELATIONAL = java.util.Set.of("<", ">", "<=", ">=", "+", "-", "*", "/", "%");
      +    private static final Set RELATIONAL = Set.of("<", ">", "<=", ">=", "+", "-", "*", "/", "%");
       
           /**
            * The narrower side of {@code ==}, widened. An int literal does not adapt to a Long there, as it does in an
      @@ -4284,7 +4308,7 @@ private static OutputBuilder compared(Expression e, ParameterizedType target, Qu
               return widened(e, target, q);
           }
       
      -    private static final java.util.Set ARITHMETIC = java.util.Set.of("+", "-", "*", "/", "%");
      +    private static final Set ARITHMETIC = Set.of("+", "-", "*", "/", "%");
       
           /** An operand of an int (or wider) operation: a char becomes its code. */
           private static OutputBuilder promoted(Expression e, Precedence precedence, Qualification q) {
      @@ -4393,14 +4417,14 @@ private static OutputBuilder negation(Negation neg, Qualification q) {
            * The operands of a {@code &&} ({@code and}) or {@code ||}, in the order printed, which Kotlin evaluates: each knows
            * the {@code is} tests of those before it.
            */
      -    private static OutputBuilder junction(List operands, io.codelaser.maddi.cst.api.expression.Precedence precedence,
      +    private static OutputBuilder junction(List operands, Precedence precedence,
                                                 boolean and, Qualification q) {
               List printed = new ArrayList<>();
               KotlinSmartCasts.Facts known = new KotlinSmartCasts.Facts();
               for (int i = 0; i < operands.size(); i++) {
                   Expression operand = operands.get(i);
      -            KotlinSmartCasts.Facts before = new KotlinSmartCasts.Facts(new java.util.HashMap<>(known.types()),
      -                    new java.util.HashSet<>(known.nonNull()));
      +            KotlinSmartCasts.Facts before = new KotlinSmartCasts.Facts(new HashMap<>(known.types()),
      +                    new HashSet<>(known.nonNull()));
                   // a pair of adjacent operands, x != null && x.m(): one Kotlin expression
                   Expression next = i + 1 < operands.size() ? operands.get(i + 1) : null;
                   OutputBuilder pair = next == null ? null
      @@ -4504,7 +4528,7 @@ private static Expression negated(Expression e) {
           }
       
           /** An operand of && or ||: Java unboxes a Boolean there ({@code last && map.get(k)}), Kotlin needs the {@code !!}. */
      -    private static OutputBuilder condition(io.codelaser.maddi.cst.api.expression.Precedence precedence, Expression e, Qualification q) {
      +    private static OutputBuilder condition(Precedence precedence, Expression e, Qualification q) {
               if (!(unwrap(e) instanceof NullConstant) && KotlinNullability.nullableInKotlin(e)) {
                   return KotlinNullability.asserted(e, KotlinPrintCode.ASSERT_AT_UNBOXING, q);
               }
      @@ -4606,18 +4630,18 @@ private static void registerPattern(InstanceOf io, Qualification q) {
            * nested type pattern that is tested ({@link #nestedTests}) binds the component cast to its type,
            * {@code (o.content as String)}.
            */
      -    static void registerRecordPattern(io.codelaser.maddi.cst.api.element.RecordPattern pattern,
      +    static void registerRecordPattern(RecordPattern pattern,
                                             Expression testedExpression, Qualification q) {
               if (pattern.recordType() == null || pattern.patterns() == null || pattern.patterns().isEmpty()) return;
               registerComponents(pattern, record(pattern, testedExpression, q), q);
           }
       
           /** The tested value as the record: itself where Kotlin smart-casts it, a local or a parameter; else a cast. */
      -    private static java.util.function.Supplier record(io.codelaser.maddi.cst.api.element.RecordPattern pattern,
      +    private static Supplier record(RecordPattern pattern,
                                                                            Expression testedExpression, Qualification q) {
               Expression tested = unwrap(testedExpression);
               boolean smartCast = tested instanceof VariableExpression ve
      -                            && (ve.variable() instanceof io.codelaser.maddi.cst.api.variable.LocalVariable
      +                            && (ve.variable() instanceof LocalVariable
                                       || ve.variable() instanceof ParameterInfo);
               String type = KotlinTypeName.of(pattern.recordType(), q);
               return smartCast ? () -> print(tested, q)
      @@ -4626,14 +4650,14 @@ private static java.util.function.Supplier record(io.codelaser.ma
                       .add(SymbolEnum.RIGHT_PARENTHESIS);
           }
       
      -    private static void registerComponents(io.codelaser.maddi.cst.api.element.RecordPattern pattern,
      -                                           java.util.function.Supplier record, Qualification q) {
      -        List components = components(pattern);
      +    private static void registerComponents(RecordPattern pattern,
      +                                           Supplier record, Qualification q) {
      +        List components = components(pattern);
               if (components == null) return;
               for (int i = 0; i < components.size(); i++) {
      -            io.codelaser.maddi.cst.api.element.RecordPattern sub = pattern.patterns().get(i);
      +            RecordPattern sub = pattern.patterns().get(i);
                   if (sub.unnamedPattern()) continue;
      -            java.util.function.Supplier component = component(record, components.get(i), sub, q);
      +            Supplier component = component(record, components.get(i), sub, q);
                   if (sub.localVariable() != null) {
                       KotlinContext.patternVariable(sub.localVariable(), component);
                   } else {
      @@ -4648,20 +4672,20 @@ private static void registerComponents(io.codelaser.maddi.cst.api.element.Record
            * deconstruction, {@code o.content is Box}, followed by its own. None for {@code var x}, {@code _}, or a type
            * the component's is ({@link #covers}): those match null too, which an {@code is} would not.
            */
      -    static List nestedTests(io.codelaser.maddi.cst.api.element.RecordPattern pattern,
      +    static List nestedTests(RecordPattern pattern,
                                                  Expression testedExpression, Qualification q) {
               List tests = new ArrayList<>();
               if (pattern.recordType() != null) nestedTests(pattern, record(pattern, testedExpression, q), tests, q);
               return tests;
           }
       
      -    private static void nestedTests(io.codelaser.maddi.cst.api.element.RecordPattern pattern,
      -                                    java.util.function.Supplier record, List tests,
      +    private static void nestedTests(RecordPattern pattern,
      +                                    Supplier record, List tests,
                                           Qualification q) {
      -        List components = components(pattern);
      +        List components = components(pattern);
               if (components == null) return;
               for (int i = 0; i < components.size(); i++) {
      -            io.codelaser.maddi.cst.api.element.RecordPattern sub = pattern.patterns().get(i);
      +            RecordPattern sub = pattern.patterns().get(i);
                   if (sub.unnamedPattern() || sub.localVariable() != null && covers(sub.parameterizedType(),
                           components.get(i).type())) {
                       continue;
      @@ -4669,31 +4693,31 @@ private static void nestedTests(io.codelaser.maddi.cst.api.element.RecordPattern
                   String name = KotlinNames.name(components.get(i).name());
                   tests.add(record.get().add(SymbolEnum.DOT).add(new TextImpl(name)).add(KotlinSymbols.binary("is"))
                           .add(new TextImpl(KotlinTypeName.of(sub.parameterizedType().withNullable(
      -                            io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q))));
      +                            NullableState.NONNULL), q))));
                   if (sub.recordType() != null) nestedTests(sub, component(record, components.get(i), sub, q), tests, q);
               }
           }
       
           /** The record's components, one per nested pattern; null when they do not line up. */
      -    private static List components(
      -            io.codelaser.maddi.cst.api.element.RecordPattern pattern) {
      +    private static List components(
      +            RecordPattern pattern) {
               TypeInfo recordType = pattern.recordType() == null ? null : pattern.recordType().typeInfo();
               if (recordType == null || pattern.patterns() == null) return null;
      -        List components = recordType.fields().stream()
      +        List components = recordType.fields().stream()
                       .filter(f -> !f.isStatic() && !f.isSynthetic()).toList();
               return components.size() == pattern.patterns().size() ? components : null;
           }
       
           /** {@code o.content}, cast to the nested pattern's type where that is narrower: {@code (o.content as String)}. */
      -    private static java.util.function.Supplier component(java.util.function.Supplier record,
      -                                                                        io.codelaser.maddi.cst.api.info.FieldInfo field,
      -                                                                        io.codelaser.maddi.cst.api.element.RecordPattern sub,
      +    private static Supplier component(Supplier record,
      +                                                                        FieldInfo field,
      +                                                                        RecordPattern sub,
                                                                               Qualification q) {
               String name = KotlinNames.name(field.name());
      -        java.util.function.Supplier plain = () -> record.get().add(SymbolEnum.DOT).add(new TextImpl(name));
      +        Supplier plain = () -> record.get().add(SymbolEnum.DOT).add(new TextImpl(name));
               if (covers(sub.parameterizedType(), field.type())) return plain;
               String type = KotlinTypeName.of(sub.parameterizedType().withNullable(
      -                io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q);
      +                NullableState.NONNULL), q);
               return () -> new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS).add(plain.get())
                       .add(SpaceEnum.ONE).add(KotlinKeyword.AS).add(SpaceEnum.ONE).add(new TextImpl(type))
                       .add(SymbolEnum.RIGHT_PARENTHESIS);
      @@ -4714,11 +4738,11 @@ private static boolean covers(ParameterizedType type, ParameterizedType componen
           }
       
           /** As {@link #registerPattern(InstanceOf, Qualification)}, for {@code variable} of {@code type} bound by {@code tested}. */
      -    static void registerPattern(io.codelaser.maddi.cst.api.variable.LocalVariable variable, Expression testedExpression,
      +    static void registerPattern(LocalVariable variable, Expression testedExpression,
                                       ParameterizedType testType, Qualification q) {
               Expression tested = unwrap(testedExpression);
               boolean smartCast = tested instanceof VariableExpression ve
      -                            && (ve.variable() instanceof io.codelaser.maddi.cst.api.variable.LocalVariable
      +                            && (ve.variable() instanceof LocalVariable
                                       || ve.variable() instanceof ParameterInfo);
               String type = KotlinTypeName.of(testType, q);
               KotlinContext.patternVariable(variable, smartCast
      @@ -4813,7 +4837,7 @@ private static OutputBuilder cast(Cast cast, ParameterizedType castType, boolean
                   // (Supplier>) ImmutableTable.Builder::new: the cast is what types the
                   // reference for Java; Kotlin's `{ ImmutableTable.Builder() } as Supplier<…>` infers nothing from it, a SAM
                   // constructor does
      -            String sam = KotlinTypeName.of(castType.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q);
      +            String sam = KotlinTypeName.of(castType.withNullable(NullableState.NONNULL), q);
                   // a lambda prints its own SAM constructor: this one instead, not a second around it
                   if (unwrap(cast.expression()) instanceof Lambda l) return lambda(l, sam, q);
                   return new OutputBuilderImpl().add(new TextImpl(sam))
      @@ -4824,7 +4848,7 @@ private static OutputBuilder cast(Cast cast, ParameterizedType castType, boolean
               ParameterizedType declared = KotlinTypePrinter.declaredArguments(castType);
               // Java's (String) map.get(k) lets null through, Kotlin's `as String` throws: as String?
               ParameterizedType type = nullable
      -                ? declared.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE)
      +                ? declared.withNullable(NullableState.NULLABLE)
                       : declared;
               String typeName = rawComparable(cast.parameterizedType())
                       // ((Comparable) actual).compareTo(expected): Comparable<*> takes nothing, Comparable anything,
      @@ -4859,7 +4883,7 @@ private static boolean smartCast(Cast cast) {
            */
           private static String forcedReadOnlyElement(Expression e, Qualification q) {
               if (!(unwrap(e) instanceof VariableExpression ve) || !(ve.variable() instanceof ParameterInfo pi)) return null;
      -        io.codelaser.maddi.cst.api.info.MethodInfo current = KotlinContext.currentMethod();
      +        MethodInfo current = KotlinContext.currentMethod();
               if (current == null || pi.methodInfo() != current) return null;
               ParameterizedType t = KotlinMappedMembers.overriddenParameterType(current, pi.index());
               if (t == null || t.typeInfo() == null || !"java.util.Collection".equals(t.typeInfo().fullyQualifiedName())
      @@ -4929,15 +4953,15 @@ private static String floatLiteral(float f) {
       
           // ---------------------------------------------------------------- precedence
       
      -    private static final java.util.Set BOXED_OR_STRING = java.util.Set.of("java.lang.Integer",
      +    private static final Set BOXED_OR_STRING = Set.of("java.lang.Integer",
                   "java.lang.Long", "java.lang.Short", "java.lang.Byte", "java.lang.Character", "java.lang.Boolean",
                   "java.lang.String");
      -    private static final java.util.Map BOX = java.util.Map.of("int", "java.lang.Integer",
      +    private static final Map BOX = Map.of("int", "java.lang.Integer",
                   "long", "java.lang.Long", "short", "java.lang.Short", "byte", "java.lang.Byte", "char",
                   "java.lang.Character", "boolean", "java.lang.Boolean", "double", "java.lang.Double",
                   "float", "java.lang.Float");
           // what a boxed type or String may be compared with in Kotlin, besides itself
      -    private static final java.util.Set SUPERTYPES_OF_BOXED = java.util.Set.of("java.lang.Object",
      +    private static final Set SUPERTYPES_OF_BOXED = Set.of("java.lang.Object",
                   "java.lang.Number", "java.lang.Comparable", "java.io.Serializable", "java.lang.CharSequence");
       
           /**
      @@ -5030,7 +5054,7 @@ private static OutputBuilder inlineConditional(InlineConditional ic, Qualificati
            * conditional's branch.
            */
           private static OutputBuilder let(KotlinNullCheckShapes.Let let, InlineConditional ic,
      -                                     java.util.function.Supplier body, Qualification q) {
      +                                     Supplier body, Qualification q) {
               KotlinSmartCasts.Facts nonNull = let.bodyWhenTrue()
                       ? KotlinSmartCasts.whenTrue(ic.condition()) : KotlinSmartCasts.whenFalse(ic.condition());
               OutputBuilder printedBody = KotlinContext.withPatternVariable(let.variable().variable(),
      @@ -5062,15 +5086,15 @@ private static boolean isElvis(InlineConditional ic) {
           }
       
           static Expression unwrap(Expression e) {
      -        return io.codelaser.maddi.cst.print.translate.CstQueries.unwrap(e);
      +        return CstQueries.unwrap(e);
           }
       
           /** Recurse into an operand, parenthesising when the enclosing operator binds tighter (as the Java printer does). */
      -    static OutputBuilder operand(io.codelaser.maddi.cst.api.expression.Precedence precedence, Expression e,
      +    static OutputBuilder operand(Precedence precedence, Expression e,
                                        Qualification q) {
               OutputBuilder inner = print(e, q);
               // a call printed as a == b binds as == does
      -        io.codelaser.maddi.cst.api.expression.Precedence own = unwrap(e) instanceof MethodCall mc
      +        Precedence own = unwrap(e) instanceof MethodCall mc
                                                                      && equality(mc) != null ? PrecedenceEnum.EQUALITY
                       : e.precedence();
               if (precedence.greaterThan(own) || needsParenthesesInKotlin(e)) {
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinFieldPrinter.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinFieldPrinter.java
      index 3d865bb2a4..df8c603ca4 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinFieldPrinter.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinFieldPrinter.java
      @@ -17,18 +17,24 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.CstQueries;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Optional;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.element.Comment;
       import io.codelaser.maddi.cst.api.element.DetailedSources;
       import io.codelaser.maddi.cst.api.element.Source;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.FieldPrinter;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.output.Qualification;
      +import io.codelaser.maddi.cst.api.output.element.Keyword;
      +import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.impl.element.ElementImpl;
       import io.codelaser.maddi.cst.impl.output.*;
      -
      -import java.util.List;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
       
       /**
        * Prints a {@link FieldInfo} as a Kotlin property: `[visibility] val|var name: Type [= initializer]`. A final
      @@ -71,7 +77,7 @@ private OutputBuilder printDeclaration(Qualification qualification, boolean asPa
               boolean isVal = isVal(fieldInfo, hasInitializer, asParameterInPrimaryConstructor);
               boolean needsDefault = !asParameterInPrimaryConstructor && !hasInitializer && !isVal
                                      && !fieldInfo.owner().isInterface();
      -        io.codelaser.maddi.cst.api.type.ParameterizedType type = KotlinNullability.fieldType(fieldInfo);
      +        ParameterizedType type = KotlinNullability.fieldType(fieldInfo);
               // Java's default for a reference is null: written out when the verdict allows it, else lateinit. Kotlin has
               // no lateinit for Int or Long (Java's Integer and Long too), nor for T, whose upper bound is nullable
               String zero = !needsDefault ? null : KotlinNullability.isNullable(type) ? "null"
      @@ -79,11 +85,11 @@ private OutputBuilder printDeclaration(Qualification qualification, boolean asPa
                       : defaultValue(type);
       
               OutputBuilder builder = new OutputBuilderImpl();
      -        java.util.Optional visibility =
      +        Optional visibility =
                       KotlinModifiers.visibility(fieldInfo.access(), fieldInfo.owner(), fieldInfo);
               boolean lateinit = needsDefault && zero == null;
               builder.add(KotlinAnnotations.print(fieldInfo.annotations(), qualification)).add(jvmModifiers(fieldInfo));
      -        if (!isConst() && !visibility.equals(java.util.Optional.of(KeywordImpl.PRIVATE))) {
      +        if (!isConst() && !visibility.equals(Optional.of(KeywordImpl.PRIVATE))) {
                   boolean clash = accessorClash(fieldInfo, isVal);
                   if (lateinit && clash) {
                       // a lateinit property cannot be a @JvmField: its accessors get names no Java method has
      @@ -125,7 +131,7 @@ private static boolean isVal(FieldInfo fieldInfo, boolean hasInitializer, boolea
           }
       
           /** The getter names of Kotlin's mapped members that are properties there, which a class's field may not reuse. */
      -    private static final java.util.Set MAPPED_PROPERTIES = java.util.Set.of("size", "keys", "values", "entries",
      +    private static final Set MAPPED_PROPERTIES = Set.of("size", "keys", "values", "entries",
                   "key", "value", "message", "cause", "length");
       
           /**
      @@ -154,13 +160,13 @@ private static boolean hidesEnumProperty(FieldInfo fieldInfo) {
       
           private static boolean hidesSuperclassField(FieldInfo fieldInfo) {
               if (!KotlinContext.translatingJava() || fieldInfo.isStatic() || fieldInfo.owner() == null) return false;
      -        java.util.Set visited = new java.util.HashSet<>();
      +        Set visited = new HashSet<>();
               for (var s = fieldInfo.owner().parentClass(); s != null && s.typeInfo() != null && !s.isJavaLangObject()
                                                             && visited.add(s.typeInfo()); s = s.typeInfo().parentClass()) {
                   if (!KotlinNullability.translated(s.typeInfo())) return false;
                   for (FieldInfo f : s.typeInfo().fields()) {
                       if (!f.isStatic() && f.name().equals(fieldInfo.name()) && !KotlinModifiers.visibility(f.access(), f.owner())
      -                        .equals(java.util.Optional.of(io.codelaser.maddi.cst.impl.output.KeywordImpl.PRIVATE))) {
      +                        .equals(Optional.of(KeywordImpl.PRIVATE))) {
                           return true;
                       }
                   }
      @@ -172,7 +178,7 @@ private static boolean clashesWithMappedProperty(FieldInfo fieldInfo) {
               return KotlinContext.translatingJava() && !fieldInfo.isStatic() && MAPPED_PROPERTIES.contains(fieldInfo.name())
                      && fieldInfo.owner() != null && !fieldInfo.owner().typeNature().isEnum()
                      && !fieldInfo.owner().typeNature().isRecord()
      -               && mappedProperty(fieldInfo.owner(), fieldInfo.name(), new java.util.HashSet<>());
      +               && mappedProperty(fieldInfo.owner(), fieldInfo.name(), new HashSet<>());
           }
       
           /**
      @@ -185,20 +191,20 @@ static String name(FieldInfo fieldInfo) {
               String name = KotlinNames.name(fieldInfo.name());
               if (!renamed(fieldInfo)) return name;
               String renamed = "_" + fieldInfo.name();
      -        java.util.Set taken = new java.util.HashSet<>();
      +        Set taken = new HashSet<>();
               fieldInfo.owner().fields().forEach(f -> taken.add(f.name()));
               while (taken.contains(renamed)) renamed = "_" + renamed;
               return renamed;
           }
       
           /** {@code typeInfo} has a Kotlin property {@code name} from a mapped supertype ({@code values} of a Map). */
      -    static boolean mappedPropertyOf(io.codelaser.maddi.cst.api.info.TypeInfo typeInfo, String name) {
      +    static boolean mappedPropertyOf(TypeInfo typeInfo, String name) {
               return KotlinContext.translatingJava() && MAPPED_PROPERTIES.contains(name)
      -               && mappedProperty(typeInfo, name, new java.util.HashSet<>());
      +               && mappedProperty(typeInfo, name, new HashSet<>());
           }
       
      -    private static boolean mappedProperty(io.codelaser.maddi.cst.api.info.TypeInfo typeInfo, String name,
      -                                          java.util.Set visited) {
      +    private static boolean mappedProperty(TypeInfo typeInfo, String name,
      +                                          Set visited) {
               if (typeInfo == null || !visited.add(typeInfo)) return false;
               if (typeInfo.methods().stream().anyMatch(m -> !m.isStatic() && m.parameters().isEmpty()
                                                             && name.equals(KotlinMappedMembers.property(m)))) {
      @@ -224,12 +230,12 @@ static boolean accessorClash(FieldInfo fieldInfo, boolean isVal) {
               String getter = isPrefix ? name : "get" + capitalized;
               String setter = isPrefix ? "set" + name.substring(2) : "set" + capitalized;
               return accessorClash(fieldInfo.owner(), fieldInfo.isStatic(), getter, isVal ? null : setter,
      -                new java.util.HashSet<>());
      +                new HashSet<>());
           }
       
      -    private static boolean accessorClash(io.codelaser.maddi.cst.api.info.TypeInfo typeInfo, boolean isStatic,
      +    private static boolean accessorClash(TypeInfo typeInfo, boolean isStatic,
                                                String getter, String setter,
      -                                         java.util.Set visited) {
      +                                         Set visited) {
               if (typeInfo == null || !visited.add(typeInfo)) return false;
               if (typeInfo.methods().stream().anyMatch(m -> !m.isSynthetic() && m.isStatic() == isStatic
                       && (m.parameters().isEmpty() && getter.equals(m.name())
      @@ -249,7 +255,7 @@ private static boolean accessorClash(io.codelaser.maddi.cst.api.info.TypeInfo ty
            * its properties to be {@code @JvmField}, then.
            */
           static boolean javaField(FieldInfo fieldInfo,
      -                             java.util.Optional visibility) {
      +                             Optional visibility) {
               if (!KotlinContext.translatingJava() || !visibility.isEmpty()) return false;
               if (!fieldInfo.isStatic()) return true;
               // Kotlin: in an interface's companion, all properties are @JvmField, or none; a const val is not
      @@ -282,7 +288,7 @@ private static boolean isConst(FieldInfo fieldInfo) {
            * Java's default value of a primitive field, as Kotlin writes it; null for a reference type. A boxed one that is
            * not nullable prints as the primitive: its zero, which no one reads before the constructor assigns it.
            */
      -    static String defaultValue(io.codelaser.maddi.cst.api.type.ParameterizedType type) {
      +    static String defaultValue(ParameterizedType type) {
               if (type.arrays() > 0 || type.typeInfo() == null) return null;
               return switch (type.typeInfo().fullyQualifiedName()) {
                   case "boolean", "java.lang.Boolean" -> "false";
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinHeaderQualification.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinHeaderQualification.java
      index 2ccb97c60a..43759501bc 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinHeaderQualification.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinHeaderQualification.java
      @@ -17,11 +17,11 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.api.output.TypeNameRequired;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.output.Qualification;
      +import io.codelaser.maddi.cst.api.output.TypeNameRequired;
       import io.codelaser.maddi.cst.api.variable.This;
       import io.codelaser.maddi.cst.api.variable.Variable;
       import io.codelaser.maddi.cst.impl.output.TypeNameImpl;
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinInheritedDefaults.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinInheritedDefaults.java
      index 8d0fba1317..d91876f97f 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinInheritedDefaults.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinInheritedDefaults.java
      @@ -1,6 +1,13 @@
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.ArrayList;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Set;
      +import java.util.stream.Collectors;
      +
       import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.ParameterInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.output.Qualification;
      @@ -9,12 +16,6 @@
       import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl;
       import io.codelaser.maddi.cst.impl.output.TextImpl;
       
      -import java.util.ArrayList;
      -import java.util.HashSet;
      -import java.util.List;
      -import java.util.Set;
      -import java.util.stream.Collectors;
      -
       /**
        * Overrides Kotlin wants where Java chooses by itself. guava's {@code WrappedSet extends WrappedCollection implements
        * Set} inherits {@code spliterator()} twice: WrappedCollection's own, and Set's default through the interface.
      @@ -84,7 +85,7 @@ private static String override(MethodInfo d, ParameterizedType iface, MethodInfo
           }
       
           /** The superclass method's parameter name: a library default's may be {@code arg0}. */
      -    private static String name(MethodInfo fromSuper, io.codelaser.maddi.cst.api.info.ParameterInfo p) {
      +    private static String name(MethodInfo fromSuper, ParameterInfo p) {
               return fromSuper.parameters().get(p.index()).name();
           }
       
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinMappedMembers.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinMappedMembers.java
      index 8ee88277a6..7f12e25cac 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinMappedMembers.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinMappedMembers.java
      @@ -16,16 +16,19 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.ArrayList;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Objects;
      +import java.util.Set;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.output.Qualification;
      +import io.codelaser.maddi.cst.api.type.NullableState;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       
      -import java.util.Map;
      -import java.util.List;
      -import java.util.Set;
      -import java.util.stream.Stream;
      -
       /**
        * Members of the JDK types that Kotlin maps to its own (String, the collections, Number, Throwable, Enum, Object):
        * their Java methods are not visible from Kotlin, the Kotlin member is. {@code s.length()} is {@code s.length},
      @@ -235,9 +238,9 @@ static ParameterizedType overriddenParameterType(MethodInfo methodInfo, int i) {
            * type-use annotations: guava's ArrayTable.ColumnMap extends ArrayMap>, whose put(key,
            * value) takes a Map, as the class header writes it. Null when no direct supertype leads there.
            */
      -    private static ParameterizedType declaredSupertype(io.codelaser.maddi.cst.api.info.TypeInfo typeInfo,
      -                                                       io.codelaser.maddi.cst.api.info.TypeInfo owner) {
      -        List direct = new java.util.ArrayList<>();
      +    private static ParameterizedType declaredSupertype(TypeInfo typeInfo,
      +                                                       TypeInfo owner) {
      +        List direct = new ArrayList<>();
               if (typeInfo.parentClass() != null) direct.add(typeInfo.parentClass());
               direct.addAll(typeInfo.interfacesImplemented());
               for (ParameterizedType st : direct) {
      @@ -325,7 +328,7 @@ private static String[] mapDefaultTypeArguments(MethodInfo methodInfo, Qualifica
               }
               if (asMap == null || asMap.parameters().size() != 2) return null;
               ParameterizedType v = asMap.parameters().get(1);
      -        String vName = KotlinTypeName.of(v.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL), q);
      +        String vName = KotlinTypeName.of(v.withNullable(NullableState.NONNULL), q);
               return new String[]{KotlinTypeName.of(asMap.parameters().get(0), q), vName,
                       // V & Any only of a nullable-bounded V: a V : Any (a null-marked LocalCache's) takes no intersection
                       KotlinTypeName.nullableTypeVariable(v) ? vName + " & Any" : vName};
      @@ -415,7 +418,7 @@ static boolean isRequireNonNullElse(MethodInfo methodInfo) {
       
           static boolean isMonitorMethod(MethodInfo methodInfo) {
               return !methodInfo.isStatic() && "java.lang.Object".equals(methodInfo.typeInfo().fullyQualifiedName())
      -               && java.util.Set.of("wait", "notify", "notifyAll").contains(methodInfo.name());
      +               && Set.of("wait", "notify", "notifyAll").contains(methodInfo.name());
           }
       
           /**
      @@ -424,7 +427,7 @@ static boolean isMonitorMethod(MethodInfo methodInfo) {
            */
           static boolean isJavaStringOnly(MethodInfo methodInfo) {
               return !methodInfo.isStatic() && "java.lang.String".equals(methodInfo.typeInfo().fullyQualifiedName())
      -               && java.util.Set.of("strip", "stripLeading", "stripTrailing", "stripIndent", "indent",
      +               && Set.of("strip", "stripLeading", "stripTrailing", "stripIndent", "indent",
                       "translateEscapes", "getChars").contains(methodInfo.name());
           }
       
      @@ -456,6 +459,6 @@ private static  V lookup(Map map, MethodInfo methodInfo) {
               if (methodInfo.isStatic() || methodInfo.isConstructor()) return null;
               return Stream.concat(Stream.of(methodInfo), methodInfo.overrides().stream())
                       .map(m -> map.get(new Key(m.typeInfo().fullyQualifiedName(), m.name(), m.parameters().size())))
      -                .filter(java.util.Objects::nonNull).findFirst().orElse(null);
      +                .filter(Objects::nonNull).findFirst().orElse(null);
           }
       }
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinMethodPrinter.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinMethodPrinter.java
      index f38e46391e..b9451c3ea6 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinMethodPrinter.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinMethodPrinter.java
      @@ -17,22 +17,50 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.CstQueries;
      +import java.util.ArrayDeque;
      +import java.util.ArrayList;
      +import java.util.Collections;
      +import java.util.HashSet;
      +import java.util.IdentityHashMap;
      +import java.util.List;
      +import java.util.Optional;
      +import java.util.Set;
      +import java.util.function.Predicate;
      +import java.util.function.Supplier;
      +
      +import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.expression.Assignment;
      +import io.codelaser.maddi.cst.api.expression.Cast;
      +import io.codelaser.maddi.cst.api.expression.ConstructorCall;
       import io.codelaser.maddi.cst.api.expression.Expression;
      +import io.codelaser.maddi.cst.api.expression.InlineConditional;
      +import io.codelaser.maddi.cst.api.expression.InstanceOf;
      +import io.codelaser.maddi.cst.api.expression.MethodCall;
       import io.codelaser.maddi.cst.api.expression.NullConstant;
      +import io.codelaser.maddi.cst.api.expression.StringConstant;
      +import io.codelaser.maddi.cst.api.expression.VariableExpression;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.MethodPrinter;
       import io.codelaser.maddi.cst.api.info.ParameterInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.output.Qualification;
      +import io.codelaser.maddi.cst.api.output.element.Keyword;
       import io.codelaser.maddi.cst.api.statement.Block;
       import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation;
      +import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement;
      +import io.codelaser.maddi.cst.api.statement.ForEachStatement;
      +import io.codelaser.maddi.cst.api.statement.LocalVariableCreation;
      +import io.codelaser.maddi.cst.api.statement.ReturnStatement;
       import io.codelaser.maddi.cst.api.statement.Statement;
      +import io.codelaser.maddi.cst.api.type.NullableState;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
      +import io.codelaser.maddi.cst.api.variable.DependentVariable;
      +import io.codelaser.maddi.cst.api.variable.Variable;
      +import io.codelaser.maddi.cst.impl.analysis.NullAnnotations;
       import io.codelaser.maddi.cst.impl.output.*;
      -
      -import java.util.List;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
       
       /**
        * Prints a {@link MethodInfo} as a Kotlin function (or secondary constructor): `[vis] [override|abstract] fun
      @@ -62,7 +90,7 @@ private OutputBuilder printMethod(Qualification qualification) {
                           .add(KotlinStatementPrinter.block(methodInfo.methodBody(), qualification));
               }
               b.add(KotlinAnnotations.print(methodInfo.annotations(), qualification));
      -        java.util.Optional visibility =
      +        Optional visibility =
                       KotlinModifiers.visibility(methodInfo, typeInfo);
               if (KotlinContext.translatingJava() && methodInfo.isStatic()
                   && (visibility.isEmpty() || methodSourceFactory(methodInfo))) {
      @@ -93,7 +121,7 @@ private OutputBuilder printMethod(Qualification qualification) {
                   // the type parameters' declaration: the generic member's, where the override borrows them (timefold's
                   // SelectionSorterAdapter.getInnerSorter() takes ValueRangeSorter's ; Kotlin wants equal bounds)
                   MethodInfo declaring = genericSuper != null ? genericSuper : methodInfo;
      -            List typeParameters = declaring.typeParameters();
      +            List typeParameters = declaring.typeParameters();
                   if (!typeParameters.isEmpty()) {
                       b.add(SymbolEnum.LEFT_ANGLE_BRACKET);
                       b.add(typeParameters.stream()
      @@ -127,7 +155,7 @@ private OutputBuilder printMethod(Qualification qualification) {
                   // the body throws instead of returning null: the override keeps Kotlin's non-null result
                   if (rt != null && !methodInfo.isAbstract() && methodInfo.methodBody() != null
                       && nullOverride(expressionBody(methodInfo.methodBody())) != null) {
      -                rt = rt.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL);
      +                rt = rt.withNullable(NullableState.NONNULL);
                   }
                   if (rt != null && !rt.isVoidOrJavaLangVoid()) {
                       String mapDefault = KotlinMappedMembers.mapDefaultResult(methodInfo, qualification);
      @@ -249,7 +277,7 @@ private void constructorBody(OutputBuilder b, Block body, Qualification q) {
               ExplicitConstructorInvocation eci = !statements.isEmpty()
                                                   && statements.getFirst() instanceof ExplicitConstructorInvocation e ? e : null;
               // the comments of the super(…) in the header open the body (#181)
      -        List prefix = new java.util.ArrayList<>();
      +        List prefix = new ArrayList<>();
               if (eci != null && !eci.comments().isEmpty()) prefix.add(KotlinStatementPrinter.commentsOf(eci, q));
               if (eci != null) {
                   b.add(SpaceEnum.ONE).add(SymbolEnum.COLON).add(SpaceEnum.ONE)
      @@ -278,12 +306,12 @@ private boolean isOpen() {
            * guava's CaseFormat: an enum's constants override its {@code convert} in their bodies. Kotlin's enum class is
            * final, its members too unless they say {@code open}.
            */
      -    private static boolean overriddenByEnumConstant(io.codelaser.maddi.cst.api.info.TypeInfo typeInfo, MethodInfo methodInfo) {
      +    private static boolean overriddenByEnumConstant(TypeInfo typeInfo, MethodInfo methodInfo) {
               if (!typeInfo.typeNature().isEnum()) return false;
               return typeInfo.fields().stream()
      -                .filter(f -> f.initializer() instanceof io.codelaser.maddi.cst.api.expression.ConstructorCall cc
      +                .filter(f -> f.initializer() instanceof ConstructorCall cc
                                    && cc.anonymousClass() != null)
      -                .map(f -> ((io.codelaser.maddi.cst.api.expression.ConstructorCall) f.initializer()).anonymousClass())
      +                .map(f -> ((ConstructorCall) f.initializer()).anonymousClass())
                       .anyMatch(body -> body.methods().stream().anyMatch(m -> m.overrides().contains(methodInfo)));
           }
       
      @@ -365,7 +393,7 @@ private static OutputBuilder parameter(ParameterInfo pi, String typeOverride, Qu
                       typeOverride = KotlinTypeName.inSignature(() -> KotlinTypeName.of(overridden.withNullable(declared.nullable()), q));
                   }
               }
      -        java.util.function.Supplier print = () ->
      +        Supplier print = () ->
                       // before the read-only collection rule, which leaves an array invariant
                       covariantArray(pi, type) ? outArray(type, q)
                       : readOnlyParameter(pi) ? KotlinTypeName.readOnly(type, q)
      @@ -470,7 +498,7 @@ static boolean covariantArray(ParameterInfo pi, ParameterizedType type) {
               boolean closed = m.isConstructor() || m.isStatic() || m.isFinal() || m.access() != null && m.access().isPrivate()
                                || m.typeInfo().isFinal();
               if (!closed) {
      -            java.util.List family = KotlinContext.options().world().family(m);
      +            List family = KotlinContext.options().world().family(m);
                   if (family == null || family.size() != 1) return false;
               }
               // a primary constructor's parameter that names an array field is that property: guava's
      @@ -484,7 +512,7 @@ static boolean covariantArray(ParameterInfo pi, ParameterizedType type) {
               if (element.isPrimitiveExcludingVoid() || element.typeInfo() == null && element.typeParameter() == null) {
                   return false;
               }
      -        java.util.Set visiting = COVARIANT_IN_PROGRESS.get();
      +        Set visiting = COVARIANT_IN_PROGRESS.get();
               if (!visiting.add(pi)) return true; // a cycle: each one's other uses are checked where it is entered
               try {
                   return onlyReadArray(pi);
      @@ -493,37 +521,37 @@ static boolean covariantArray(ParameterInfo pi, ParameterizedType type) {
               }
           }
       
      -    private static final ThreadLocal> COVARIANT_IN_PROGRESS =
      -            ThreadLocal.withInitial(() -> java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()));
      +    private static final ThreadLocal> COVARIANT_IN_PROGRESS =
      +            ThreadLocal.withInitial(() -> Collections.newSetFromMap(new IdentityHashMap<>()));
       
           private static boolean onlyReadArray(ParameterInfo pi) {
               boolean[] escapes = {false};
      -        escapes(pi, (io.codelaser.maddi.cst.api.element.Element) pi.methodInfo().methodBody(), escapes);
      +        escapes(pi, (Element) pi.methodInfo().methodBody(), escapes);
               return !escapes[0];
           }
       
           /** The uses of {@code pi} in {@code body}, and in the bodies of the anonymous classes there, which capture it. */
      -    private static void escapes(io.codelaser.maddi.cst.api.variable.Variable pi, io.codelaser.maddi.cst.api.element.Element body, boolean[] escapes) {
      +    private static void escapes(Variable pi, Element body, boolean[] escapes) {
               // elements.clone() spread into a vararg (guava's ImmutableList.copyOf: construct(elements.clone())): the copy
               // goes where an Array goes; the call is visited before its arguments
      -        java.util.Set spreadClones =
      -                java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>());
      -        body.visit((io.codelaser.maddi.cst.api.element.Element e) -> {
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall call) {
      +        Set spreadClones =
      +                Collections.newSetFromMap(new IdentityHashMap<>());
      +        body.visit((Element e) -> {
      +            if (e instanceof MethodCall call) {
                       spreadClones.addAll(clonesIntoVarargs(pi, call.parameterExpressions(), call.methodInfo()));
      -            } else if (e instanceof io.codelaser.maddi.cst.api.expression.ConstructorCall call) {
      +            } else if (e instanceof ConstructorCall call) {
                       spreadClones.addAll(clonesIntoVarargs(pi, call.parameterExpressions(), call.constructor()));
                   }
                   switch (e) {
      -                case io.codelaser.maddi.cst.api.expression.Assignment a -> {
      -                    if (a.variableTarget() instanceof io.codelaser.maddi.cst.api.variable.DependentVariable dv
      +                case Assignment a -> {
      +                    if (a.variableTarget() instanceof DependentVariable dv
                               && pi.equals(dv.arrayVariable()) || isPi(pi, a.value()) || pi.equals(a.variableTarget())) {
                               escapes[0] = true;
                           }
                       }
      -                case io.codelaser.maddi.cst.api.statement.ReturnStatement rs when isPi(pi, rs.expression()) ->
      +                case ReturnStatement rs when isPi(pi, rs.expression()) ->
                               escapes[0] = true;
      -                case io.codelaser.maddi.cst.api.statement.LocalVariableCreation lvc -> {
      +                case LocalVariableCreation lvc -> {
                           // guava's ObjectArrays.newArray: T[] empty = reference.length == 0 ? reference : copyOf(…), only
                           // handed on to Arrays.copyOf: the local's own uses decide (RegularImmutableMap's entries[i] = …
                           // makes it escape)
      @@ -536,7 +564,7 @@ case io.codelaser.maddi.cst.api.statement.ReturnStatement rs when isPi(pi, rs.ex
                               }
                           });
                       }
      -                case io.codelaser.maddi.cst.api.expression.MethodCall mc -> {
      +                case MethodCall mc -> {
                           if (cloneOf(pi, mc) && !spreadClones.contains(mc)) escapes[0] = true;
                           if (!acceptsOut(pi, mc.parameterExpressions(), mc.methodInfo())) escapes[0] = true;
                       }
      @@ -548,7 +576,7 @@ case io.codelaser.maddi.cst.api.statement.ReturnStatement rs when isPi(pi, rs.ex
                               escapes[0] = true;
                           }
                       }
      -                case io.codelaser.maddi.cst.api.expression.ConstructorCall cc -> {
      +                case ConstructorCall cc -> {
                           if (cc.constructor() == null && cc.parameterExpressions().stream().anyMatch(x -> isPi(pi, x))
                               || cc.constructor() != null && !acceptsOut(pi, cc.parameterExpressions(), cc.constructor())) {
                               escapes[0] = true;
      @@ -556,7 +584,7 @@ case io.codelaser.maddi.cst.api.statement.ReturnStatement rs when isPi(pi, rs.ex
                           // guava's fromHashers(hashers): new Hasher() { … makeHash(hashers) … }
                           if (cc.anonymousClass() != null) {
                               cc.anonymousClass().methods().stream().filter(am -> am.methodBody() != null).forEach(am -> escapes(
      -                                pi, (io.codelaser.maddi.cst.api.element.Element) am.methodBody(), escapes));
      +                                pi, (Element) am.methodBody(), escapes));
                               cc.anonymousClass().fields().stream().filter(f -> f.initializer() != null && !f.initializer().isEmpty())
                                       .forEach(f -> escapes(pi, f.initializer(), escapes));
                           }
      @@ -568,35 +596,35 @@ case io.codelaser.maddi.cst.api.statement.ReturnStatement rs when isPi(pi, rs.ex
               });
           }
       
      -    private static final ThreadLocal> ALIASES_IN_PROGRESS =
      -            ThreadLocal.withInitial(java.util.HashSet::new);
      +    private static final ThreadLocal> ALIASES_IN_PROGRESS =
      +            ThreadLocal.withInitial(HashSet::new);
       
      -    private static boolean cloneOf(io.codelaser.maddi.cst.api.variable.Variable pi, io.codelaser.maddi.cst.api.expression.MethodCall mc) {
      +    private static boolean cloneOf(Variable pi, MethodCall mc) {
               return mc.object() != null && isPi(pi, mc.object()) && mc.methodInfo() != null
                      && "clone".equals(mc.methodInfo().name()) && mc.parameterExpressions().isEmpty();
           }
       
           /** The {@code pi.clone()} arguments that are a call's whole vararg array: printed spread, a copy again. */
      -    private static List clonesIntoVarargs(
      -            io.codelaser.maddi.cst.api.variable.Variable pi, List args, MethodInfo callee) {
      +    private static List clonesIntoVarargs(
      +            Variable pi, List args, MethodInfo callee) {
               if (callee == null || callee.parameters().isEmpty() || args.size() != callee.parameters().size()
                   || !callee.parameters().getLast().isVarArgs()) {
                   return List.of();
               }
      -        io.codelaser.maddi.cst.api.expression.Expression last = KotlinExpressionPrinter.unwrap(args.getLast());
      -        return last instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc && cloneOf(pi, mc)
      +        Expression last = KotlinExpressionPrinter.unwrap(args.getLast());
      +        return last instanceof MethodCall mc && cloneOf(pi, mc)
                      ? List.of(mc) : List.of();
           }
       
           // the value is pi, also as a branch of a conditional: guava's RegularImmutableMap.fromEntryArrayCheckingBucketOverflow,
           // entries = n == entryArray.length ? entryArray : createEntryArray(n), an invariant local
      -    private static boolean isPi(io.codelaser.maddi.cst.api.variable.Variable pi, io.codelaser.maddi.cst.api.expression.Expression e) {
      +    private static boolean isPi(Variable pi, Expression e) {
               if (e == null) return false;
      -        io.codelaser.maddi.cst.api.expression.Expression x = KotlinExpressionPrinter.unwrap(e);
      -        if (x instanceof io.codelaser.maddi.cst.api.expression.InlineConditional ic) {
      +        Expression x = KotlinExpressionPrinter.unwrap(e);
      +        if (x instanceof InlineConditional ic) {
                   return isPi(pi, ic.ifTrue()) || isPi(pi, ic.ifFalse());
               }
      -        return x instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve && pi.equals(ve.variable());
      +        return x instanceof VariableExpression ve && pi.equals(ve.variable());
           }
       
           /**
      @@ -604,7 +632,7 @@ private static boolean isPi(io.codelaser.maddi.cst.api.variable.Variable pi, io.
            * parameter (Kotlin's platform {@code Array<(out) T>!}), a vararg (spread), a type variable, or a translated
            * method's array parameter that is itself printed covariant.
            */
      -    private static boolean acceptsOut(io.codelaser.maddi.cst.api.variable.Variable pi, List args,
      +    private static boolean acceptsOut(Variable pi, List args,
                                             MethodInfo callee) {
               for (int i = 0; i < args.size(); i++) {
                   if (!isPi(pi, args.get(i))) continue;
      @@ -653,14 +681,14 @@ private static boolean widerOverloadsReadOnly(ParameterInfo pi) {
                       .filter(op -> op.parameterizedType().arrays() == 0 && op.parameterizedType().typeInfo() != null
                               && op.parameterizedType().typeInfo() != own
                               && KotlinTypeName.isMapped(op.parameterizedType().typeInfo().fullyQualifiedName())
      -                        && isSubtype(own, op.parameterizedType().typeInfo(), new java.util.HashSet<>()))
      +                        && isSubtype(own, op.parameterizedType().typeInfo(), new HashSet<>()))
                       // an Iterable prints MutableIterable whatever its verdict (acceptsReadOnly): guava's addAll(Iterable)
                       // only reads its values
                       .allMatch(op -> !KotlinTypeName.mutableOnly(op.parameterizedType().typeInfo().fullyQualifiedName())
                                       && readOnlyParameter(op));
           }
       
      -    private static boolean isSubtype(TypeInfo sub, TypeInfo sup, java.util.Set visited) {
      +    private static boolean isSubtype(TypeInfo sub, TypeInfo sup, Set visited) {
               if (sub == null || !visited.add(sub)) return false;
               if (sub == sup) return true;
               if (sub.parentClass() != null && isSubtype(sub.parentClass().typeInfo(), sup, visited)) return true;
      @@ -676,7 +704,7 @@ private static boolean readOnlyOwn(ParameterInfo pi) {
               // maddi-mod#25, the family rule: in the code translated together, the override family is complete, and the
               // position is read-only for all of it when each member's parameter there is (Kotlin wants an override's
               // parameter types exactly the overridden member's; callers pass a MutableList to a List either way)
      -        java.util.List family = KotlinContext.options().world().family(m);
      +        List family = KotlinContext.options().world().family(m);
               if (family == null) return false;
               KotlinWorld world = KotlinContext.options().world();
               Boolean known = world.readOnly(pi);
      @@ -706,7 +734,7 @@ private static boolean readOnlyIn(ParameterInfo pi) {
               }
               // a cycle (fromMap passes map to rawFallback, which passes it back) is assumed read-only: every parameter on it
               // is unmodified, and each one's other uses are checked where the cycle is entered
      -        java.util.Set visiting = READ_ONLY_IN_PROGRESS.get();
      +        Set visiting = READ_ONLY_IN_PROGRESS.get();
               if (!visiting.add(pi)) return true;
               try {
                   return onlyRead(pi, m.methodBody());
      @@ -715,8 +743,8 @@ private static boolean readOnlyIn(ParameterInfo pi) {
               }
           }
       
      -    private static final ThreadLocal> READ_ONLY_IN_PROGRESS =
      -            ThreadLocal.withInitial(() -> java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()));
      +    private static final ThreadLocal> READ_ONLY_IN_PROGRESS =
      +            ThreadLocal.withInitial(() -> Collections.newSetFromMap(new IdentityHashMap<>()));
       
           /**
            * Can the argument at {@code index} of a call to {@code callee} be a read-only collection? A parameter that is
      @@ -759,63 +787,63 @@ static boolean acceptsReadOnly(MethodInfo callee, int index) {
            */
           private static boolean onlyRead(ParameterInfo pi, Block body) {
               if (body == null) return false;
      -        java.util.Set reads =
      -                java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>());
      +        Set reads =
      +                Collections.newSetFromMap(new IdentityHashMap<>());
               int[] uses = {0};
      -        java.util.function.Predicate visitor = e -> {
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc && mc.object() != null
      -                && KotlinExpressionPrinter.unwrap(mc.object()) instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +        Predicate visitor = e -> {
      +            if (e instanceof MethodCall mc && mc.object() != null
      +                && KotlinExpressionPrinter.unwrap(mc.object()) instanceof VariableExpression ve
                       && pi.equals(ve.variable()) && !VIEWS.contains(mc.methodInfo().name())) {
                       reads.add(ve);
                   }
                   // a view (map.entrySet(), list.iterator()) is a read where it is iterated or only read in turn: guava's
                   // Maps.removeAllKeys removes through map.entrySet().iterator(), which the analysis does not see
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall outer && outer.object() != null
      +            if (e instanceof MethodCall outer && outer.object() != null
                       && outer.methodInfo() != null && !VIEWS.contains(outer.methodInfo().name())
                       && KotlinContext.options().modification().structurallyNonModifying(outer.methodInfo())) {
      -                io.codelaser.maddi.cst.api.expression.VariableExpression viewed = viewOf(pi, outer.object());
      +                VariableExpression viewed = viewOf(pi, outer.object());
                       if (viewed != null) reads.add(viewed);
                   }
      -            if (e instanceof io.codelaser.maddi.cst.api.statement.ForEachStatement fe && fe.expression() != null) {
      -                io.codelaser.maddi.cst.api.expression.VariableExpression viewed = viewOf(pi, fe.expression());
      +            if (e instanceof ForEachStatement fe && fe.expression() != null) {
      +                VariableExpression viewed = viewOf(pi, fe.expression());
                       if (viewed != null) reads.add(viewed);
                   }
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc && mc.object() != null) {
      -                io.codelaser.maddi.cst.api.expression.VariableExpression through =
      +            if (e instanceof MethodCall mc && mc.object() != null) {
      +                VariableExpression through =
                               passedThrough(pi, KotlinExpressionPrinter.unwrap(mc.object()));
                       if (through != null) reads.add(through);
                   }
                   // ensureNotNull(map, "map"); as a statement: its result goes nowhere
      -            if (e instanceof io.codelaser.maddi.cst.api.statement.ExpressionAsStatement eas && eas.expression() != null) {
      -                io.codelaser.maddi.cst.api.expression.VariableExpression through =
      +            if (e instanceof ExpressionAsStatement eas && eas.expression() != null) {
      +                VariableExpression through =
                               passedThrough(pi, KotlinExpressionPrinter.unwrap(eas.expression()));
                       if (through != null) reads.add(through);
                   }
      -            if (e instanceof io.codelaser.maddi.cst.api.statement.ForEachStatement fe && fe.expression() != null
      -                && KotlinExpressionPrinter.unwrap(fe.expression()) instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +            if (e instanceof ForEachStatement fe && fe.expression() != null
      +                && KotlinExpressionPrinter.unwrap(fe.expression()) instanceof VariableExpression ve
                       && pi.equals(ve.variable())) {
                       reads.add(ve);
                   }
                   // passed on to a parameter that takes a read-only collection: isRepresentable(map, KEYS), rawFallback(map)
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc) {
      +            if (e instanceof MethodCall mc) {
                       passedOn(pi, mc.parameterExpressions(), mc.methodInfo(), reads);
                   }
                   // guava's SetView.minSize(Set set): set instanceof SetView ? ((SetView) set).minSize() : set.size().
                   // A test or a cast compiles from the read-only type too; the analysis says nothing modifies the set
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.InstanceOf io
      -                && KotlinExpressionPrinter.unwrap(io.expression()) instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +            if (e instanceof InstanceOf io
      +                && KotlinExpressionPrinter.unwrap(io.expression()) instanceof VariableExpression ve
                       && pi.equals(ve.variable())) {
                       reads.add(ve);
                   }
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.Cast c
      -                && KotlinExpressionPrinter.unwrap(c.expression()) instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +            if (e instanceof Cast c
      +                && KotlinExpressionPrinter.unwrap(c.expression()) instanceof VariableExpression ve
                       && pi.equals(ve.variable())) {
                       reads.add(ve);
                   }
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.ConstructorCall cc && cc.constructor() != null) {
      +            if (e instanceof ConstructorCall cc && cc.constructor() != null) {
                       passedOn(pi, cc.parameterExpressions(), cc.constructor(), reads);
                   }
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve && pi.equals(ve.variable())) {
      +            if (e instanceof VariableExpression ve && pi.equals(ve.variable())) {
                       uses[0]++;
                   }
                   return true;
      @@ -823,8 +851,8 @@ private static boolean onlyRead(ParameterInfo pi, Block body) {
               body.visit(visitor);
               // the methods of an anonymous class capture it too: guava's Maps.removeOnlySet, a ForwardingSet whose
               // delegate() returns the set as its MutableSet
      -        body.visit((io.codelaser.maddi.cst.api.element.Element e) -> {
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.ConstructorCall cc && cc.anonymousClass() != null) {
      +        body.visit((Element e) -> {
      +            if (e instanceof ConstructorCall cc && cc.anonymousClass() != null) {
                       cc.anonymousClass().methods().stream().filter(am -> am.methodBody() != null)
                               .forEach(am -> am.methodBody().visit(visitor));
                   }
      @@ -834,34 +862,34 @@ private static boolean onlyRead(ParameterInfo pi, Block body) {
           }
       
           /** Members whose result is a live view of the collection: modifying it modifies the collection. */
      -    static final java.util.Set VIEWS = java.util.Set.of("entrySet", "keySet", "values", "iterator",
      +    static final Set VIEWS = Set.of("entrySet", "keySet", "values", "iterator",
                   "listIterator", "spliterator", "subList", "headSet", "tailSet", "subSet", "headMap", "tailMap", "subMap",
                   "descendingSet", "descendingMap", "navigableKeySet", "descendingKeySet", "descendingIterator");
       
           /** {@code e} is a view call on {@code pi} ({@code map.entrySet()}): the parameter's use inside it. */
      -    private static io.codelaser.maddi.cst.api.expression.VariableExpression viewOf(
      -            ParameterInfo pi, io.codelaser.maddi.cst.api.expression.Expression e) {
      -        if (!(KotlinExpressionPrinter.unwrap(e) instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc)
      +    private static VariableExpression viewOf(
      +            ParameterInfo pi, Expression e) {
      +        if (!(KotlinExpressionPrinter.unwrap(e) instanceof MethodCall mc)
                   || mc.object() == null || mc.methodInfo() == null || !VIEWS.contains(mc.methodInfo().name())) {
                   return null;
               }
      -        return KotlinExpressionPrinter.unwrap(mc.object()) instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +        return KotlinExpressionPrinter.unwrap(mc.object()) instanceof VariableExpression ve
                      && pi.equals(ve.variable()) ? ve : null;
           }
       
      -    private static void passedOn(ParameterInfo pi, List args,
      -                                 MethodInfo callee, java.util.Set reads) {
      +    private static void passedOn(ParameterInfo pi, List args,
      +                                 MethodInfo callee, Set reads) {
               for (int i = 0; i < args.size(); i++) {
      -            io.codelaser.maddi.cst.api.expression.Expression arg = KotlinExpressionPrinter.unwrap(args.get(i));
      -            if (arg instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +            Expression arg = KotlinExpressionPrinter.unwrap(args.get(i));
      +            if (arg instanceof VariableExpression ve
                       && pi.equals(ve.variable()) && !passThrough(callee, i) && acceptsReadOnly(callee, i)) {
                       reads.add(ve);
                   }
                   // checkNotNull(unfiltered) passed on: a read where the pass-through's result lands in one
      -            io.codelaser.maddi.cst.api.expression.VariableExpression through = passedThrough(pi, arg);
      +            VariableExpression through = passedThrough(pi, arg);
                   if (through != null && acceptsReadOnly(callee, i)) reads.add(through);
                   // new ArrayList<>(map.keySet()): a view handed to a parameter that only reads it
      -            io.codelaser.maddi.cst.api.expression.VariableExpression viewed = viewOf(pi, arg);
      +            VariableExpression viewed = viewOf(pi, arg);
                   if (viewed != null && acceptsReadOnly(callee, i)) reads.add(viewed);
               }
           }
      @@ -880,12 +908,12 @@ private static boolean passThrough(MethodInfo callee, int index) {
           }
       
           /** {@code e} is a pass-through call of {@code pi}: the parameter's use inside it. */
      -    private static io.codelaser.maddi.cst.api.expression.VariableExpression passedThrough(
      -            ParameterInfo pi, io.codelaser.maddi.cst.api.expression.Expression e) {
      -        if (!(e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc)) return null;
      -        List args = mc.parameterExpressions();
      +    private static VariableExpression passedThrough(
      +            ParameterInfo pi, Expression e) {
      +        if (!(e instanceof MethodCall mc)) return null;
      +        List args = mc.parameterExpressions();
               for (int k = 0; k < args.size(); k++) {
      -            if (KotlinExpressionPrinter.unwrap(args.get(k)) instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +            if (KotlinExpressionPrinter.unwrap(args.get(k)) instanceof VariableExpression ve
                       && pi.equals(ve.variable()) && passThrough(mc.methodInfo(), k)) {
                       return ve;
                   }
      @@ -916,14 +944,14 @@ static ParameterizedType genericOverrideResult(MethodInfo m, MethodInfo genericS
               ParameterizedType own = KotlinNullability.returnType(m);
               return rt != null && own != null && KotlinNullability.isNullable(rt) && !KotlinNullability.isNullable(own)
                      && !own.isPrimitiveExcludingVoid()
      -                ? rt.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NONNULL) : rt;
      +                ? rt.withNullable(NullableState.NONNULL) : rt;
           }
       
           private static boolean mentionsOwnTypeParameter(MethodInfo o) {
               ParameterizedType rt = o.returnType();
               if (rt == null) return false;
      -        java.util.Set own = new java.util.HashSet<>(o.typeParameters());
      -        java.util.ArrayDeque todo = new java.util.ArrayDeque<>(List.of(rt));
      +        Set own = new HashSet<>(o.typeParameters());
      +        ArrayDeque todo = new ArrayDeque<>(List.of(rt));
               while (!todo.isEmpty()) {
                   ParameterizedType t = todo.pop();
                   if (t.typeParameter() != null && own.contains(t.typeParameter())) return true;
      @@ -957,14 +985,14 @@ static boolean interfaceOnlyToArray(MethodInfo methodInfo) {
            * takes a T (guava's TypeToInstanceMap). As the root declaration says, which every override repeats: the
            * implementations of ClassToInstanceMap.getInstance do not all say @NonNull.
            */
      -    private static boolean nonNullBoundOfTypeVariable(MethodInfo methodInfo, io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    private static boolean nonNullBoundOfTypeVariable(MethodInfo methodInfo, TypeParameter tp) {
               List bounds = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).toList();
               if (!KotlinContext.translatingJava() || bounds.size() != 1 || !bounds.getFirst().isTypeParameter()
                   || bounds.getFirst().arrays() > 0 || !KotlinTypeName.nullableTypeVariable(bounds.getFirst())) return false;
               int index = methodInfo.typeParameters().indexOf(tp);
               if (index < 0) return false;
               MethodInfo root = methodInfo;
      -        io.codelaser.maddi.cst.api.info.TypeParameter rootTp = tp;
      +        TypeParameter rootTp = tp;
               for (MethodInfo o : methodInfo.overrides()) {
                   if (KotlinNullability.translated(o.typeInfo()) && index < o.typeParameters().size()
                       && o.overrides().isEmpty()) {
      @@ -973,7 +1001,7 @@ private static boolean nonNullBoundOfTypeVariable(MethodInfo methodInfo, io.code
                   }
               }
               return root.typeParameters().contains(rootTp) && rootTp.typeBounds().stream().anyMatch(b -> b.annotations().stream()
      -                .anyMatch(ae -> io.codelaser.maddi.cst.impl.analysis.NullAnnotations.NON_NULL.contains(ae.typeInfo().simpleName())));
      +                .anyMatch(ae -> NullAnnotations.NON_NULL.contains(ae.typeInfo().simpleName())));
           }
       
           /**
      @@ -986,9 +1014,9 @@ private static boolean methodSourceFactory(MethodInfo methodInfo) {
               return methodInfo.typeInfo().methods().stream().anyMatch(test -> test.annotations().stream()
                       .filter(a -> "org.junit.jupiter.params.provider.MethodSource".equals(a.typeInfo().fullyQualifiedName()))
                       .anyMatch(a -> {
      -                    List names = new java.util.ArrayList<>();
      -                    a.keyValuePairs().forEach(kv -> kv.value().visit((io.codelaser.maddi.cst.api.element.Element e) -> {
      -                        if (e instanceof io.codelaser.maddi.cst.api.expression.StringConstant sc) {
      +                    List names = new ArrayList<>();
      +                    a.keyValuePairs().forEach(kv -> kv.value().visit((Element e) -> {
      +                        if (e instanceof StringConstant sc) {
                                   String name = sc.constant();
                                   names.add(name.substring(name.indexOf('#') + 1));
                               }
      @@ -1005,7 +1033,7 @@ private static boolean notOverridable(MethodInfo m) {
                                                                      || m.typeInfo().isFinal());
           }
       
      -    static boolean nonNullBound(MethodInfo methodInfo, io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    static boolean nonNullBound(MethodInfo methodInfo, TypeParameter tp) {
               if (tp.typeBounds().stream().anyMatch(b -> !b.isJavaLangObject())) return false;
               if (!methodInfo.overrides().isEmpty()) {
                   // AllEqualOrdering's sortedCopy overrides Ordering's  sortedCopy: Kotlin wants the same bounds,
      @@ -1039,7 +1067,7 @@ static boolean nonNullBound(MethodInfo methodInfo, io.codelaser.maddi.cst.api.in
            * T is a type argument of one of the method's parameters ({@code Supplier}): a value of T may come from there,
            * as null where T is instantiated nullable.
            */
      -    static boolean typeArgumentOfParameter(MethodInfo methodInfo, io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    static boolean typeArgumentOfParameter(MethodInfo methodInfo, TypeParameter tp) {
               return methodInfo.parameters().stream().anyMatch(p -> p.parameterizedType().parameters().stream()
                       .anyMatch(a -> CstQueries.mentions(a, tp)));
           }
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinModifiers.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinModifiers.java
      index d596817011..06f28f86c3 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinModifiers.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinModifiers.java
      @@ -17,14 +17,16 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.Optional;
      +import java.util.Set;
      +
      +import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.info.Access;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.output.element.Keyword;
       import io.codelaser.maddi.cst.impl.output.KeywordImpl;
       
      -import java.util.Optional;
      -
       /** Maps CST access/modifiers to Kotlin keywords (public and final are the Kotlin defaults, hence omitted). */
       public class KotlinModifiers {
       
      @@ -69,7 +71,7 @@ public static Optional visibility(MethodInfo methodInfo, TypeInfo owner
               return visibility(methodInfo.access(), owner, methodInfo);
           }
       
      -    private static final java.util.Set SERIALIZATION_HOOKS = java.util.Set.of("readObject", "writeObject",
      +    private static final Set SERIALIZATION_HOOKS = Set.of("readObject", "writeObject",
                   "readObjectNoData", "readResolve", "writeReplace");
       
           private static boolean serializationHook(MethodInfo methodInfo) {
      @@ -86,7 +88,7 @@ public static Optional visibility(Access access, TypeInfo owner) {
           }
       
           /** As {@link #visibility(Access, TypeInfo)}, reporting a protected {@code subject} that prints as public. */
      -    public static Optional visibility(Access access, TypeInfo owner, io.codelaser.maddi.cst.api.element.Element subject) {
      +    public static Optional visibility(Access access, TypeInfo owner, Element subject) {
               reportProtected(access, subject);
               if (access != null && access.isPrivate() && !owner.isPrimaryType() && !KotlinTypePrinter.fromKotlinSource(owner)) {
                   return Optional.of(KotlinKeyword.INTERNAL);
      @@ -94,7 +96,7 @@ public static Optional visibility(Access access, TypeInfo owner, io.cod
               return visibility(access);
           }
       
      -    private static void reportProtected(Access access, io.codelaser.maddi.cst.api.element.Element subject) {
      +    private static void reportProtected(Access access, Element subject) {
               if (subject != null && access != null && access.isProtected() && KotlinContext.translatingJava()) {
                   KotlinContext.message(KotlinPrintCode.PROTECTED_AS_PUBLIC, subject, KotlinContext.describe(subject));
               }
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinNullCheckShapes.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinNullCheckShapes.java
      index 112de88421..f8ad2f20d1 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinNullCheckShapes.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinNullCheckShapes.java
      @@ -17,9 +17,11 @@
       package io.codelaser.maddi.cst.print.kotlin;
       
       import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.expression.ArrayLength;
       import io.codelaser.maddi.cst.api.expression.BinaryOperator;
       import io.codelaser.maddi.cst.api.expression.Expression;
       import io.codelaser.maddi.cst.api.expression.InlineConditional;
      +import io.codelaser.maddi.cst.api.expression.Lambda;
       import io.codelaser.maddi.cst.api.expression.MethodCall;
       import io.codelaser.maddi.cst.api.expression.NullConstant;
       import io.codelaser.maddi.cst.api.expression.VariableExpression;
      @@ -72,7 +74,7 @@ static SafeCall safeCall(InlineConditional ic) {
               // jenkins's ProxyConfiguration: jenkins != null ? jenkins.proxy : null, jenkins?.proxy
               Expression scope = nonNull instanceof VariableExpression fv && fv.variable() instanceof FieldReference fr
                                  && !fr.fieldInfo().isStatic() && fr.scope() != null ? fr.scope()
      -                : nonNull instanceof io.codelaser.maddi.cst.api.expression.ArrayLength al ? al.scope() : null;
      +                : nonNull instanceof ArrayLength al ? al.scope() : null;
               if (scope != null) {
                   return unwrap(scope) instanceof VariableExpression sv && sv.variable().equals(tested.variable().variable())
                           ? new SafeCall(scope, nonNull) : null;
      @@ -117,7 +119,7 @@ static Let let(InlineConditional ic) {
               boolean[] blocked = {false};
               body.visit((Element e) -> {
                   if (e instanceof VariableExpression v && v.variable().equals(variable)) mentions[0] = true;
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.Lambda
      +            if (e instanceof Lambda
                       || e instanceof InlineConditional nested && nested != ic && let(nested) != null) {
                       blocked[0] = true;
                   }
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinNullability.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinNullability.java
      index 2d276d4e73..3e9ed1200d 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinNullability.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinNullability.java
      @@ -16,29 +16,43 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.ArrayList;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Objects;
      +import java.util.Set;
      +import java.util.WeakHashMap;
      +import java.util.function.Function;
      +import java.util.function.Supplier;
      +import java.util.stream.Collectors;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.expression.*;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.ParameterInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.output.Qualification;
      +import io.codelaser.maddi.cst.api.output.element.Symbol;
      +import io.codelaser.maddi.cst.api.statement.Block;
      +import io.codelaser.maddi.cst.api.statement.ReturnStatement;
       import io.codelaser.maddi.cst.api.type.NullableState;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
      +import io.codelaser.maddi.cst.api.variable.DependentVariable;
       import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.api.variable.LocalVariable;
      +import io.codelaser.maddi.cst.api.variable.Variable;
      +import io.codelaser.maddi.cst.impl.analysis.NullAnnotations;
       import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts;
       import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl;
       import io.codelaser.maddi.cst.impl.output.SpaceEnum;
       import io.codelaser.maddi.cst.impl.output.SymbolEnum;
       import io.codelaser.maddi.cst.impl.output.TextImpl;
       
      -import java.util.ArrayList;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Set;
      -
       /**
        * The {@link NullabilityFacts} applied: a declaration's type as the verdict has it, and at a use site, the
        * {@link KotlinPrintOptions.NullCheck} where a value Kotlin types as nullable is used as non-null.
      @@ -51,7 +65,7 @@
       final class KotlinNullability {
       
           /** {@code !!}, glued to its operand: no line break in front of it, where it would start a statement. */
      -    static final io.codelaser.maddi.cst.api.output.element.Symbol NOT_NULL =
      +    static final Symbol NOT_NULL =
                   new SymbolEnum("!!", SpaceEnum.NONE_NO_SPLIT_BEFORE, SpaceEnum.NONE, null);
       
           /**
      @@ -120,12 +134,12 @@ private static boolean overridesRawTypeVariable(MethodInfo method, int index) {
               return method.overrides().stream().anyMatch(m -> {
                   if (index >= m.parameters().size()) return false;
                   ParameterizedType p = m.parameters().get(index).parameterizedType();
      -            io.codelaser.maddi.cst.api.info.TypeParameter tp = p.typeParameter();
      +            TypeParameter tp = p.typeParameter();
                   if (tp == null || p.arrays() > 0 || tp.isMethodTypeParameter() || !m.typeInfo().typeParameters().contains(tp)
                       || tp.typeBounds().stream().anyMatch(b -> !b.isJavaLangObject())) {
                       return false;
                   }
      -            return java.util.stream.Stream.concat(java.util.stream.Stream.ofNullable(owner.parentClass()),
      +            return Stream.concat(Stream.ofNullable(owner.parentClass()),
                                   owner.interfacesImplemented().stream())
                           .anyMatch(s -> s.typeInfo() == m.typeInfo() && s.parameters().isEmpty());
               });
      @@ -138,7 +152,7 @@ private static boolean overridesRawTypeVariable(MethodInfo method, int index) {
            * would not override {@code compareTo(other: Int)}.
            */
           private static boolean boxedAbi(MethodInfo method,
      -                                    java.util.function.Function typeIn) {
      +                                    Function typeIn) {
               if (!KotlinContext.translatingJava() || !translated(method.typeInfo()) || method.isSynthetic()
                   || method.access() != null && method.access().isPrivate() || method.typeInfo().isAnonymous()) {
                   return false;
      @@ -159,7 +173,7 @@ private static boolean boxedClash(MethodInfo methodInfo) {
                   || methodInfo.parameters().stream().noneMatch(p -> isBoxed(p.parameterizedType()))) {
                   return false;
               }
      -        java.util.List siblings = methodInfo.isConstructor() ? methodInfo.typeInfo().constructors()
      +        List siblings = methodInfo.isConstructor() ? methodInfo.typeInfo().constructors()
                       : methodInfo.typeInfo().methods().stream().filter(m -> m.name().equals(methodInfo.name())).toList();
               String signature = kotlinSignature(methodInfo);
               return siblings.stream().anyMatch(m -> m != methodInfo && !m.isSynthetic()
      @@ -169,7 +183,7 @@ private static boolean boxedClash(MethodInfo methodInfo) {
       
           private static String kotlinSignature(MethodInfo m) {
               return m.parameters().stream().map(p -> KotlinTypeName.of(p.parameterizedType()))
      -                .collect(java.util.stream.Collectors.joining(","));
      +                .collect(Collectors.joining(","));
           }
       
           /**
      @@ -240,7 +254,7 @@ private static ParameterizedType rawOverrideResult(MethodInfo methodInfo, Parame
                   }
                   if (asSuper == null || asSuper.parameters().size() != seen.parameters().size()) continue;
                   List arguments = new ArrayList<>();
      -            for (io.codelaser.maddi.cst.api.info.TypeParameter tp : raw.typeParameters()) {
      +            for (TypeParameter tp : raw.typeParameters()) {
                       ParameterizedType argument = null;
                       for (int i = 0; i < asSuper.parameters().size(); i++) {
                           ParameterizedType a = asSuper.parameters().get(i);
      @@ -302,7 +316,7 @@ && declaredInKotlin(m.typeInfo()) && !isNullable(declaredReturnType(m))
            * {@code Table.Cell.getValue()}, AbstractCell passing its own V on.
            */
           private static boolean nullablyInstantiated(TypeInfo type, MethodInfo overridden) {
      -        io.codelaser.maddi.cst.api.info.TypeParameter tp = overridden.returnType().typeParameter();
      +        TypeParameter tp = overridden.returnType().typeParameter();
               int index = overridden.typeInfo().typeParameters().indexOf(tp);
               if (index < 0) return false;
               return directSupertypes(type).stream().map(s -> instantiation(s, overridden.typeInfo(), index))
      @@ -310,10 +324,10 @@ private static boolean nullablyInstantiated(TypeInfo type, MethodInfo overridden
           }
       
           private static List directSupertypes(TypeInfo type) {
      -        List supertypes = new java.util.ArrayList<>();
      +        List supertypes = new ArrayList<>();
               if (type.parentClass() != null) supertypes.add(KotlinTypePrinter.parentClass(type));
               supertypes.addAll(type.interfacesImplemented());
      -        supertypes.removeIf(java.util.Objects::isNull);
      +        supertypes.removeIf(Objects::isNull);
               return supertypes;
           }
       
      @@ -399,7 +413,7 @@ static ParameterizedType elementType(Expression iterable) {
               ParameterizedType type = kotlinType(iterable);
               if (type == null) return null;
               if (type.arrays() > 0) return type.componentType();
      -        TypeInfo iterableType = supertype(type.typeInfo(), "java.lang.Iterable", new java.util.HashSet<>());
      +        TypeInfo iterableType = supertype(type.typeInfo(), "java.lang.Iterable", new HashSet<>());
               if (iterableType == null) return null;
               // concreteSuperType walks the hierarchy recursively: a deep or cyclic one overflows, as caught across maddi
               try {
      @@ -427,8 +441,8 @@ private static TypeInfo supertype(TypeInfo typeInfo, String fullyQualifiedName,
           }
       
           // lambda parameters Kotlin types nullable by inference, whatever their verdict (inferLambdaParameters)
      -    private static final ThreadLocal> INFERRED_NULLABLE =
      -            ThreadLocal.withInitial(java.util.WeakHashMap::new);
      +    private static final ThreadLocal> INFERRED_NULLABLE =
      +            ThreadLocal.withInitial(WeakHashMap::new);
       
           /**
            * A lambda printed without parameter types takes them from the parameter it is passed to, instantiated by the
      @@ -447,11 +461,11 @@ static void inferLambdaParameters(Lambda lambda, MethodInfo method, int index, M
               if (sam == null) return;
               List parameters = lambda.parameters();
               for (int j = 0; j < parameters.size() && j < sam.parameters().size(); j++) {
      -            io.codelaser.maddi.cst.api.info.TypeParameter samVariable = sam.parameters().get(j).parameterizedType()
      +            TypeParameter samVariable = sam.parameters().get(j).parameterizedType()
                           .typeParameter();
                   if (samVariable == null || samVariable.isMethodTypeParameter()
                       || samVariable.getIndex() >= formal.parameters().size()) continue;
      -            io.codelaser.maddi.cst.api.info.TypeParameter receiverVariable = formal.parameters()
      +            TypeParameter receiverVariable = formal.parameters()
                           .get(samVariable.getIndex()).typeParameter();
                   if (receiverVariable == null || receiverVariable.isMethodTypeParameter()
                       || !method.typeInfo().typeParameters().contains(receiverVariable)
      @@ -481,11 +495,11 @@ static ParameterizedType localType(Element declaration, LocalVariable variable)
           private static ParameterizedType withDeclaredArgumentStates(ParameterizedType type, ParameterizedType declared) {
               if (type == null || declared == null || type.parameters().isEmpty()
                   || type.parameters().size() != declared.parameters().size()
      -            || !java.util.Objects.equals(type.typeInfo(), declared.typeInfo()) || type.arrays() != declared.arrays()) {
      +            || !Objects.equals(type.typeInfo(), declared.typeInfo()) || type.arrays() != declared.arrays()) {
                   return type;
               }
               boolean changed = false;
      -        java.util.List arguments = new java.util.ArrayList<>(type.parameters().size());
      +        List arguments = new ArrayList<>(type.parameters().size());
               for (int i = 0; i < type.parameters().size(); i++) {
                   ParameterizedType mine = type.parameters().get(i);
                   ParameterizedType theirs = declared.parameters().get(i);
      @@ -521,7 +535,7 @@ static boolean isNullable(ParameterizedType type) {
            * The loop variables over a raw or star-projected collection being printed: Kotlin's {@code Any?}, which the
            * verdicts, holding the variable non-null, do not know (jenkins's RedactSecretJsonInErrorMessageSanitizer).
            */
      -    static final ThreadLocal> RAW_LOOP_VARIABLES = ThreadLocal.withInitial(java.util.HashSet::new);
      +    static final ThreadLocal> RAW_LOOP_VARIABLES = ThreadLocal.withInitial(HashSet::new);
       
           /** Kotlin will type this value as nullable. */
           static boolean nullableInKotlin(Expression e) {
      @@ -543,7 +557,7 @@ static boolean nullableInKotlin(Expression e) {
                               !KotlinSmartCasts.asserted(lv, ve);
                       case LocalVariable lv -> isNullable(KotlinContext.localType(lv.simpleName())) && !knownNonNull(lv, ve);
                       // nor does it smart-cast an element read: only the element's state counts
      -                case io.codelaser.maddi.cst.api.variable.DependentVariable dv -> {
      +                case DependentVariable dv -> {
                           ParameterizedType array = kotlinType(dv.arrayExpression());
                           yield array != null && array.arrays() > 0 && isNullable(array.componentType());
                       }
      @@ -580,8 +594,8 @@ private static boolean platformResult(Expression e) {
                      && mc.methodInfo() != null && !mc.methodInfo().isConstructor() && mc.methodInfo().returnType() != null
                      && (mc.methodInfo().returnType().isJavaLangObject() || mc.methodInfo().returnType().isTypeParameter())
                      && !translated(mc.methodInfo().typeInfo())
      -               && io.codelaser.maddi.cst.impl.analysis.NullAnnotations.explicitState(mc.methodInfo()) != NullableState.NONNULL
      -               && !io.codelaser.maddi.cst.impl.analysis.NullAnnotations.inNullMarkedScope(mc.methodInfo());
      +               && NullAnnotations.explicitState(mc.methodInfo()) != NullableState.NONNULL
      +               && !NullAnnotations.inNullMarkedScope(mc.methodInfo());
           }
       
           /** The type Kotlin gives this expression, with the verdicts' states; null when not known here. */
      @@ -593,7 +607,7 @@ static ParameterizedType kotlinType(Expression e) {
                       case ParameterInfo pi -> parameterType(pi);
                       case LocalVariable lv -> KotlinContext.localType(lv.simpleName()) != null
                               ? KotlinContext.localType(lv.simpleName()) : lv.parameterizedType();
      -                case io.codelaser.maddi.cst.api.variable.DependentVariable dv -> {
      +                case DependentVariable dv -> {
                           ParameterizedType array = kotlinType(dv.arrayExpression());
                           yield array == null || array.arrays() == 0 ? null : array.componentType();
                       }
      @@ -625,7 +639,7 @@ private static ParameterizedType join(ParameterizedType t, ParameterizedType f)
                           ? t.withComponentType(component.withNullable(NullableState.NULLABLE)) : t;
               }
               if (t.parameters().isEmpty() || t.parameters().size() != f.parameters().size()) return t;
      -        List arguments = new java.util.ArrayList<>();
      +        List arguments = new ArrayList<>();
               boolean changed = false;
               for (int i = 0; i < t.parameters().size(); i++) {
                   ParameterizedType a = t.parameters().get(i);
      @@ -715,7 +729,7 @@ static ParameterizedType erasedRaw(ParameterizedType seen, ParameterizedType rec
               }
               if (object == null || !object.isJavaLangObject()) return seen;
               List arguments = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : raw.typeParameters()) {
      +        for (TypeParameter tp : raw.typeParameters()) {
                   ParameterizedType bound = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject() && b.typeInfo() != null)
                           .findFirst().orElse(null);
                   if (bound != null && !bound.typeInfo().typeParameters().isEmpty()) return seen;
      @@ -752,7 +766,7 @@ private static ParameterizedType substitute(ParameterizedType declared, Paramete
                   return isNullable(declared) ? argument.withNullable(NullableState.NULLABLE) : argument;
               }
               if (declared.arrays() > 0 || declared.parameters().isEmpty()) return declared;
      -        List arguments = new java.util.ArrayList<>();
      +        List arguments = new ArrayList<>();
               boolean changed = false;
               for (ParameterizedType p : declared.parameters()) {
                   // a bounded wildcard on a type parameter (? super T) is that parameter's argument for nullability
      @@ -797,12 +811,12 @@ static List samParameterTypes(ParameterizedType seen) {
           }
       
           /** A use-site fact: known non-null where the current statement starts, or at the current call. */
      -    private static boolean knownNonNull(io.codelaser.maddi.cst.api.variable.Variable variable) {
      +    private static boolean knownNonNull(Variable variable) {
               return knownNonNull(variable, null);
           }
       
           /** As {@link #knownNonNull(io.codelaser.maddi.cst.api.variable.Variable)}, used at {@code use}: also smart-cast by an earlier {@code !!}. */
      -    private static boolean knownNonNull(io.codelaser.maddi.cst.api.variable.Variable variable, Expression use) {
      +    private static boolean knownNonNull(Variable variable, Expression use) {
               return KotlinContext.state().knownNonNull(verdicts(), variable) || KotlinSmartCasts.asserted(variable, use);
           }
       
      @@ -824,7 +838,7 @@ static boolean declaredNullableVariable(Expression e) {
       
           static boolean nullableJdkResult(MethodInfo methodInfo) {
               if (methodInfo.isStatic()) return false;
      -        return java.util.stream.Stream.concat(java.util.stream.Stream.of(methodInfo), methodInfo.overrides().stream())
      +        return Stream.concat(Stream.of(methodInfo), methodInfo.overrides().stream())
                       .anyMatch(m -> NULLABLE_JDK_RESULTS.getOrDefault(m.typeInfo().fullyQualifiedName(), Set.of())
                               .contains(m.name()));
           }
      @@ -860,7 +874,7 @@ private static boolean writable(ParameterizedType type) {
           private static boolean libraryNullableResult(MethodInfo methodInfo) {
               return KotlinContext.translatingJava() && !methodInfo.isConstructor() && !translated(methodInfo.typeInfo())
                      && !methodInfo.returnType().isPrimitiveExcludingVoid() && !methodInfo.returnType().isVoidOrJavaLangVoid()
      -               && io.codelaser.maddi.cst.impl.analysis.NullAnnotations.explicitState(methodInfo) == NullableState.NULLABLE;
      +               && NullAnnotations.explicitState(methodInfo) == NullableState.NULLABLE;
           }
       
           /**
      @@ -873,12 +887,12 @@ static boolean libraryNonNullParameter(ParameterInfo pi) {
                   || pi.parameterizedType().isPrimitiveExcludingVoid()) {
                   return false;
               }
      -        NullableState explicit = io.codelaser.maddi.cst.impl.analysis.NullAnnotations.explicitState(pi);
      +        NullableState explicit = NullAnnotations.explicitState(pi);
               // String.format(String, @NotNull(nullableArguments = 0) Object... args): the annotation is the array's, its
               // elements take null (fernflower's ConverterHelperTest formats a null class name)
               if (explicit != null) return explicit == NullableState.NONNULL && !pi.isVarArgs();
               return !pi.parameterizedType().isTypeParameter()
      -               && io.codelaser.maddi.cst.impl.analysis.NullAnnotations.inNullMarkedScope(pi.methodInfo());
      +               && NullAnnotations.inNullMarkedScope(pi.methodInfo());
           }
       
           static boolean translated(TypeInfo owner) {
      @@ -940,7 +954,7 @@ && onlyTypeVariableArgumentsNullable(value, target)) {
                   && from != KotlinExpressionPrinter.primitive(target)) {
                   return printed; // widened, x!!.toLong(), asserted there
               }
      -        io.codelaser.maddi.cst.api.info.MethodInfo method = KotlinContext.currentMethod();
      +        MethodInfo method = KotlinContext.currentMethod();
               if (target.arrays() == 0 && target.typeParameter() != null && method != null
                   && method.typeParameters().contains(target.typeParameter())
                   && KotlinMethodPrinter.typeArgumentOfParameter(method, target.typeParameter())) {
      @@ -993,7 +1007,7 @@ private static boolean nullableTypeVariable(Expression value, ParameterizedType
               }
               ParameterizedType type = kotlinType(value);
               if (type == null || !type.isTypeParameter() || type.arrays() > 0) return false;
      -        io.codelaser.maddi.cst.api.info.TypeParameter tp = type.typeParameter();
      +        TypeParameter tp = type.typeParameter();
               // ArgumentMatchers.any(): the callee's own T, which Kotlin infers from the parameter
               if (unwrapped instanceof MethodCall mc && mc.methodInfo().typeParameters().contains(tp)) return false;
               if (tp.typeBounds().stream().anyMatch(b -> !b.isJavaLangObject())) return false;
      @@ -1058,7 +1072,7 @@ private static boolean nullableLambdaResultInChain(Expression value) {
                   if (mc.methodInfo() != null && "java.util.stream.Stream".equals(mc.methodInfo().typeInfo().fullyQualifiedName())) {
                       for (Expression a : mc.parameterExpressions()) {
                           Expression u = KotlinExpressionPrinter.unwrap(a);
      -                    if (u instanceof io.codelaser.maddi.cst.api.expression.Lambda l && lambdaResultNullable(l)
      +                    if (u instanceof Lambda l && lambdaResultNullable(l)
                               || u instanceof MethodReference mr && mr.methodInfo() != null && !mr.methodInfo().isConstructor()
                                  && isNullable(returnType(mr.methodInfo()))) {
                               return true;
      @@ -1070,16 +1084,16 @@ && isNullable(returnType(mr.methodInfo()))) {
               return false;
           }
       
      -    private static boolean lambdaResultNullable(io.codelaser.maddi.cst.api.expression.Lambda l) {
      -        io.codelaser.maddi.cst.api.statement.Block body = l.methodInfo().methodBody();
      +    private static boolean lambdaResultNullable(Lambda l) {
      +        Block body = l.methodInfo().methodBody();
               if (body == null || body.statements().size() != 1) return false;
      -        return body.statements().getFirst() instanceof io.codelaser.maddi.cst.api.statement.ReturnStatement rs
      +        return body.statements().getFirst() instanceof ReturnStatement rs
                      && rs.expression() != null && nullableInKotlin(rs.expression());
           }
       
           private static boolean unboundTypeVariable(ParameterizedType type) {
               if (!type.isTypeParameter() || type.wildcard() != null) return false;
      -        io.codelaser.maddi.cst.api.info.TypeParameter tp = type.typeParameter();
      +        TypeParameter tp = type.typeParameter();
               if (tp.typeBounds().stream().anyMatch(b -> !b.isJavaLangObject())) return false;
               if (!tp.isMethodTypeParameter()) return true;
               // a method's: only the current one's or an enclosing one's, whose bound is known here (a callee's may be
      @@ -1121,7 +1135,7 @@ static OutputBuilder asserted(Expression e, KotlinPrintCode code, Qualification
            * Print a call with {@code ?.} after {@code receiver}; null when the call does not print its receiver through
            * {@link #receiverWithDot} (a member Kotlin writes otherwise), so that the caller prints the conditional instead.
            */
      -    static OutputBuilder withSafeReceiver(Expression receiver, java.util.function.Supplier call) {
      +    static OutputBuilder withSafeReceiver(Expression receiver, Supplier call) {
               Expression[] previous = SAFE_RECEIVER.get();
               Expression[] slot = {KotlinExpressionPrinter.unwrap(receiver), null};
               SAFE_RECEIVER.set(slot);
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinPrintOptions.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinPrintOptions.java
      index 90545aa4df..2478c8fd4c 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinPrintOptions.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinPrintOptions.java
      @@ -16,11 +16,11 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.Objects;
      +
       import io.codelaser.maddi.cst.impl.analysis.ModificationFacts;
       import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts;
       
      -import java.util.Objects;
      -
       /**
        * How Java is printed as Kotlin, beyond the formatter's options.
        *
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinReadOnly.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinReadOnly.java
      index 741a701649..adc5bf19cf 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinReadOnly.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinReadOnly.java
      @@ -16,23 +16,28 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.CstQueries;
      +import java.util.ArrayList;
      +import java.util.Collections;
      +import java.util.IdentityHashMap;
      +import java.util.List;
      +import java.util.Set;
      +import java.util.function.BiConsumer;
      +import java.util.function.BooleanSupplier;
      +import java.util.function.Consumer;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.expression.*;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.ParameterInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.api.statement.ForEachStatement;
       import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration;
       import io.codelaser.maddi.cst.api.statement.ReturnStatement;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.FieldReference;
      -
      -import java.util.Collections;
      -import java.util.IdentityHashMap;
      -import java.util.List;
      -import java.util.Set;
      -import java.util.function.BiConsumer;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
       
       /**
        * Kotlin's read-only collection types for fields and for the results of methods (maddi-mod#25's structural verdict,
      @@ -97,7 +102,7 @@ static boolean field(FieldInfo fieldInfo) {
            * Nothing can change it then, whatever the analysis concluded about its uses; the reads still decide.
            */
           private static boolean bornImmutable(FieldInfo fieldInfo) {
      -        List values = new java.util.ArrayList<>();
      +        List values = new ArrayList<>();
               if (fieldInfo.initializer() != null && !fieldInfo.initializer().isEmpty()) values.add(fieldInfo.initializer());
               KotlinWorld world = KotlinContext.options().world();
               List writers = world.contains(fieldInfo.owner().primaryType()) ? world.mentioning(fieldInfo)
      @@ -164,7 +169,7 @@ private static Set boundValues(TypeInfo primary) {
       
           private static void arguments(Set bound, List args, MethodInfo callee) {
               for (int i = 0; i < args.size() && i < callee.parameters().size(); i++) {
      -            io.codelaser.maddi.cst.api.info.ParameterInfo p = callee.parameters().get(i);
      +            ParameterInfo p = callee.parameters().get(i);
                   if (p.isVarArgs() || p.parameterizedType().typeParameter() != null
                       || !isCollection(p.parameterizedType())) {
                       continue;
      @@ -187,7 +192,7 @@ private static void addValue(Set bound, Expression value) {
               }
           }
       
      -    private static void forEachType(TypeInfo typeInfo, java.util.function.Consumer consumer) {
      +    private static void forEachType(TypeInfo typeInfo, Consumer consumer) {
               consumer.accept(typeInfo);
               typeInfo.subTypes().forEach(t -> forEachType(t, consumer));
           }
      @@ -259,7 +264,7 @@ private static boolean inWorld(TypeInfo typeInfo) {
            * the cycle's root is read-only. Without that each member of a long chain of fields assigned to each other was
            * decided again for each path to it: guava's printing did not finish (maddi-mod#50).
            */
      -    private static boolean decided(Object member, java.util.function.BooleanSupplier compute) {
      +    private static boolean decided(Object member, BooleanSupplier compute) {
               KotlinWorld world = KotlinContext.options().world();
               Boolean known = world.readOnly(member);
               if (known != null) return known;
      @@ -297,7 +302,7 @@ private static boolean inPrimaryConstructor(FieldInfo fieldInfo) {
       
           /** The method's own {@code return}s: not those of its lambdas. */
           private static List returnStatements(MethodInfo methodInfo) {
      -        List returns = new java.util.ArrayList<>();
      +        List returns = new ArrayList<>();
               ((Element) methodInfo.methodBody()).visit((Element e) -> {
                   if (e instanceof Lambda) return false;
                   if (e instanceof ReturnStatement rs) returns.add(rs);
      @@ -388,13 +393,13 @@ && returns(method)) {
            */
           private static Set carriers(Object member, Element body) {
               Set carriers = Collections.newSetFromMap(new IdentityHashMap<>());
      -        List identityCalls = new java.util.ArrayList<>();
      -        List viewCalls = new java.util.ArrayList<>();
      +        List identityCalls = new ArrayList<>();
      +        List viewCalls = new ArrayList<>();
               body.visit((Element e) -> {
                   if (e instanceof VariableExpression ve && ve.variable() instanceof FieldReference fr
                       && fr.fieldInfo() == member
                       || e instanceof MethodCall mc && mc.methodInfo() == member
      -                || e instanceof io.codelaser.maddi.cst.api.expression.MethodReference mr && mr.methodInfo() == member) {
      +                || e instanceof MethodReference mr && mr.methodInfo() == member) {
                       carriers.add((Expression) e);
                   }
                   if (e instanceof MethodCall mc && identity(mc)) identityCalls.add(mc);
      @@ -440,7 +445,7 @@ private static Expression unwrapped(Expression e) {
           // accepted, also where it is an argument to a parameter that takes any value
           private static void accept(Set carriers, Expression e, Set accepted) {
               Expression u = unwrapped(e);
      -        if (carriers.contains(u) && !(u instanceof io.codelaser.maddi.cst.api.expression.MethodReference)) {
      +        if (carriers.contains(u) && !(u instanceof MethodReference)) {
                   accepted.add(u);
               }
           }
      @@ -459,7 +464,7 @@ private static void passedOn(Set carriers, List args, Me
                   ParameterizedType type = callee.parameters().get(Math.min(i, callee.parameters().size() - 1)).parameterizedType();
                   ParameterizedType element = i >= callee.parameters().size() - 1 && callee.parameters().getLast().isVarArgs()
                                               && type.arrays() == 1 ? type.componentType() : type;
      -            io.codelaser.maddi.cst.api.info.TypeParameter tp = element.typeParameter();
      +            TypeParameter tp = element.typeParameter();
                   if (tp != null && (CstQueries.mentions(callee.returnType(), tp)
                                      || tp.typeBounds().stream().anyMatch(KotlinReadOnly::isCollection))) {
                       continue;
      @@ -486,14 +491,14 @@ static boolean advancedOnlyIterator(FieldInfo fieldInfo) {
                   return false;
               }
               Set advanced = Collections.newSetFromMap(new IdentityHashMap<>());
      -        List uses = new java.util.ArrayList<>();
      +        List uses = new ArrayList<>();
               forEachBody(fieldInfo.owner(), (m, body) -> body.visit((Element e) -> {
                   if (e instanceof MethodCall mc && mc.object() != null && mc.parameterExpressions().isEmpty()
                       && ("hasNext".equals(mc.methodInfo().name()) || "next".equals(mc.methodInfo().name()))) {
                       advanced.add(KotlinExpressionPrinter.unwrap(mc.object()));
                   }
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      -                && ve.variable() instanceof io.codelaser.maddi.cst.api.variable.FieldReference fr
      +            if (e instanceof VariableExpression ve
      +                && ve.variable() instanceof FieldReference fr
                       && fr.fieldInfo() == fieldInfo) {
                       uses.add(ve);
                   }
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinSmartCasts.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinSmartCasts.java
      index 5f029fcb3a..52f5ef03ce 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinSmartCasts.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinSmartCasts.java
      @@ -16,39 +16,45 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.ArrayDeque;
      +import java.util.Collections;
      +import java.util.Deque;
      +import java.util.HashMap;
      +import java.util.HashSet;
      +import java.util.IdentityHashMap;
      +import java.util.LinkedHashMap;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.function.Supplier;
      +
       import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.element.Source;
      +import io.codelaser.maddi.cst.api.expression.And;
       import io.codelaser.maddi.cst.api.expression.BinaryOperator;
       import io.codelaser.maddi.cst.api.expression.Expression;
       import io.codelaser.maddi.cst.api.expression.InlineConditional;
      +import io.codelaser.maddi.cst.api.expression.InstanceOf;
       import io.codelaser.maddi.cst.api.expression.Lambda;
      +import io.codelaser.maddi.cst.api.expression.MethodCall;
      +import io.codelaser.maddi.cst.api.expression.Negation;
      +import io.codelaser.maddi.cst.api.expression.NullConstant;
      +import io.codelaser.maddi.cst.api.expression.Or;
       import io.codelaser.maddi.cst.api.expression.SwitchExpression;
      +import io.codelaser.maddi.cst.api.expression.UnaryOperator;
       import io.codelaser.maddi.cst.api.expression.VariableExpression;
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.ParameterInfo;
       import io.codelaser.maddi.cst.api.statement.AssertStatement;
       import io.codelaser.maddi.cst.api.statement.ForStatement;
       import io.codelaser.maddi.cst.api.statement.LocalVariableCreation;
       import io.codelaser.maddi.cst.api.statement.Statement;
       import io.codelaser.maddi.cst.api.statement.TryStatement;
      +import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.LocalVariable;
      +import io.codelaser.maddi.cst.api.variable.This;
       import io.codelaser.maddi.cst.api.variable.Variable;
       
      -import io.codelaser.maddi.cst.api.expression.And;
      -import io.codelaser.maddi.cst.api.expression.InstanceOf;
      -import io.codelaser.maddi.cst.api.expression.Negation;
      -import io.codelaser.maddi.cst.api.expression.Or;
      -import io.codelaser.maddi.cst.api.type.ParameterizedType;
      -
      -import java.util.ArrayDeque;
      -import java.util.HashMap;
      -import java.util.Map;
      -import java.util.function.Supplier;
      -import java.util.Collections;
      -import java.util.Deque;
      -import java.util.HashSet;
      -import java.util.IdentityHashMap;
      -import java.util.List;
      -import java.util.Set;
      -
       /**
        * Kotlin smart-casts a {@code val} to non-null after {@code x!!}, in all the code that assertion dominates: the
        * rest of its statement, the statements after it in its block, and the blocks nested in those. Java has no such
      @@ -69,7 +75,7 @@ final class KotlinSmartCasts {
            * @param scope for a {@code var}: the body it was asserted in. Kotlin does not smart-cast a var inside a lambda
            *              (which may run after an assignment); null for a val, which it smart-casts there too
            */
      -    private record Fact(Statement statement, io.codelaser.maddi.cst.api.element.Source at, Object scope) {
      +    private record Fact(Statement statement, Source at, Object scope) {
       
               /**
                * After the statement, or later in it than the assertion: Java evaluates left to right, and a second print of
      @@ -78,7 +84,7 @@ private record Fact(Statement statement, io.codelaser.maddi.cst.api.element.Sour
               boolean holdsAt(Expression use) {
                   if (scope != null && scope != KotlinContext.currentScope()) return false;
                   if (statement != KotlinContext.currentStatement()) return true;
      -            io.codelaser.maddi.cst.api.element.Source u = use == null ? null : use.source();
      +            Source u = use == null ? null : use.source();
                   if (u == null || at == null || u.isNoSource() || at.isNoSource()) return false;
                   return u.beginLine() > at.endLine() || u.beginLine() == at.endLine() && u.beginPos() > at.endPos();
               }
      @@ -93,9 +99,9 @@ boolean holdsAt(Expression use) {
            * @param statementOnly the copy prints the calls in its statement only, not those after it: the getter's field
            *                      can change, though not in the statement (CodeLaser/maddi#164)
            */
      -    record Copy(String name, io.codelaser.maddi.cst.api.info.MethodInfo getter, Object receiver, ParameterizedType type,
      +    record Copy(String name, MethodInfo getter, Object receiver, ParameterizedType type,
                       boolean statementOnly) {
      -        boolean copies(io.codelaser.maddi.cst.api.expression.MethodCall call) {
      +        boolean copies(MethodCall call) {
                   return call.methodInfo() == getter && call.parameterExpressions().isEmpty() && receiver.equals(receiverKey(call));
               }
           }
      @@ -104,11 +110,11 @@ boolean copies(io.codelaser.maddi.cst.api.expression.MethodCall call) {
           static final Object THIS = new Object();
       
           /** The receiver of a call as a key: its variable, {@link #THIS}, or null when it is any other expression. */
      -    static Object receiverKey(io.codelaser.maddi.cst.api.expression.MethodCall call) {
      +    static Object receiverKey(MethodCall call) {
               if (call.object() == null || call.objectIsImplicit()) return THIS;
               Expression object = KotlinExpressionPrinter.unwrap(call.object());
               if (object instanceof VariableExpression ve) {
      -            if (ve.variable() instanceof io.codelaser.maddi.cst.api.variable.This) return THIS;
      +            if (ve.variable() instanceof This) return THIS;
                   return ve.variable();
               }
               return null;
      @@ -130,7 +136,7 @@ private record Frame(List statements, Map asserted,
                                Map types, Map typeSources,
                                Map nonNull, Map copies) {
               Frame(List statements) {
      -            this(statements, new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>(), new java.util.LinkedHashMap<>());
      +            this(statements, new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>(), new LinkedHashMap<>());
               }
       
               /**
      @@ -199,7 +205,7 @@ static boolean asserted(Object key, Expression use) {
           }
       
           /** The copy that prints this getter call, if one was declared for the statement or before it in its block. */
      -    static Copy copy(io.codelaser.maddi.cst.api.expression.MethodCall call) {
      +    static Copy copy(MethodCall call) {
               if (call.methodInfo() == null || !call.parameterExpressions().isEmpty()) return null;
               for (Frame frame : FRAMES.get()) {
                   for (Copy copy : frame.copies().keySet()) {
      @@ -299,18 +305,18 @@ private static void tests(Expression condition, boolean truth, Facts result) {
                   case BinaryOperator bo when bo.operator() != null
                                               && (truth ? "!=" : "==").equals(bo.operator().name()) -> {
                       // x != null holds: a stable x, or a copied getter, is known non-null where it does
      -                Expression tested = KotlinExpressionPrinter.unwrap(bo.rhs()) instanceof io.codelaser.maddi.cst.api.expression.NullConstant
      -                        ? bo.lhs() : KotlinExpressionPrinter.unwrap(bo.lhs()) instanceof io.codelaser.maddi.cst.api.expression.NullConstant
      +                Expression tested = KotlinExpressionPrinter.unwrap(bo.rhs()) instanceof NullConstant
      +                        ? bo.lhs() : KotlinExpressionPrinter.unwrap(bo.lhs()) instanceof NullConstant
                               ? bo.rhs() : null;
                       Expression t = tested == null ? null : KotlinExpressionPrinter.unwrap(tested);
                       if (t instanceof VariableExpression ve && stable(ve.variable())) result.nonNull().add(ve.variable());
      -                if (t instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc) {
      +                if (t instanceof MethodCall mc) {
                           Copy copy = copy(mc);
                           if (copy != null) result.nonNull().add(copy);
                       }
                   }
                   case Negation neg -> tests(neg.expression(), !truth, result);
      -            case io.codelaser.maddi.cst.api.expression.UnaryOperator uo when uo.operator() != null
      +            case UnaryOperator uo when uo.operator() != null
                                                                                 && "!".equals(uo.operator().name()) ->
                           tests(uo.expression(), !truth, result);
                   case BinaryOperator bo when bo.operator() != null
      @@ -334,7 +340,7 @@ private static boolean stable(Variable variable) {
           static void assertedAt(Expression e) {
               Deque frames = FRAMES.get();
               if (frames.isEmpty() || !KotlinContext.translatingJava()) return;
      -        if (KotlinExpressionPrinter.unwrap(e) instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc) {
      +        if (KotlinExpressionPrinter.unwrap(e) instanceof MethodCall mc) {
                   // a copy is a val: after copy!! it is non-null where the assertion dominates
                   Copy copy = copy(mc);
                   Statement statement = KotlinContext.currentStatement();
      @@ -411,17 +417,17 @@ private static void collect(Expression expression, Set result) {
                           return false;
                       }
                       // a conjunction or disjunction in canonical order, not the evaluation's: none of it is certain
      -                case io.codelaser.maddi.cst.api.expression.And and -> {
      +                case And and -> {
                           return false;
                       }
      -                case io.codelaser.maddi.cst.api.expression.Or or -> {
      +                case Or or -> {
                           return false;
                       }
                       case VariableExpression ve -> {
                           result.add(ve);
                           return true;
                       }
      -                case io.codelaser.maddi.cst.api.expression.MethodCall mc -> {
      +                case MethodCall mc -> {
                           result.add(mc);
                           return true;
                       }
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinStatementPrinter.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinStatementPrinter.java
      index 1a34ab3c5d..2ab6b6a9db 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinStatementPrinter.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinStatementPrinter.java
      @@ -17,12 +17,20 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.CstQueries;
      +import java.util.*;
      +import java.util.function.Supplier;
      +import java.util.stream.Collectors;
      +import java.util.stream.IntStream;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.element.Comment;
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.element.RecordPattern;
       import io.codelaser.maddi.cst.api.expression.*;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.ParameterInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.output.Qualification;
      @@ -31,13 +39,13 @@
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.api.variable.LocalVariable;
      +import io.codelaser.maddi.cst.api.variable.This;
       import io.codelaser.maddi.cst.api.variable.Variable;
       import io.codelaser.maddi.cst.impl.element.ElementImpl;
      +import io.codelaser.maddi.cst.impl.expression.util.PrecedenceEnum;
       import io.codelaser.maddi.cst.impl.info.CompilationUnitPrinterImpl;
       import io.codelaser.maddi.cst.impl.output.*;
      -
      -import java.util.*;
      -import java.util.stream.Stream;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
       
       /**
        * Prints a {@link Statement} as Kotlin: no semicolons, {@code val}/{@code var}, and every Java statement form
      @@ -168,15 +176,15 @@ private static boolean nullableArgumentOfGenericCall(ParameterizedType type, Exp
       
           static boolean onlyTargetTyped(Expression e) {
               // guava's Graphs.inducedSubgraph: MutableGraph subgraph = c ? builder.build() : builder.build()
      -        if (KotlinExpressionPrinter.unwrap(e) instanceof io.codelaser.maddi.cst.api.expression.InlineConditional ic) {
      +        if (KotlinExpressionPrinter.unwrap(e) instanceof InlineConditional ic) {
                   return onlyTargetTyped(ic.ifTrue()) || onlyTargetTyped(ic.ifFalse());
               }
               if (!(KotlinExpressionPrinter.unwrap(e) instanceof MethodCall mc)) return false;
               List typeParameters = mc.methodInfo().typeParameters();
      -        List parameters = mc.methodInfo().parameters();
      +        List parameters = mc.methodInfo().parameters();
               return !typeParameters.isEmpty() && typeParameters.stream().anyMatch(tp ->
                       CstQueries.mentions(mc.methodInfo().returnType(), tp)
      -                && java.util.stream.IntStream.range(0, parameters.size()).noneMatch(i ->
      +                && IntStream.range(0, parameters.size()).noneMatch(i ->
                               mentionsOutsideSuper(parameters.get(i).parameterizedType(), tp) && fixes(mc, i)));
           }
       
      @@ -377,11 +385,11 @@ static OutputBuilder block(List prefix, Block block, List reassignedParameters(List parameters,
      +    static List reassignedParameters(List parameters,
                                                           Element body, Qualification q) {
               if (body == null || parameters.isEmpty()) return List.of();
               List result = new ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.ParameterInfo p : parameters) {
      +        for (ParameterInfo p : parameters) {
                   if (assignedIn(body, p)) {
                       String name = KotlinNames.name(p.name());
                       OutputBuilder b = new OutputBuilderImpl().add(KotlinKeyword.VAR).add(SpaceEnum.ONE).add(new TextImpl(name));
      @@ -391,7 +399,7 @@ static List reassignedParameters(List T convert(…)}.
            */
      -    private static OutputBuilder genericReturn(Expression value, io.codelaser.maddi.cst.api.info.MethodInfo method,
      -                                               io.codelaser.maddi.cst.api.info.MethodInfo genericSuper, Qualification q) {
      +    private static OutputBuilder genericReturn(Expression value, MethodInfo method,
      +                                               MethodInfo genericSuper, Qualification q) {
               return new OutputBuilderImpl().add(SymbolEnum.LEFT_PARENTHESIS)
                       .add(KotlinExpressionPrinter.widened(value, null, q))
                       .add(SymbolEnum.RIGHT_PARENTHESIS).add(SpaceEnum.ONE).add(KotlinKeyword.AS).add(SpaceEnum.ONE)
      @@ -540,7 +548,7 @@ private static OutputBuilder breakStatement(BreakStatement bs) {
       
           // ---------------------------------------------------------------- loops
       
      -    private static OutputBuilder loop(Statement loop, Qualification q, java.util.function.Supplier body) {
      +    private static OutputBuilder loop(Statement loop, Qualification q, Supplier body) {
               KotlinContext.push(new KotlinContext.Frame(KotlinContext.Kind.LOOP, loop.label()));
               try {
                   OutputBuilder printed = body.get();
      @@ -692,11 +700,11 @@ private static OutputBuilder rangeLoop(ForStatement fs, Qualification q) {
               // that Kotlin's range would make a CharRange: each converted to the counter's type
               boolean charBound = isChar(cmp.rhs());
               OutputBuilder bound = charBound ? KotlinExpressionPrinter.widened(cmp.rhs(), type, q)
      -                : KotlinExpressionPrinter.operand(io.codelaser.maddi.cst.impl.expression.util.PrecedenceEnum.ADDITIVE,
      +                : KotlinExpressionPrinter.operand(PrecedenceEnum.ADDITIVE,
                       cmp.rhs(), q);
               if (">".equals(op)) bound = new OutputBuilderImpl().add(bound).add(KotlinSymbols.binary("+"))
                       .add(new TextImpl("1"));
      -        OutputBuilder from = KotlinExpressionPrinter.operand(io.codelaser.maddi.cst.impl.expression.util.PrecedenceEnum.ADDITIVE,
      +        OutputBuilder from = KotlinExpressionPrinter.operand(PrecedenceEnum.ADDITIVE,
                       v.assignmentExpression(), q);
               if (isChar(v.assignmentExpression())) {
                   from = KotlinExpressionPrinter.widened(v.assignmentExpression(), type, q);
      @@ -747,8 +755,8 @@ private static boolean stable(Expression bound, ForStatement fs) {
                                                 && (fr.isStatic() || fr.scope() == null || stable(fr.scope(), fs)
                                                     || fr.scopeIsThis());
                       case LocalVariable lv -> !assignedIn(fs.block(), lv);
      -                case io.codelaser.maddi.cst.api.info.ParameterInfo pi -> !assignedIn(fs.block(), pi);
      -                case io.codelaser.maddi.cst.api.variable.This t -> true;
      +                case ParameterInfo pi -> !assignedIn(fs.block(), pi);
      +                case This t -> true;
                       default -> false;
                   };
                   default -> false;
      @@ -940,11 +948,11 @@ private static boolean yieldsBeforeTheEnd(List body) {
                   Statement st = body.get(i);
                   if (i == body.size() - 1 && st instanceof YieldStatement) return false;
                   boolean[] found = {false};
      -            st.visit((io.codelaser.maddi.cst.api.element.Element e) -> {
      +            st.visit((Element e) -> {
                       if (e instanceof YieldStatement) found[0] = true;
                       // a lambda's or nested switch expression's yields are its own
      -                return !found[0] && !(e instanceof io.codelaser.maddi.cst.api.expression.SwitchExpression)
      -                       && !(e instanceof io.codelaser.maddi.cst.api.expression.Lambda);
      +                return !found[0] && !(e instanceof SwitchExpression)
      +                       && !(e instanceof Lambda);
                   });
                   if (found[0]) return true;
               }
      @@ -1074,14 +1082,14 @@ private static OutputBuilder tryStatement(TryStatement ts, Qualification q) {
                   List types = cc.exceptionTypes().isEmpty() ? List.of() : cc.exceptionTypes();
                   List names = types.isEmpty() ? List.of("Throwable")
                           : types.stream().map(t -> KotlinTypeName.of(t, q)).toList();
      -            io.codelaser.maddi.cst.api.info.TypeInfo common = names.size() > 1 && cc == ts.catchClauses().getLast()
      +            TypeInfo common = names.size() > 1 && cc == ts.catchClauses().getLast()
                           && testsCatchVariable(cc) ? commonSuperclass(types) : null;
                   if (common != null) {
                       // jenkins's AbstractBuild: catch (IOException | RuntimeException e) { if (e instanceof IOException) … }.
                       // One clause per type makes that test impossible in the other, which kotlinc refuses; the common
                       // superclass, the others rethrown, keeps it. Only the last clause: a rethrow skips those after it
                       String name = declare(cc.catchVariable().simpleName());
      -                String guard = "if (" + names.stream().map(t -> name + " !is " + t).collect(java.util.stream.Collectors
      +                String guard = "if (" + names.stream().map(t -> name + " !is " + t).collect(Collectors
                               .joining(" && ")) + ") throw " + name;
                       b.add(SpaceEnum.ONE).add(KotlinKeyword.CATCH).add(SpaceEnum.ONE).add(SymbolEnum.LEFT_PARENTHESIS)
                               .add(new TextImpl(name)).add(SymbolEnum.COLON_LABEL)
      @@ -1117,15 +1125,15 @@ private static boolean testsCatchVariable(TryStatement.CatchClause cc) {
           }
       
           /** The nearest class each of {@code types} extends: {@code Exception} of IOException and RuntimeException. */
      -    private static io.codelaser.maddi.cst.api.info.TypeInfo commonSuperclass(List types) {
      +    private static TypeInfo commonSuperclass(List types) {
               for (ParameterizedType c = types.getFirst(); c != null && c.typeInfo() != null; c = c.typeInfo().parentClass()) {
      -            io.codelaser.maddi.cst.api.info.TypeInfo candidate = c.typeInfo();
      +            TypeInfo candidate = c.typeInfo();
                   if (types.stream().allMatch(t -> extendsClass(t, candidate))) return candidate;
               }
               return null;
           }
       
      -    private static boolean extendsClass(ParameterizedType t, io.codelaser.maddi.cst.api.info.TypeInfo candidate) {
      +    private static boolean extendsClass(ParameterizedType t, TypeInfo candidate) {
               for (ParameterizedType c = t; c != null && c.typeInfo() != null; c = c.typeInfo().parentClass()) {
                   if (c.typeInfo() == candidate) return true;
               }
      @@ -1149,8 +1157,8 @@ private static OutputBuilder use(TryStatement ts, int index, Qualification q) {
                   // StructClass.create(in, ...) } has an `in` as nullable as getClassStream's result
                   ParameterizedType declared = KotlinNullability.localType(lvc, lvc.localVariable());
                   ParameterizedType useType = declared.withNullable(
      -                    KotlinNullability.nullableInKotlin(init) ? io.codelaser.maddi.cst.api.type.NullableState.NULLABLE
      -                            : io.codelaser.maddi.cst.api.type.NullableState.NONNULL);
      +                    KotlinNullability.nullableInKotlin(init) ? NullableState.NULLABLE
      +                            : NullableState.NONNULL);
                   KotlinContext.localType(lvc.localVariable().simpleName(), useType);
                   if (KotlinContext.translatingJava() && wildcardArgument(declared)
                       && !KotlinExpressionPrinter.mentionsOutOfScope(declared)) {
      @@ -1256,15 +1264,15 @@ private static String declareForEach(ForEachStatement fe) {
               if (element != null && element.typeInfo() != null && element.arrays() == type.arrays()) {
                   // the element's own type arguments too (for (entry in map.entries): an Entry)
                   KotlinContext.localType(lv.simpleName(), KotlinNullability.isNullable(element) || KotlinNullability.isNullable(type)
      -                    ? element.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE) : element);
      +                    ? element.withNullable(NullableState.NULLABLE) : element);
               } else if (KotlinNullability.isNullable(element) && !KotlinNullability.isNullable(type)) {
      -            KotlinContext.localType(lv.simpleName(), type.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE));
      +            KotlinContext.localType(lv.simpleName(), type.withNullable(NullableState.NULLABLE));
               } else if (element == null && type.arrays() == 0 && type.isJavaLangObject() && iterable != null
                          && iterable.arrays() == 0) {
                   // jenkins's RedactSecretJsonInErrorMessageSanitizer: for (Object o : jsonArray) over a raw JSONArray, and
                   // RobustReflectionConverter's over a Collection: Kotlin's loop variable is an Any?, whatever its verdict,
                   // and is asserted where it goes into a non-null
      -            KotlinContext.localType(lv.simpleName(), type.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE));
      +            KotlinContext.localType(lv.simpleName(), type.withNullable(NullableState.NULLABLE));
                   KotlinNullability.RAW_LOOP_VARIABLES.get().add(lv.simpleName());
               }
               return name;
      @@ -1284,7 +1292,7 @@ private static boolean voidArgument(ParameterizedType type) {
       
           /** The result of a call to a method of a type not translated: Kotlin sees its Java signature. */
           private static boolean libraryResult(Expression init) {
      -        return KotlinExpressionPrinter.unwrap(init) instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc
      +        return KotlinExpressionPrinter.unwrap(init) instanceof MethodCall mc
                      && mc.methodInfo() != null && !KotlinNullability.translated(mc.methodInfo().typeInfo());
           }
       
      @@ -1321,9 +1329,9 @@ private static OutputBuilder localVariable(LocalVariableCreation lvc, LocalVaria
                       && !KotlinNullability.isNullable(type)
                       // a local or parameter only: fernflower's ExitExprent, var ret = retType (a field asserted before),
                       // is assigned a nullable getter chain after
      -                && KotlinExpressionPrinter.unwrap(init) instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ive
      -                && (ive.variable() instanceof io.codelaser.maddi.cst.api.variable.LocalVariable
      -                    || ive.variable() instanceof io.codelaser.maddi.cst.api.info.ParameterInfo)
      +                && KotlinExpressionPrinter.unwrap(init) instanceof VariableExpression ive
      +                && (ive.variable() instanceof LocalVariable
      +                    || ive.variable() instanceof ParameterInfo)
                       && KotlinNullability.isNullable(KotlinNullability.kotlinType(init))
                       && !KotlinNullability.nullableInKotlin(init);
               boolean writeType = !hasInitializer || nullableFromNonNull || nonNullFromSmartCast
      @@ -1365,7 +1373,7 @@ private static OutputBuilder localVariable(LocalVariableCreation lvc, LocalVaria
                   b.add(SpaceEnum.ONE).add(KotlinSymbols.assignment("=")).add(SpaceEnum.ONE).add(new TextImpl(zero));
               }
               if (hasInitializer) {
      -            java.util.function.Supplier value = () ->
      +            Supplier value = () ->
                           KotlinNullability.assertedAtDeclaration(lvc, lv) && !KotlinNullability.isNullable(type)
                           ? KotlinNullability.asserted(init, KotlinNullability.unobservedBeforeDereference(lvc, lv)
                                                              ? KotlinPrintCode.ASSERT_AT_DECLARATION_UNOBSERVED
      @@ -1414,9 +1422,9 @@ private static boolean exits(Block block) {
               List own = CstQueries.own(block.statements());
               if (own.isEmpty()) return false;
               Statement last = own.getLast();
      -        return last instanceof io.codelaser.maddi.cst.api.statement.ReturnStatement
      -               || last instanceof io.codelaser.maddi.cst.api.statement.ThrowStatement
      -               || last instanceof io.codelaser.maddi.cst.api.statement.BreakOrContinueStatement;
      +        return last instanceof ReturnStatement
      +               || last instanceof ThrowStatement
      +               || last instanceof BreakOrContinueStatement;
           }
       
           /** If a block's only (non-synthetic) statement is an if/else, return it — for `else if` chain flattening. */
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTranslator.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTranslator.java
      index 03921ef211..d7a161dc50 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTranslator.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTranslator.java
      @@ -17,13 +17,6 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.api.runtime.Runtime;
      -import io.codelaser.maddi.cst.impl.info.ImportComputerImpl;
      -import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl;
      -import io.codelaser.maddi.cst.print.translate.PrintMessage;
      -
       import java.io.IOException;
       import java.nio.file.Files;
       import java.nio.file.Path;
      @@ -32,6 +25,13 @@
       import java.util.List;
       import java.util.Set;
       
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.runtime.Runtime;
      +import io.codelaser.maddi.cst.impl.info.ImportComputerImpl;
      +import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      +import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl;
      +import io.codelaser.maddi.cst.print.translate.PrintMessage;
      +
       /**
        * Java to Kotlin for a list of types: each compilation unit as a {@code .kt} file under a directory, by package. What
        * the CLI's {@code --translate kotlin} writes and the J2K ratchets judge, so that the ratchets measure what ships.
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTypeName.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTypeName.java
      index 576a8325c3..77b41ce979 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTypeName.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTypeName.java
      @@ -17,16 +17,23 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.api.type.NullableState;
      -import io.codelaser.maddi.cst.api.type.ParameterizedType;
      +import java.util.ArrayList;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.function.Supplier;
      +import java.util.stream.Collectors;
       
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.api.output.Qualification;
      +import io.codelaser.maddi.cst.api.type.NullableState;
      +import io.codelaser.maddi.cst.api.type.ParameterizedType;
      +import io.codelaser.maddi.cst.impl.analysis.NullAnnotations;
       import io.codelaser.maddi.cst.impl.output.TypeNameImpl;
       
      -import java.util.Map;
      -import java.util.stream.Collectors;
      -
       /**
        * Renders a {@link ParameterizedType} as a Kotlin type reference: JVM primitives and common JDK types are
        * mapped to their Kotlin names (`int`→`Int`, `java.lang.String`→`String`, `java.lang.Object`→`Any`, …), arrays
      @@ -105,7 +112,7 @@ public static String staticOwner(TypeInfo typeInfo, Qualification q) {
           }
       
           /** java.lang types Kotlin's default imports shadow by a type of the same simple name, whose statics it lacks. */
      -    private static final java.util.Set STATICS_SHADOWED = java.util.Set.of("java.lang.Enum");
      +    private static final Set STATICS_SHADOWED = Set.of("java.lang.Enum");
       
           private static final Map PRIMITIVE_ARRAY = Map.of("int", "IntArray", "long", "LongArray",
                   "short", "ShortArray", "byte", "ByteArray", "char", "CharArray", "boolean", "BooleanArray",
      @@ -140,12 +147,12 @@ public static String primitiveArray(ParameterizedType elementType) {
           private static final ThreadLocal IN_SIGNATURE = ThreadLocal.withInitial(() -> false);
       
           /** {@code print}, without {@code E & Any}: a parameter's type, a type parameter's bound. */
      -    static String inSignature(java.util.function.Supplier print) {
      +    static String inSignature(Supplier print) {
               return inSignature(false, print);
           }
       
           /** As {@link #inSignature(java.util.function.Supplier)}; {@code ownSignature}: one no override repeats. */
      -    static String inSignature(boolean ownSignature, java.util.function.Supplier print) {
      +    static String inSignature(boolean ownSignature, Supplier print) {
               boolean previous = IN_SIGNATURE.get();
               boolean previousOwn = IN_OWN_SIGNATURE.get();
               IN_SIGNATURE.set(true);
      @@ -174,7 +181,7 @@ private static boolean superBoundNonNull(ParameterizedType t) {
           static boolean definitelyNonNull(ParameterizedType t) {
               return KotlinContext.translatingJava() && !IN_SIGNATURE.get() && t.isTypeParameter() && t.arrays() == 0 && t.wildcard() == null
                      && t.nullable() != NullableState.NULLABLE && t.annotations().stream()
      -                       .anyMatch(ae -> io.codelaser.maddi.cst.impl.analysis.NullAnnotations.NON_NULL
      +                       .anyMatch(ae -> NullAnnotations.NON_NULL
                                      .contains(ae.typeInfo().simpleName()))
                      && nullableBound(t.typeParameter(), 0);
           }
      @@ -190,16 +197,16 @@ static boolean nullableTypeVariable(ParameterizedType t) {
            * io.codelaser.maddi.cst.impl.analysis.NullabilityFacts#nonNullTypeParameter}), with no bound of its own: Kotlin's
            * {@code K : Any}. A class's, or a method's that flows into one (langchain4j's {@code  Response from(T)}).
            */
      -    static boolean nonNullClassTypeParameter(io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    static boolean nonNullClassTypeParameter(TypeParameter tp) {
               return KotlinContext.translatingJava()
                      && tp.typeBounds().stream().allMatch(ParameterizedType::isJavaLangObject)
                      && KotlinNullability.verdicts().nonNullTypeParameter(tp);
           }
       
      -    private static boolean nullableBound(io.codelaser.maddi.cst.api.info.TypeParameter tp, int depth) {
      -        java.util.List bounds = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).toList();
      +    private static boolean nullableBound(TypeParameter tp, int depth) {
      +        List bounds = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).toList();
               // langchain4j's Utils.firstNotNull: the printer bounds its own  by Any (KotlinMethodPrinter.nonNullBound)
      -        io.codelaser.maddi.cst.api.info.MethodInfo current = KotlinContext.currentMethod();
      +        MethodInfo current = KotlinContext.currentMethod();
               if (bounds.isEmpty() && current != null && current.typeParameters().contains(tp)
                   && KotlinMethodPrinter.nonNullBound(current, tp)) {
                   return false;
      @@ -265,7 +272,7 @@ private static String base(ParameterizedType pt, Qualification q) {
                           || pt.typeInfo().fullyQualifiedName().startsWith("java.util.concurrent.")
                              && !pt.typeInfo().fullyQualifiedName().contains("Map")
                           || argument.annotations().stream().anyMatch(ae -> ae.typeInfo() != null
      -                        && io.codelaser.maddi.cst.impl.analysis.NullAnnotations.NULLABLE.contains(ae.typeInfo().simpleName())))) {
      +                        && NullAnnotations.NULLABLE.contains(ae.typeInfo().simpleName())))) {
                       argument = argument.withNullable(NullableState.NONNULL);
                   }
                   sb.append(of(argument, q));
      @@ -319,11 +326,11 @@ private static String innerWithOuterArguments(ParameterizedType pt, Qualificatio
               TypeInfo t = pt.typeInfo();
               int end = pt.parameters().size();
               if (!t.isInnerClass() || end <= t.typeParameters().size()) return null;
      -        java.util.List segments = new java.util.ArrayList<>();
      +        List segments = new ArrayList<>();
               while (true) {
                   int own = t.typeParameters().size();
                   if (own > end) return null;
      -            java.util.List args = pt.parameters().subList(end - own, end);
      +            List args = pt.parameters().subList(end - own, end);
                   end -= own;
                   TypeInfo outer = t.enclosingTypeStream().skip(1).findFirst().orElse(null);
                   boolean first = end == 0 || !t.isInnerClass() || outer == null;
      @@ -348,7 +355,7 @@ static String erased(ParameterizedType raw, Qualification q) {
               int lt = name.indexOf('<');
               if (lt > 0) name = name.substring(0, lt);
               StringBuilder sb = new StringBuilder(name).append('<');
      -        java.util.List tps = raw.typeInfo().typeParameters();
      +        List tps = raw.typeInfo().typeParameters();
               for (int i = 0; i < tps.size(); i++) {
                   if (i > 0) sb.append(", ");
                   ParameterizedType bound = tps.get(i).typeBounds().stream().filter(b -> !b.isJavaLangObject()).findFirst()
      @@ -406,7 +413,7 @@ static String constructed(ParameterizedType pt, Qualification q) {
               return infer ? name(pt.typeInfo(), q) : withoutNullable(of(pt, q));
           }
       
      -    private static boolean inScope(io.codelaser.maddi.cst.api.info.TypeParameter tp) {
      +    private static boolean inScope(TypeParameter tp) {
               return KotlinContext.typeParameterInScope(tp);
           }
       
      @@ -418,8 +425,8 @@ private static String withoutNullable(String s) {
            * A type parameter's declaration: {@code T : MutableCollection} for {@code >}, or the
            * members of its bound do not resolve on a T. Only a single bound: more than one needs a {@code where} clause.
            */
      -    static String typeParameter(io.codelaser.maddi.cst.api.info.TypeParameter tp, Qualification q) {
      -        java.util.List bounds = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).toList();
      +    static String typeParameter(TypeParameter tp, Qualification q) {
      +        List bounds = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).toList();
               String name = KotlinNames.name(tp.simpleName());
               //  S reverse(): the bound's type-use annotation, which an override must repeat; more
               // than one bound goes to the where clause
      @@ -431,11 +438,11 @@ static String typeParameter(io.codelaser.maddi.cst.api.info.TypeParameter tp, Qu
            * guava's ToDoubleRounder>: {@code where X : Number, X : Comparable}, after a
            * class's supertypes or a function's result, for the type parameters with more than one bound; empty if none has.
            */
      -    static String whereClause(java.util.List typeParameters,
      +    static String whereClause(List typeParameters,
                                     Qualification q) {
      -        java.util.List constraints = new java.util.ArrayList<>();
      -        for (io.codelaser.maddi.cst.api.info.TypeParameter tp : typeParameters) {
      -            java.util.List bounds = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).toList();
      +        List constraints = new ArrayList<>();
      +        for (TypeParameter tp : typeParameters) {
      +            List bounds = tp.typeBounds().stream().filter(b -> !b.isJavaLangObject()).toList();
                   if (bounds.size() < 2) continue;
                   for (ParameterizedType b : bounds) {
                       constraints.add(KotlinNames.name(tp.simpleName()) + " : "
      @@ -451,7 +458,7 @@ static String whereClause(java.util.List} the
            * reflection class, which takes no type arguments.
            */
      -    static final java.util.Set KOTLIN_BUILT_IN_NAMES = java.util.Set.of("Array", "Any", "Unit", "Nothing");
      +    static final Set KOTLIN_BUILT_IN_NAMES = Set.of("Array", "Any", "Unit", "Nothing");
       
           /** A Java type whose simple name is one of {@link #KOTLIN_BUILT_IN_NAMES}: always written qualified. */
           static boolean shadowsKotlinBuiltIn(String fullyQualifiedName) {
      @@ -483,7 +490,7 @@ private static boolean notInKotlinScope(TypeInfo typeInfo) {
               TypeInfo outer = outer(typeInfo);
               if (outer == null) return false;
               for (TypeInfo t = KotlinContext.currentType(); t != null; t = outer(t)) {
      -            if (t == outer || t == typeInfo || inherits(t, outer, new java.util.HashSet<>())) return false;
      +            if (t == outer || t == typeInfo || inherits(t, outer, new HashSet<>())) return false;
               }
               return true;
           }
      @@ -496,7 +503,7 @@ private static TypeInfo outer(TypeInfo nested) {
               return primary.recursiveSubTypeStream().filter(t -> t.subTypes().contains(nested)).findFirst().orElse(null);
           }
       
      -    private static boolean inherits(TypeInfo sub, TypeInfo sup, java.util.Set visited) {
      +    private static boolean inherits(TypeInfo sub, TypeInfo sup, Set visited) {
               if (sub == null || !visited.add(sub)) return false;
               if (sub == sup) return true;
               if (sub.parentClass() != null && inherits(sub.parentClass().typeInfo(), sup, visited)) return true;
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTypePrinter.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTypePrinter.java
      index 0675dfd0db..81b17cc0cb 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTypePrinter.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinTypePrinter.java
      @@ -17,27 +17,40 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.impl.analysis.NullAnnotations;
      -import io.codelaser.maddi.cst.print.translate.CstQueries;
      +import java.net.URI;
      +import java.util.ArrayList;
      +import java.util.Comparator;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Optional;
      +import java.util.Set;
      +import java.util.function.Function;
      +import java.util.stream.Collectors;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
      +import io.codelaser.maddi.cst.api.expression.Lambda;
      +import io.codelaser.maddi.cst.api.expression.VariableExpression;
       import io.codelaser.maddi.cst.api.info.*;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.output.Qualification;
       import io.codelaser.maddi.cst.api.output.element.Keyword;
      +import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation;
      +import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement;
      +import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration;
      +import io.codelaser.maddi.cst.api.statement.ReturnStatement;
      +import io.codelaser.maddi.cst.api.statement.Statement;
      +import io.codelaser.maddi.cst.api.type.NullableState;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
      +import io.codelaser.maddi.cst.api.variable.FieldReference;
      +import io.codelaser.maddi.cst.impl.analysis.NullAnnotations;
       import io.codelaser.maddi.cst.impl.info.CompilationUnitPrinterImpl;
       import io.codelaser.maddi.cst.impl.info.TypeModifierEnum;
       import io.codelaser.maddi.cst.impl.output.*;
      -
      -import java.util.ArrayList;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Optional;
      -import java.util.Set;
      -import java.util.function.Function;
      -import java.util.stream.Collectors;
      -import java.util.stream.Stream;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
       
       /**
        * Prints a {@link TypeInfo} as a Kotlin type declaration, mirroring the Java {@code TypePrinterImpl} and its
      @@ -366,8 +379,8 @@ static boolean returnsEarly(MethodInfo constructor) {
               if (constructor.methodBody() == null) return false;
               boolean[] found = {false};
               ((Element) constructor.methodBody()).visit((Element e) -> {
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.Lambda) return false;
      -            if (e instanceof io.codelaser.maddi.cst.api.statement.ReturnStatement) found[0] = true;
      +            if (e instanceof Lambda) return false;
      +            if (e instanceof ReturnStatement) found[0] = true;
                   return !found[0];
               });
               return found[0];
      @@ -383,8 +396,8 @@ private static boolean exposedBySignature(TypeInfo nested) {
       
           private static boolean exposedIn(TypeInfo t, TypeInfo nested) {
               if (t != nested && (t.access() == null || !t.access().isPrivate())) {
      -            java.util.stream.Stream supertypes = java.util.stream.Stream.concat(
      -                    t.parentClass() == null ? java.util.stream.Stream.empty() : java.util.stream.Stream.of(t.parentClass()),
      +            Stream supertypes = Stream.concat(
      +                    t.parentClass() == null ? Stream.empty() : Stream.of(t.parentClass()),
                           t.interfacesImplemented().stream());
                   if (supertypes.anyMatch(st -> names(st, nested))) return true;
                   for (MethodInfo m : t.constructorAndMethodStream().toList()) {
      @@ -434,16 +447,16 @@ static FieldInfo propertyOf(ParameterInfo parameter) {
            */
           private static boolean onlyAssignsParameters(MethodInfo c) {
               return c.methodBody() != null && c.methodBody().statements().stream().filter(s -> !s.isSynthetic())
      -                .allMatch(s -> s instanceof io.codelaser.maddi.cst.api.statement.ExpressionAsStatement eas
      -                               && eas.expression() instanceof io.codelaser.maddi.cst.api.expression.Assignment a
      -                               && a.value() instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +                .allMatch(s -> s instanceof ExpressionAsStatement eas
      +                               && eas.expression() instanceof Assignment a
      +                               && a.value() instanceof VariableExpression ve
                                      && ve.variable() instanceof ParameterInfo pi
                                      && a.variableTarget() != null && pi.name().equals(a.variableTarget().simpleName()));
           }
       
           private static boolean privateProperty(FieldInfo field) {
               return KotlinModifiers.visibility(field.access(), field.owner(), null)
      -                .equals(Optional.of(io.codelaser.maddi.cst.impl.output.KeywordImpl.PRIVATE));
      +                .equals(Optional.of(KeywordImpl.PRIVATE));
           }
       
           /**
      @@ -472,8 +485,8 @@ private OutputBuilder primaryConstructorHeader(MethodInfo c, Qualification q) {
               // class TextContentMixin @JsonCreator constructor(@JsonProperty("text") text: String): annotated, the primary
               // constructor needs its keyword
               OutputBuilder annotations = KotlinAnnotations.print(c.annotations(), q);
      -        java.util.Optional visibility = typeInfo.typeNature().isEnum()
      -                ? java.util.Optional.empty() : KotlinModifiers.visibility(c.access(), typeInfo, c);
      +        Optional visibility = typeInfo.typeNature().isEnum()
      +                ? Optional.empty() : KotlinModifiers.visibility(c.access(), typeInfo, c);
               // and documented: its comments go before the keyword
               OutputBuilder comments = KotlinComments.print(c.comments(), q);
               if (!annotations.isEmpty() || visibility.isPresent() || !comments.isEmpty()) {
      @@ -489,9 +502,9 @@ private static OutputBuilder assignmentComments(MethodInfo c, ParameterInfo p, Q
               if (c.methodBody() == null) return new OutputBuilderImpl();
               return c.methodBody().statements().stream()
                       .filter(s -> !s.comments().isEmpty()
      -                             && s instanceof io.codelaser.maddi.cst.api.statement.ExpressionAsStatement eas
      -                             && eas.expression() instanceof io.codelaser.maddi.cst.api.expression.Assignment a
      -                             && a.value() instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      +                             && s instanceof ExpressionAsStatement eas
      +                             && eas.expression() instanceof Assignment a
      +                             && a.value() instanceof VariableExpression ve
                                    && ve.variable() instanceof ParameterInfo pi && pi.equals(p))
                       .map(s -> KotlinStatementPrinter.commentsOf(s, q))
                       .reduce(new OutputBuilderImpl(), OutputBuilder::add);
      @@ -499,7 +512,7 @@ private static OutputBuilder assignmentComments(MethodInfo c, ParameterInfo p, Q
       
           /** The arguments of the constructor's {@code super(…)}, or {@code ()}. */
           private static OutputBuilder superArguments(MethodInfo c, Qualification q) {
      -        io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation eci = KotlinMethodPrinter.explicitConstructorInvocation(c);
      +        ExplicitConstructorInvocation eci = KotlinMethodPrinter.explicitConstructorInvocation(c);
               if (eci == null || eci.parameterExpressions().isEmpty()) {
                   return new OutputBuilderImpl().add(SymbolEnum.OPEN_CLOSE_PARENTHESIS);
               }
      @@ -512,9 +525,9 @@ private static OutputBuilder superArguments(MethodInfo c, Qualification q) {
            */
           private OutputBuilder initBlock(MethodInfo c, Qualification q) {
               if (c.methodBody() == null) return null;
      -        List statements = c.methodBody().statements().stream()
      +        List statements = c.methodBody().statements().stream()
                       .filter(st -> !st.isSynthetic())
      -                .filter(st -> !(st instanceof io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation))
      +                .filter(st -> !(st instanceof ExplicitConstructorInvocation))
                       .filter(st -> !typeInfo.typeNature().isRecord() || !isComponentAssignment(st))
                       .toList();
               // the comments of what went into the header, super(…) and the components, open the block (#181)
      @@ -535,10 +548,10 @@ private OutputBuilder initBlock(MethodInfo c, Qualification q) {
               }
           }
       
      -    private static boolean isComponentAssignment(io.codelaser.maddi.cst.api.statement.Statement st) {
      -        return st instanceof io.codelaser.maddi.cst.api.statement.ExpressionAsStatement eas
      -               && eas.expression() instanceof io.codelaser.maddi.cst.api.expression.Assignment a
      -               && a.variableTarget() instanceof io.codelaser.maddi.cst.api.variable.FieldReference;
      +    private static boolean isComponentAssignment(Statement st) {
      +        return st instanceof ExpressionAsStatement eas
      +               && eas.expression() instanceof Assignment a
      +               && a.variableTarget() instanceof FieldReference;
           }
       
           /** {@code x()} of a record with component {@code x}: the data class's property {@code x} takes its place. */
      @@ -558,7 +571,7 @@ private static OutputBuilder annotationElement(MethodInfo m, Qualification q) {
                       .add(new TextImpl(KotlinNames.name(m.name()))).add(SymbolEnum.COLON_LABEL)
                       .add(new TextImpl(KotlinAnnotations.elementType(type, q)));
               if (m.methodBody() != null && m.methodBody().statements().size() == 1
      -            && m.methodBody().statements().getFirst() instanceof io.codelaser.maddi.cst.api.statement.ReturnStatement rs
      +            && m.methodBody().statements().getFirst() instanceof ReturnStatement rs
                   && rs.expression() != null) {
                   b.add(SpaceEnum.ONE).add(KotlinSymbols.assignment("=")).add(SpaceEnum.ONE)
                           .add(KotlinAnnotations.elementValue(rs.expression(), type.arrays() > 0, type, q));
      @@ -573,7 +586,7 @@ private static OutputBuilder annotationElement(MethodInfo m, Qualification q) {
            */
           private static boolean accessorsAsFunctions(TypeInfo record, List components) {
               return KotlinContext.translatingJava()
      -               && components.stream().anyMatch(f -> supertypeMethod(record, f.name(), new java.util.HashSet<>()));
      +               && components.stream().anyMatch(f -> supertypeMethod(record, f.name(), new HashSet<>()));
           }
       
           private static boolean supertypeMethod(TypeInfo typeInfo, String name, Set visited) {
      @@ -591,7 +604,7 @@ private static boolean supertypeMethod(TypeInfo typeInfo, String name, Set())) {
      +        if (supertypeMethod(record, component.name(), new HashSet<>())) {
                   b.add(KotlinKeyword.OVERRIDE).add(SpaceEnum.ONE);
               }
               String name = KotlinNames.name(component.name());
      @@ -622,7 +635,7 @@ private Stream companionObject(FieldPrinterFactory fieldPrinterFa
               typeInfo.subTypes().stream().flatMap(t -> t.fields().stream()).filter(KotlinTypePrinter::hoisted)
                       .forEach(f -> members.add(fieldPrinterFactory.create(f, formatter2).print(q, false)));
               typeInfo.methods().stream().filter(m -> !m.isSynthetic() && (m.isStatic() || m.isStaticInitializer()))
      -                .sorted(java.util.Comparator.comparing(MethodInfo::isStaticInitializer))
      +                .sorted(Comparator.comparing(MethodInfo::isStaticInitializer))
                       .forEach(m -> members.add(methodPrinterFactory.create(typeInfo, m, formatter2).print(q)));
               if (members.isEmpty()) return Stream.of();
               return Stream.of(new OutputBuilderImpl().add(KotlinKeyword.COMPANION).add(SpaceEnum.ONE).add(KotlinKeyword.OBJECT)
      @@ -673,7 +686,7 @@ static boolean inner(TypeInfo typeInfo) {
       
           /** Parsed from a {@code .kt} file: printed back in its own shape, not translated from Java's. */
           static boolean fromKotlinSource(TypeInfo typeInfo) {
      -        java.net.URI uri = typeInfo.compilationUnit().uri();
      +        URI uri = typeInfo.compilationUnit().uri();
               return uri != null && (uri.toString().endsWith(".kt") || uri.toString().endsWith(".kts"));
           }
       
      @@ -799,7 +812,7 @@ static ParameterizedType declared(ParameterizedType type) {
               ParameterizedType withArguments = declaredArguments(type);
               return type != null && type.wildcard() == null && type.annotations().stream()
                       .anyMatch(ae -> NullAnnotations.NULLABLE.contains(ae.typeInfo().simpleName()))
      -                ? withArguments.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE) : withArguments;
      +                ? withArguments.withNullable(NullableState.NULLABLE) : withArguments;
           }
       
           static ParameterizedType declaredArguments(ParameterizedType supertype) {
      @@ -811,7 +824,7 @@ static ParameterizedType declaredArguments(ParameterizedType supertype) {
                   // a bounded wildcard's too: ? super @Nullable V (guava's RangeMap.merge)
                   if ((a.wildcard() == null || !a.isUnboundWildcard()) && a.arrays() == 0 && inner.annotations().stream()
                           .anyMatch(ae -> NullAnnotations.NULLABLE.contains(ae.typeInfo().simpleName()))) {
      -                inner = inner.withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE);
      +                inner = inner.withNullable(NullableState.NULLABLE);
                   }
                   changed |= inner != a;
                   arguments.add(inner);
      @@ -919,7 +932,7 @@ private String innerOfAGenericOuter(Qualification q) {
               for (TypeInfo t = CstQueries.enclosing(parentType); t != null; t = CstQueries.enclosing(t)) chain.addFirst(t);
               if (chain.isEmpty() || chain.stream().allMatch(t -> t.typeParameters().isEmpty())) return null;
               // only where the generic outers enclose this class too: their type parameters are in scope as they are
      -        java.util.Set ownOuters = new java.util.HashSet<>();
      +        Set ownOuters = new HashSet<>();
               for (TypeInfo t = CstQueries.enclosing(typeInfo); t != null; t = CstQueries.enclosing(t)) ownOuters.add(t);
               if (chain.stream().anyMatch(t -> !t.typeParameters().isEmpty() && !ownOuters.contains(t))) return null;
               StringBuilder sb = new StringBuilder();
      @@ -969,7 +982,7 @@ static String simpleName(TypeInfo typeInfo) {
               List sameName = new ArrayList<>();
               method.typeInfo().methods().stream().filter(m -> m.name().equals(method.name()) && m.methodBody() != null)
                       .forEach(m -> m.methodBody().visit((Element e) -> {
      -                    if (e instanceof io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration ltd
      +                    if (e instanceof LocalTypeDeclaration ltd
                               && ltd.typeInfo().simpleName().equals(typeInfo.simpleName())
                               && ltd.typeInfo().enclosingMethod() == m) {
                               sameName.add(ltd.typeInfo());
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinValCopies.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinValCopies.java
      index 7d875ebcc2..8ac6a11e04 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinValCopies.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinValCopies.java
      @@ -16,12 +16,21 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.ArrayList;
      +import java.util.HashSet;
      +import java.util.LinkedHashMap;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.analysis.Value;
       import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.element.RecordPattern;
       import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.BinaryOperator;
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
       import io.codelaser.maddi.cst.api.expression.Expression;
      +import io.codelaser.maddi.cst.api.expression.InstanceOf;
       import io.codelaser.maddi.cst.api.expression.Lambda;
       import io.codelaser.maddi.cst.api.expression.MethodCall;
       import io.codelaser.maddi.cst.api.expression.NullConstant;
      @@ -41,18 +50,13 @@
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.api.variable.LocalVariable;
      +import io.codelaser.maddi.cst.api.variable.This;
       import io.codelaser.maddi.cst.api.variable.Variable;
       import io.codelaser.maddi.cst.impl.analysis.ModificationFacts;
       import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl;
       import io.codelaser.maddi.cst.impl.output.SpaceEnum;
       import io.codelaser.maddi.cst.impl.output.TextImpl;
      -
      -import java.util.ArrayList;
      -import java.util.HashSet;
      -import java.util.LinkedHashMap;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Set;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
       
       /**
        * A getter tested against null and then used again, {@code if (stat.getExprents() != null && !stat.getExprents().isEmpty())}:
      @@ -98,7 +102,7 @@ static List before(Statement statement, Qualification q) {
                       Expression other = KotlinExpressionPrinter.unwrap(bo.rhs()) instanceof NullConstant ? bo.lhs()
                               : KotlinExpressionPrinter.unwrap(bo.lhs()) instanceof NullConstant ? bo.rhs() : null;
                       if (other != null && KotlinExpressionPrinter.unwrap(other) instanceof MethodCall mc && eligible(mc, statement)) {
      -                    tested.putIfAbsent(java.util.List.of(mc.methodInfo(), KotlinSmartCasts.receiverKey(mc)), mc);
      +                    tested.putIfAbsent(List.of(mc.methodInfo(), KotlinSmartCasts.receiverKey(mc)), mc);
                       }
                   }
                   return true;
      @@ -161,14 +165,14 @@ static FieldInfo field(MethodInfo getter) {
                   return fieldValue.setter() || fieldValue.list() ? null : fieldValue.field();
               }
               if (getter.methodBody() == null || getter.isStatic()) return null;
      -        List statements = io.codelaser.maddi.cst.print.translate.CstQueries.own(getter.methodBody().statements());
      +        List statements = CstQueries.own(getter.methodBody().statements());
               if (statements.size() != 1 || !(statements.getFirst() instanceof ReturnStatement rs) || rs.expression() == null) {
                   return null;
               }
               if (KotlinExpressionPrinter.unwrap(rs.expression()) instanceof VariableExpression ve
      -            && ve.variable() instanceof io.codelaser.maddi.cst.api.variable.FieldReference fr && !fr.isStatic()
      +            && ve.variable() instanceof FieldReference fr && !fr.isStatic()
                   && (fr.scope() == null || KotlinExpressionPrinter.unwrap(fr.scope()) instanceof VariableExpression sv
      -                                      && sv.variable() instanceof io.codelaser.maddi.cst.api.variable.This)) {
      +                                      && sv.variable() instanceof This)) {
                   return fr.fieldInfo();
               }
               return null;
      @@ -245,9 +249,9 @@ private static boolean related(ParameterizedType type, TypeInfo receiver) {
           private static boolean declaredIn(Statement statement, Variable variable) {
               boolean[] found = {false};
               statement.visit((Element e) -> {
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.InstanceOf io && io.patternVariable() != null
      +            if (e instanceof InstanceOf io && io.patternVariable() != null
                       && binds(io.patternVariable(), variable)
      -                || e instanceof io.codelaser.maddi.cst.api.element.RecordPattern rp && binds(rp, variable)) {
      +                || e instanceof RecordPattern rp && binds(rp, variable)) {
                       found[0] = true;
                   }
                   if (e instanceof LocalVariableCreation lvc && lvc.localVariableStream().anyMatch(variable::equals)) found[0] = true;
      @@ -260,7 +264,7 @@ && binds(io.patternVariable(), variable)
               return found[0];
           }
       
      -    private static boolean binds(io.codelaser.maddi.cst.api.element.RecordPattern pattern, Variable variable) {
      +    private static boolean binds(RecordPattern pattern, Variable variable) {
               if (variable.equals(pattern.localVariable())) return true;
               return pattern.patterns() != null && pattern.patterns().stream().anyMatch(p -> binds(p, variable));
           }
      @@ -304,9 +308,9 @@ private static String freshName(FieldInfo field, MethodCall mc) {
               for (MethodInfo m : KotlinContext.state().methods()) {
                   if (m.methodBody() == null) continue;
                   ((Element) m.methodBody()).visit((Element e) -> {
      -                if (e instanceof VariableExpression ve && ve.variable() instanceof io.codelaser.maddi.cst.api.variable.FieldReference fr
      +                if (e instanceof VariableExpression ve && ve.variable() instanceof FieldReference fr
                           && (fr.scope() == null || fr.isStatic() || KotlinExpressionPrinter.unwrap(fr.scope()) instanceof VariableExpression sv
      -                                                               && sv.variable() instanceof io.codelaser.maddi.cst.api.variable.This)
      +                                                               && sv.variable() instanceof This)
                           && !(fr.fieldInfo() == field && KotlinSmartCasts.THIS.equals(KotlinSmartCasts.receiverKey(mc)))) {
                           taken.add(fr.fieldInfo().name());
                       }
      diff --git a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinWorld.java b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinWorld.java
      index aab4911b5a..f8c5e56be4 100644
      --- a/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinWorld.java
      +++ b/maddi-cst-print-kotlin/src/main/java/io/codelaser/maddi/cst/print/kotlin/KotlinWorld.java
      @@ -16,13 +16,7 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.api.element.Element;
      -import io.codelaser.maddi.cst.api.expression.MethodCall;
      -import io.codelaser.maddi.cst.api.expression.MethodReference;
      -import io.codelaser.maddi.cst.api.expression.VariableExpression;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.api.variable.FieldReference;
      -
      +import java.util.ArrayList;
       import java.util.Collection;
       import java.util.Collections;
       import java.util.IdentityHashMap;
      @@ -30,6 +24,16 @@
       import java.util.Map;
       import java.util.Set;
       import java.util.concurrent.ConcurrentHashMap;
      +import java.util.stream.Stream;
      +
      +import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.expression.Lambda;
      +import io.codelaser.maddi.cst.api.expression.MethodCall;
      +import io.codelaser.maddi.cst.api.expression.MethodReference;
      +import io.codelaser.maddi.cst.api.expression.VariableExpression;
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.variable.FieldReference;
       
       /**
        * The code that is translated together: the primary types whose Kotlin is compiled as one, main and test sources. A
      @@ -83,14 +87,14 @@ public List mentioning(Object member) {
            * A method of the code translated together overrides {@code method} ({@link #FILE}: of its compilation unit), so
            * a call of it may run another body.
            */
      -    public boolean overridden(io.codelaser.maddi.cst.api.info.MethodInfo method) {
      +    public boolean overridden(MethodInfo method) {
               if (isFile()) return overriddenIn(method, method.typeInfo().compilationUnit().types());
               return overridden.computeIfAbsent(method, m -> overriddenIn(method, types));
           }
       
      -    private static boolean overriddenIn(io.codelaser.maddi.cst.api.info.MethodInfo method,
      +    private static boolean overriddenIn(MethodInfo method,
                                               Collection primaryTypes) {
      -        return primaryTypes.stream().flatMap(t -> java.util.stream.Stream.concat(java.util.stream.Stream.of(t),
      +        return primaryTypes.stream().flatMap(t -> Stream.concat(Stream.of(t),
                               t.recursiveSubTypeStream()))
                       .flatMap(TypeInfo::constructorAndMethodStream)
                       .anyMatch(m -> m != method && m.overrides().contains(method));
      @@ -111,7 +115,7 @@ private static boolean implementedByEnumIn(TypeInfo anInterface, Collection> families;
      +    private volatile Map> families;
       
           /**
            * The override family of a method of the world: the methods that override it or that it overrides, transitively,
      @@ -120,7 +124,7 @@ private static boolean implementedByEnumIn(TypeInfo anInterface, Collection family(io.codelaser.maddi.cst.api.info.MethodInfo method) {
      +    public List family(MethodInfo method) {
               if (isFile()) return null;
               if (families == null) {
                   synchronized (this) {
      @@ -130,22 +134,22 @@ public List family(io.codelaser.madd
               return families.get(method);
           }
       
      -    private Map> computeFamilies() {
      -        Map parent = new IdentityHashMap<>();
      -        Set implementedByFunction = Collections.newSetFromMap(new IdentityHashMap<>());
      -        List methods = types.stream()
      +    private Map> computeFamilies() {
      +        Map parent = new IdentityHashMap<>();
      +        Set implementedByFunction = Collections.newSetFromMap(new IdentityHashMap<>());
      +        List methods = types.stream()
                       .flatMap(TypeInfo::recursiveSubTypeStreamIncludingLocal)
                       .flatMap(TypeInfo::constructorAndMethodStream)
                       .filter(m -> !m.isConstructor() && !m.isStatic()).toList();
      -        for (io.codelaser.maddi.cst.api.info.MethodInfo m : methods) {
      +        for (MethodInfo m : methods) {
                   parent.putIfAbsent(m, m);
      -            for (io.codelaser.maddi.cst.api.info.MethodInfo o : m.overrides()) {
      +            for (MethodInfo o : m.overrides()) {
                       parent.putIfAbsent(o, o);
                       union(parent, m, o);
                   }
               }
               types.forEach(t -> KotlinReadOnly.forEachBody(t, (method, body) -> body.visit((Element e) -> {
      -            TypeInfo functional = e instanceof io.codelaser.maddi.cst.api.expression.Lambda l
      +            TypeInfo functional = e instanceof Lambda l
                           ? l.concreteFunctionalType().typeInfo()
                           : e instanceof MethodReference mr ? mr.parameterizedType().typeInfo() : null;
                   if (functional != null && functional.singleAbstractMethod() != null) {
      @@ -153,38 +157,38 @@ private Map> byRoot = new IdentityHashMap<>();
      -        for (io.codelaser.maddi.cst.api.info.MethodInfo m : parent.keySet()) {
      -            byRoot.computeIfAbsent(find(parent, m), _ -> new java.util.ArrayList<>()).add(m);
      +        Map> byRoot = new IdentityHashMap<>();
      +        for (MethodInfo m : parent.keySet()) {
      +            byRoot.computeIfAbsent(find(parent, m), _ -> new ArrayList<>()).add(m);
               }
      -        Map> result = new IdentityHashMap<>();
      -        for (List family : byRoot.values()) {
      +        Map> result = new IdentityHashMap<>();
      +        for (List family : byRoot.values()) {
                   boolean complete = family.stream().allMatch(m -> types.contains(m.typeInfo().primaryType())
                                                                     && !implementedByFunction.contains(m));
      -            List members = complete ? List.copyOf(family) : null;
      -            for (io.codelaser.maddi.cst.api.info.MethodInfo m : family) {
      +            List members = complete ? List.copyOf(family) : null;
      +            for (MethodInfo m : family) {
                       if (members != null) result.put(m, members);
                   }
               }
               return result;
           }
       
      -    private static io.codelaser.maddi.cst.api.info.MethodInfo find(
      -            Map parent,
      -            io.codelaser.maddi.cst.api.info.MethodInfo m) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo root = m;
      +    private static MethodInfo find(
      +            Map parent,
      +            MethodInfo m) {
      +        MethodInfo root = m;
               while (parent.get(root) != root) root = parent.get(root);
               while (parent.get(m) != root) {
      -            io.codelaser.maddi.cst.api.info.MethodInfo next = parent.get(m);
      +            MethodInfo next = parent.get(m);
                   parent.put(m, root);
                   m = next;
               }
               return root;
           }
       
      -    private static void union(Map parent,
      -                              io.codelaser.maddi.cst.api.info.MethodInfo a, io.codelaser.maddi.cst.api.info.MethodInfo b) {
      -        io.codelaser.maddi.cst.api.info.MethodInfo ra = find(parent, a), rb = find(parent, b);
      +    private static void union(Map parent,
      +                              MethodInfo a, MethodInfo b) {
      +        MethodInfo ra = find(parent, a), rb = find(parent, b);
               if (ra != rb) parent.put(ra, rb);
           }
       
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/CommonJavaToKotlin.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/CommonJavaToKotlin.java
      index 9ff15bf9b1..a8097f6067 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/CommonJavaToKotlin.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/CommonJavaToKotlin.java
      @@ -17,24 +17,40 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.PrintMessage;
      +import java.io.File;
      +import java.io.IOException;
      +import java.net.URI;
      +import java.nio.file.Files;
      +import java.nio.file.Path;
      +import java.util.Arrays;
      +import java.util.Comparator;
      +import java.util.HashMap;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.function.Consumer;
      +import java.util.function.Function;
      +import java.util.stream.Collectors;
      +import java.util.zip.ZipFile;
      +
      +import org.junit.jupiter.api.Assertions;
      +import org.junit.jupiter.api.BeforeEach;
      +
      +import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.element.SourceSet;
      +import io.codelaser.maddi.cst.api.expression.MethodCall;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
      +import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       import io.codelaser.maddi.cst.impl.info.ImportComputerImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
       import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl;
      +import io.codelaser.maddi.cst.print.translate.PrintMessage;
       import io.codelaser.maddi.inspection.api.integration.JavaInspector;
       import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl;
       import io.codelaser.maddi.inspection.resource.InputConfigurationImpl;
       import io.codelaser.maddi.inspection.resource.SourceSetImpl;
      -import org.junit.jupiter.api.BeforeEach;
      -
      -import java.io.IOException;
      -import java.net.URI;
      -import java.util.Comparator;
      -import java.util.List;
      -import java.util.Map;
       
       /**
        * Java in, Kotlin out: parses a Java compilation unit with the openjdk front end and prints it with
      @@ -78,12 +94,12 @@ protected List> messages(String java, KotlinPrintO
           }
       
           /** As {@link #kotlin(String)}, after {@code beforePrint} has seen the parsed type (to set analysis results on it). */
      -    protected String kotlin(String java, java.util.function.Consumer beforePrint) {
      +    protected String kotlin(String java, Consumer beforePrint) {
               return kotlin(java, KotlinPrintOptions.DEFAULT, beforePrint);
           }
       
           /** As {@link #kotlin(String, java.util.function.Consumer)}, with print options. */
      -    protected String kotlin(String java, KotlinPrintOptions options, java.util.function.Consumer beforePrint) {
      +    protected String kotlin(String java, KotlinPrintOptions options, Consumer beforePrint) {
               KotlinCompilationUnitPrinter.Result result = translate(java, options, beforePrint);
               Formatter2Impl formatter = new Formatter2Impl(javaInspector.runtime(), new FormattingOptionsImpl.Builder().build());
               return formatter.write(result.output());
      @@ -96,7 +112,7 @@ protected String kotlin(String java, KotlinPrintOptions options, java.util.funct
           protected String kotlin(String java, Map others) {
               String pkg = java.replaceAll("(?s)^.*?package\\s+([\\w.]+)\\s*;.*$", "$1");
               String first = java.replaceAll("(?s)^.*?(?:class|interface|enum|record)\\s+(\\w+).*$", "$1");
      -        Map sources = new java.util.HashMap<>(others);
      +        Map sources = new HashMap<>(others);
               sources.put(pkg + "." + first, java);
               TypeInfo typeInfo = javaInspector.parse(sources, new JavaInspector.ParseOptions.Builder().build())
                       .parseResult().primaryTypes().stream().filter(t -> t.fullyQualifiedName().equals(pkg + "." + first))
      @@ -118,7 +134,7 @@ private KotlinCompilationUnitPrinter.Result translate(String java, KotlinPrintOp
            * the {@link KotlinWorld}: the code translated together.
            */
           protected String kotlinInWorld(String java, KotlinPrintOptions options,
      -                                   java.util.function.Consumer beforePrint) {
      +                                   Consumer beforePrint) {
               KotlinCompilationUnitPrinter.Result result = translate(java, types -> options.withWorld(KotlinWorld.of(types)),
                       beforePrint);
               Formatter2Impl formatter = new Formatter2Impl(javaInspector.runtime(), new FormattingOptionsImpl.Builder().build());
      @@ -126,13 +142,13 @@ protected String kotlinInWorld(String java, KotlinPrintOptions options,
           }
       
           private KotlinCompilationUnitPrinter.Result translate(String java, KotlinPrintOptions options,
      -                                                          java.util.function.Consumer beforePrint) {
      +                                                          Consumer beforePrint) {
               return translate(java, types -> options, beforePrint);
           }
       
           private KotlinCompilationUnitPrinter.Result translate(String java,
      -                                                          java.util.function.Function, KotlinPrintOptions> options,
      -                                                          java.util.function.Consumer beforePrint) {
      +                                                          Function, KotlinPrintOptions> options,
      +                                                          Consumer beforePrint) {
               // keyed by the first type's name, as parse(fqn, input) does; the other primary types of the file come along
               String pkg = java.replaceAll("(?s)^.*?package\\s+([\\w.]+)\\s*;.*$", "$1");
               String first = java.replaceAll("(?s)^.*?(?:class|interface|enum|record)\\s+(\\w+).*$", "$1");
      @@ -169,16 +185,16 @@ protected static void compiles(String kotlin) {
            */
           protected static void compiles(String kotlin, List libraryPackages) {
               String compilerClassPath = System.getProperty("maddi.test.kotlinCompilerClasspath");
      -        org.junit.jupiter.api.Assertions.assertTrue(compilerClassPath != null && !compilerClassPath.isBlank(),
      +        Assertions.assertTrue(compilerClassPath != null && !compilerClassPath.isBlank(),
                       "no -Dmaddi.test.kotlinCompilerClasspath: run this through Gradle");
      -        String stdlib = java.util.Arrays.stream(compilerClassPath.split(java.io.File.pathSeparator))
      -                .filter(e -> java.nio.file.Path.of(e).getFileName().toString().matches("kotlin-stdlib-[0-9.]+\\.jar"))
      +        String stdlib = Arrays.stream(compilerClassPath.split(File.pathSeparator))
      +                .filter(e -> Path.of(e).getFileName().toString().matches("kotlin-stdlib-[0-9.]+\\.jar"))
                       .findFirst().orElseThrow(() -> new AssertionError("no kotlin-stdlib in " + compilerClassPath));
               try {
      -            java.nio.file.Path dir = java.nio.file.Files.createTempDirectory("maddi-kotlinc");
      -            java.nio.file.Path source = dir.resolve("Snippet.kt");
      -            java.nio.file.Files.writeString(source, kotlin);
      -            java.nio.file.Path javaBin = java.nio.file.Path.of(System.getProperty("java.home"), "bin", "java");
      +            Path dir = Files.createTempDirectory("maddi-kotlinc");
      +            Path source = dir.resolve("Snippet.kt");
      +            Files.writeString(source, kotlin);
      +            Path javaBin = Path.of(System.getProperty("java.home"), "bin", "java");
                   Process process = new ProcessBuilder(javaBin.toString(), "-Xmx1g", "-cp", compilerClassPath,
                           "org.jetbrains.kotlin.cli.jvm.K2JVMCompiler", "-no-stdlib", "-no-reflect", "-jvm-target", "21",
                           "-classpath", stdlib + libraryJars(libraryPackages), "-d", dir.resolve("classes").toString(),
      @@ -186,8 +202,8 @@ protected static void compiles(String kotlin, List libraryPackages) {
                           .redirectErrorStream(true).start();
                   String output = new String(process.getInputStream().readAllBytes());
                   int exit = process.waitFor();
      -            String errors = output.lines().filter(l -> l.contains("error:")).collect(java.util.stream.Collectors.joining("\n"));
      -            org.junit.jupiter.api.Assertions.assertTrue(exit == 0 && errors.isEmpty(),
      +            String errors = output.lines().filter(l -> l.contains("error:")).collect(Collectors.joining("\n"));
      +            Assertions.assertTrue(exit == 0 && errors.isEmpty(),
                           () -> "kotlinc rejects the printed Kotlin:\n" + errors + "\n--- in ---\n" + kotlin);
               } catch (IOException | InterruptedException e) {
                   throw new AssertionError("kotlinc did not run", e);
      @@ -198,15 +214,15 @@ protected static void compiles(String kotlin, List libraryPackages) {
           private static String libraryJars(List packages) {
               StringBuilder sb = new StringBuilder();
               for (String pkg : packages) {
      -            String jar = java.util.Arrays.stream(System.getProperty("java.class.path").split(java.io.File.pathSeparator))
      +            String jar = Arrays.stream(System.getProperty("java.class.path").split(File.pathSeparator))
                           .filter(e -> e.endsWith(".jar")).filter(e -> {
      -                        try (java.util.zip.ZipFile zip = new java.util.zip.ZipFile(e)) {
      +                        try (ZipFile zip = new ZipFile(e)) {
                                   return zip.getEntry(pkg + "/") != null || zip.stream().anyMatch(z -> z.getName().startsWith(pkg + "/"));
                               } catch (IOException ex) {
                                   return false;
                               }
                           }).findFirst().orElseThrow(() -> new AssertionError("no jar with " + pkg + " on the test runtime"));
      -            sb.append(java.io.File.pathSeparator).append(jar);
      +            sb.append(File.pathSeparator).append(jar);
               }
               return sb.toString();
           }
      @@ -226,16 +242,16 @@ protected String kotlinWithLibrary(String java, KotlinPrintOptions options, Stri
           }
       
           protected static void notModified(TypeInfo type, String... methodNames) {
      -        java.util.Set names = java.util.Set.of(methodNames);
      -        io.codelaser.maddi.cst.print.kotlin.KotlinReadOnlyTestAccess.forEachBody(type, body -> body.visit(
      -                (io.codelaser.maddi.cst.api.element.Element e) -> {
      -                    if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc && mc.methodInfo() != null
      +        Set names = Set.of(methodNames);
      +        KotlinReadOnlyTestAccess.forEachBody(type, body -> body.visit(
      +                (Element e) -> {
      +                    if (e instanceof MethodCall mc && mc.methodInfo() != null
                               && mc.methodInfo().typeInfo().fullyQualifiedName().startsWith("java.")
                               && names.contains(mc.methodInfo().name())
                               && !mc.methodInfo().analysis().haveAnalyzedValueFor(
      -                            io.codelaser.maddi.cst.impl.analysis.PropertyImpl.NON_MODIFYING_METHOD)) {
      -                        mc.methodInfo().analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.NON_MODIFYING_METHOD,
      -                                io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE);
      +                            PropertyImpl.NON_MODIFYING_METHOD)) {
      +                        mc.methodInfo().analysis().set(PropertyImpl.NON_MODIFYING_METHOD,
      +                                ValueImpl.BoolImpl.TRUE);
                           }
                           return true;
                       }));
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/KotlinReadOnlyTestAccess.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/KotlinReadOnlyTestAccess.java
      index 8c8b83d3ce..7eef778090 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/KotlinReadOnlyTestAccess.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/KotlinReadOnlyTestAccess.java
      @@ -17,11 +17,11 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import java.util.function.Consumer;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       
      -import java.util.function.Consumer;
      -
       /** Every body of a type, its nested, anonymous and local types included, for the tests (KotlinReadOnly's walk). */
       public final class KotlinReadOnlyTestAccess {
           private KotlinReadOnlyTestAccess() {
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinCalls.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinCalls.java
      index cccfe797ce..eee659e290 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinCalls.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinCalls.java
      @@ -17,13 +17,17 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertFalse;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
       
      +import java.util.Map;
       import java.util.stream.Collectors;
       
      -import static org.junit.jupiter.api.Assertions.assertFalse;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       
       /**
        * Calls and types that Kotlin writes differently: varargs given an array, raw types, type arguments a constructor
      @@ -1568,7 +1572,7 @@ class Ranges {
                           static  int find(List> ranges, C c) { return Search.search(ranges, Range::lowerBound, c); }
                           static  Function, C> lower() { return Range::lowerBound; }
                       }
      -                """, java.util.Map.of("b.Fn", """
      +                """, Map.of("b.Fn", """
                       package b;
                       public interface Fn { T apply(F input); }
                       """, "b.Function", """
      @@ -1706,8 +1710,8 @@ static class Combined {
                           }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(
      -                p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun join(parts: Array)");
               contains(kotlin, "fun disallow(types: Array)");
               contains(kotlin, "fun makeHash(hashes: Array)");
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinComments.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinComments.java
      index 8641f34509..5b0429969d 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinComments.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinComments.java
      @@ -16,12 +16,12 @@
        */
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import org.junit.jupiter.api.DisplayName;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
       
       import java.util.stream.Collectors;
       
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      +import org.junit.jupiter.api.DisplayName;
      +import org.junit.jupiter.api.Test;
       
       /**
        * Java's comments come through: the licence header above {@code package}, a Javadoc as a KDoc, line and block comments
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinMessages.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinMessages.java
      index e2dc742d9b..4757f95a85 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinMessages.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinMessages.java
      @@ -18,15 +18,16 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.PrintMessage;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.*;
       
       import java.util.List;
       import java.util.Map;
       import java.util.stream.Collectors;
       
      -import static org.junit.jupiter.api.Assertions.*;
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.cst.print.translate.PrintMessage;
       
       /** The printer's messages: what the Kotlin does differently from the Java, loses, or could not translate. */
       public class TestJavaToKotlinMessages extends CommonJavaToKotlin {
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinNullability.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinNullability.java
      index c3a0d4ebdc..4fa60182f5 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinNullability.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinNullability.java
      @@ -17,24 +17,44 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import io.codelaser.maddi.cst.print.translate.PrintMessage;
      +import static org.junit.jupiter.api.Assertions.assertFalse;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
      +
      +import java.io.IOException;
      +import java.net.URI;
      +import java.util.ArrayList;
      +import java.util.List;
      +import java.util.Set;
      +import java.util.function.Consumer;
      +import java.util.stream.Collectors;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Assertions;
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.element.SourceSet;
      +import io.codelaser.maddi.cst.api.expression.Expression;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.ParameterInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.info.TypeParameter;
      +import io.codelaser.maddi.cst.api.statement.IfElseStatement;
      +import io.codelaser.maddi.cst.api.statement.Statement;
       import io.codelaser.maddi.cst.api.type.NullableState;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.LocalVariable;
      +import io.codelaser.maddi.cst.api.variable.Variable;
      +import io.codelaser.maddi.cst.impl.analysis.ModificationFacts;
       import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      -
      -import java.util.List;
      -import java.util.Set;
      -import java.util.stream.Collectors;
      -
      -import static org.junit.jupiter.api.Assertions.assertFalse;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      +import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      +import io.codelaser.maddi.cst.print.translate.PrintMessage;
      +import io.codelaser.maddi.inspection.api.integration.JavaInspector;
      +import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl;
      +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl;
      +import io.codelaser.maddi.inspection.resource.SourceSetImpl;
       
       /**
        * The printer's side of nullability: verdicts (here by hand, in production maddi-mod's NullabilityPass) put the
      @@ -59,17 +79,17 @@ private record ByName(Set nullable, Set checked) implements Null
       
               /** In a call that is an operand of {@code &&}, as {@code v.m()} in {@code v != null && v.m()}. */
               @Override
      -        public boolean nonNullAt(io.codelaser.maddi.cst.api.expression.Expression expression,
      -                                 io.codelaser.maddi.cst.api.variable.Variable variable) {
      +        public boolean nonNullAt(Expression expression,
      +                                 Variable variable) {
                   return checked.contains("&&" + variable.simpleName());
               }
       
               /** Known non-null in every statement but the one that checks it, as after {@code if (v == null) return;}. */
               @Override
      -        public boolean nonNullAt(io.codelaser.maddi.cst.api.statement.Statement statement,
      -                                 io.codelaser.maddi.cst.api.variable.Variable variable) {
      +        public boolean nonNullAt(Statement statement,
      +                                 Variable variable) {
                   return checked.contains(variable.simpleName())
      -                   && !(statement instanceof io.codelaser.maddi.cst.api.statement.IfElseStatement);
      +                   && !(statement instanceof IfElseStatement);
               }
       
               /**
      @@ -85,15 +105,15 @@ private ParameterizedType verdict(String name, ParameterizedType type) {
                   for (int i = 0; i < 2; i++) {
                       if (!nullable.contains(name + (i == 0 ? "<>" : "<,>"))) continue;
                       ParameterizedType generic = verdict != null ? verdict : type;
      -                java.util.List arguments = new java.util.ArrayList<>(generic.parameters());
      +                List arguments = new ArrayList<>(generic.parameters());
                       arguments.set(i, arguments.get(i).withNullable(NullableState.NULLABLE));
                       verdict = generic.withParameters(arguments);
                   }
                   if (nullable.contains(name + "<<>>")) {
                       ParameterizedType generic = verdict != null ? verdict : type;
      -                java.util.List arguments = new java.util.ArrayList<>(generic.parameters());
      +                List arguments = new ArrayList<>(generic.parameters());
                       ParameterizedType inner = arguments.getFirst();
      -                java.util.List innerArguments = new java.util.ArrayList<>(inner.parameters());
      +                List innerArguments = new ArrayList<>(inner.parameters());
                       innerArguments.set(0, innerArguments.getFirst().withNullable(NullableState.NULLABLE));
                       arguments.set(0, inner.withParameters(innerArguments));
                       verdict = generic.withParameters(arguments);
      @@ -120,7 +140,7 @@ public ParameterizedType parameter(ParameterInfo parameterInfo) {
               @Override
               public ParameterizedType reassignedParameter(ParameterInfo parameterInfo) {
                   return checked.contains("=" + parameterInfo.name())
      -                    ? parameterInfo.parameterizedType().withNullable(io.codelaser.maddi.cst.api.type.NullableState.NULLABLE)
      +                    ? parameterInfo.parameterizedType().withNullable(NullableState.NULLABLE)
                           : null;
               }
       
      @@ -141,12 +161,12 @@ public ParameterizedType returnType(MethodInfo methodInfo) {
       
               /** {@code "super:C"}: class C's superclass with a nullable first type argument. */
               @Override
      -        public ParameterizedType parentClass(io.codelaser.maddi.cst.api.info.TypeInfo typeInfo) {
      +        public ParameterizedType parentClass(TypeInfo typeInfo) {
                   ParameterizedType parent = typeInfo.parentClass();
                   if (!nullable.contains("super:" + typeInfo.simpleName()) || parent == null || parent.parameters().isEmpty()) {
                       return null;
                   }
      -            java.util.List arguments = new java.util.ArrayList<>(parent.parameters());
      +            List arguments = new ArrayList<>(parent.parameters());
                   arguments.set(0, arguments.getFirst().withNullable(NullableState.NULLABLE));
                   return parent.withParameters(arguments);
               }
      @@ -159,7 +179,7 @@ public boolean assertedAtDeclaration(MethodInfo method, Element declaration, Loc
       
               /** {@code ""} in checked: class type parameter K is non-null. */
               @Override
      -        public boolean nonNullTypeParameter(io.codelaser.maddi.cst.api.info.TypeParameter typeParameter) {
      +        public boolean nonNullTypeParameter(TypeParameter typeParameter) {
                   return checked.contains("<" + typeParameter.simpleName() + ">");
               }
       
      @@ -332,7 +352,7 @@ ArgumentListBuilder add(String a, boolean mask) {
            * {@code Strings.repeat(string, count)} stands in for the library.
            */
           @Test
      -    public void nullableIntoNullMarkedLibraryParameter() throws java.io.IOException {
      +    public void nullableIntoNullMarkedLibraryParameter() throws IOException {
               String kotlin = kotlinWithLibrary("""
                       package a;
                       import com.google.common.base.Strings;
      @@ -350,7 +370,7 @@ class Roles {
            * a {@code MutableList}: asserted at the add. Guava's {@code @Nullable String emptyToNull(…)} stands in.
            */
           @Test
      -    public void nullableLibraryResultIntoNonNullSlot() throws java.io.IOException {
      +    public void nullableLibraryResultIntoNonNullSlot() throws IOException {
               String kotlin = kotlinWithLibrary("""
                       package a;
                       import com.google.common.base.Strings;
      @@ -881,7 +901,7 @@ public void preconditionNonNull() {
               List> messages = messages(PRECONDITION.replace("class P {", "class P2 {"), options);
               List> preconditions = messages.stream()
                       .filter(m -> m.code() == KotlinPrintCode.PRECONDITION_NON_NULL).toList();
      -        org.junit.jupiter.api.Assertions.assertEquals(List.of(3, 5), preconditions.stream().map(PrintMessage::line).distinct().sorted().toList(),
      +        Assertions.assertEquals(List.of(3, 5), preconditions.stream().map(PrintMessage::line).distinct().sorted().toList(),
                       messages.toString());
               assertTrue(preconditions.stream().allMatch(m -> m.severity() == PrintMessage.Severity.BEHAVIOUR_CHANGE
                       && m.detail().equals("the NPE moves from visit's body to the call")), preconditions.toString());
      @@ -2571,7 +2591,7 @@ public void nullRejectionReplaced() {
                       new KotlinPrintOptions(new ByName(Set.of(), Set.of("%text")), KotlinPrintOptions.NullCheck.ASSERT));
               List> replaced = messages.stream()
                       .filter(m -> m.code() == KotlinPrintCode.NULL_REJECTION_REPLACED).toList();
      -        org.junit.jupiter.api.Assertions.assertEquals(1, replaced.size(), messages.toString());
      +        Assertions.assertEquals(1, replaced.size(), messages.toString());
               assertTrue(replaced.getFirst().severity() == PrintMessage.Severity.BEHAVIOUR_CHANGE
                          && replaced.getFirst().line() == 4, replaced.toString());
               contains(kotlin(REJECTS_NULL.replace("class Doc", "class Doc2"),
      @@ -3018,12 +3038,12 @@ static int size() {
            * infer X from {@code null!!}, a Nothing, and nothing else fixes it: the call writes Java's X, Object.
            */
           @Test
      -    public void testSourceNullIntoTypeVariableSlotAndGenericType() throws java.io.IOException {
      -        javaInspector = new io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl();
      -        io.codelaser.maddi.cst.api.element.SourceSet testSourceSet = new io.codelaser.maddi.inspection.resource.SourceSetImpl.Builder()
      -                .setName(io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL)
      -                .setUri(java.net.URI.create("file:/")).setTest(true).build();
      -        javaInspector.initialize(new io.codelaser.maddi.inspection.resource.InputConfigurationImpl.Builder()
      +    public void testSourceNullIntoTypeVariableSlotAndGenericType() throws IOException {
      +        javaInspector = new JavaInspectorImpl();
      +        SourceSet testSourceSet = new SourceSetImpl.Builder()
      +                .setName(JavaInspector.TEST_PROTOCOL)
      +                .setUri(URI.create("file:/")).setTest(true).build();
      +        javaInspector.initialize(new InputConfigurationImpl.Builder()
                       .addSourceSets(testSourceSet).addClassPath("jmod:java.base").build());
               javaInspector.onlyPreload();
               KotlinPrintOptions options = new KotlinPrintOptions(new ByName(Set.of()), KotlinPrintOptions.NullCheck.ASSERT);
      @@ -3088,7 +3108,7 @@ String main(List args) {
            * its argument, {@code UnmodifiableIterator}: the null filter is Java's unchecked narrowing, cast here.
            */
           @Test
      -    public void libraryNullFilterIntoNonNullElements() throws java.io.IOException {
      +    public void libraryNullFilterIntoNonNullElements() throws IOException {
               String kotlin = kotlinWithLibrary("""
                       package a.b;
                       import java.util.Iterator;
      @@ -3352,10 +3372,10 @@ class C {
                       """;
               KotlinPrintOptions options = new KotlinPrintOptions(new ByName(Set.of("items", "name", "label", "getItems()", "getName()", "next()")),
                       KotlinPrintOptions.NullCheck.ASSERT);
      -        java.util.function.Consumer nonModifying = type -> type.methodStream()
      +        Consumer nonModifying = type -> type.methodStream()
                       .filter(m -> m.name().startsWith("get"))
      -                .forEach(m -> m.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.NON_MODIFYING_METHOD,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE));
      +                .forEach(m -> m.analysis().set(PropertyImpl.NON_MODIFYING_METHOD,
      +                        ValueImpl.BoolImpl.TRUE));
               String kotlin = kotlin(source, options, nonModifying);
               contains(kotlin, "!getItems().isNullOrEmpty()");
               contains(kotlin, "other.getItems().isNullOrEmpty()");
      @@ -3368,7 +3388,7 @@ class C {
               contains(kotlin, "next() != null && !next()!!.isEmpty()");
               compiles(kotlin);
               // without the modification analysis, Java's two calls (the same class in a package of its own: a second parse)
      -        String without = kotlin(source.replace("package a.b;", "package a.c;"), options.withModification(io.codelaser.maddi.cst.impl.analysis.ModificationFacts.NONE),
      +        String without = kotlin(source.replace("package a.b;", "package a.c;"), options.withModification(ModificationFacts.NONE),
                       nonModifying);
               contains(without, "getName() != null && getName()!!.startsWith(n)");
               contains(without, "label?.contains(n) == true");
      @@ -3636,10 +3656,10 @@ static Runnable later(S stat) {
               KotlinPrintOptions options = new KotlinPrintOptions(new ByName(Set.of("exprents", "label", "getExprents()",
                       "getLabel()", "later()")), KotlinPrintOptions.NullCheck.ASSERT);
               String kotlin = kotlin(source, options, type -> type.recursiveSubTypeStream()
      -                .flatMap(io.codelaser.maddi.cst.api.info.TypeInfo::methodStream)
      +                .flatMap(TypeInfo::methodStream)
                       .filter(m -> m.name().startsWith("get"))
      -                .forEach(m -> m.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.NON_MODIFYING_METHOD,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE)));
      +                .forEach(m -> m.analysis().set(PropertyImpl.NON_MODIFYING_METHOD,
      +                        ValueImpl.BoolImpl.TRUE)));
               contains(kotlin, "val exprents = stat.getExprents()\nif (exprents != null)");
               contains(kotlin, "for (e in exprents)");
               contains(kotlin, "val label = stat.getLabel()\nif (label != null)");
      @@ -3693,10 +3713,10 @@ static int indented(N n, int k) {
               KotlinPrintOptions options = new KotlinPrintOptions(new ByName(Set.of("constructor", "value", "getConstructor()",
                       "getValue()")), KotlinPrintOptions.NullCheck.ASSERT);
               String kotlin = kotlin(source, options, type -> type.recursiveSubTypeStream()
      -                .flatMap(io.codelaser.maddi.cst.api.info.TypeInfo::methodStream)
      +                .flatMap(TypeInfo::methodStream)
                       .filter(m -> !m.name().startsWith("set"))
      -                .forEach(m -> m.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.NON_MODIFYING_METHOD,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE)));
      +                .forEach(m -> m.analysis().set(PropertyImpl.NON_MODIFYING_METHOD,
      +                        ValueImpl.BoolImpl.TRUE)));
               assertTrue(kotlin.indexOf("val constructor") > kotlin.indexOf("if (expected is X"), kotlin);
               // exactly: this file's contains() ignores indentation
               assertTrue(kotlin.contains("""
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinStructure.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinStructure.java
      index f9b13947f0..e9cb6781d7 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinStructure.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinStructure.java
      @@ -17,16 +17,27 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import org.intellij.lang.annotations.Language;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import org.junit.jupiter.api.Test;
      -
      -import java.util.stream.Collectors;
      -
       import static org.junit.jupiter.api.Assertions.assertEquals;
       import static org.junit.jupiter.api.Assertions.assertFalse;
       import static org.junit.jupiter.api.Assertions.assertTrue;
       
      +import java.io.IOException;
      +import java.time.Duration;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.stream.Collectors;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Assertions;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.expression.MethodCall;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.impl.analysis.ModificationFacts;
      +import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      +
       /**
        * Step 3 of the Java-to-Kotlin translation: where Java and Kotlin put things differently. Statics, constructors,
        * records, nested classes, pattern variables, the JDK types Kotlin maps to its own, functional interfaces, and the
      @@ -853,13 +864,13 @@ public void readOnlyParameters() {
                       .forEach(m -> m.parameters().forEach(p -> {
                           if (m.name().equals("touch")) {
                               // deep: modified through its elements; structural: the list itself is not
      -                        p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                                io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.FALSE);
      -                        p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.STRUCTURALLY_UNMODIFIED_PARAMETER,
      -                                io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE);
      +                        p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                                ValueImpl.BoolImpl.FALSE);
      +                        p.analysis().set(PropertyImpl.STRUCTURALLY_UNMODIFIED_PARAMETER,
      +                                ValueImpl.BoolImpl.TRUE);
                           } else {
      -                        p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                                io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE);
      +                        p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                                ValueImpl.BoolImpl.TRUE);
                           }
                       })));
               contains(kotlin, "fun count(items: List): Int");
      @@ -916,8 +927,8 @@ private static String optionalString(Map map, String field) {
           @Test
           public void readOnlyPassedOn() {
               String kotlin = kotlin(READ_ONLY_PASSED_ON, type -> type.methods().forEach(m -> m.parameters().forEach(
      -                p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun fromMap(map: Map): String");
               contains(kotlin, "fun isRepresentable(map: Map, allowedKeys: Set): Boolean");
               // ThreadLocal>.set(value: T): the receiver's T is the mutable type
      @@ -941,10 +952,10 @@ final class C {
                           static int element(List list, Function f) { return f.apply(list.get(0)); }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(p -> {
      -            p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                    io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE);
      -            p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.STRUCTURALLY_UNMODIFIED_PARAMETER,
      -                    io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE);
      +            p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                    ValueImpl.BoolImpl.TRUE);
      +            p.analysis().set(PropertyImpl.STRUCTURALLY_UNMODIFIED_PARAMETER,
      +                    ValueImpl.BoolImpl.TRUE);
               })));
               contains(kotlin, "fun whole(list: MutableList,");
               contains(kotlin, "fun element(list: List,");
      @@ -971,8 +982,8 @@ B addAll(Iterable values) {
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().stream()
                       .filter(p -> p.parameterizedType().typeInfo().simpleName().equals("Collection"))
      -                .forEach(p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                .forEach(p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun addAll(values: MutableCollection)");
               compiles(kotlin);
           }
      @@ -997,8 +1008,8 @@ B addAll(Iterable values) {
                           B addAll(Collection values) { n += values.size(); return this; }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(p -> p.analysis().set(
      -                io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                PropertyImpl.UNMODIFIED_PARAMETER,
      +                ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun addAll(values: MutableCollection)");
               compiles(kotlin);
           }
      @@ -1041,8 +1052,8 @@ private static int fillArray(Iterable elements, int n) {
                           }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(
      -                p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun toArrayImpl(c: MutableCollection<*>)");
               compiles(kotlin);
           }
      @@ -1068,8 +1079,8 @@ private static  Iterator sequence(Iterator... iterators) {
                           }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(
      -                p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun both(a: MutableCollection, b: MutableCollection)");
               compiles(kotlin);
           }
      @@ -1113,8 +1124,8 @@ static  Iterator union(Set set1) {
                           }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(
      -                p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "union(set1: Set)");
               contains(kotlin, "val itr1: Iterator = set1.iterator()");
               compiles(kotlin);
      @@ -1138,8 +1149,8 @@ static  Supplier> removeOnly(Set set) {
                           }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(
      -                p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "removeOnly(set: MutableSet)");
               compiles(kotlin);
           }
      @@ -1171,10 +1182,10 @@ static  T[] newArray(T[] reference, int length) {
           @Test
           public void readOnlyNeedsTheModificationFacts() {
               String kotlin = kotlin(READ_ONLY_PASSED_ON.replace("class J", "class J2"),
      -                KotlinPrintOptions.DEFAULT.withModification(io.codelaser.maddi.cst.impl.analysis.ModificationFacts.NONE),
      +                KotlinPrintOptions.DEFAULT.withModification(ModificationFacts.NONE),
                       type -> type.methods().forEach(m -> m.parameters().forEach(
      -                        p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                                io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                        p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                                ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun fromMap(map: MutableMap): String");
               contains(kotlin, "fun isRepresentable(map: MutableMap, allowedKeys: MutableSet): Boolean");
           }
      @@ -1710,12 +1721,12 @@ public void readOnlyFields() {
               String kotlin = kotlin(READ_ONLY_FIELDS, type -> {
                   type.fields().stream()
                           .filter(f -> !f.name().equals("added"))
      -                    .forEach(f -> f.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.STRUCTURALLY_UNMODIFIED_FIELD,
      -                            io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE));
      +                    .forEach(f -> f.analysis().set(PropertyImpl.STRUCTURALLY_UNMODIFIED_FIELD,
      +                            ValueImpl.BoolImpl.TRUE));
                   // what the analysis computes for same(T): it returns its argument
                   type.methods().stream().filter(m -> m.name().equals("same"))
      -                    .forEach(m -> m.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.IDENTITY_METHOD,
      -                            io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE));
      +                    .forEach(m -> m.analysis().set(PropertyImpl.IDENTITY_METHOD,
      +                            ValueImpl.BoolImpl.TRUE));
                   notModified(type, "size", "getOrDefault");
               });
               contains(kotlin, "private val names: List");
      @@ -1764,8 +1775,8 @@ int count(Box b) {
                   """;
       
           private static void unmodifiedFields(TypeInfo type) {
      -        type.fields().forEach(f -> f.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.STRUCTURALLY_UNMODIFIED_FIELD,
      -                io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE));
      +        type.fields().forEach(f -> f.analysis().set(PropertyImpl.STRUCTURALLY_UNMODIFIED_FIELD,
      +                ValueImpl.BoolImpl.TRUE));
               notModified(type, "size");
           }
       
      @@ -1887,12 +1898,12 @@ final class Born {
           @Test
           public void bornImmutable() {
               String kotlin = kotlin(BORN_IMMUTABLE, type -> {
      -            KotlinReadOnlyTestAccess.forEachBody(type, body -> body.visit((io.codelaser.maddi.cst.api.element.Element e) -> {
      -                if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc && mc.methodInfo().isStatic()
      +            KotlinReadOnlyTestAccess.forEachBody(type, body -> body.visit((Element e) -> {
      +                if (e instanceof MethodCall mc && mc.methodInfo().isStatic()
                           && mc.methodInfo().typeInfo().fullyQualifiedName().startsWith("java.util.")
      -                    && !mc.methodInfo().analysis().haveAnalyzedValueFor(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.IMMUTABLE_METHOD)) {
      -                    mc.methodInfo().analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.IMMUTABLE_METHOD,
      -                            io.codelaser.maddi.cst.impl.analysis.ValueImpl.ImmutableImpl.IMMUTABLE_HC);
      +                    && !mc.methodInfo().analysis().haveAnalyzedValueFor(PropertyImpl.IMMUTABLE_METHOD)) {
      +                    mc.methodInfo().analysis().set(PropertyImpl.IMMUTABLE_METHOD,
      +                            ValueImpl.ImmutableImpl.IMMUTABLE_HC);
                       }
                       return true;
                   }));
      @@ -1940,13 +1951,13 @@ final class Viewed {
           @Test
           public void unmodifiableView() {
               String kotlin = kotlin(UNMODIFIABLE_VIEW, type -> {
      -            KotlinReadOnlyTestAccess.forEachBody(type, body -> body.visit((io.codelaser.maddi.cst.api.element.Element e) -> {
      -                if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc && mc.methodInfo().isStatic()
      +            KotlinReadOnlyTestAccess.forEachBody(type, body -> body.visit((Element e) -> {
      +                if (e instanceof MethodCall mc && mc.methodInfo().isStatic()
                           && "java.util.Collections".equals(mc.methodInfo().typeInfo().fullyQualifiedName())
                           && mc.methodInfo().name().startsWith("unmodifiable")
      -                    && !mc.methodInfo().analysis().haveAnalyzedValueFor(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIABLE_VIEW_METHOD)) {
      -                    mc.methodInfo().analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIABLE_VIEW_METHOD,
      -                            io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE);
      +                    && !mc.methodInfo().analysis().haveAnalyzedValueFor(PropertyImpl.UNMODIFIABLE_VIEW_METHOD)) {
      +                    mc.methodInfo().analysis().set(PropertyImpl.UNMODIFIABLE_VIEW_METHOD,
      +                            ValueImpl.BoolImpl.TRUE);
                       }
                       return true;
                   }));
      @@ -2000,8 +2011,8 @@ public void familyRule() {
               String world = kotlinInWorld(FAMILY, KotlinPrintOptions.DEFAULT, type -> {
                   type.recursiveSubTypeStream().flatMap(TypeInfo::methodStream).forEach(m -> m.parameters().forEach(p -> {
                       boolean adds = m.name().equals("put");
      -                p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.STRUCTURALLY_UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.from(!adds));
      +                p.analysis().set(PropertyImpl.STRUCTURALLY_UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.from(!adds));
                   }));
                   type.recursiveSubTypeStream().forEach(t -> notModified(t, "size"));
               });
      @@ -2013,8 +2024,8 @@ public void familyRule() {
       
               String alone = kotlin(FAMILY.replace("class Family", "class Alone"), KotlinPrintOptions.DEFAULT, type -> {
                   type.recursiveSubTypeStream().flatMap(TypeInfo::methodStream).forEach(m -> m.parameters().forEach(p ->
      -                    p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.STRUCTURALLY_UNMODIFIED_PARAMETER,
      -                            io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE)));
      +                    p.analysis().set(PropertyImpl.STRUCTURALLY_UNMODIFIED_PARAMETER,
      +                            ValueImpl.BoolImpl.TRUE)));
                   type.recursiveSubTypeStream().forEach(t -> notModified(t, "size"));
               });
               // the printer alone sees no family: open methods keep Java's mutable type
      @@ -2060,12 +2071,12 @@ static void grow(Memory m) {
           @Test
           public void familyResults() {
               String world = kotlinInWorld(FAMILY_RESULTS, KotlinPrintOptions.DEFAULT, type -> {
      -            KotlinReadOnlyTestAccess.forEachBody(type, body -> body.visit((io.codelaser.maddi.cst.api.element.Element e) -> {
      -                if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc && mc.methodInfo().isStatic()
      +            KotlinReadOnlyTestAccess.forEachBody(type, body -> body.visit((Element e) -> {
      +                if (e instanceof MethodCall mc && mc.methodInfo().isStatic()
                           && mc.methodInfo().typeInfo().fullyQualifiedName().startsWith("java.util.")
      -                    && !mc.methodInfo().analysis().haveAnalyzedValueFor(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.IMMUTABLE_METHOD)) {
      -                    mc.methodInfo().analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.IMMUTABLE_METHOD,
      -                            io.codelaser.maddi.cst.impl.analysis.ValueImpl.ImmutableImpl.IMMUTABLE_HC);
      +                    && !mc.methodInfo().analysis().haveAnalyzedValueFor(PropertyImpl.IMMUTABLE_METHOD)) {
      +                    mc.methodInfo().analysis().set(PropertyImpl.IMMUTABLE_METHOD,
      +                            ValueImpl.ImmutableImpl.IMMUTABLE_HC);
                       }
                       return true;
                   }));
      @@ -2101,11 +2112,11 @@ public void chainOfFieldsDecidedOnce() {
                   if (i + 2 < n) source.append("        f").append(i + 2).append(" = f").append(i).append(";\n");
               }
               source.append("    }\n    int size() { return f").append(n - 1).append(".size(); }\n}\n");
      -        String kotlin = org.junit.jupiter.api.Assertions.assertTimeoutPreemptively(java.time.Duration.ofSeconds(60),
      +        String kotlin = Assertions.assertTimeoutPreemptively(Duration.ofSeconds(60),
                       () -> kotlinInWorld(source.toString(), KotlinPrintOptions.DEFAULT, type -> {
                           type.fields().forEach(f -> f.analysis().set(
      -                            io.codelaser.maddi.cst.impl.analysis.PropertyImpl.STRUCTURALLY_UNMODIFIED_FIELD,
      -                            io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE));
      +                            PropertyImpl.STRUCTURALLY_UNMODIFIED_FIELD,
      +                            ValueImpl.BoolImpl.TRUE));
                           notModified(type, "size");
                       }));
               contains(kotlin, "private val f0: List");
      @@ -3126,8 +3137,8 @@ static  Filtered filter(Collection unfiltered) {
                           static int size(Collection c) { checkNotNull(c); return checkNotNull(c).size(); }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(
      -                p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun  filter(unfiltered: MutableCollection)");
               contains(kotlin, "fun size(c: Collection): Int");
           }
      @@ -3156,8 +3167,8 @@ static int count(Map map, String k) {
                           }
                       }
                       """, type -> type.methods().forEach(m -> m.parameters().forEach(
      -                p -> p.analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.UNMODIFIED_PARAMETER,
      -                        io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE))));
      +                p -> p.analysis().set(PropertyImpl.UNMODIFIED_PARAMETER,
      +                        ValueImpl.BoolImpl.TRUE))));
               contains(kotlin, "fun removeAll(map: MutableMap");
               contains(kotlin, "fun count(map: Map, k: String): Int");
               compiles(kotlin);
      @@ -3205,8 +3216,8 @@ static Object[] copy(Object... array) {
                           }
                       }
                       """, type -> type.fields().forEach(f -> f.analysis().set(
      -                io.codelaser.maddi.cst.impl.analysis.PropertyImpl.STRUCTURALLY_UNMODIFIED_FIELD,
      -                io.codelaser.maddi.cst.impl.analysis.ValueImpl.BoolImpl.TRUE)));
      +                PropertyImpl.STRUCTURALLY_UNMODIFIED_FIELD,
      +                ValueImpl.BoolImpl.TRUE)));
               contains(kotlin, "MutableMap");
               contains(kotlin, "unfiltered: MutableMap");
               contains(kotlin, "as Array>");
      @@ -3441,7 +3452,7 @@ String install() {
                               return center + Jenkins.getAuthentication2();
                           }
                       }
      -                """, java.util.Map.of("jenkins.model.Jenkins", """
      +                """, Map.of("jenkins.model.Jenkins", """
                       package jenkins.model;
                       public class Jenkins {
                           public static Jenkins get() { return new Jenkins(); }
      @@ -3522,7 +3533,7 @@ class Glob {
            * source set must then be named after (maddi test gate, 2026-10-23).
            */
           @Test
      -    public void privateMethodSourceFactoryIsJvmStatic() throws java.io.IOException {
      +    public void privateMethodSourceFactoryIsJvmStatic() throws IOException {
               String kotlin = kotlinWithLibrary("""
                       package a;
                       import java.util.stream.Stream;
      @@ -3641,7 +3652,7 @@ class Parts {
                       }
                       """);
               contains(kotlin, "as MutableIterator>)");
      -        compiles(kotlin, java.util.List.of("org/jspecify/annotations"));
      +        compiles(kotlin, List.of("org/jspecify/annotations"));
           }
       
           /**
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinTranslation.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinTranslation.java
      index e790a324bf..01288dae81 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinTranslation.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestJavaToKotlinTranslation.java
      @@ -17,13 +17,15 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertFalse;
       import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertFalse;
       import static org.junit.jupiter.api.Assertions.assertTrue;
       
      +import java.util.stream.Collectors;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
       /**
        * The Java forms that have no one-to-one Kotlin counterpart, one test per translation rule. The corpus-scale check,
        * which also compiles the output, is maddi-run-openjdk's TestJavaToKotlinFernflower.
      @@ -36,7 +38,7 @@ private static void contains(String kotlin, String expected) {
           }
       
           private static String strip(String s) {
      -        return s.lines().map(String::strip).collect(java.util.stream.Collectors.joining("\n"));
      +        return s.lines().map(String::strip).collect(Collectors.joining("\n"));
           }
       
           @Language("java")
      diff --git a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestStatementSeparation.java b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestStatementSeparation.java
      index 6eabc22650..653afa649a 100644
      --- a/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestStatementSeparation.java
      +++ b/maddi-cst-print-kotlin/src/test/java/io/codelaser/maddi/cst/print/kotlin/TestStatementSeparation.java
      @@ -17,11 +17,11 @@
       
       package io.codelaser.maddi.cst.print.kotlin;
       
      +import static org.junit.jupiter.api.Assertions.assertTrue;
      +
       import org.intellij.lang.annotations.Language;
       import org.junit.jupiter.api.Test;
       
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      -
       /**
        * Kotlin has no {@code ;}, so statements must end up on lines of their own, also in a block the formatter would
        * otherwise put on one line. It did not: {@code { map.put(key, size()) add(element)lstKeys.add(key) }} (fernflower's
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBodyPrinter.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBodyPrinter.java
      index 164ee5229b..f9851446dd 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBodyPrinter.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBodyPrinter.java
      @@ -17,6 +17,19 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.ArrayDeque;
      +import java.util.ArrayList;
      +import java.util.Deque;
      +import java.util.HashMap;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.function.Function;
      +import java.util.regex.Matcher;
      +import java.util.regex.Pattern;
      +import java.util.stream.Collectors;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.expression.*;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
      @@ -34,16 +47,6 @@
       import io.codelaser.maddi.cst.print.rust.RustFacts.Receiver;
       import io.codelaser.maddi.cst.print.translate.CstQueries;
       
      -import java.util.ArrayDeque;
      -import java.util.ArrayList;
      -import java.util.Deque;
      -import java.util.HashMap;
      -import java.util.HashSet;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Set;
      -import java.util.stream.Collectors;
      -
       /**
        * A method body as Rust statements. Every use of a value is adapted to what its destination expects, as the facts
        * say: an argument for a {@code &T} parameter is borrowed, one for {@code &mut T} borrowed exclusively, one for a
      @@ -96,12 +99,12 @@ record Printed(String text, Held held, boolean nullable) {
           /** The lambda being printed is Optional.orElseGet's supplier: its result is a value of its own, copied. */
           private boolean copiedResult;
           /** The switch expression being printed is a method's result: each arm's value is converted as the result is. */
      -    private java.util.function.Function armResult;
      +    private Function armResult;
           /** The labeled blocks of the switch arms being printed, innermost first: a yield is a break out of one. */
           private final Deque yieldTargets = new ArrayDeque<>();
           private int yieldCount;
       
      -    private record YieldTarget(String label, java.util.function.Function value) {
      +    private record YieldTarget(String label, Function value) {
           }
           /** Variables printed as another name: in {@code eq}, Java's parameter and its cast or pattern are {@code other}. */
           private final Map aliases = new HashMap<>();
      @@ -309,7 +312,7 @@ private String returnStatement(ReturnStatement rs) {
           private String resultValue(Expression e) {
               MethodInfo method = context.method;
               if (e instanceof SwitchExpression se && !RustTypes.isCopy(method.returnType())) {
      -            java.util.function.Function outer = armResult;
      +            Function outer = armResult;
                   armResult = this::resultValue;
                   try {
                       return switchExpression(se).text;
      @@ -653,8 +656,8 @@ private String armValue(Statement s, ParameterizedType type, int depth) {
                       if (body.size() == 1) return armValue(body.getFirst(), type, depth);
                       String pad = INDENT.repeat(depth);
                       // a yield before the last statement leaves the arm: a labeled block, broken out of with the value
      -                java.util.function.Function result = armResult;
      -                java.util.function.Function value = e -> result != null ? result.apply(e)
      +                Function result = armResult;
      +                Function value = e -> result != null ? result.apply(e)
                               : armExpression(e, type);
                       boolean early = yieldsEarly(body);
                       String label = early ? "'y" + (yieldCount++) : null;
      @@ -696,7 +699,7 @@ private static boolean yieldsEarly(List body) {
       
           private String armExpression(Expression e, ParameterizedType type) {
               if (armResult != null) {
      -            java.util.function.Function result = armResult;
      +            Function result = armResult;
                   armResult = null;
                   try {
                       return result.apply(e);
      @@ -1084,7 +1087,7 @@ private static int rank(ParameterizedType type) {
           }
       
           /** An operand of an operator: a borrowed value compares and computes as the value itself. */
      -    private static final java.util.regex.Pattern AS_CAST = java.util.regex.Pattern.compile(" as [\\w:<>]+$");
      +    private static final Pattern AS_CAST = Pattern.compile(" as [\\w:<>]+$");
       
           private static boolean isObject(ParameterizedType type) {
               return type.typeInfo() != null && type.typeInfo().isJavaLangObject() && type.arrays() == 0;
      @@ -1184,7 +1187,7 @@ String[] display(Expression e) {
               if (ti.typeNature().isEnum() && RustTypePrinter.plainEnum(ti)) return new String[]{"{}", p.text + ".name()"};
               String mapped = RustTypes.mapped(ti);
               if (mapped != null) {
      -            boolean debug = java.util.Set.of("Vec", "HashSet", "BTreeSet", "HashMap", "BTreeMap", "VecDeque", "Option",
      +            boolean debug = Set.of("Vec", "HashSet", "BTreeSet", "HashMap", "BTreeMap", "VecDeque", "Option",
                           "SystemTime").contains(mapped);
                   return new String[]{debug ? "{:?}" : "{}", p.text};
               }
      @@ -1829,7 +1832,7 @@ String tupleLambda(Expression e) {
                   for (ParameterInfo p : l.methodInfo().parameters()) {
                       ps.add((RustTypes.isCopy(p.parameterizedType()) ? "&" : "") + RustNames.snake(p.name()));
                   }
      -            return text.replaceFirst("^\\|([^|]*)\\|", java.util.regex.Matcher.quoteReplacement(
      +            return text.replaceFirst("^\\|([^|]*)\\|", Matcher.quoteReplacement(
                           "|(" + String.join(", ", ps) + ")|"));
               }
               if (e instanceof MethodReference mr && mr.concreteParameterTypes().size() == 2) {
      @@ -1837,7 +1840,7 @@ String tupleLambda(Expression e) {
                   for (int i = 0; i < 2; i++) {
                       ps.add((RustTypes.isCopy(mr.concreteParameterTypes().get(i)) ? "&" : "") + "x" + (i + 1));
                   }
      -            return text.replaceFirst("^\\|([^|]*)\\|", java.util.regex.Matcher.quoteReplacement(
      +            return text.replaceFirst("^\\|([^|]*)\\|", Matcher.quoteReplacement(
                           "|(" + String.join(", ", ps) + ")|"));
               }
               return text;
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBorrows.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBorrows.java
      index 7bf4dffb93..b78ca04d09 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBorrows.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBorrows.java
      @@ -17,6 +17,11 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.HashMap;
      +import java.util.LinkedHashMap;
      +import java.util.List;
      +import java.util.Map;
      +
       import io.codelaser.maddi.cst.api.analysis.Value;
       import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.VariableExpression;
      @@ -31,11 +36,6 @@
       import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       import io.codelaser.maddi.cst.print.rust.RustTypes.Form;
       
      -import java.util.HashMap;
      -import java.util.LinkedHashMap;
      -import java.util.List;
      -import java.util.Map;
      -
       /**
        * A dependent field: the object stores what its constructor is given, and the caller keeps it too. Java shares the
        * object; Rust's shared form of that is a borrow with a lifetime, {@code struct View<'a> { list: &'a Vec }},
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBounds.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBounds.java
      index 6d79c093d9..20851f413d 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBounds.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBounds.java
      @@ -18,6 +18,13 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.HashMap;
      +import java.util.LinkedHashSet;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.expression.BinaryOperator;
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
      @@ -30,13 +37,6 @@
       import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       
      -import java.util.HashMap;
      -import java.util.LinkedHashSet;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Set;
      -import java.util.stream.Stream;
      -
       /**
        * The trait bounds of a type parameter, from what the Java it governs does with its values: a class's {@code T} from
        * its fields and members, a method's from its signature and body. Java needs none of them (every object has
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBoxes.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBoxes.java
      index 622b8b840e..70759679bd 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBoxes.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustBoxes.java
      @@ -17,14 +17,14 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      -import io.codelaser.maddi.cst.api.info.FieldInfo;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -
       import java.util.HashMap;
       import java.util.HashSet;
       import java.util.Map;
       import java.util.Set;
       
      +import io.codelaser.maddi.cst.api.info.FieldInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +
       /**
        * A struct that holds itself by value has no size: {@code class Node { Node parent; }} is rustc's E0072. A field whose
        * struct leads back to the field's owner through fields held by value, directly or through other structs
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustCells.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustCells.java
      index 612e60d589..682facc3c7 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustCells.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustCells.java
      @@ -17,6 +17,11 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.HashMap;
      +import java.util.LinkedHashSet;
      +import java.util.Map;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.MethodCall;
       import io.codelaser.maddi.cst.api.expression.VariableExpression;
      @@ -26,11 +31,6 @@
       import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.api.variable.Variable;
       
      -import java.util.HashMap;
      -import java.util.LinkedHashSet;
      -import java.util.Map;
      -import java.util.Set;
      -
       /**
        * {@code @IgnoreModifications} on a method (a log method writing a buffer) as interior mutability. The method takes
        * {@code &self}, as the verdict treats it as not modifying; the fields it modifies are {@code RefCell}: borrowed
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustClosures.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustClosures.java
      index b1c7c8319a..fa7881b75e 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustClosures.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustClosures.java
      @@ -18,6 +18,10 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
       import io.codelaser.maddi.cst.api.expression.Expression;
      @@ -35,10 +39,6 @@
       import io.codelaser.maddi.cst.api.variable.Variable;
       import io.codelaser.maddi.cst.print.translate.CstQueries;
       
      -import java.util.HashSet;
      -import java.util.List;
      -import java.util.Set;
      -
       /**
        * A JDK function returning a value is a {@code dyn Fn}: called through {@code &}, its closure only reads what it
        * captures. A closure passed for it that writes what it captures ({@code this::parse} assigning {@code this.j}, a
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustContext.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustContext.java
      index d5f362ca31..4faf3fb4da 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustContext.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustContext.java
      @@ -17,6 +17,13 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.ArrayList;
      +import java.util.HashMap;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.TreeSet;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.element.Source;
       import io.codelaser.maddi.cst.api.expression.Assignment;
      @@ -31,13 +38,6 @@
       import io.codelaser.maddi.cst.print.translate.CstQueries;
       import io.codelaser.maddi.cst.print.translate.PrintMessage;
       
      -import java.util.ArrayList;
      -import java.util.HashMap;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Set;
      -import java.util.TreeSet;
      -
       /**
        * The state of printing one Java compilation unit as one Rust module: the facts, the messages, the {@code use}
        * declarations the printed text needs, and where the printer is. Passed along explicitly; one per file.
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustFacts.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustFacts.java
      index 5964281909..dd2c641f72 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustFacts.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustFacts.java
      @@ -17,6 +17,9 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.HashSet;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.analysis.Value;
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.expression.Assignment;
      @@ -35,10 +38,6 @@
       import io.codelaser.maddi.cst.api.variable.Variable;
       import io.codelaser.maddi.cst.impl.analysis.LinkFacts;
       import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts;
      -
      -import java.util.HashSet;
      -import java.util.List;
      -import java.util.Set;
       import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
       import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       
      @@ -164,7 +163,7 @@ public Side side(MethodInfo method) {
               }
       
               @Override
      -        public java.util.Set marks(MethodInfo method) {
      +        public Set marks(MethodInfo method) {
                   return method.analysis().getOrDefault(PropertyImpl.EVENTUAL_METHOD,
                           ValueImpl.EventualImpl.NOT_EVENTUAL).fields();
               }
      @@ -281,7 +280,7 @@ public Side side(MethodInfo method) {
                   }
       
                   @Override
      -            public java.util.Set marks(MethodInfo method) {
      +            public Set marks(MethodInfo method) {
                       return ownership.marks(method);
                   }
       
      @@ -372,8 +371,8 @@ default Side side(MethodInfo method) {
           }
       
           /** The fields of the transition {@link #side} refers to: the label of {@code @Mark} and {@code @Only}. */
      -    default java.util.Set marks(MethodInfo method) {
      -        return java.util.Set.of();
      +    default Set marks(MethodInfo method) {
      +        return Set.of();
           }
       
           /** The method returns its receiver ({@code return this}): a borrow of it, {@code &Self} or {@code &mut Self}. */
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustGetters.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustGetters.java
      index 263ad21b5d..ede660e110 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustGetters.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustGetters.java
      @@ -18,6 +18,11 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.ArrayList;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.Expression;
       import io.codelaser.maddi.cst.api.expression.MethodCall;
      @@ -29,10 +34,6 @@
       import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.print.translate.CstQueries;
       
      -import java.util.HashSet;
      -import java.util.List;
      -import java.util.Set;
      -
       /**
        * A getter handing out part of the object prints as {@code fn items(&self) -> &T}; a caller that modifies what it
        * returns ({@code b.items().clear()}, {@code t.s().r().i = 3}) needs it exclusively. Such a getter gets a twin,
      @@ -82,7 +83,7 @@ static Set modifiedThrough(List types, RustFacts facts) {
               for (MethodInfo m : Set.copyOf(out)) {
                   m.overrides().stream().filter(RustGetters::abstractGetter).forEach(out::add);
               }
      -        List all = new java.util.ArrayList<>();
      +        List all = new ArrayList<>();
               for (TypeInfo type : types) collect(type, all);
               for (MethodInfo a : Set.copyOf(out)) {
                   if (!abstractGetter(a)) continue;
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustJdk.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustJdk.java
      index d3a84612b5..1636c110ee 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustJdk.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustJdk.java
      @@ -17,18 +17,26 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.ArrayList;
      +import java.util.List;
      +import java.util.Set;
      +import java.util.regex.Matcher;
      +import java.util.regex.Pattern;
      +
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
       import io.codelaser.maddi.cst.api.expression.Expression;
      +import io.codelaser.maddi.cst.api.expression.Lambda;
       import io.codelaser.maddi.cst.api.expression.MethodCall;
      +import io.codelaser.maddi.cst.api.expression.StringConstant;
       import io.codelaser.maddi.cst.api.expression.VariableExpression;
      +import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.print.rust.RustBodyPrinter.Held;
       import io.codelaser.maddi.cst.print.rust.RustBodyPrinter.Printed;
      -
      -import java.util.List;
      -import java.util.Set;
      +import io.codelaser.maddi.cst.print.translate.CstQueries;
       
       /**
        * The JDK's methods as {@code std}'s, for the types {@link RustTypes} maps: {@code String}, the collections,
      @@ -143,8 +151,8 @@ static Printed call(MethodCall mc, RustBodyPrinter printer) {
               if ("stream/0".equals(name + "/" + args.size()) && kind != null && Set.of("Vec", "HashSet", "BTreeSet", "VecDeque")
                       .contains(kind)) {
                   // values the stream may hand on as copies: a primitive, a string, an @Immutable class
      -            List ps = mc.object().parameterizedType().parameters();
      -            io.codelaser.maddi.cst.api.type.ParameterizedType element = ps.isEmpty() ? null : ps.getFirst();
      +            List ps = mc.object().parameterizedType().parameters();
      +            ParameterizedType element = ps.isEmpty() ? null : ps.getFirst();
                   if (element != null && RustTypes.isCopy(element)) return value(iter(o) + ".copied()");
                   if (element != null && (RustTypes.isString(element)
                                           || RustTypes.isImmutableValue(element, printer.context().facts))) {
      @@ -295,7 +303,7 @@ private static Printed staticCall(String fqn, String name, List args
                       }
                       if (fqn.equals("java.util.Map") && name.equals("of") && n % 2 == 0) {
                           printer.context().use("std::collections::HashMap");
      -                    List pairs = new java.util.ArrayList<>();
      +                    List pairs = new ArrayList<>();
                           for (int i = 0; i < n; i += 2) {
                               pairs.add("(" + printer.ownedText(args.get(i)) + ", " + printer.ownedText(args.get(i + 1)) + ")");
                           }
      @@ -386,7 +394,7 @@ yield value(o + "[" + from + "..].find(" + pattern(args.getFirst(), printer) + "
            */
           private static Printed stringEquals(String o, Expression arg, RustBodyPrinter printer) {
               Printed a = printer.printed(arg);
      -        io.codelaser.maddi.cst.api.type.ParameterizedType type = arg.parameterizedType();
      +        ParameterizedType type = arg.parameterizedType();
               boolean object = type.typeInfo() != null && type.typeInfo().isJavaLangObject();
               String self = o.startsWith("\"") ? o : "&" + paren(o) + "[..]";
               String test = object ? "v.downcast_ref::().map_or(false, |s| s.as_str() == " + self + ")"
      @@ -398,7 +406,7 @@ private static Printed stringEquals(String o, Expression arg, RustBodyPrinter pr
       
           /** {@code sb.append(x)}: a char is pushed, a string pushed as a {@code &str}, anything else formatted first. */
           static String append(String target, Expression arg, RustBodyPrinter printer) {
      -        io.codelaser.maddi.cst.api.type.ParameterizedType type = arg.parameterizedType();
      +        ParameterizedType type = arg.parameterizedType();
               if (type.isPrimitiveExcludingVoid() && type.typeInfo().isChar()) return target + ".push(" + printer.text(arg) + ")";
               if (RustTypes.isString(type) && !printer.printed(arg).nullable()) {
                   return target + ".push_str(" + printer.reference(arg) + ")";
      @@ -476,7 +484,7 @@ private static Printed collect(String o, Expression collector, RustBodyPrinter p
       
           /** {@code entry.getKey()}: the entries of a map's iterator are {@code (&K, &V)} tuples. */
           private static Printed entry(String o, String name, MethodCall mc) {
      -        List kv = mc.object().parameterizedType().parameters();
      +        List kv = mc.object().parameterizedType().parameters();
               int index = switch (name) {
                   case "getKey" -> 0;
                   case "getValue" -> 1;
      @@ -508,7 +516,7 @@ static String getOrDefaultMut(Expression e, RustBodyPrinter printer) {
           private static Printed getOrDefault(String o, List args, RustBodyPrinter printer, MethodCall mc) {
               String get = o + ".get(" + printer.reference(args.get(0)) + ")";
               if (copyValues(mc)) return value(get + ".copied().unwrap_or(" + operand(printer, args.get(1)) + ")");
      -        List kv = mc.object().parameterizedType().parameters();
      +        List kv = mc.object().parameterizedType().parameters();
               if (kv.size() == 2 && RustTypes.isString(kv.get(1))) {
                   return value(get + ".cloned().unwrap_or_else(|| " + printer.ownedText(args.get(1)) + ")");
               }
      @@ -547,13 +555,13 @@ private static Printed bigDecimal(String o, String name, List args,
            * {@code %n} a newline. Another specifier is reported, and printed as {@code {}}.
            */
           private static Printed format(List args, RustBodyPrinter printer, MethodCall mc) {
      -        if (!(args.getFirst() instanceof io.codelaser.maddi.cst.api.expression.StringConstant sc)) return null;
      +        if (!(args.getFirst() instanceof StringConstant sc)) return null;
               String f = sc.constant();
               StringBuilder out = new StringBuilder();
      -        java.util.regex.Matcher m = java.util.regex.Pattern.compile("%([-#+ 0,(]*)(\\d+)?(\\.\\d+)?([a-zA-Z%])").matcher(f);
      +        Matcher m = Pattern.compile("%([-#+ 0,(]*)(\\d+)?(\\.\\d+)?([a-zA-Z%])").matcher(f);
               int at = 0;
               int conversions = 0;
      -        List shown = new java.util.ArrayList<>();
      +        List shown = new ArrayList<>();
               while (m.find()) {
                   out.append(braces(f.substring(at, m.start())));
                   at = m.end();
      @@ -725,7 +733,7 @@ private static Printed map(String o, String name, List args, RustBod
                       String v = printer.ownedAs(args.get(1), typeArgument(mc, 1));
                       // the value reads the map being modified (m.put(k, m.get(k) + 1)): computed before the exclusive borrow
                       String root = o.replaceFirst("[.\\[(].*$", "");
      -                if (java.util.regex.Pattern.compile("\\b" + java.util.regex.Pattern.quote(root) + "\\b").matcher(v).find()) {
      +                if (Pattern.compile("\\b" + Pattern.quote(root) + "\\b").matcher(v).find()) {
                           yield value("{ let v = " + v + "; " + o + ".insert(" + key + ", v) }");
                       }
                       yield value(o + ".insert(" + key + ", " + v + ")");
      @@ -818,19 +826,19 @@ private static Printed option(String o, String name, List args, Rust
               };
           }
       
      -    private static io.codelaser.maddi.cst.api.type.ParameterizedType typeArgument(MethodCall mc, int i) {
      -        List ps = mc.object().parameterizedType().parameters();
      +    private static ParameterizedType typeArgument(MethodCall mc, int i) {
      +        List ps = mc.object().parameterizedType().parameters();
               return i < ps.size() ? ps.get(i) : null;
           }
       
           /** A map whose values are copied out: {@code get} gives an {@code Option}, not an {@code Option<&V>}. */
           private static boolean copyValues(MethodCall mc) {
      -        List parameters = mc.object().parameterizedType().parameters();
      +        List parameters = mc.object().parameterizedType().parameters();
               return parameters.size() == 2 && RustTypes.isCopy(parameters.get(1));
           }
       
           /** The JDK's constants: {@code Math.PI}, {@code Integer.MAX_VALUE}, … {@code null} for another field. */
      -    static String constant(io.codelaser.maddi.cst.api.info.FieldInfo f) {
      +    static String constant(FieldInfo f) {
               return switch (f.owner().fullyQualifiedName() + "." + f.name()) {
                   case "java.lang.Math.PI" -> "std::f64::consts::PI";
                   case "java.lang.Boolean.TRUE" -> "true";
      @@ -848,7 +856,7 @@ static String constant(io.codelaser.maddi.cst.api.info.FieldInfo f) {
               };
           }
       
      -    private static boolean isObject(io.codelaser.maddi.cst.api.type.ParameterizedType type) {
      +    private static boolean isObject(ParameterizedType type) {
               return type.typeInfo() != null && type.typeInfo().isJavaLangObject() && type.arrays() == 0;
           }
       
      @@ -867,8 +875,8 @@ static String comparator(Expression e, RustBodyPrinter printer) {
            * on the spot leaves rustc without the type of its parameter.
            */
           private static String compare(Expression e, RustBodyPrinter printer, String a, String b) {
      -        Expression c = io.codelaser.maddi.cst.print.translate.CstQueries.unwrap(e);
      -        if (c instanceof io.codelaser.maddi.cst.api.expression.Lambda l && l.methodInfo().parameters().size() == 2) {
      +        Expression c = CstQueries.unwrap(e);
      +        if (c instanceof Lambda l && l.methodInfo().parameters().size() == 2) {
                   return printer.applied(l, List.of(a, b)) + ".cmp(&0)";
               }
               if (!(c instanceof MethodCall mc)) return null;
      @@ -907,7 +915,7 @@ private static String byKey(Expression key, RustBodyPrinter printer, String a, S
           }
       
           private static boolean stringElements(MethodCall mc) {
      -        List parameters = mc.object().parameterizedType().parameters();
      +        List parameters = mc.object().parameterizedType().parameters();
               return !parameters.isEmpty() && RustTypes.isString(parameters.getFirst());
           }
       
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustNames.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustNames.java
      index 7d26dd6721..252fbb7c05 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustNames.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustNames.java
      @@ -17,14 +17,14 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.List;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.info.TypeParameter;
       import io.codelaser.maddi.cst.print.translate.CstQueries;
       
      -import java.util.List;
      -import java.util.Set;
      -
       /**
        * Rust's names for Java's: snake case for functions, fields and locals, the type's own name for a type, a module per
        * package. Rust has no overloading, so the second and later same-named methods of a type get a numeric suffix, in
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTranslator.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTranslator.java
      index 46852891d5..aa8e4d3d76 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTranslator.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTranslator.java
      @@ -17,11 +17,6 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      -import io.codelaser.maddi.cst.api.info.MethodInfo;
      -import io.codelaser.maddi.cst.api.info.ParameterInfo;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.print.translate.PrintMessage;
      -
       import java.io.IOException;
       import java.nio.file.Files;
       import java.nio.file.Path;
      @@ -33,6 +28,11 @@
       import java.util.TreeMap;
       import java.util.stream.Collectors;
       
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.ParameterInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.print.translate.PrintMessage;
      +
       /**
        * A Java program as one Rust library crate: {@code Cargo.toml}, and under {@code src/} a module per Java package,
        * declared in {@code lib.rs}. What {@code --translate rust} writes (CodeLaser/maddi#167).
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypePrinter.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypePrinter.java
      index a047c7adde..1c79c878db 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypePrinter.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypePrinter.java
      @@ -17,11 +17,21 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.ArrayList;
      +import java.util.HashSet;
      +import java.util.LinkedHashMap;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.stream.Collectors;
      +
      +import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.ConstantExpression;
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
       import io.codelaser.maddi.cst.api.expression.EmptyExpression;
       import io.codelaser.maddi.cst.api.expression.Expression;
      +import io.codelaser.maddi.cst.api.expression.MethodCall;
       import io.codelaser.maddi.cst.api.expression.VariableExpression;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
      @@ -34,18 +44,12 @@
       import io.codelaser.maddi.cst.api.statement.Statement;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.FieldReference;
      +import io.codelaser.maddi.cst.api.variable.This;
       import io.codelaser.maddi.cst.print.rust.RustFacts.Passing;
       import io.codelaser.maddi.cst.print.rust.RustFacts.Receiver;
       import io.codelaser.maddi.cst.print.rust.RustTypes.Form;
       import io.codelaser.maddi.cst.print.translate.CstQueries;
       
      -import java.util.ArrayList;
      -import java.util.LinkedHashMap;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Set;
      -import java.util.stream.Collectors;
      -
       /**
        * A Java type as Rust items: a class is a {@code struct} with an inherent {@code impl}, plus an {@code impl Trait for}
        * per source interface it implements; an interface is a {@code trait}; a record a {@code struct} with public fields and
      @@ -527,7 +531,7 @@ private String delegate(MethodInfo m, MethodInfo declared) {
       
           /** A source interface the method implements, directly or through an interface it extends. */
           static TypeInfo implementedTrait(MethodInfo m) {
      -        Set traits = new java.util.HashSet<>();
      +        Set traits = new HashSet<>();
               superInterfaces(m.typeInfo(), traits);
               for (MethodInfo o : m.overrides()) {
                   TypeInfo t = o.typeInfo();
      @@ -585,8 +589,8 @@ static boolean lazyStatic(FieldInfo f, RustContext context) {
               for (MethodInfo m : f.owner().methods()) {
                   if (!m.isStaticInitializer() || m.methodBody() == null) continue;
                   m.methodBody().visit(e -> {
      -                if (e instanceof io.codelaser.maddi.cst.api.expression.VariableExpression ve
      -                    && ve.variable() instanceof io.codelaser.maddi.cst.api.variable.FieldReference fr
      +                if (e instanceof VariableExpression ve
      +                    && ve.variable() instanceof FieldReference fr
                           && fr.fieldInfo() == f) {
                           touched[0] = true;
                       }
      @@ -619,7 +623,7 @@ static String mutableStaticValue(FieldInfo f, RustContext context) {
               if (!empty) return null;
               String owned = RustTypes.owned(f.type(), context, f);
               String base = owned.replaceFirst("<.*$", "");
      -        return java.util.Set.of("String", "Vec", "VecDeque", "BTreeMap", "BTreeSet").contains(base) ? base + "::new()"
      +        return Set.of("String", "Vec", "VecDeque", "BTreeMap", "BTreeSet").contains(base) ? base + "::new()"
                       : null;
           }
       
      @@ -857,14 +861,14 @@ private static FieldInfo assignedField(Statement s, List fields) {
               return null;
           }
       
      -    private static boolean readsThis(io.codelaser.maddi.cst.api.element.Element element) {
      +    private static boolean readsThis(Element element) {
               boolean[] found = {false};
               element.visit(e -> {
      -            if (e instanceof VariableExpression ve && (ve.variable() instanceof io.codelaser.maddi.cst.api.variable.This
      +            if (e instanceof VariableExpression ve && (ve.variable() instanceof This
                       || ve.variable() instanceof FieldReference fr && !fr.fieldInfo().isStatic() && fr.scopeIsThis())) {
                       found[0] = true;
                   }
      -            if (e instanceof io.codelaser.maddi.cst.api.expression.MethodCall mc && !mc.methodInfo().isStatic()
      +            if (e instanceof MethodCall mc && !mc.methodInfo().isStatic()
                       && mc.objectIsImplicit()) {
                       found[0] = true;
                   }
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypes.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypes.java
      index bf33fe6e32..d9f1bc2fcc 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypes.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypes.java
      @@ -17,15 +17,16 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.List;
      +import java.util.Map;
      +import java.util.stream.Collectors;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       
      -import java.util.List;
      -import java.util.Map;
      -import java.util.stream.Collectors;
      -
       /**
        * Java types as Rust types, in three forms: owned ({@code String}, {@code Vec}, {@code Box}), shared
        * ({@code &str}, {@code &Vec}, {@code &dyn I}) and exclusive ({@code &mut String}, …). A primitive is the same in
      @@ -371,7 +372,7 @@ private static String named(ParameterizedType type, RustContext context, Element
                   // impl's, so that a static method returning one says what it borrows from
                   if (context.borrows.hasLifetime(ti)) {
                       String lifetime = ti == context.type ? RustBorrows.LIFETIME : "'_";
      -                return base + "<" + java.util.stream.Stream.concat(java.util.stream.Stream.of(lifetime),
      +                return base + "<" + Stream.concat(Stream.of(lifetime),
                               type.parameters().stream().map(p -> owned(p, context, where))).collect(Collectors.joining(", ")) + ">";
                   }
               }
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypestate.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypestate.java
      index 3ac4f52977..84d16c5b34 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypestate.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustTypestate.java
      @@ -17,13 +17,14 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.HashSet;
      +import java.util.Set;
      +import java.util.TreeSet;
      +
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.print.rust.RustFacts.Side;
       
      -import java.util.HashSet;
      -import java.util.Set;
      -
       /**
        * Eventual immutability ({@code @Mark}, {@code @Only}, road to immutability §060) as Rust's typestate pattern. The
        * struct gets a state parameter, {@code struct Config}; a method on either side of the transition is in
      @@ -58,7 +59,7 @@ static boolean typestate(TypeInfo typeInfo, RustContext context) {
                   if (side == Side.ANY) continue;
                   if (m.isStatic() || side == Side.MARK && !m.isVoid()) return false;
                   mark |= side == Side.MARK;
      -            labels.add(String.join(",", new java.util.TreeSet<>(context.facts.marks(m))));
      +            labels.add(String.join(",", new TreeSet<>(context.facts.marks(m))));
               }
               return mark && labels.size() == 1;
           }
      diff --git a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustUnsafety.java b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustUnsafety.java
      index b3f0ff0270..dbb9aca4fa 100644
      --- a/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustUnsafety.java
      +++ b/maddi-cst-print-rust/src/main/java/io/codelaser/maddi/cst/print/rust/RustUnsafety.java
      @@ -17,6 +17,12 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      +import java.util.HashMap;
      +import java.util.HashSet;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.function.Predicate;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
       import io.codelaser.maddi.cst.api.expression.MethodCall;
      @@ -27,11 +33,6 @@
       import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation;
       import io.codelaser.maddi.cst.api.variable.FieldReference;
       
      -import java.util.HashMap;
      -import java.util.HashSet;
      -import java.util.Map;
      -import java.util.Set;
      -
       /**
        * Which methods are an {@code unsafe fn}. Java's mutable static state is a {@code static mut}, and Rust lets only
        * {@code unsafe} code touch one, reading as well as writing. So a method is unsafe when its body (its lambdas
      @@ -72,7 +73,7 @@ private boolean visit(MethodInfo method, RustContext context, Set pa
           private boolean touches(MethodInfo method, RustContext context, Set path, boolean[] cycle) {
               if (method.methodBody() == null) return false;
               boolean[] found = {false};
      -        java.util.function.Predicate visitor = e -> {
      +        Predicate visitor = e -> {
                   if (e instanceof VariableExpression ve && ve.variable() instanceof FieldReference fr
                       && RustTypePrinter.mutableStaticValue(fr.fieldInfo(), context) != null) {
                       found[0] = true;
      diff --git a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/CommonJavaToRust.java b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/CommonJavaToRust.java
      index 3217cd2225..e145fc913e 100644
      --- a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/CommonJavaToRust.java
      +++ b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/CommonJavaToRust.java
      @@ -17,20 +17,8 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      -import io.codelaser.maddi.cst.api.analysis.Value;
      -import io.codelaser.maddi.cst.api.element.SourceSet;
      -import io.codelaser.maddi.cst.api.info.MethodInfo;
      -import io.codelaser.maddi.cst.api.info.ParameterInfo;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.api.type.NullableState;
      -import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      -import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      -import io.codelaser.maddi.inspection.api.integration.JavaInspector;
      -import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl;
      -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl;
      -import io.codelaser.maddi.inspection.resource.SourceSetImpl;
      -import org.junit.jupiter.api.BeforeEach;
      -import org.junit.jupiter.api.TestInfo;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
      +import static org.junit.jupiter.api.Assumptions.assumeTrue;
       
       import java.io.IOException;
       import java.lang.reflect.Method;
      @@ -40,11 +28,30 @@
       import java.util.ArrayList;
       import java.util.List;
       import java.util.Map;
      +import java.util.Set;
       import java.util.concurrent.TimeUnit;
       import java.util.stream.Collectors;
       
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      -import static org.junit.jupiter.api.Assumptions.assumeTrue;
      +import org.junit.jupiter.api.BeforeEach;
      +import org.junit.jupiter.api.TestInfo;
      +
      +import io.codelaser.maddi.annotation.Immutable;
      +import io.codelaser.maddi.cst.api.analysis.Value;
      +import io.codelaser.maddi.cst.api.element.SourceSet;
      +import io.codelaser.maddi.cst.api.info.FieldInfo;
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.ParameterInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.type.NullableState;
      +import io.codelaser.maddi.cst.api.type.ParameterizedType;
      +import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts;
      +import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      +import io.codelaser.maddi.inspection.api.integration.JavaInspector;
      +import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl;
      +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl;
      +import io.codelaser.maddi.inspection.resource.SourceSetImpl;
      +import io.codelaser.maddi.support.SetOnce;
       
       /**
        * Java parsed by the openjdk front end, printed as Rust, and compiled by rustc when one is on the {@code PATH}. The
      @@ -61,8 +68,8 @@ public void beforeEach(TestInfo info) throws IOException {
               javaInspector = new JavaInspectorImpl();
               SourceSet sourceSet = new SourceSetImpl.Builder().setName(JavaInspector.TEST_PROTOCOL)
                       .setUri(URI.create("file:/")).build();
      -        SourceSet annotation = SourceSetImpl.sourceSetOf(io.codelaser.maddi.annotation.Immutable.class);
      -        SourceSet support = SourceSetImpl.sourceSetOf(io.codelaser.maddi.support.SetOnce.class, annotation);
      +        SourceSet annotation = SourceSetImpl.sourceSetOf(Immutable.class);
      +        SourceSet support = SourceSetImpl.sourceSetOf(SetOnce.class, annotation);
               javaInspector.initialize(new InputConfigurationImpl.Builder().addSourceSets(sourceSet)
                       .addClassPath("jmod:java.base").addClassPathParts(annotation, support).build());
               javaInspector.onlyPreload();
      @@ -88,20 +95,20 @@ protected RustTranslator.Result translate(List types, RustFacts facts)
           }
       
           /** The stored ownership verdicts, with the fields, parameters and methods named in {@code nullable} nullable. */
      -    protected static RustFacts nullable(java.util.Set nullable) {
      -        return RustFacts.of(new io.codelaser.maddi.cst.impl.analysis.NullabilityFacts() {
      +    protected static RustFacts nullable(Set nullable) {
      +        return RustFacts.of(new NullabilityFacts() {
                   @Override
      -            public io.codelaser.maddi.cst.api.type.ParameterizedType field(io.codelaser.maddi.cst.api.info.FieldInfo f) {
      +            public ParameterizedType field(FieldInfo f) {
                       return nullable.contains(f.name()) ? f.type().withNullable(NullableState.NULLABLE) : null;
                   }
       
                   @Override
      -            public io.codelaser.maddi.cst.api.type.ParameterizedType parameter(ParameterInfo p) {
      +            public ParameterizedType parameter(ParameterInfo p) {
                       return nullable.contains(p.name()) ? p.parameterizedType().withNullable(NullableState.NULLABLE) : null;
                   }
       
                   @Override
      -            public io.codelaser.maddi.cst.api.type.ParameterizedType returnType(MethodInfo m) {
      +            public ParameterizedType returnType(MethodInfo m) {
                       return nullable.contains(m.name() + "()") ? m.returnType().withNullable(NullableState.NULLABLE) : null;
                   }
               }, RustFacts.STORED);
      @@ -206,12 +213,12 @@ protected static void finalizer(TypeInfo type, String name) {
           /** {@code @Mark}, {@code @Only(before/after)} of the transition of {@code label}. */
           protected static void mark(TypeInfo type, String name, String label) {
               method(type, name).analysis().set(PropertyImpl.EVENTUAL_METHOD,
      -                new ValueImpl.EventualImpl(java.util.Set.of(label), true, null, null));
      +                new ValueImpl.EventualImpl(Set.of(label), true, null, null));
           }
       
           protected static void only(TypeInfo type, String name, String label, boolean after) {
               method(type, name).analysis().set(PropertyImpl.EVENTUAL_METHOD,
      -                new ValueImpl.EventualImpl(java.util.Set.of(label), false, after, null));
      +                new ValueImpl.EventualImpl(Set.of(label), false, after, null));
           }
       
           protected static void ignoreModifications(TypeInfo type, String name) {
      @@ -229,7 +236,7 @@ protected static void staticSideEffects(TypeInfo type, String name) {
           protected static void throughPassedFunction(ParameterInfo parameter, String... entries) {
               borrowed(parameter);
               parameter.analysis().set(PropertyImpl.MODIFIED_THROUGH_PASSED_FUNCTION,
      -                new ValueImpl.SetOfStringsImpl(java.util.Set.of(entries)));
      +                new ValueImpl.SetOfStringsImpl(Set.of(entries)));
           }
       
           /** The method returns {@code this}. */
      diff --git a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustJdk.java b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustJdk.java
      index 03bfcb1f52..694f3b037b 100644
      --- a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustJdk.java
      +++ b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustJdk.java
      @@ -18,18 +18,19 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      -import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.DisplayName;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
       
       import java.util.List;
       import java.util.Set;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.DisplayName;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       
       /** The JDK as std: comparators, a map's value modified in place, Object values, null-safe string calls. */
       public class TestJavaToRustJdk extends CommonJavaToRust {
      diff --git a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustMapping.java b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustMapping.java
      index 8787797c79..6effc8f6bd 100644
      --- a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustMapping.java
      +++ b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustMapping.java
      @@ -17,19 +17,25 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      -import io.codelaser.maddi.cst.api.info.MethodInfo;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.DisplayName;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertFalse;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
       
       import java.util.List;
       import java.util.Set;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertFalse;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.DisplayName;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.cst.api.analysis.Value;
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.ParameterInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.impl.analysis.LinkFacts;
      +import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts;
      +import io.codelaser.maddi.cst.impl.analysis.PropertyImpl;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       
       /**
        * The mapping table of CodeLaser/maddi#167, row by row: a Java example, the verdicts the analysis computes for it
      @@ -161,7 +167,7 @@ public static int use() {
                   }
                   """;
       
      -    private String copy(io.codelaser.maddi.cst.api.analysis.Value.Independent independent) throws Exception {
      +    private String copy(Value.Independent independent) throws Exception {
               List types = parse(COPY);
               TypeInfo copy = types.getFirst();
               nonModifying(copy, "size");
      @@ -278,7 +284,7 @@ public void hiddenContent() throws Exception {
               modifying(box, "set");
               kept(box.constructors().getFirst().parameters().getFirst(), ValueImpl.IndependentImpl.INDEPENDENT_HC);
               kept(method(box, "set").parameters().getFirst(), ValueImpl.IndependentImpl.INDEPENDENT_HC);
      -        method(box, "get").analysis().set(io.codelaser.maddi.cst.impl.analysis.PropertyImpl.INDEPENDENT_METHOD,
      +        method(box, "get").analysis().set(PropertyImpl.INDEPENDENT_METHOD,
                       ValueImpl.IndependentImpl.INDEPENDENT_HC);
               modified(method(box, "supplied").parameters().getFirst());
               modified(method(box, "fed").parameters().getFirst());
      @@ -420,7 +426,7 @@ public void recursiveIdentityEntries() throws Exception {
               kept(method(node, "setParent").parameters().getFirst(), ValueImpl.IndependentImpl.DEPENDENT);
               borrowed(method(node, "same").parameters().getFirst());
               borrowed(method(node, "depth").parameters().getFirst());
      -        translate(types, nullable(java.util.Set.of("parent")));
      +        translate(types, nullable(Set.of("parent")));
               String rust = module("a.b");
               contains(rust, "parent: Option>,");
               contains(rust, "counts: Vec<(String, i32)>,");
      @@ -500,7 +506,7 @@ public void nullableBorrowedResult() throws Exception {
               nonModifying(tags, "tags", "label");
               dependentResult(tags, "tags");
               dependentResult(tags, "label");
      -        translate(types, nullable(java.util.Set.of("tags", "label", "tags()", "label()")));
      +        translate(types, nullable(Set.of("tags", "label", "tags()", "label()")));
               String rust = module("a.b");
               contains(rust, "pub fn tags(&self) -> Option<&Vec> {\nreturn self.tags.as_ref();");
               contains(rust, "pub fn label(&self) -> Option<&str> {\nreturn self.label.as_deref();");
      @@ -546,7 +552,7 @@ public void borrowedTemporaries() throws Exception {
               dependentResult(args, "orNames");
               nonModifying(args, "orAlt");
               borrowed(method(args, "orAlt").parameters().getLast());
      -        translate(types, nullable(java.util.Set.of("arguments")));
      +        translate(types, nullable(Set.of("arguments")));
               String rust = module("a.b");
               contains(rust, "pub fn arguments(&mut self) -> &Vec {");
               contains(rust, "return self.arguments.as_ref().unwrap();");
      @@ -1095,7 +1101,7 @@ public void switchExpressionResult() throws Exception {
               nonModifying(sw, "pick", "label");
               dependentResult(sw, "pick");
               borrowed(method(sw, "pick").parameters().getFirst());
      -        translate(types, nullable(java.util.Set.of("list1", "list2", "pick()", "label()")));
      +        translate(types, nullable(Set.of("list1", "list2", "pick()", "label()")));
               String rust = module("a.b");
               contains(rust, "\"a\" => None,");
               contains(rust, "\"b\" => self.list1.as_ref(),");
      @@ -1134,7 +1140,7 @@ public void reassignedStringNullableClosure() throws Exception {
               TypeInfo dec = types.getFirst();
               modifying(dec, "setMeasure");
               nonModifying(dec, "norm", "decode", "use", "response");
      -        translate(types, nullable(java.util.Set.of("measure", "response")));
      +        translate(types, nullable(Set.of("measure", "response")));
               String rust = module("a.b");
               contains(rust, "pub fn norm(mut p: String) -> String {");
               contains(rust, "d.set_measure(Some(Box::new(");
      @@ -1171,7 +1177,7 @@ public void nullableObject() throws Exception {
               TypeInfo slot = types.getFirst();
               modifying(slot, "set");
               nonModifying(slot, "of", "name");
      -        translate(types, nullable(java.util.Set.of("value", "name", "label", "name()")));
      +        translate(types, nullable(Set.of("value", "name", "label", "name()")));
               String rust = module("a.b");
               contains(rust, "s.value = from.name.clone().map(|x| Box::new(x) as Box);");
               contains(rust, ".map(|x| Box::new(x) as Box));");
      @@ -1219,7 +1225,7 @@ public Checked(String t) {
           public void checkedField() throws Exception {
               List types = parse(CHECKED_FIELD);
               nonModifying(types.getFirst(), "text");
      -        translate(types, nullable(java.util.Set.of("t")));
      +        translate(types, nullable(Set.of("t")));
               String rust = module("a.b");
               contains(rust, "text: t.clone().unwrap(),");
               assertEquals(List.of(), rustcErrors(), rust);
      @@ -1291,7 +1297,7 @@ public void localModifiedThroughField() throws Exception {
               List types = parse(FIELD_OF_LOCAL);
               nonModifying(types.getFirst(), "fill", "viaLocal", "append");
               exclusive(method(types.getFirst(), "append").parameters().getFirst());
      -        translate(types, nullable(java.util.Set.of("sb")));
      +        translate(types, nullable(Set.of("sb")));
               String rust = module("a.b");
               contains(rust, "let mut a = FlA::new();");
               // a &mut of a's field, a sorted list, an Option<&mut> reached through as_mut()
      @@ -1390,7 +1396,7 @@ public void linkFacts() throws Exception {
               unmodifiedField(holder, "held");
               nonModifying(linked, "hold");
               borrowed(hold.parameters().getFirst());
      -        io.codelaser.maddi.cst.impl.analysis.LinkFacts links = new io.codelaser.maddi.cst.impl.analysis.LinkFacts() {
      +        LinkFacts links = new LinkFacts() {
                   @Override
                   public Result result(MethodInfo m) {
                       return m == build || m == copy || m == view || m == hold ? Result.NEW
      @@ -1403,15 +1409,15 @@ public boolean receiverInResult(MethodInfo m) {
                   }
       
                   @Override
      -            public java.util.Set keptInResult(MethodInfo m) {
      -                return m == copy ? java.util.Set.copyOf(copy.parameters())
      -                        : m == first ? java.util.Set.of(first.parameters().getFirst())
      -                        : m == id ? java.util.Set.of(id.parameters().getFirst())
      -                        : m == hold ? java.util.Set.of(hold.parameters().getFirst())
      -                        : m == orNew ? java.util.Set.of(orNew.parameters().getFirst()) : java.util.Set.of();
      +            public Set keptInResult(MethodInfo m) {
      +                return m == copy ? Set.copyOf(copy.parameters())
      +                        : m == first ? Set.of(first.parameters().getFirst())
      +                        : m == id ? Set.of(id.parameters().getFirst())
      +                        : m == hold ? Set.of(hold.parameters().getFirst())
      +                        : m == orNew ? Set.of(orNew.parameters().getFirst()) : Set.of();
                   }
               };
      -        translate(types, RustFacts.of(io.codelaser.maddi.cst.impl.analysis.NullabilityFacts.STORED, RustFacts.STORED,
      +        translate(types, RustFacts.of(NullabilityFacts.STORED, RustFacts.STORED,
                       links));
               String rust = module("a.b");
               contains(rust, "pub fn build(&self) -> LinkedItems {");
      @@ -1481,7 +1487,7 @@ public void writeThroughExclusive() throws Exception {
               modifying(keeper, "mutate", "assign");
               modified(method(keeper, "touch").parameters().getFirst());
               borrowed(method(keeper, "touch").parameters().get(1));
      -        translate(types, nullable(java.util.Set.of("kept", "other")));
      +        translate(types, nullable(Set.of("kept", "other")));
               String rust = module("a.b");
               contains(rust, "self.kept.as_mut().unwrap().set(1);");
               contains(rust, "self.other.as_mut().unwrap().j = 2;");
      diff --git a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustOwnership.java b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustOwnership.java
      index af42b8a6a0..4064133608 100644
      --- a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustOwnership.java
      +++ b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustOwnership.java
      @@ -17,17 +17,18 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      -import io.codelaser.maddi.cst.api.info.MethodInfo;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
      +
      +import java.util.List;
      +
       import org.intellij.lang.annotations.Language;
       import org.junit.jupiter.api.DisplayName;
       import org.junit.jupiter.api.Test;
       
      -import java.util.List;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       
       /**
        * The verdicts as Rust's ownership modes (CodeLaser/maddi#167), and rustc as their judge: correct verdicts compile;
      diff --git a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustStatements.java b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustStatements.java
      index 4eade30fb0..a66d4b03e0 100644
      --- a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustStatements.java
      +++ b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustStatements.java
      @@ -17,16 +17,17 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
      +
      +import java.util.List;
      +
       import org.intellij.lang.annotations.Language;
       import org.junit.jupiter.api.DisplayName;
       import org.junit.jupiter.api.Test;
       
      -import java.util.List;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       
       /** Statements and expressions beyond the basics: switch, enum, StringBuilder, streams, equals and hashCode. */
       public class TestJavaToRustStatements extends CommonJavaToRust {
      diff --git a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustStructure.java b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustStructure.java
      index e0a90ddd39..622395888b 100644
      --- a/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustStructure.java
      +++ b/maddi-cst-print-rust/src/test/java/io/codelaser/maddi/cst/print/rust/TestJavaToRustStructure.java
      @@ -17,18 +17,19 @@
       
       package io.codelaser.maddi.cst.print.rust;
       
      -import io.codelaser.maddi.cst.api.analysis.Value;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.DisplayName;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
       
       import java.util.List;
       import java.util.Set;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.DisplayName;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.cst.api.analysis.Value;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.impl.analysis.ValueImpl;
       
       /** The shapes of a Java program as Rust items: trait, record, enum, constants, nullable state, the collections. */
       public class TestJavaToRustStructure extends CommonJavaToRust {
      diff --git a/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/CstQueries.java b/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/CstQueries.java
      index 74d2ac0f7f..966f331ef7 100644
      --- a/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/CstQueries.java
      +++ b/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/CstQueries.java
      @@ -16,9 +16,18 @@
        */
       package io.codelaser.maddi.cst.print.translate;
       
      +import java.util.ArrayList;
      +import java.util.HashSet;
      +import java.util.List;
      +import java.util.Set;
      +import java.util.TreeMap;
      +import java.util.stream.Stream;
      +
       import io.codelaser.maddi.cst.api.element.Element;
      +import io.codelaser.maddi.cst.api.expression.BinaryOperator;
       import io.codelaser.maddi.cst.api.expression.EnclosedExpression;
       import io.codelaser.maddi.cst.api.expression.Expression;
      +import io.codelaser.maddi.cst.api.expression.UnaryOperator;
       import io.codelaser.maddi.cst.api.expression.VariableExpression;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
      @@ -31,11 +40,6 @@
       import io.codelaser.maddi.cst.api.variable.FieldReference;
       import io.codelaser.maddi.cst.api.variable.This;
       
      -import java.util.ArrayList;
      -import java.util.List;
      -import java.util.TreeMap;
      -import java.util.stream.Stream;
      -
       /**
        * Questions about the Java CST that a Java-to-X printer asks whatever its target language: pure functions of the
        * elements, no printing state.
      @@ -169,10 +173,10 @@ public static boolean isExtensible(TypeInfo typeInfo) {
            * Kotlin's {@code const val}, C#'s {@code const}.
            */
           public static boolean constantInitializer(FieldInfo fieldInfo) {
      -        return constantInitializer(fieldInfo, new java.util.HashSet<>());
      +        return constantInitializer(fieldInfo, new HashSet<>());
           }
       
      -    private static boolean constantInitializer(FieldInfo fieldInfo, java.util.Set visiting) {
      +    private static boolean constantInitializer(FieldInfo fieldInfo, Set visiting) {
               ParameterizedType t = fieldInfo.type();
               if (fieldInfo.initializer() == null || fieldInfo.initializer().isEmpty() || t.arrays() != 0
                   || !(t.isPrimitiveExcludingVoid() || t.isJavaLangString()) || !visiting.add(fieldInfo)) return false;
      @@ -185,13 +189,13 @@ private static boolean constantInitializer(FieldInfo fieldInfo, java.util.Set visiting) {
      +    private static boolean constantExpression(Expression e, boolean string, Set visiting) {
               while (e instanceof EnclosedExpression ee) e = ee.inner();
               if (e.isConstant()) return !string || e.parameterizedType() != null && e.parameterizedType().isJavaLangString();
      -        if (e instanceof io.codelaser.maddi.cst.api.expression.BinaryOperator bo) {
      +        if (e instanceof BinaryOperator bo) {
                   return constantExpression(bo.lhs(), string, visiting) && constantExpression(bo.rhs(), string, visiting);
               }
      -        if (!string && e instanceof io.codelaser.maddi.cst.api.expression.UnaryOperator uo) {
      +        if (!string && e instanceof UnaryOperator uo) {
                   return constantExpression(uo.expression(), false, visiting);
               }
               if (e instanceof VariableExpression ve && ve.variable() instanceof FieldReference fr) {
      diff --git a/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/CstSupertypes.java b/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/CstSupertypes.java
      index ea18beeaf1..7f0901e019 100644
      --- a/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/CstSupertypes.java
      +++ b/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/CstSupertypes.java
      @@ -16,12 +16,6 @@
        */
       package io.codelaser.maddi.cst.print.translate;
       
      -import io.codelaser.maddi.cst.api.info.MethodInfo;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.api.info.TypeParameter;
      -import io.codelaser.maddi.cst.api.type.ParameterizedType;
      -import io.codelaser.maddi.cst.impl.type.ParameterizedTypeImpl;
      -
       import java.util.ArrayDeque;
       import java.util.Deque;
       import java.util.HashMap;
      @@ -31,6 +25,12 @@
       import java.util.Set;
       import java.util.function.Predicate;
       
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +import io.codelaser.maddi.cst.api.info.TypeParameter;
      +import io.codelaser.maddi.cst.api.type.ParameterizedType;
      +import io.codelaser.maddi.cst.impl.type.ParameterizedTypeImpl;
      +
       /**
        * A type as seen through one of its supertypes, for a Java-to-X printer: the supertype as the type extends or
        * implements it, and what the supertype's type parameters are in the type. Pure functions of the CST.
      diff --git a/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/TranslationState.java b/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/TranslationState.java
      index 7c9b414186..bf04a0d4b6 100644
      --- a/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/TranslationState.java
      +++ b/maddi-cst-print-translate/src/main/java/io/codelaser/maddi/cst/print/translate/TranslationState.java
      @@ -16,6 +16,14 @@
        */
       package io.codelaser.maddi.cst.print.translate;
       
      +import java.util.ArrayDeque;
      +import java.util.Deque;
      +import java.util.Iterator;
      +import java.util.LinkedHashSet;
      +import java.util.List;
      +import java.util.Set;
      +import java.util.function.Predicate;
      +
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.element.Source;
       import io.codelaser.maddi.cst.api.expression.ConstructorCall;
      @@ -32,13 +40,6 @@
       import io.codelaser.maddi.cst.api.variable.Variable;
       import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts;
       
      -import java.util.ArrayDeque;
      -import java.util.Deque;
      -import java.util.Iterator;
      -import java.util.LinkedHashSet;
      -import java.util.List;
      -import java.util.Set;
      -
       /**
        * Where a Java-to-X printer is, which the CST does not say: the printers are static and recursive, and created
        * through the cst-api factories, whose signatures carry no context. So each language keeps one of these per thread,
      @@ -86,7 +87,7 @@ public boolean typeParameterInScope(TypeParameter typeParameter) {
            * A type parameter of the innermost type being printed, or of an enclosing one as far as each type in between
            * {@code seesEnclosing} its enclosing type's: Kotlin's nested (not inner) class does not.
            */
      -    public boolean typeParameterInScope(TypeParameter typeParameter, java.util.function.Predicate seesEnclosing) {
      +    public boolean typeParameterInScope(TypeParameter typeParameter, Predicate seesEnclosing) {
               for (TypeInfo t : types) {
                   if (t.typeParameters().contains(typeParameter)) return true;
                   if (!seesEnclosing.test(t)) return false;
      diff --git a/maddi-cst-print-translate/src/test/java/io/codelaser/maddi/cst/print/translate/TestLiterals.java b/maddi-cst-print-translate/src/test/java/io/codelaser/maddi/cst/print/translate/TestLiterals.java
      index c3f0ec53a4..5dc5174fc6 100644
      --- a/maddi-cst-print-translate/src/test/java/io/codelaser/maddi/cst/print/translate/TestLiterals.java
      +++ b/maddi-cst-print-translate/src/test/java/io/codelaser/maddi/cst/print/translate/TestLiterals.java
      @@ -16,11 +16,11 @@
        */
       package io.codelaser.maddi.cst.print.translate;
       
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
       
       import java.util.Map;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      +import org.junit.jupiter.api.Test;
       
       public class TestLiterals {
       
      diff --git a/maddi-cst-print-translate/src/test/java/io/codelaser/maddi/cst/print/translate/TestTranslationState.java b/maddi-cst-print-translate/src/test/java/io/codelaser/maddi/cst/print/translate/TestTranslationState.java
      index 3199ac1a4e..fb7b5b37a3 100644
      --- a/maddi-cst-print-translate/src/test/java/io/codelaser/maddi/cst/print/translate/TestTranslationState.java
      +++ b/maddi-cst-print-translate/src/test/java/io/codelaser/maddi/cst/print/translate/TestTranslationState.java
      @@ -16,11 +16,11 @@
        */
       package io.codelaser.maddi.cst.print.translate;
       
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.*;
       
       import java.util.List;
       
      -import static org.junit.jupiter.api.Assertions.*;
      +import org.junit.jupiter.api.Test;
       
       public class TestTranslationState {
       
      diff --git a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/OutputContextImpl.java b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/OutputContextImpl.java
      index f6d6fdefbb..73ab344778 100644
      --- a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/OutputContextImpl.java
      +++ b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/OutputContextImpl.java
      @@ -20,7 +20,6 @@
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputContext;
      -import io.codelaser.maddi.cst.api.output.Qualification;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
       import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl;
       
      diff --git a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/BlockPrinter.java b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/BlockPrinter.java
      index 099fde7c71..62c14eb735 100644
      --- a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/BlockPrinter.java
      +++ b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/BlockPrinter.java
      @@ -17,18 +17,19 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import java.util.List;
      +import java.util.Map;
      +import java.util.TreeMap;
      +
      +import org.slf4j.Logger;
      +import org.slf4j.LoggerFactory;
      +
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputElement;
       import io.codelaser.maddi.cst.api.output.element.BlankLine;
       import io.codelaser.maddi.cst.api.output.element.Guide;
       import io.codelaser.maddi.cst.api.output.element.Keyword;
       import io.codelaser.maddi.cst.api.output.element.Symbol;
      -import org.slf4j.Logger;
      -import org.slf4j.LoggerFactory;
      -
      -import java.util.List;
      -import java.util.Map;
      -import java.util.TreeMap;
       
       public class BlockPrinter {
           private static final Logger LOGGER = LoggerFactory.getLogger(BlockPrinter.class);
      diff --git a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/ElementPrinter.java b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/ElementPrinter.java
      index 2f10397945..3aa4a22c3c 100644
      --- a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/ElementPrinter.java
      +++ b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/ElementPrinter.java
      @@ -17,18 +17,19 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import java.util.Iterator;
      +import java.util.Map;
      +import java.util.TreeMap;
      +
      +import org.slf4j.Logger;
      +import org.slf4j.LoggerFactory;
      +
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputElement;
       import io.codelaser.maddi.cst.api.output.element.BlankLine;
       import io.codelaser.maddi.cst.api.output.element.Space;
       import io.codelaser.maddi.cst.api.output.element.Symbol;
       import io.codelaser.maddi.cst.api.output.element.Text;
      -import org.slf4j.Logger;
      -import org.slf4j.LoggerFactory;
      -
      -import java.util.Iterator;
      -import java.util.Map;
      -import java.util.TreeMap;
       
       public class ElementPrinter {
           private static final Logger LOGGER = LoggerFactory.getLogger(ElementPrinter.class);
      diff --git a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/Formatter2Impl.java b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/Formatter2Impl.java
      index cf815a74eb..4f77674797 100644
      --- a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/Formatter2Impl.java
      +++ b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/Formatter2Impl.java
      @@ -17,6 +17,8 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import java.util.*;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      @@ -24,8 +26,6 @@
       import io.codelaser.maddi.cst.api.output.element.Guide;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
       
      -import java.util.*;
      -
       /*
        Block structure: fully recursive
       
      diff --git a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/Util.java b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/Util.java
      index 99fd93e16d..bf90035508 100644
      --- a/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/Util.java
      +++ b/maddi-cst-print/src/main/java/io/codelaser/maddi/cst/print/formatter2/Util.java
      @@ -17,11 +17,11 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      -import io.codelaser.maddi.cst.api.output.OutputElement;
      -
       import java.util.ArrayList;
       import java.util.List;
       
      +import io.codelaser.maddi.cst.api.output.OutputElement;
      +
       public class Util {
       
           public static int charactersUntilAndExcludingLastNewline(String string) {
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestFormattingOptionsBuilder.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestFormattingOptionsBuilder.java
      index 064cdf13a0..68d82522bb 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestFormattingOptionsBuilder.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestFormattingOptionsBuilder.java
      @@ -5,10 +5,11 @@
       
       package io.codelaser.maddi.cst.print;
       
      -import io.codelaser.maddi.cst.api.output.FormattingOptions;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
       import org.junit.jupiter.api.Test;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      +import io.codelaser.maddi.cst.api.output.FormattingOptions;
       
       public class TestFormattingOptionsBuilder {
       
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestOutputBuilder.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestOutputBuilder.java
      index 95c6bd091c..501da2cbe0 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestOutputBuilder.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestOutputBuilder.java
      @@ -17,18 +17,18 @@
       
       package io.codelaser.maddi.cst.print;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
      +
      +import java.util.Arrays;
      +
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      -import io.codelaser.maddi.cst.api.output.element.Guide;
       import io.codelaser.maddi.cst.impl.output.GuideImpl;
       import io.codelaser.maddi.cst.impl.output.OutputBuilderImpl;
       import io.codelaser.maddi.cst.impl.output.SymbolEnum;
       import io.codelaser.maddi.cst.impl.output.TextImpl;
      -import org.junit.jupiter.api.Test;
      -
      -import java.util.Arrays;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
       
       public class TestOutputBuilder {
       
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestTypeName.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestTypeName.java
      index eb95114ae2..e4a93e13a4 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestTypeName.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/TestTypeName.java
      @@ -17,11 +17,12 @@
       
       package io.codelaser.maddi.cst.print;
       
      -import io.codelaser.maddi.cst.api.output.element.TypeName;
      -import io.codelaser.maddi.cst.impl.output.TypeNameImpl;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
       import org.junit.jupiter.api.Test;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      +import io.codelaser.maddi.cst.api.output.element.TypeName;
      +import io.codelaser.maddi.cst.impl.output.TypeNameImpl;
       
       public class TestTypeName {
       
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test3.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test3.java
      index a0ba2868c8..3f37d17ad7 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test3.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test3.java
      @@ -17,6 +17,11 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      @@ -24,10 +29,6 @@
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       public class Test3 {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test4.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test4.java
      index f397d36bfc..36eb18fd73 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test4.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test4.java
      @@ -17,6 +17,10 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      @@ -24,9 +28,6 @@
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       public class Test4 {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test5.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test5.java
      index 39b1231089..0422b89d27 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test5.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test5.java
      @@ -17,6 +17,11 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      @@ -24,10 +29,6 @@
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       public class Test5 {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test6.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test6.java
      index 3c005c02e6..f8b81608cd 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test6.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test6.java
      @@ -17,6 +17,12 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static io.codelaser.maddi.cst.impl.output.QualifiedNameImpl.Required.NEVER;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      @@ -24,11 +30,6 @@
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      -
      -import static io.codelaser.maddi.cst.impl.output.QualifiedNameImpl.Required.NEVER;
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       public class Test6 {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test7.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test7.java
      index 5ea5cb31ec..9431759140 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test7.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/Test7.java
      @@ -17,15 +17,16 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       public class Test7 {
       
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBlockPrinter1.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBlockPrinter1.java
      index 87815c28a3..dff8fe706b 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBlockPrinter1.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBlockPrinter1.java
      @@ -17,6 +17,11 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.*;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
      @@ -26,10 +31,6 @@
       import io.codelaser.maddi.cst.impl.output.TextImpl;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.*;
       
       public class TestBlockPrinter1 {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBlockPrinter2.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBlockPrinter2.java
      index 3ca4c8fa39..17019ad557 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBlockPrinter2.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBlockPrinter2.java
      @@ -17,6 +17,11 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertFalse;
      +
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      @@ -24,10 +29,6 @@
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertFalse;
       
       public class TestBlockPrinter2 {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBreakPriorityBlocks.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBreakPriorityBlocks.java
      index 951675bd28..916e6a1eaf 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBreakPriorityBlocks.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestBreakPriorityBlocks.java
      @@ -5,16 +5,17 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       /*
       Demonstrates the opt-in alwaysBreakPriorityBlocks flag. It reuses Test6.create1 (a real class
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestCollectElements.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestCollectElements.java
      index 6cc995c558..5702f7211e 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestCollectElements.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestCollectElements.java
      @@ -17,14 +17,15 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       public class TestCollectElements {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestFormatterModuleInfo.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestFormatterModuleInfo.java
      index e1c82db2cd..df5d3ff33a 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestFormatterModuleInfo.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestFormatterModuleInfo.java
      @@ -17,18 +17,20 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import java.util.List;
      +import java.util.function.Consumer;
      +
      +import org.junit.jupiter.api.DisplayName;
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.element.ModuleInfo;
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
       import io.codelaser.maddi.cst.impl.output.QualificationImpl;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.junit.jupiter.api.DisplayName;
      -import org.junit.jupiter.api.Test;
      -
      -import java.util.List;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       /**
        * The module declaration through the real formatter. The directive printers themselves are covered by
      @@ -65,7 +67,7 @@ public void shortDeclarationIsNotCollapsed() {
           }
       
       
      -    private static ModuleInfo build(java.util.function.Consumer directives) {
      +    private static ModuleInfo build(Consumer directives) {
               ModuleInfo.Builder builder = RUNTIME.newModuleInfoBuilder().setName("m.example");
               directives.accept(builder);
               return builder.build();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestGreedyFill.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestGreedyFill.java
      index 5af38b0f7f..6f0933a5ad 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestGreedyFill.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestGreedyFill.java
      @@ -17,6 +17,10 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      @@ -24,9 +28,6 @@
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       public class TestGreedyFill {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestGreedySpacing.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestGreedySpacing.java
      index 537ea1ddf9..c88b7dffe5 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestGreedySpacing.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestGreedySpacing.java
      @@ -5,15 +5,16 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertFalse;
      +import static org.junit.jupiter.api.Assertions.assertTrue;
      +
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertFalse;
      -import static org.junit.jupiter.api.Assertions.assertTrue;
       
       /*
       Regression tests for a GREEDY_FILL spacing defect: the separator space in front of a guide block
      diff --git a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestTextBlockFormatter.java b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestTextBlockFormatter.java
      index 3c998df9e8..f8f3cca5fa 100644
      --- a/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestTextBlockFormatter.java
      +++ b/maddi-cst-print/src/test/java/io/codelaser/maddi/cst/print/formatter2/TestTextBlockFormatter.java
      @@ -17,18 +17,18 @@
       
       package io.codelaser.maddi.cst.print.formatter2;
       
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +
      +import org.intellij.lang.annotations.Language;
      +import org.junit.jupiter.api.Test;
      +
       import io.codelaser.maddi.cst.api.output.Formatter;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.OutputBuilder;
      -import io.codelaser.maddi.cst.api.output.element.Symbol;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
       import io.codelaser.maddi.cst.impl.output.*;
       import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl;
       import io.codelaser.maddi.cst.print.FormattingOptionsImpl;
      -import org.intellij.lang.annotations.Language;
      -import org.junit.jupiter.api.Test;
      -
      -import static org.junit.jupiter.api.Assertions.assertEquals;
       
       public class TestTextBlockFormatter {
           private final Runtime runtime = new RuntimeImpl();
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/analyser/Main.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/analyser/Main.java
      index 8114b3393d..1a59a02cf0 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/analyser/Main.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/analyser/Main.java
      @@ -17,17 +17,6 @@
       
       package io.codelaser.maddi.graph.analyzer;
       
      -import io.codelaser.maddi.graph.*;
      -import io.codelaser.maddi.graph.op.BreakCycles;
      -import io.codelaser.maddi.graph.op.GreedyEdgeRemoval;
      -import io.codelaser.maddi.graph.op.ParallelGreedyEdgeRemoval;
      -import io.codelaser.maddi.graph.op.RemoveEdgesByVertexWeight;
      -import io.codelaser.maddi.graph.util.TimedLogger;
      -import org.jgrapht.Graph;
      -import org.jgrapht.graph.DefaultWeightedEdge;
      -import org.slf4j.Logger;
      -import org.slf4j.LoggerFactory;
      -
       import java.io.FileInputStream;
       import java.io.IOException;
       import java.io.InputStream;
      @@ -35,6 +24,18 @@
       import java.util.Objects;
       import java.util.stream.Collectors;
       
      +import org.jgrapht.Graph;
      +import org.jgrapht.graph.DefaultWeightedEdge;
      +import org.slf4j.Logger;
      +import org.slf4j.LoggerFactory;
      +
      +import io.codelaser.maddi.graph.*;
      +import io.codelaser.maddi.graph.op.BreakCycles;
      +import io.codelaser.maddi.graph.op.GreedyEdgeRemoval;
      +import io.codelaser.maddi.graph.op.ParallelGreedyEdgeRemoval;
      +import io.codelaser.maddi.graph.op.RemoveEdgesByVertexWeight;
      +import io.codelaser.maddi.graph.util.TimedLogger;
      +
       public class Main {
           private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
           public static final String CLASSPATH = "classpath:";
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/analyser/TypeGraphIO.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/analyser/TypeGraphIO.java
      index b1fd22abe3..c9d980051a 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/analyser/TypeGraphIO.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/analyser/TypeGraphIO.java
      @@ -17,16 +17,6 @@
       
       package io.codelaser.maddi.graph.analyzer;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.V;
      -import org.jgrapht.Graph;
      -import org.jgrapht.graph.DefaultWeightedEdge;
      -import org.jgrapht.graph.builder.GraphTypeBuilder;
      -import org.jgrapht.nio.Attribute;
      -import org.jgrapht.nio.DefaultAttribute;
      -import org.jgrapht.nio.gml.GmlExporter;
      -import org.jgrapht.nio.gml.GmlImporter;
      -
       import java.io.File;
       import java.io.IOException;
       import java.io.InputStream;
      @@ -38,6 +28,17 @@
       import java.util.Set;
       import java.util.function.Function;
       
      +import org.jgrapht.Graph;
      +import org.jgrapht.graph.DefaultWeightedEdge;
      +import org.jgrapht.graph.builder.GraphTypeBuilder;
      +import org.jgrapht.nio.Attribute;
      +import org.jgrapht.nio.DefaultAttribute;
      +import org.jgrapht.nio.gml.GmlExporter;
      +import org.jgrapht.nio.gml.GmlImporter;
      +
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.V;
      +
       public class TypeGraphIO {
       
           public static Map> convertGraphToMap(Graph graph) {
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/BreakCycles.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/BreakCycles.java
      index 9f07342bde..0d0d7ddf1f 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/BreakCycles.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/BreakCycles.java
      @@ -17,15 +17,16 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.V;
      -import org.slf4j.Logger;
      -import org.slf4j.LoggerFactory;
      -
       import java.util.*;
       import java.util.function.LongBinaryOperator;
       import java.util.stream.Collectors;
       
      +import org.slf4j.Logger;
      +import org.slf4j.LoggerFactory;
      +
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.V;
      +
       /*
       Combination of grouping and breaking cycles.
       
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Common.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Common.java
      index db40748615..bfe4774215 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Common.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Common.java
      @@ -17,11 +17,11 @@
       
       package io.codelaser.maddi.graph.op;
       
      +import java.util.*;
      +
       import io.codelaser.maddi.graph.G;
       import io.codelaser.maddi.graph.V;
       
      -import java.util.*;
      -
       public class Common {
       
           public static  Set> follow(G g, V startingPoint) {
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Cycle.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Cycle.java
      index 12f8215eff..88244c3f54 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Cycle.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Cycle.java
      @@ -17,13 +17,13 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.V;
      -
       import java.util.Comparator;
       import java.util.Set;
       import java.util.stream.Collectors;
       import java.util.stream.Stream;
       
      +import io.codelaser.maddi.graph.V;
      +
       public record Cycle(Set> vertices) {
           public int size() {
               return vertices().size();
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Cycles.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Cycles.java
      index d71cff0963..878ad6eac0 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Cycles.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Cycles.java
      @@ -17,13 +17,13 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.V;
      -
       import java.util.*;
       import java.util.function.Function;
       import java.util.stream.Collectors;
       import java.util.stream.Stream;
       
      +import io.codelaser.maddi.graph.V;
      +
       public record Cycles(Set> cycles) implements Iterable> {
       
           public int maxCycleSize(Set startingPoints) {
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/DijkstraShortestPath.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/DijkstraShortestPath.java
      index 61c4a94342..f4565866d4 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/DijkstraShortestPath.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/DijkstraShortestPath.java
      @@ -17,14 +17,14 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import org.jheaps.AddressableHeap;
      -import org.jheaps.tree.PairingHeap;
      -
       import java.util.*;
       import java.util.function.Function;
       import java.util.function.LongFunction;
       import java.util.stream.Stream;
       
      +import org.jheaps.AddressableHeap;
      +import org.jheaps.tree.PairingHeap;
      +
       public class DijkstraShortestPath {
       
           private final Connection initialConnection;
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/GreedyEdgeRemoval.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/GreedyEdgeRemoval.java
      index 5b31d1d719..eb09bbd21e 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/GreedyEdgeRemoval.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/GreedyEdgeRemoval.java
      @@ -17,16 +17,17 @@
       
       package io.codelaser.maddi.graph.op;
       
      +import java.util.Iterator;
      +import java.util.Map;
      +
      +import org.slf4j.Logger;
      +import org.slf4j.LoggerFactory;
      +
       import io.codelaser.maddi.graph.EdgeIterator;
       import io.codelaser.maddi.graph.EdgePrinter;
       import io.codelaser.maddi.graph.G;
       import io.codelaser.maddi.graph.V;
       import io.codelaser.maddi.graph.util.TimedLogger;
      -import org.slf4j.Logger;
      -import org.slf4j.LoggerFactory;
      -
      -import java.util.Iterator;
      -import java.util.Map;
       
       public class GreedyEdgeRemoval implements BreakCycles.ActionComputer {
           private static final Logger LOGGER = LoggerFactory.getLogger(GreedyEdgeRemoval.class);
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Hierarchy.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Hierarchy.java
      index db416e9b6b..4fe8996c75 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Hierarchy.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Hierarchy.java
      @@ -17,13 +17,13 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.V;
      -
       import java.util.*;
       import java.util.function.BiFunction;
       import java.util.stream.Collectors;
       import java.util.stream.Stream;
       
      +import io.codelaser.maddi.graph.V;
      +
       /*
       Leaves are in list.getFirst()
       Vertices with an edge to leaves only are in list.get(1)
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Linearize.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Linearize.java
      index 58fc885bae..6548fcebdc 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Linearize.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/Linearize.java
      @@ -17,14 +17,14 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.V;
      -
       import java.util.*;
      -import java.util.function.Function;
       import java.util.function.BiFunction;
      +import java.util.function.Function;
       import java.util.stream.Stream;
       
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.V;
      +
       public class Linearize {
       
           public record Result(Hierarchy linearized,
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ParallelGreedyEdgeRemoval.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ParallelGreedyEdgeRemoval.java
      index f84c06dc44..6f62eae3ef 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ParallelGreedyEdgeRemoval.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ParallelGreedyEdgeRemoval.java
      @@ -17,19 +17,20 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.util.TimedLogger;
      -import io.codelaser.maddi.graph.EdgeIterator;
      -import io.codelaser.maddi.graph.EdgePrinter;
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.V;
      -import org.slf4j.Logger;
      -import org.slf4j.LoggerFactory;
      -
       import java.util.*;
       import java.util.concurrent.atomic.AtomicInteger;
       import java.util.stream.Stream;
       import java.util.stream.StreamSupport;
       
      +import org.slf4j.Logger;
      +import org.slf4j.LoggerFactory;
      +
      +import io.codelaser.maddi.graph.EdgeIterator;
      +import io.codelaser.maddi.graph.EdgePrinter;
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.V;
      +import io.codelaser.maddi.graph.util.TimedLogger;
      +
       public class ParallelGreedyEdgeRemoval implements BreakCycles.ActionComputer {
           private static final Logger LOGGER = LoggerFactory.getLogger(ParallelGreedyEdgeRemoval.class);
       
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/RemoveEdgesByVertexWeight.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/RemoveEdgesByVertexWeight.java
      index 79f408e565..e487b91ebb 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/RemoveEdgesByVertexWeight.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/RemoveEdgesByVertexWeight.java
      @@ -17,16 +17,17 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.V;
      -import org.slf4j.Logger;
      -import org.slf4j.LoggerFactory;
      -
       import java.util.Map;
       import java.util.Set;
       import java.util.stream.Collectors;
       import java.util.stream.Stream;
       
      +import org.slf4j.Logger;
      +import org.slf4j.LoggerFactory;
      +
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.V;
      +
       public class RemoveEdgesByVertexWeight implements BreakCycles.ActionComputer {
           private static final Logger LOGGER = LoggerFactory.getLogger(GreedyEdgeRemoval.class);
           private final Map, Long> vertexWeights;
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ShortestCycleDijkstra.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ShortestCycleDijkstra.java
      index b1fa41efbe..b595551ccf 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ShortestCycleDijkstra.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ShortestCycleDijkstra.java
      @@ -17,12 +17,12 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.V;
      -
       import java.util.*;
       import java.util.stream.Stream;
       
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.V;
      +
       public class ShortestCycleDijkstra {
       
           public record Cycle(List> vertices, long distance) {
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ShortestCycleDijkstraWeights.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ShortestCycleDijkstraWeights.java
      index e2f14048b6..732ad75a47 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ShortestCycleDijkstraWeights.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/ShortestCycleDijkstraWeights.java
      @@ -17,12 +17,12 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.V;
      -
       import java.util.*;
       import java.util.stream.Stream;
       
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.V;
      +
       public class ShortestCycleDijkstraWeights {
       
           /* the weight is the original weight in the graph */
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/SimpleDijkstraShortestPath.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/SimpleDijkstraShortestPath.java
      index c1b2ad0b83..282f2ce81e 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/SimpleDijkstraShortestPath.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/op/SimpleDijkstraShortestPath.java
      @@ -17,10 +17,10 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.G;
      -
       import java.util.Map;
       
      +import io.codelaser.maddi.graph.G;
      +
       public class SimpleDijkstraShortestPath {
       
          public static  Map shortestPath(G graph, T startIndex) {
      diff --git a/maddi-graph/src/main/java/io/codelaser/maddi/graph/util/TimedLogger.java b/maddi-graph/src/main/java/io/codelaser/maddi/graph/util/TimedLogger.java
      index 7028de0015..8aaeb51539 100644
      --- a/maddi-graph/src/main/java/io/codelaser/maddi/graph/util/TimedLogger.java
      +++ b/maddi-graph/src/main/java/io/codelaser/maddi/graph/util/TimedLogger.java
      @@ -17,10 +17,10 @@
       
       package io.codelaser.maddi.graph.util;
       
      -import org.slf4j.Logger;
      -
       import java.time.Instant;
       
      +import org.slf4j.Logger;
      +
       public class TimedLogger {
       
           private final Logger logger;
      diff --git a/maddi-graph/src/test/java/io/codelaser/maddi/graph/TestLinearize.java b/maddi-graph/src/test/java/io/codelaser/maddi/graph/TestLinearize.java
      index efb2635de0..5189211efa 100644
      --- a/maddi-graph/src/test/java/io/codelaser/maddi/graph/TestLinearize.java
      +++ b/maddi-graph/src/test/java/io/codelaser/maddi/graph/TestLinearize.java
      @@ -17,17 +17,16 @@
       
       package io.codelaser.maddi.graph;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.V;
      -import io.codelaser.maddi.graph.op.BreakCycles;
      -import io.codelaser.maddi.graph.op.Linearize;
      -import io.codelaser.maddi.graph.op.GreedyEdgeRemoval;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
       
       import java.util.Map;
       import java.util.Set;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.graph.op.BreakCycles;
      +import io.codelaser.maddi.graph.op.GreedyEdgeRemoval;
      +import io.codelaser.maddi.graph.op.Linearize;
       
       public class TestLinearize {
       
      diff --git a/maddi-graph/src/test/java/io/codelaser/maddi/graph/analyser/TestTypeDependencies.java b/maddi-graph/src/test/java/io/codelaser/maddi/graph/analyser/TestTypeDependencies.java
      index 4c1a3ba652..ed6fbd121d 100644
      --- a/maddi-graph/src/test/java/io/codelaser/maddi/graph/analyser/TestTypeDependencies.java
      +++ b/maddi-graph/src/test/java/io/codelaser/maddi/graph/analyser/TestTypeDependencies.java
      @@ -17,13 +17,14 @@
       
       package io.codelaser.maddi.graph.analyzer;
       
      -import io.codelaser.maddi.graph.op.BreakCycles;
      -import org.junit.jupiter.api.Tag;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
       
       import java.io.IOException;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      +import org.junit.jupiter.api.Tag;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.graph.op.BreakCycles;
       
       public class TestTypeDependencies {
       
      diff --git a/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestDijkstraShortestPath.java b/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestDijkstraShortestPath.java
      index 7c9512c15a..d59078ef3c 100644
      --- a/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestDijkstraShortestPath.java
      +++ b/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestDijkstraShortestPath.java
      @@ -17,11 +17,11 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertArrayEquals;
       
       import java.util.Map;
       
      -import static org.junit.jupiter.api.Assertions.assertArrayEquals;
      +import org.junit.jupiter.api.Test;
       
       public class TestDijkstraShortestPath {
       
      diff --git a/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestShortestCycleDijkstra.java b/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestShortestCycleDijkstra.java
      index fad45ca397..fc78a6f3d0 100644
      --- a/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestShortestCycleDijkstra.java
      +++ b/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestShortestCycleDijkstra.java
      @@ -17,21 +17,21 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.ImmutableGraph;
      -import io.codelaser.maddi.graph.V;
      -import io.codelaser.maddi.graph.analyzer.TypeGraphIO;
      -import org.junit.jupiter.api.Test;
      -import org.junit.jupiter.api.io.TempDir;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertNull;
       
      -import java.io.File;
       import java.io.IOException;
       import java.nio.file.Files;
       import java.nio.file.Path;
       import java.util.Map;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertNull;
      +import org.junit.jupiter.api.Test;
      +import org.junit.jupiter.api.io.TempDir;
      +
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.ImmutableGraph;
      +import io.codelaser.maddi.graph.V;
      +import io.codelaser.maddi.graph.analyzer.TypeGraphIO;
       
       public class TestShortestCycleDijkstra {
       
      diff --git a/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestShortestCycleDijkstraWeights.java b/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestShortestCycleDijkstraWeights.java
      index af58580926..b686fde079 100644
      --- a/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestShortestCycleDijkstraWeights.java
      +++ b/maddi-graph/src/test/java/io/codelaser/maddi/graph/op/TestShortestCycleDijkstraWeights.java
      @@ -18,15 +18,16 @@
       
       package io.codelaser.maddi.graph.op;
       
      -import io.codelaser.maddi.graph.G;
      -import io.codelaser.maddi.graph.ImmutableGraph;
      -import io.codelaser.maddi.graph.V;
      -import org.junit.jupiter.api.Test;
      +import static org.junit.jupiter.api.Assertions.assertEquals;
      +import static org.junit.jupiter.api.Assertions.assertNull;
       
       import java.util.Map;
       
      -import static org.junit.jupiter.api.Assertions.assertEquals;
      -import static org.junit.jupiter.api.Assertions.assertNull;
      +import org.junit.jupiter.api.Test;
      +
      +import io.codelaser.maddi.graph.G;
      +import io.codelaser.maddi.graph.ImmutableGraph;
      +import io.codelaser.maddi.graph.V;
       
       /**
        * The minimal cycle size counts the vertices of the cycle: 2 for two vertices that depend on each other. Until
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/integration/JavaInspector.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/integration/JavaInspector.java
      index 177b5104a6..17eff99f8f 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/integration/JavaInspector.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/integration/JavaInspector.java
      @@ -18,10 +18,20 @@
       package io.codelaser.maddi.inspection.api.integration;
       
       
      +import java.io.IOException;
      +import java.net.URI;
      +import java.nio.file.Path;
      +import java.util.Arrays;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +import java.util.function.Function;
      +
       import io.codelaser.maddi.cst.api.element.CompilationUnit;
       import io.codelaser.maddi.cst.api.element.ModuleInfo;
       import io.codelaser.maddi.cst.api.element.SourceSet;
       import io.codelaser.maddi.cst.api.info.ImportComputer;
      +import io.codelaser.maddi.cst.api.info.InfoMapView;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.output.FormattingOptions;
       import io.codelaser.maddi.cst.api.output.Qualification;
      @@ -32,15 +42,6 @@
       import io.codelaser.maddi.inspection.api.resource.InputConfiguration;
       import io.codelaser.maddi.inspection.api.resource.SourceFile;
       
      -import java.io.IOException;
      -import java.net.URI;
      -import java.nio.file.Path;
      -import java.util.Arrays;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Set;
      -import java.util.function.Function;
      -
       /*
       Unless you have very good reasons not to, please use the openjdk implementation of the JavaInspector.
        */
      @@ -339,7 +340,7 @@ record ReloadResult(List problems, Set sourceHa
            * type's analysis onto its new object outside the reload, via the {@code rewire(InfoMapView, …)} path —
            * see {@code docs/design/analysis-rewiring.md}. Valid until the next parse.
            */
      -    default io.codelaser.maddi.cst.api.info.InfoMapView lastRewireInfoMap() {
      +    default InfoMapView lastRewireInfoMap() {
               return null;
           }
       }
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/integration/JavaInspectorFactory.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/integration/JavaInspectorFactory.java
      index c83d128c20..c8e4f16ce4 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/integration/JavaInspectorFactory.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/integration/JavaInspectorFactory.java
      @@ -1,10 +1,10 @@
       package io.codelaser.maddi.inspection.api.integration;
       
      -import io.codelaser.maddi.cst.api.element.SourceSet;
      -
       import java.io.IOException;
       import java.util.List;
       
      +import io.codelaser.maddi.cst.api.element.SourceSet;
      +
       public interface JavaInspectorFactory {
           List dependencies();
           JavaInspector withSources(SourceSet sourceSet) throws IOException;
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Context.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Context.java
      index 4235519358..514f8c3cc9 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Context.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Context.java
      @@ -17,6 +17,8 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.Map;
      +
       import io.codelaser.maddi.cst.api.element.CompilationUnit;
       import io.codelaser.maddi.cst.api.element.DetailedSources;
       import io.codelaser.maddi.cst.api.element.Source;
      @@ -27,8 +29,6 @@
       import io.codelaser.maddi.cst.api.type.NamedType;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       
      -import java.util.Map;
      -
       public interface Context {
           VariableContext dependentVariableContext();
       
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ErasedExpression.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ErasedExpression.java
      index 0edf72c446..850e7862e6 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ErasedExpression.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ErasedExpression.java
      @@ -17,11 +17,11 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.expression.Expression;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       
      -import java.util.Set;
      -
       public interface ErasedExpression extends Expression {
           Set erasureTypes();
       }
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/GenericsHelper.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/GenericsHelper.java
      index 775cbdf245..8daffbed5d 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/GenericsHelper.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/GenericsHelper.java
      @@ -17,6 +17,8 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.Map;
      +
       import io.codelaser.maddi.annotation.Fluent;
       import io.codelaser.maddi.cst.api.element.Element;
       import io.codelaser.maddi.cst.api.element.Source;
      @@ -28,8 +30,6 @@
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.cst.api.variable.Variable;
       
      -import java.util.Map;
      -
       public interface GenericsHelper {
       
           MethodTypeParameterMap newMethodTypeParameterMap(MethodInfo methodInfo, Map concreteTypes);
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/HierarchyHelper.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/HierarchyHelper.java
      index fe29299978..8de081a9d2 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/HierarchyHelper.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/HierarchyHelper.java
      @@ -19,7 +19,6 @@
       
       import io.codelaser.maddi.cst.api.analysis.Property;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.api.type.ParameterizedType;
       
       public interface HierarchyHelper {
       
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/MethodResolution.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/MethodResolution.java
      index d3fcb06980..8461bbde4a 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/MethodResolution.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/MethodResolution.java
      @@ -17,18 +17,17 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.List;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.element.Comment;
       import io.codelaser.maddi.cst.api.element.DetailedSources;
       import io.codelaser.maddi.cst.api.element.Source;
       import io.codelaser.maddi.cst.api.expression.Expression;
      -import io.codelaser.maddi.cst.api.expression.MethodReference;
       import io.codelaser.maddi.cst.api.type.Diamond;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       import io.codelaser.maddi.support.Either;
       
      -import java.util.List;
      -import java.util.Set;
      -
       public interface MethodResolution {
           record Count(int parameters, boolean isVoid) {
           }
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/MethodTypeParameterMap.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/MethodTypeParameterMap.java
      index bc2ed24f84..062e74e1d9 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/MethodTypeParameterMap.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/MethodTypeParameterMap.java
      @@ -17,6 +17,9 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.List;
      +import java.util.Map;
      +
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.runtime.Runtime;
      @@ -24,9 +27,6 @@
       import io.codelaser.maddi.cst.api.type.NamedType;
       import io.codelaser.maddi.cst.api.type.ParameterizedType;
       
      -import java.util.List;
      -import java.util.Map;
      -
       public interface MethodTypeParameterMap {
       
           Map concreteTypes();
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ParseHelper.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ParseHelper.java
      index 7361acbe2d..2c5439b8a1 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ParseHelper.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ParseHelper.java
      @@ -17,18 +17,16 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.List;
      +
       import io.codelaser.maddi.cst.api.element.JavaDoc;
       import io.codelaser.maddi.cst.api.expression.AnnotationExpression;
      -import io.codelaser.maddi.cst.api.expression.Assignment;
       import io.codelaser.maddi.cst.api.expression.Expression;
       import io.codelaser.maddi.cst.api.info.Info;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
      -import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement;
       import io.codelaser.maddi.cst.api.statement.Statement;
       
      -import java.util.List;
      -
       public interface ParseHelper {
       
           List parseAnnotationExpression(TypeInfo annotationType, Object annotation, Context context);
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ParseResult.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ParseResult.java
      index 961c4dbfd8..6199956e6a 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ParseResult.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/ParseResult.java
      @@ -17,16 +17,16 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.element.ModuleInfo;
       import io.codelaser.maddi.cst.api.element.SourceSet;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
       import io.codelaser.maddi.cst.api.info.MethodInfo;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Set;
      -
       /*
       result of successful parsing.
       
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Resolver.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Resolver.java
      index 48175c62db..427c04cea9 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Resolver.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Resolver.java
      @@ -17,6 +17,8 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.List;
      +
       import io.codelaser.maddi.cst.api.element.JavaDoc;
       import io.codelaser.maddi.cst.api.expression.AnnotationExpression;
       import io.codelaser.maddi.cst.api.info.FieldInfo;
      @@ -25,8 +27,6 @@
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       import io.codelaser.maddi.cst.api.statement.Statement;
       
      -import java.util.List;
      -
       public interface Resolver {
           void add(Info info,
                    Info.Builder infoBuilder,
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Summary.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Summary.java
      index 0776fe113f..335e909984 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Summary.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/Summary.java
      @@ -17,6 +17,13 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.net.URI;
      +import java.time.Instant;
      +import java.util.List;
      +import java.util.Map;
      +import java.util.Objects;
      +import java.util.Set;
      +
       import io.codelaser.maddi.cst.api.analysis.Message;
       import io.codelaser.maddi.cst.api.element.CompilationUnit;
       import io.codelaser.maddi.cst.api.element.Element;
      @@ -25,13 +32,6 @@
       import io.codelaser.maddi.cst.api.element.SourceSet;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       
      -import java.net.URI;
      -import java.time.Instant;
      -import java.util.List;
      -import java.util.Map;
      -import java.util.Objects;
      -import java.util.Set;
      -
       /*
       When parsing is successful, switch to ParseResult.
       
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/TypeContext.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/TypeContext.java
      index ab7b33872b..6851dd607a 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/TypeContext.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/TypeContext.java
      @@ -17,6 +17,8 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      +import java.util.List;
      +
       import io.codelaser.maddi.annotation.NotNull;
       import io.codelaser.maddi.cst.api.element.CompilationUnit;
       import io.codelaser.maddi.cst.api.element.ImportStatement;
      @@ -26,8 +28,6 @@
       import io.codelaser.maddi.cst.api.type.NamedType;
       import io.codelaser.maddi.cst.api.variable.Variable;
       
      -import java.util.List;
      -
       /*
       NOT to be used by byte code inspection: exclusive to parser system!
        */
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/TypeParameterMap.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/TypeParameterMap.java
      index 80b747b96d..241b378d7b 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/TypeParameterMap.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/parser/TypeParameterMap.java
      @@ -17,14 +17,14 @@
       
       package io.codelaser.maddi.inspection.api.parser;
       
      -import io.codelaser.maddi.cst.api.type.NamedType;
      -import io.codelaser.maddi.cst.api.type.ParameterizedType;
      -
       import java.util.HashMap;
       import java.util.HashSet;
       import java.util.Map;
       import java.util.Set;
       
      +import io.codelaser.maddi.cst.api.type.NamedType;
      +import io.codelaser.maddi.cst.api.type.ParameterizedType;
      +
       public record TypeParameterMap(Map map) {
       
           public TypeParameterMap {
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/BuildFiles.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/BuildFiles.java
      index 7b5182dc2b..a8b2ca4c29 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/BuildFiles.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/BuildFiles.java
      @@ -17,8 +17,10 @@
       
       package io.codelaser.maddi.inspection.api.resource;
       
      +import java.util.Collections;
       import java.util.List;
       import java.util.Map;
      +import java.util.TreeMap;
       
       /**
        * The build files that shaped an input configuration, hashed when the configuration was captured: a server compares
      @@ -60,6 +62,6 @@ public record BuildFiles(String declaredBy, String root, List globs, Map
       
           public BuildFiles {
               globs = List.copyOf(globs);
      -        sha256 = java.util.Collections.unmodifiableMap(new java.util.TreeMap<>(sha256)); // sorted: a stable file
      +        sha256 = Collections.unmodifiableMap(new TreeMap<>(sha256)); // sorted: a stable file
           }
       }
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/CompiledTypesManager.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/CompiledTypesManager.java
      index c2c830ba0c..8f56d67f73 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/CompiledTypesManager.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/CompiledTypesManager.java
      @@ -17,11 +17,11 @@
       
       package io.codelaser.maddi.inspection.api.resource;
       
      +import java.util.List;
      +
       import io.codelaser.maddi.cst.api.element.SourceSet;
       import io.codelaser.maddi.cst.api.info.TypeInfo;
       
      -import java.util.List;
      -
       /**
        * manages all types that come in byte-code form.
        * also deals with the bootstrapping of types (Object, String, etc.)
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/InputConfiguration.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/InputConfiguration.java
      index aa1765bac5..27a6ac8910 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/InputConfiguration.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/InputConfiguration.java
      @@ -17,15 +17,15 @@
       
       package io.codelaser.maddi.inspection.api.resource;
       
      -import io.codelaser.maddi.annotation.Fluent;
      -import io.codelaser.maddi.cst.api.element.SourceSet;
      -
       import java.net.URI;
       import java.nio.file.Path;
       import java.util.Collection;
       import java.util.List;
       import java.util.Map;
       
      +import io.codelaser.maddi.annotation.Fluent;
      +import io.codelaser.maddi.cst.api.element.SourceSet;
      +
       public interface InputConfiguration {
       
           /**
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/MD5FingerPrint.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/MD5FingerPrint.java
      index 7a0f47e7c0..232aa76124 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/MD5FingerPrint.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/MD5FingerPrint.java
      @@ -17,14 +17,14 @@
       
       package io.codelaser.maddi.inspection.api.resource;
       
      -import io.codelaser.maddi.cst.api.element.FingerPrint;
      -
       import java.security.MessageDigest;
       import java.security.NoSuchAlgorithmException;
       import java.util.Arrays;
       import java.util.Base64;
       import java.util.Objects;
       
      +import io.codelaser.maddi.cst.api.element.FingerPrint;
      +
       public class MD5FingerPrint implements FingerPrint {
       
           public static final FingerPrint NO_FINGERPRINT = new MD5FingerPrint();
      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/ParameterNameIndex.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/ParameterNameIndex.java
      index d78b60b96e..89a8e2d98a 100644
      --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/ParameterNameIndex.java
      +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/ParameterNameIndex.java
      @@ -17,10 +17,6 @@
       
       package io.codelaser.maddi.inspection.api.resource;
       
      -import io.codelaser.maddi.cst.api.info.MethodInfo;
      -import io.codelaser.maddi.cst.api.info.ParameterInfo;
      -import io.codelaser.maddi.cst.api.info.TypeInfo;
      -
       import java.io.BufferedReader;
       import java.io.BufferedWriter;
       import java.io.IOException;
      @@ -41,6 +37,10 @@
       import java.util.zip.GZIPInputStream;
       import java.util.zip.GZIPOutputStream;
       
      +import io.codelaser.maddi.cst.api.info.MethodInfo;
      +import io.codelaser.maddi.cst.api.info.ParameterInfo;
      +import io.codelaser.maddi.cst.api.info.TypeInfo;
      +
       /**
        * A flat map from a method's canonical, source-set-independent key to the list of its formal parameter names.
        * 

      diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/Resources.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/Resources.java index e4f81cd33d..cbaca1f091 100644 --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/Resources.java +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/Resources.java @@ -17,18 +17,17 @@ package io.codelaser.maddi.inspection.api.resource; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; - import java.io.File; import java.io.IOException; import java.net.URI; -import java.net.URISyntaxException; import java.net.URL; import java.util.List; import java.util.Map; import java.util.function.BiConsumer; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; + public interface Resources { static String stripDotClass(String path) { diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/SourceFile.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/SourceFile.java index e93b163e3e..f7f79a19f0 100644 --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/SourceFile.java +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/resource/SourceFile.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.inspection.api.resource; -import io.codelaser.maddi.cst.api.element.FingerPrint; -import io.codelaser.maddi.cst.api.element.SourceSet; +import static io.codelaser.maddi.util.StringUtil.replaceSlashDollar; import java.net.URI; import java.util.Objects; -import static io.codelaser.maddi.util.StringUtil.replaceSlashDollar; +import io.codelaser.maddi.cst.api.element.FingerPrint; +import io.codelaser.maddi.cst.api.element.SourceSet; public record SourceFile(String path, URI uri, SourceSet sourceSet, FingerPrint fingerPrint) { diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/util/CreateSyntheticFieldsForGetSet.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/util/CreateSyntheticFieldsForGetSet.java index c58f34b2fd..566a29f13b 100644 --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/util/CreateSyntheticFieldsForGetSet.java +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/util/CreateSyntheticFieldsForGetSet.java @@ -17,6 +17,9 @@ package io.codelaser.maddi.inspection.api.util; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.annotation.Fluent; import io.codelaser.maddi.annotation.method.GetSet; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -29,8 +32,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.This; import io.codelaser.maddi.util.GetSetNames; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /* this class sits a little out of place in the inspection-api package, but it is currently the only place diff --git a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/util/RecordSynthetics.java b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/util/RecordSynthetics.java index 614a9c5a0f..ec52e1d109 100644 --- a/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/util/RecordSynthetics.java +++ b/maddi-inspection-api/src/main/java/io/codelaser/maddi/inspection/api/util/RecordSynthetics.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.inspection.api.util; +import java.util.List; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Assignment; import io.codelaser.maddi.cst.api.expression.VariableExpression; @@ -27,8 +29,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.This; -import java.util.List; - public class RecordSynthetics { private final Runtime runtime; private final TypeInfo typeInfo; diff --git a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/CompiledTypesManagerImpl.java b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/CompiledTypesManagerImpl.java index 035b9a2e8d..ac46d463b7 100644 --- a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/CompiledTypesManagerImpl.java +++ b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/CompiledTypesManagerImpl.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration; +import java.net.URI; +import java.util.*; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; @@ -26,12 +33,6 @@ import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.support.SetOnce; import io.codelaser.maddi.util.Trie; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.URI; -import java.util.*; -import java.util.concurrent.locks.ReentrantReadWriteLock; public class CompiledTypesManagerImpl implements CompiledTypesManager { private static final Logger LOGGER = LoggerFactory.getLogger(CompiledTypesManagerImpl.class); diff --git a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/JavaInspectorImpl.java b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/JavaInspectorImpl.java index 6728bc873a..d94312e309 100644 --- a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/JavaInspectorImpl.java +++ b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/JavaInspectorImpl.java @@ -17,7 +17,36 @@ package io.codelaser.maddi.inspection.integration; -import io.codelaser.maddi.cst.impl.expression.eval.EvalOptions; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; + +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.StringWriter; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Consumer; +import java.util.function.Supplier; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.parsers.java.JavaParser; +import org.parsers.java.Node; +import org.parsers.java.ParseException; +import org.parsers.java.ast.ModularCompilationUnit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.bytecode.java.asm.ByteCodeInspectorImpl; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.FingerPrint; @@ -29,8 +58,10 @@ import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.expression.eval.EvalOptions; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; +import io.codelaser.maddi.graph.util.TimedLogger; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.ParseResult; @@ -40,41 +71,11 @@ import io.codelaser.maddi.inspection.impl.parser.ContextImpl; import io.codelaser.maddi.inspection.impl.parser.ResolverImpl; import io.codelaser.maddi.inspection.impl.parser.TypeContextImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.inspection.resource.ResolveModuleDirectives; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.inspection.resource.SummaryImpl; import io.codelaser.maddi.parser.java.*; import io.codelaser.maddi.support.Either; -import io.codelaser.maddi.graph.util.TimedLogger; -import org.parsers.java.JavaParser; -import org.parsers.java.Node; -import org.parsers.java.ParseException; -import org.parsers.java.ast.ModularCompilationUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.StringWriter; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; -import java.util.function.Supplier; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; /* --- @@ -110,7 +111,7 @@ public class JavaInspectorImpl implements JavaInspector { */ public JavaInspectorImpl setEvalOptions(EvalOptions evalOptions) { if (runtime != null) throw new IllegalStateException("setEvalOptions after initialize has no effect"); - this.evalOptions = java.util.Objects.requireNonNull(evalOptions); + this.evalOptions = Objects.requireNonNull(evalOptions); return this; } @@ -433,7 +434,7 @@ private FingerPrint makeFingerPrint(URL jarUrl) throws URISyntaxException, IOExc private FingerPrint runtimeImageFingerPrint(String moduleName) { if (!computeFingerPrints) return MD5FingerPrint.NO_FINGERPRINT; return MD5FingerPrint.compute((java.lang.Runtime.version().toString() + ":" + moduleName) - .getBytes(java.nio.charset.StandardCharsets.UTF_8)); + .getBytes(StandardCharsets.UTF_8)); } diff --git a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/ResourcesImpl.java b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/ResourcesImpl.java index 2423825861..0741c368f7 100644 --- a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/ResourcesImpl.java +++ b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/ResourcesImpl.java @@ -17,14 +17,7 @@ package io.codelaser.maddi.inspection.integration; -import io.codelaser.maddi.cst.api.element.CompilationUnit; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.resource.Resources; -import io.codelaser.maddi.inspection.api.resource.SourceFile; -import io.codelaser.maddi.util.Trie; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static io.codelaser.maddi.util.StringUtil.replaceSlashDollar; import java.io.*; import java.net.*; @@ -40,7 +33,15 @@ import java.util.regex.Pattern; import java.util.stream.Stream; -import static io.codelaser.maddi.util.StringUtil.replaceSlashDollar; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.CompilationUnit; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.resource.Resources; +import io.codelaser.maddi.inspection.api.resource.SourceFile; +import io.codelaser.maddi.util.Trie; public class ResourcesImpl implements Resources { private static final Logger LOGGER = LoggerFactory.getLogger(ResourcesImpl.class); diff --git a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/RuntimeWithCompiledTypesManager.java b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/RuntimeWithCompiledTypesManager.java index 794798ab44..16ac7f7162 100644 --- a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/RuntimeWithCompiledTypesManager.java +++ b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/RuntimeWithCompiledTypesManager.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.integration; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; +import java.util.function.*; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -31,11 +36,6 @@ import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import java.net.URI; -import java.util.ArrayList; -import java.util.List; -import java.util.function.*; - public class RuntimeWithCompiledTypesManager extends RuntimeImpl { private final CompiledTypesManager compiledTypesManager; private final SourceSet sourceSetOfInternal; @@ -72,7 +72,7 @@ public TypeInfo getFullyQualified(String name, boolean complain, SourceSet sourc } @Override - public java.util.List loadedCopies(String fullyQualifiedName) { + public List loadedCopies(String fullyQualifiedName) { return compiledTypesManager.typesIfLoaded(fullyQualifiedName); } diff --git a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/ToolChain.java b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/ToolChain.java index 2cbb5a0793..3df1c2c0ea 100644 --- a/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/ToolChain.java +++ b/maddi-inspection-integration/src/main/java/io/codelaser/maddi/inspection/integration/ToolChain.java @@ -1,9 +1,9 @@ package io.codelaser.maddi.inspection.integration; -import io.codelaser.maddi.inspection.resource.AnalyzedApiClassPath; - import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; +import io.codelaser.maddi.inspection.resource.AnalyzedApiClassPath; + public class ToolChain { /** diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/TestPreloadJavaBase.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/TestPreloadJavaBase.java index e8779ee762..24d081b3a3 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/TestPreloadJavaBase.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/TestPreloadJavaBase.java @@ -17,14 +17,7 @@ package io.codelaser.maddi.inspection.integration; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.ParameterInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.TypeParameter; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.util.List; @@ -32,7 +25,15 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.ParameterInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; public class TestPreloadJavaBase { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/TestRuntimeImageFallback.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/TestRuntimeImageFallback.java index d015149b9b..cb023b32ba 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/TestRuntimeImageFallback.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/TestRuntimeImageFallback.java @@ -1,18 +1,20 @@ package io.codelaser.maddi.inspection.integration; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.List; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; /** * The ASM/in-house front-end reads JDK library classes from {@code .jmod} files. Some JDK distributions ship the @@ -42,7 +44,7 @@ public void loadsJdkTypesWithoutJmods() throws IOException { // a real member proves actual bytecode was read, not a stub assertNotNull(string.findUniqueMethod("length", 0)); - TypeInfo list = javaInspector.compiledTypesManager().type(java.util.List.class); + TypeInfo list = javaInspector.compiledTypesManager().type(List.class); assertNotNull(list); assertTrue(list.hasBeenInspected()); } diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/CommonTest.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/CommonTest.java index 38d7155c2d..45b5b2d72d 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/CommonTest.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/CommonTest.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.inspection.integration.java; +import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; + +import java.io.IOException; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.slf4j.LoggerFactory; + import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import io.codelaser.maddi.cst.api.runtime.Runtime; @@ -24,13 +32,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.BeforeEach; -import org.slf4j.LoggerFactory; - -import java.io.IOException; - -import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; public abstract class CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/CommonTest2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/CommonTest2.java index d26388ad83..57f3e7c1af 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/CommonTest2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/CommonTest2.java @@ -17,6 +17,17 @@ package io.codelaser.maddi.inspection.integration.java; +import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; +import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.TEST_PROTOCOL_PREFIX; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.BeforeAll; +import org.slf4j.LoggerFactory; + import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -24,16 +35,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.BeforeAll; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.stream.Collectors; - -import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; -import static io.codelaser.maddi.inspection.integration.JavaInspectorImpl.TEST_PROTOCOL_PREFIX; public abstract class CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestAnonymousType.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestAnonymousType.java index f5daa5ad85..22b1807112 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestAnonymousType.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestAnonymousType.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -24,11 +30,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestAnonymousType extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestConstructor.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestConstructor.java index 0fee68e34e..032568a130 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestConstructor.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestConstructor.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -26,11 +32,6 @@ import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestConstructor extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestConstructor2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestConstructor2.java index 050134561a..4c7393f658 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestConstructor2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestConstructor2.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestConstructor2 extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestExplicitConstructorInvocation.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestExplicitConstructorInvocation.java index f5e8ec23ac..fadd74e9a7 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestExplicitConstructorInvocation.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestExplicitConstructorInvocation.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -26,13 +34,6 @@ import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest; import io.codelaser.maddi.inspection.resource.ParseResultImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.*; public class TestExplicitConstructorInvocation extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestExtendedConstructor.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestExtendedConstructor.java index a9cef14881..8bb930e098 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestExtendedConstructor.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestExtendedConstructor.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.inspection.integration.java.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestExtendedConstructor extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestInitializers.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestInitializers.java index 2c20eb3751..5577c33ab2 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestInitializers.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestInitializers.java @@ -1,13 +1,14 @@ package io.codelaser.maddi.inspection.integration.java.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestInitializers extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestRecordConstructor.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestRecordConstructor.java index 6884f9bbf5..cc28301a04 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestRecordConstructor.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/constructor/TestRecordConstructor.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -24,12 +31,6 @@ import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestRecordConstructor extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/example/Annotations_2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/example/Annotations_2.java index 169868a9a8..ffdcdfffc3 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/example/Annotations_2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/example/Annotations_2.java @@ -17,15 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.example; +import static io.codelaser.maddi.inspection.integration.java.example.Annotations_2.XX; + +import java.util.TreeMap; + import io.codelaser.maddi.inspection.integration.java.importhelper.a.Resource; import io.codelaser.maddi.inspection.integration.java.importhelper.a.Resources; -import static io.codelaser.maddi.inspection.integration.java.example.Annotations_2.XX; - // this file is here only to show that we can use a static import for XX! // see TestAnnotations, INPUT3 @Resources({ - @Resource(name = XX, lookup = "yy", type = java.util.TreeMap.class), + @Resource(name = XX, lookup = "yy", type = TreeMap.class), @Resource(name = Annotations_2.ZZ, type = Integer.class) }) public class Annotations_2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/genericshelper/TestGenericsHelper.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/genericshelper/TestGenericsHelper.java index 556af6b55e..bf8795ad49 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/genericshelper/TestGenericsHelper.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/genericshelper/TestGenericsHelper.java @@ -1,5 +1,14 @@ package io.codelaser.maddi.inspection.integration.java.genericshelper; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; @@ -7,14 +16,6 @@ import io.codelaser.maddi.inspection.api.parser.GenericsHelper; import io.codelaser.maddi.inspection.impl.parser.GenericsHelperImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestGenericsHelper extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/genericshelper/TestTypeParameterBoundIsATypeParameter.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/genericshelper/TestTypeParameterBoundIsATypeParameter.java index 11f1fa3253..eef85ccf75 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/genericshelper/TestTypeParameterBoundIsATypeParameter.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/genericshelper/TestTypeParameterBoundIsATypeParameter.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.inspection.integration.java.genericshelper; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * {@code initialTypeParameterMap} replaces a {@code ?} by {@code ? extends X}, with X the type parameter's diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/importhelper/access/AccessExample_1.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/importhelper/access/AccessExample_1.java index d29d82a946..1cec9297d6 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/importhelper/access/AccessExample_1.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/importhelper/access/AccessExample_1.java @@ -41,7 +41,7 @@ public static class I3 { public String toString() { // must be public, overrides public method return "i=" + I1.I + ", j=" + I1.J + ", ik=" + I1.I2.IK + ", jk=" + AccessExample_1.I1.I2.JK - + ", jk=" + io.codelaser.maddi.inspection.integration.java.importhelper.access.AccessExample_1.I1.I2.JK; // all in the same primary type + + ", jk=" + AccessExample_1.I1.I2.JK; // all in the same primary type } } } diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/invalidate/TestInvalidate.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/invalidate/TestInvalidate.java index eb54e16eaa..e815f9ba5c 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/invalidate/TestInvalidate.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/invalidate/TestInvalidate.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.inspection.integration.java.invalidate; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; -import static org.junit.jupiter.api.Assertions.*; public class TestInvalidate extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestBuilder.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestBuilder.java index 4da579f660..94013eb48c 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestBuilder.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestBuilder.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.inspection.integration.java.lombok; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestBuilder extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestConstructor.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestConstructor.java index 02ffa38bec..bb1aaea1e5 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestConstructor.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestConstructor.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.inspection.integration.java.lombok; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.NoSuchElementException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.NoSuchElementException; - -import static org.junit.jupiter.api.Assertions.*; public class TestConstructor extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestData.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestData.java index 7436c6401e..58da29d03e 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestData.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestData.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.lombok; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.NoSuchElementException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.NoSuchElementException; - -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestData extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestGetter.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestGetter.java index 66a4f333c1..e0e548f1ea 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestGetter.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestGetter.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.lombok; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.NoSuchElementException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.NoSuchElementException; - -import static org.junit.jupiter.api.Assertions.*; public class TestGetter extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestLogger.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestLogger.java index 9b9ebc2e3e..225b483cf4 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestLogger.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestLogger.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.lombok; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestLogger extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestSetter.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestSetter.java index 11eddc06fb..8ed6d501ab 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestSetter.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/lombok/TestSetter.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.lombok; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.NoSuchElementException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.NoSuchElementException; - -import static org.junit.jupiter.api.Assertions.*; public class TestSetter extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall0.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall0.java index 2464afb407..598245a2e2 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall0.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall0.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.function.Consumer; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -28,12 +35,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.function.Consumer; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall0 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall1.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall1.java index beda2cecbc..45cfd1fb34 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall1.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall1.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall1 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall10.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall10.java index 5d14ae24f0..a1b7ced74f 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall10.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall10.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; +import java.io.IOException; +import java.util.Map; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.io.IOException; -import java.util.Map; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestMethodCall10 extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall11.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall11.java index d7763c8b4f..cd3cad0793 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall11.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall11.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.cst.api.expression.Lambda; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.expression.Lambda; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestMethodCall11 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall12.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall12.java index 3c912a34d0..b21b4d38f3 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall12.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall12.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestMethodCall12 extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall13.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall13.java index f35689037b..4f0f7501e5 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall13.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall13.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestMethodCall13 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall2.java index c8397f0653..d410d63a30 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall2.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.inspection.integration.java.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.inspection.integration.java.CommonTest; + public class TestMethodCall2 extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall3.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall3.java index 3967e54ac6..3a4a45f580 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall3.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall3.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestMethodCall3 extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall4.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall4.java index 192be69d6b..8bb24e12e3 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall4.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall4.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.inspection.integration.java.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.inspection.integration.java.CommonTest; + public class TestMethodCall4 extends CommonTest { @Language("java") private static final String INPUT0= """ diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall5.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall5.java index b1387bc01d..959ddea75e 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall5.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall5.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.inspection.integration.java.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.inspection.integration.java.CommonTest; + public class TestMethodCall5 extends CommonTest { @Language("java") private static final String INPUT0 = """ diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall6.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall6.java index b5d635f3c1..19b10df1a8 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall6.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall6.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -24,10 +29,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall6 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall7.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall7.java index 238fcc4607..8bab08c9cc 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall7.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall7.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.*; + +import java.nio.file.FileSystem; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -29,13 +37,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.nio.file.FileSystem; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall7 extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall8.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall8.java index c994b93d22..6493fd3b06 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall8.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall8.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.MethodReference; @@ -27,11 +33,6 @@ import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall8 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall9.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall9.java index 4a40e8dfe2..cd5c47d9bb 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall9.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestMethodCall9.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertSame; public class TestMethodCall9 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverload0.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverload0.java index 9e64fdf79d..8a5a33a95e 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverload0.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverload0.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -26,11 +32,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestOverload0 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverload1.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverload1.java index 33d6f0e544..e40b75031a 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverload1.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverload1.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestOverload1 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride2.java index b79d90952f..f59dbbe172 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride2.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.inspection.integration.java.method; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestOverride2 extends CommonTest2 { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride3.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride3.java index 73765e1780..e24fb276f0 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride3.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride3.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertFalse; import java.io.IOException; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertFalse; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestOverride3 extends CommonTest2 { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride4.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride4.java index 13fc6ac07d..9d590e732d 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride4.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverride4.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestOverride4 extends CommonTest2 { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverridesOfRecordAccessors.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverridesOfRecordAccessors.java index f6ffa02f67..8e1c4c98e0 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverridesOfRecordAccessors.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/method/TestOverridesOfRecordAccessors.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.method; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestOverridesOfRecordAccessors extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestAnnotations.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestAnnotations.java index fb17e5b9e7..feff0b2a72 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestAnnotations.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestAnnotations.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.ArrayInitializer; import io.codelaser.maddi.cst.api.expression.Expression; @@ -30,10 +35,6 @@ import io.codelaser.maddi.cst.api.statement.TryStatement; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestAnnotations extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestArrayInitializer.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestArrayInitializer.java index 2f229e5d18..a945346efd 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestArrayInitializer.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestArrayInitializer.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.ArrayInitializer; import io.codelaser.maddi.cst.api.expression.ClassExpression; @@ -26,13 +34,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; public class TestArrayInitializer extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestComments.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestComments.java index 54e5d7e710..4d4360e6fc 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestComments.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestComments.java @@ -17,20 +17,21 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestComments extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestCompilationProblem.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestCompilationProblem.java index e5e0789124..f5757dfd5d 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestCompilationProblem.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestCompilationProblem.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.parsers.java.ParseException; +import org.slf4j.LoggerFactory; + import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -24,14 +33,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.parsers.java.ParseException; -import org.slf4j.LoggerFactory; - -import java.io.IOException; - -import static org.junit.jupiter.api.Assertions.*; public class TestCompilationProblem { private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(TestCompilationProblem.class); diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestCompiledTypesManager.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestCompiledTypesManager.java index 8976aa36fa..3683dfea18 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestCompiledTypesManager.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestCompiledTypesManager.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestCompiledTypesManager extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestEnum.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestEnum.java index 3ab6ce0d8d..b56e8ce850 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestEnum.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestEnum.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestEnum extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestExceptionTypes.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestExceptionTypes.java index 3bc6cc84c9..fe10b5de05 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestExceptionTypes.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestExceptionTypes.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.MethodPrinter; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.impl.info.MethodPrinterImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestExceptionTypes extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestField.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestField.java index 2c5dc0357e..cc49dfbcda 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestField.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestField.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Assignment; @@ -30,10 +35,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestField extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestField2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestField2.java index e5cc15a906..4c3d183141 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestField2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestField2.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.VariableExpression; @@ -26,13 +34,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; public class TestField2 extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestFieldAccess.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestFieldAccess.java index 5c4de7cc79..c2ecdec5be 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestFieldAccess.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestFieldAccess.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Assignment; import io.codelaser.maddi.cst.api.expression.BinaryOperator; @@ -27,12 +34,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestFieldAccess extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestForLoop.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestForLoop.java index 3edc3d3fb8..0d14c5d348 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestForLoop.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestForLoop.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; + public class TestForLoop extends CommonTest { @Language("java") private static final String INPUT1 = """ diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport.java index 4906fca4c7..ee0c13a3d1 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -27,14 +36,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; public class TestImport extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport2.java index 2978d52eee..d9adc9b8ab 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport2.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestImport2 extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport3.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport3.java index 64bddd0583..a0a07d3413 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport3.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport3.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestImport3 extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport4.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport4.java index 29e938c79a..037c32cc71 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport4.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestImport4.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertThrows; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestImport4 extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestInstanceOf.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestInstanceOf.java index a50f62e079..f566270bcd 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestInstanceOf.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestInstanceOf.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.InstanceOf; @@ -24,11 +30,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestInstanceOf extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc.java index 85b1c659cd..13f3e804f3 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -24,12 +31,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestJavaDoc extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc2.java index bc8865a989..256a09f0e4 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc2.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; public class TestJavaDoc2 extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc3.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc3.java index 562c671128..ada97c770c 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc3.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestJavaDoc3.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestJavaDoc3 extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestLambda.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestLambda.java index 4424f7beff..98c39a4239 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestLambda.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestLambda.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -26,11 +32,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.impl.variable.LocalVariableImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestLambda extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestMethodReference.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestMethodReference.java index 511f1bd44f..42019b1172 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestMethodReference.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestMethodReference.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.MethodReference; import io.codelaser.maddi.cst.api.expression.TypeExpression; @@ -27,12 +34,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestMethodReference extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestModuleInfo.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestModuleInfo.java index e3fce14692..d4114f52ff 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestModuleInfo.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestModuleInfo.java @@ -17,6 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.slf4j.LoggerFactory; + import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import io.codelaser.maddi.cst.api.element.ModuleInfo; @@ -36,16 +47,6 @@ import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SummaryImpl; import io.codelaser.maddi.parser.java.ParseHelperImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.net.URI; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestModuleInfo { @BeforeAll diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestNative.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestNative.java index e276e5efde..a418bc745e 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestNative.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestNative.java @@ -1,12 +1,13 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestNative extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestOperators.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestOperators.java index 80b9ad0a88..7648adca66 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestOperators.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestOperators.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.IfElseStatement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestOperators extends CommonTest { /* diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestPackageInfo.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestPackageInfo.java index dda25a14af..00e835ef28 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestPackageInfo.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestPackageInfo.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.parser.ParseResult; @@ -24,12 +31,6 @@ import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.ToolChain; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.Test; - -import java.io.IOException; - -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestPackageInfo { @Test diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestParseResult.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestParseResult.java index 8dfc192fb2..95762d22c5 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestParseResult.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestParseResult.java @@ -17,22 +17,23 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; public class TestParseResult extends CommonTest2 { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestRecord.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestRecord.java index 8b2381ac65..cafcd81025 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestRecord.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestRecord.java @@ -17,20 +17,21 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest; import io.codelaser.maddi.inspection.resource.ParseResultImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.Map; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.*; public class TestRecord extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestRecordPattern.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestRecordPattern.java index 705797545f..fcfd64c209 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestRecordPattern.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestRecordPattern.java @@ -18,6 +18,13 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.InstanceOf; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -25,12 +32,6 @@ import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestRecordPattern extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestStaticInitializer.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestStaticInitializer.java index a4478f1745..e0354809c2 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestStaticInitializer.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestStaticInitializer.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestStaticInitializer extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestSubTypes.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestSubTypes.java index 37fed4378b..f106a11451 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestSubTypes.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestSubTypes.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; + public class TestSubTypes extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestSwitch.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestSwitch.java index a4a6ddf2ce..bf35462a75 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestSwitch.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestSwitch.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.SwitchExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -26,14 +35,6 @@ import io.codelaser.maddi.cst.api.statement.SwitchStatementOldStyle; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestSwitch extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTryCatch.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTryCatch.java index a7f2a80139..fec79bb7bf 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTryCatch.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTryCatch.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.SingleLineComment; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -24,11 +30,6 @@ import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.statement.TryStatement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestTryCatch extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTryResource.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTryResource.java index b66e6c4f43..352ad4048d 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTryResource.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTryResource.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -25,10 +30,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.TryStatement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestTryResource extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeNatureKeyword.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeNatureKeyword.java index 687777d6ad..5d256565a7 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeNatureKeyword.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeNatureKeyword.java @@ -1,14 +1,15 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.integration.java.CommonTest; /** * The type-nature keyword's position, on the hand-written (CongoCC) front end. diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeParameter.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeParameter.java index 65b2f82017..a36191df89 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeParameter.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeParameter.java @@ -17,6 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.lang.invoke.TypeDescriptor; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -30,16 +41,6 @@ import io.codelaser.maddi.cst.impl.output.QualificationImpl; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.lang.invoke.TypeDescriptor; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; public class TestTypeParameter extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeParameter2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeParameter2.java index a81ce970f2..633ffb0564 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeParameter2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypeParameter2.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestTypeParameter2 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypesReferenced.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypesReferenced.java index 8f5e206dab..cdbc2a62ec 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypesReferenced.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestTypesReferenced.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestTypesReferenced extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestUnnamedVariable.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestUnnamedVariable.java index 83e06539b1..814063833d 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestUnnamedVariable.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestUnnamedVariable.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.ForEachStatement; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.ForEachStatement; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestUnnamedVariable extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestUnresolvedTypeWarning.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestUnresolvedTypeWarning.java index 277e0d6124..f3d892fee7 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestUnresolvedTypeWarning.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestUnresolvedTypeWarning.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.inspection.integration.java.other; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.HashMap; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; /** * Phase 2 (conservative): a reference to a type that is not on the (partial) classpath is a tolerable diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestVar.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestVar.java index 6505444046..03c67f6268 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestVar.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/other/TestVar.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -27,10 +32,6 @@ import io.codelaser.maddi.inspection.api.parser.ErasedExpression; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestVar extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestCastAndMemberAccess.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestCastAndMemberAccess.java index d277960f81..181aed3e26 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestCastAndMemberAccess.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestCastAndMemberAccess.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.integration.java.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Cast; import io.codelaser.maddi.cst.api.expression.VariableExpression; @@ -28,10 +33,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestCastAndMemberAccess extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestDetailedSources.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestDetailedSources.java index 67c80b97a8..a1cd5240e8 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestDetailedSources.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestDetailedSources.java @@ -1,5 +1,12 @@ package io.codelaser.maddi.inspection.integration.java.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -8,12 +15,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestDetailedSources extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportAnnotationClassLiteral.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportAnnotationClassLiteral.java index 2fb723f651..8320d6fbe3 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportAnnotationClassLiteral.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportAnnotationClassLiteral.java @@ -17,21 +17,22 @@ package io.codelaser.maddi.inspection.integration.java.print; -import io.codelaser.maddi.cst.api.info.ImportComputer; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.output.Qualification; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.Map; import java.util.regex.Pattern; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.ImportComputer; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.output.Qualification; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; /** * A class literal in an annotation value is a type reference like any other (GitHub CodeLaser/maddi#169): written diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportConstructorTypeArgument.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportConstructorTypeArgument.java index d110a42be8..1d7d8703ea 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportConstructorTypeArgument.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportConstructorTypeArgument.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.inspection.integration.java.print; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertTrue; /** * The type arguments written in a constructor call, {@code new Box(4)}, are printed, so they need their imports diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportInheritedNestedType.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportInheritedNestedType.java index d1c8866fa5..3efafdf63e 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportInheritedNestedType.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportInheritedNestedType.java @@ -17,21 +17,22 @@ package io.codelaser.maddi.inspection.integration.java.print; -import io.codelaser.maddi.cst.api.info.ImportComputer; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.output.Qualification; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.ImportComputer; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.output.Qualification; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.integration.java.CommonTest2; /** * A nested type declared by a SUPERTYPE is inherited into the subclass's scope, so it needs no import — and diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportSamePackageShadow.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportSamePackageShadow.java index f8cf758831..4f9a62417b 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportSamePackageShadow.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestImportSamePackageShadow.java @@ -17,19 +17,21 @@ package io.codelaser.maddi.inspection.integration.java.print; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.util.Iterator; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * A single-type import shadows a type of the unit's own package (GitHub CodeLaser/maddi#110): a same-package @@ -65,7 +67,7 @@ private String print(ParseResult parseResult, String fqn) { TypeInfo typeInfo = parseResult.findType(fqn); ImportComputer ic = javaInspector.importComputer(Integer.MAX_VALUE, typeInfo.compilationUnit().sourceSet()); // as a CST-built reference to java.util.Iterator would: no written qualifier, so an import candidate - ic.add(javaInspector.compiledTypesManager().type(java.util.Iterator.class)); + ic.add(javaInspector.compiledTypesManager().type(Iterator.class)); return javaInspector.print2(typeInfo.compilationUnit(), (Qualification.Decorator) null, ic); } diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestStaticInterfaceMethodQualifier.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestStaticInterfaceMethodQualifier.java index 3ad07876ec..4cfd68b2bc 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestStaticInterfaceMethodQualifier.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestStaticInterfaceMethodQualifier.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.inspection.integration.java.print; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertTrue; /** * A static method of an interface is not inherited (JLS 8.4.8): called from a type implementing or extending the diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestTextBlockFormatting.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestTextBlockFormatting.java index d305ba8d63..e717c86cb8 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestTextBlockFormatting.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestTextBlockFormatting.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.TextBlock; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestTextBlockFormatting extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestTypeQualification.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestTypeQualification.java index 3f6bc27358..8bb3b2fb60 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestTypeQualification.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestTypeQualification.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.integration.java.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestTypeQualification extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestVariousPrint2Issues.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestVariousPrint2Issues.java index 0e89d71828..1a719c625d 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestVariousPrint2Issues.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/print/TestVariousPrint2Issues.java @@ -1,17 +1,18 @@ package io.codelaser.maddi.inspection.integration.java.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.MultiLineComment; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestVariousPrint2Issues extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/stub/TestStub1.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/stub/TestStub1.java index 520627d662..1340fe1f06 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/stub/TestStub1.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/stub/TestStub1.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.stub; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertThrows; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertThrows; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestStub1 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/stub/TestStub2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/stub/TestStub2.java index 0789193abd..52c9f9f106 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/stub/TestStub2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/stub/TestStub2.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.stub; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestStub2 extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/translate/TestTranslate.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/translate/TestTranslate.java index 1bfa92282c..b943c7a121 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/translate/TestTranslate.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/translate/TestTranslate.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.translate; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.lang.invoke.TypeDescriptor; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestTranslate extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/translate/TestTranslateAnonymousType.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/translate/TestTranslateAnonymousType.java index f63afec44d..f5a7649b3f 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/translate/TestTranslateAnonymousType.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/translate/TestTranslateAnonymousType.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.translate; +import static org.junit.jupiter.api.Assertions.*; + +import java.nio.file.FileVisitResult; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -29,12 +36,6 @@ import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.nio.file.FileVisitResult; - -import static org.junit.jupiter.api.Assertions.*; public class TestTranslateAnonymousType extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestAnnotation.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestAnnotation.java index 50991f5e4d..4f9136f964 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestAnnotation.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestAnnotation.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.type; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestAnnotation extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestApplyTranslation.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestApplyTranslation.java index a9c27aff4f..d370beb157 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestApplyTranslation.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestApplyTranslation.java @@ -1,23 +1,24 @@ package io.codelaser.maddi.inspection.integration.java.type; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.assertj.core.api.AbstractAssert; import org.assertj.core.api.AbstractObjectAssert; import org.assertj.core.api.AbstractThrowableAssert; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.NamedType; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestApplyTranslation extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestByteCode.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestByteCode.java index 0e7926331e..f60d28d073 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestByteCode.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestByteCode.java @@ -17,16 +17,7 @@ package io.codelaser.maddi.inspection.integration.java.type; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.TypeParameter; -import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; -import io.codelaser.maddi.inspection.api.resource.Resources; -import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.test.web.servlet.setup.AbstractMockMvcBuilder; +import static org.junit.jupiter.api.Assertions.*; import java.io.FileOutputStream; import java.util.ArrayList; @@ -34,7 +25,17 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.test.web.servlet.setup.AbstractMockMvcBuilder; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; +import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; +import io.codelaser.maddi.inspection.api.resource.Resources; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestByteCode extends CommonTest { private static final Logger LOGGER = LoggerFactory.getLogger(TestByteCode.class); diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestFullyQualified.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestFullyQualified.java index 180e2b7993..0136da23ea 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestFullyQualified.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestFullyQualified.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.type; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -27,12 +34,6 @@ import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestFullyQualified extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestHierarchy.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestHierarchy.java index 2bd12c0866..885cd5a483 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestHierarchy.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestHierarchy.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.inspection.integration.java.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestHierarchy extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestInner2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestInner2.java index 1612f4effb..9873ade21c 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestInner2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestInner2.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.type; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.TypeExpression; @@ -24,14 +33,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.integration.java.CommonTest2; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestInner2 extends CommonTest2 { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestInnerClass.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestInnerClass.java index 34bc49c56f..d3691d8842 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestInnerClass.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestInnerClass.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.inspection.integration.java.type; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestInnerClass extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestIsAssignableFrom.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestIsAssignableFrom.java index 5b1924e1c2..2db3102d16 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestIsAssignableFrom.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestIsAssignableFrom.java @@ -17,20 +17,21 @@ package io.codelaser.maddi.inspection.integration.java.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.impl.type.IsAssignableFrom; -import io.codelaser.maddi.inspection.api.resource.MD5FingerPrint; -import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.io.Closeable; import java.util.List; import java.util.function.LongConsumer; import java.util.function.LongPredicate; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.cst.impl.type.IsAssignableFrom; +import io.codelaser.maddi.inspection.api.resource.MD5FingerPrint; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestIsAssignableFrom extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestIsAssignableFrom2.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestIsAssignableFrom2.java index d68db958b1..5801f355ff 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestIsAssignableFrom2.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestIsAssignableFrom2.java @@ -17,19 +17,21 @@ package io.codelaser.maddi.inspection.integration.java.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.impl.type.IsAssignableFrom2; -import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.io.Closeable; +import java.io.Serializable; import java.util.List; import java.util.function.LongConsumer; import java.util.function.LongPredicate; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.cst.impl.type.IsAssignableFrom2; +import io.codelaser.maddi.inspection.integration.java.CommonTest; public class TestIsAssignableFrom2 extends CommonTest { @@ -237,7 +239,7 @@ public void testArrays() { ParameterizedType intArray = runtime.intParameterizedType().copyWithArrays(1); ParameterizedType longArray = runtime.longParameterizedType().copyWithArrays(1); - TypeInfo serializable = javaInspector.compiledTypesManager().type(java.io.Serializable.class); + TypeInfo serializable = javaInspector.compiledTypesManager().type(Serializable.class); TypeInfo cloneable = javaInspector.compiledTypesManager().type(Cloneable.class); // reference array covariance diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestLocalType.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestLocalType.java index 79bd7de684..83f301742d 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestLocalType.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestLocalType.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.type; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestLocalType extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestSealed.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestSealed.java index f7870e4a6a..fd717a7cad 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestSealed.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestSealed.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.type; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestSealed extends CommonTest { @Language("java") diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestSelfReferentialBound.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestSelfReferentialBound.java index 817ae75afc..c436d2dffd 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestSelfReferentialBound.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestSelfReferentialBound.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.integration.java.type; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + import org.assertj.core.api.AbstractAssert; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; /* Captures bug (b): a self-referential ("F-bounded") generic bound that mentions more than one of the diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestTypeParameter.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestTypeParameter.java index 2380f65ad5..1c55c0fd01 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestTypeParameter.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestTypeParameter.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.inspection.integration.java.type; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Assignment; @@ -29,14 +38,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; import io.codelaser.maddi.inspection.integration.java.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestTypeParameter extends CommonTest { diff --git a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestVoid.java b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestVoid.java index 4df4b7422f..387279411d 100644 --- a/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestVoid.java +++ b/maddi-inspection-integration/src/test/java/io/codelaser/maddi/inspection/integration/java/type/TestVoid.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.inspection.integration.java.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.integration.java.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.integration.java.CommonTest; + public class TestVoid extends CommonTest { @Language("java") diff --git a/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/CompiledTypesManagerImpl.java b/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/CompiledTypesManagerImpl.java index e1ff95865b..7f1a38b19a 100644 --- a/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/CompiledTypesManagerImpl.java +++ b/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/CompiledTypesManagerImpl.java @@ -1,17 +1,20 @@ package io.codelaser.maddi.inspection.openjdk; +import java.net.URI; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.LongAdder; +import java.util.function.BiFunction; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; import io.codelaser.maddi.inspection.api.resource.SourceFile; import io.codelaser.maddi.inspection.resource.InfoByFqn; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.URI; -import java.util.*; -import java.util.concurrent.atomic.LongAdder; // important: this class should not retain any references to OpenJDK structures public class CompiledTypesManagerImpl implements CompiledTypesManager { @@ -21,8 +24,8 @@ public class CompiledTypesManagerImpl implements CompiledTypesManager { // read and written from parallel analyzer worker threads (getOrLoad during PARALLEL analysis): // these must be concurrent, and the lazy-load slow path below must additionally serialize access // to the (thread-hostile) javac task behind the loader - private final Map typesLoaded = new java.util.concurrent.ConcurrentHashMap<>(); - private final Set packageParts = java.util.concurrent.ConcurrentHashMap.newKeySet(); + private final Map typesLoaded = new ConcurrentHashMap<>(); + private final Set packageParts = ConcurrentHashMap.newKeySet(); // the scan's own registry. This class is a second, flatter cache of the same types, so invalidating or rewiring // a type has to reach both: leaving the type in InfoByFqn would have the next scan resolve references to the // stale object. @@ -33,7 +36,7 @@ public class CompiledTypesManagerImpl implements CompiledTypesManager { // asked for it. Passing only the FQN left the driver free to answer from whichever source set it happened to // have a javac task for -- in practice the one scanned last -- so in a multi-source-set configuration the // answer depended on scan order (see JavaInspectorImpl.unitsForCompiledTypeLoading). - private java.util.function.BiFunction lazyLoader; + private BiFunction lazyLoader; // Once the javac AST is dropped (JavaInspectorImpl.invalidateAllSources on a heavy-analysis run, DROP_AST), // the lazy loader can no longer serve any compiled type it had not already cached. A getOrLoad miss then @@ -42,9 +45,9 @@ public class CompiledTypesManagerImpl implements CompiledTypesManager { // The flag mirrors "no live javac task" and is flipped by JavaInspectorImpl as the task is dropped/re-scanned. private volatile boolean lazyLoaderDisabled; private volatile boolean strictOnDisabledMiss; // throw instead of log-and-null; a run-level policy, set once - private final Set distinctMissesAfterDrop = java.util.concurrent.ConcurrentHashMap.newKeySet(); + private final Set distinctMissesAfterDrop = ConcurrentHashMap.newKeySet(); private final LongAdder totalMissesAfterDrop = new LongAdder(); - private final Set warnedDisambiguations = java.util.concurrent.ConcurrentHashMap.newKeySet(); + private final Set warnedDisambiguations = ConcurrentHashMap.newKeySet(); private final LongAdder disambiguations = new LongAdder(); public CompiledTypesManagerImpl(SourceSet javaBase, InfoByFqn infoByFqn) { @@ -52,7 +55,7 @@ public CompiledTypesManagerImpl(SourceSet javaBase, InfoByFqn infoByFqn) { this.infoByFqn = infoByFqn; } - public void setLazyLoader(java.util.function.BiFunction lazyLoader) { + public void setLazyLoader(BiFunction lazyLoader) { this.lazyLoader = lazyLoader; } diff --git a/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/JavaInspectorImpl.java b/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/JavaInspectorImpl.java index f8bf9d2308..019fcb614d 100644 --- a/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/JavaInspectorImpl.java +++ b/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/JavaInspectorImpl.java @@ -1,38 +1,70 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.impl.expression.eval.EvalOptions; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.lang.module.ModuleDescriptor; +import java.lang.module.ModuleFinder; +import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.Instant; +import java.util.*; +import java.util.Set; +import java.util.TreeSet; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; +import java.util.zip.GZIPInputStream; + +import javax.tools.*; + +import org.jetbrains.annotations.NotNull; +import org.parsers.java.JavaParser; +import org.parsers.java.Node; +import org.parsers.java.ast.ModularCompilationUnit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.sun.source.util.JavacTask; + +import io.codelaser.maddi.cst.api.analysis.Message; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.FingerPrint; import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.impl.parser.ContextImpl; -import io.codelaser.maddi.inspection.impl.parser.ResolverImpl; -import io.codelaser.maddi.inspection.impl.parser.TypeContextImpl; -import io.codelaser.maddi.parser.java.ParseHelperImpl; -import io.codelaser.maddi.parser.java.ParseModuleInfo; -import org.parsers.java.JavaParser; -import org.parsers.java.Node; -import org.parsers.java.ast.ModularCompilationUnit; import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.InfoMap; +import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Formatter; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.expression.eval.EvalOptions; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; +import io.codelaser.maddi.graph.G; +import io.codelaser.maddi.graph.ImmutableGraph; +import io.codelaser.maddi.graph.op.Linearize; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.cst.api.analysis.Message; import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.api.resource.MD5FingerPrint; import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; import io.codelaser.maddi.inspection.api.resource.SourceFile; +import io.codelaser.maddi.inspection.impl.parser.ContextImpl; +import io.codelaser.maddi.inspection.impl.parser.ResolverImpl; +import io.codelaser.maddi.inspection.impl.parser.TypeContextImpl; import io.codelaser.maddi.inspection.resource.InfoByFqn; import io.codelaser.maddi.inspection.resource.ResolveModuleDirectives; import io.codelaser.maddi.inspection.resource.SummaryImpl; @@ -42,34 +74,8 @@ import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; import io.codelaser.maddi.java.openjdk.SourceSetInterleave; import io.codelaser.maddi.java.openjdk.UnresolvedSymbolException; -import io.codelaser.maddi.graph.G; -import io.codelaser.maddi.graph.ImmutableGraph; -import io.codelaser.maddi.graph.op.Linearize; -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.tools.*; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.URI; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.*; -import java.util.stream.Collectors; -import java.lang.module.ModuleDescriptor; -import java.lang.module.ModuleFinder; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; -import java.util.zip.GZIPInputStream; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; +import io.codelaser.maddi.parser.java.ParseHelperImpl; +import io.codelaser.maddi.parser.java.ParseModuleInfo; public class JavaInspectorImpl implements JavaInspector { private static final Logger LOGGER = LoggerFactory.getLogger(JavaInspectorImpl.class); @@ -80,7 +86,7 @@ public class JavaInspectorImpl implements JavaInspector { private final Map> sourceFiles = new HashMap<>(); private CompiledTypesManager compiledTypesManager; private InputConfiguration inputConfiguration; // kept for tests - private io.codelaser.maddi.cst.api.info.InfoMapView lastRewireInfoMap; // the last re-parse's rewire, read-only + private InfoMapView lastRewireInfoMap; // the last re-parse's rewire, read-only private final boolean computeFingerPrints; private final JavaCompiler javaCompiler; private final InfoByFqn infoByFqn = new InfoByFqn(); @@ -127,7 +133,7 @@ public class JavaInspectorImpl implements JavaInspector { // that is actually asking. private boolean strictSourceSetLoading; // census for the strict-mode audit; see recordFallBack. Concurrent: getOrLoad runs on parallel analyzer threads. - private final Set fallBackResolutions = java.util.concurrent.ConcurrentHashMap.newKeySet(); + private final Set fallBackResolutions = ConcurrentHashMap.newKeySet(); /** * How to stand up a {@link #loaderUnits} equivalent to the scan task that generation destroyed: the same source @@ -178,7 +184,7 @@ private record LoaderSpec(SourceSet sourceSet, boolean ignoreModule, boolean par */ public JavaInspectorImpl setEvalOptions(EvalOptions evalOptions) { if (runtime != null) throw new IllegalStateException("setEvalOptions after initialize has no effect"); - this.evalOptions = java.util.Objects.requireNonNull(evalOptions); + this.evalOptions = Objects.requireNonNull(evalOptions); return this; } @@ -1900,8 +1906,8 @@ private void validateOneDependency(Summary summary, reportClassOutputProblem(summary, sourceSet, dependency, dir.toURI(), problem.toString(), Summary.ClassOutputProblem.Kind.MISSING_OR_STALE, parsed.size(), missing.stream().sorted().toList(), stale.stream().sorted().toList(), - newestClassFile == 0L ? null : java.time.Instant.ofEpochMilli(newestClassFile), - stale.isEmpty() ? null : java.time.Instant.ofEpochMilli(oldestStaleSource)); + newestClassFile == 0L ? null : Instant.ofEpochMilli(newestClassFile), + stale.isEmpty() ? null : Instant.ofEpochMilli(oldestStaleSource)); } private static List fullyQualifiedNames(List types) { @@ -1911,7 +1917,7 @@ private static List fullyQualifiedNames(List types) { private void reportClassOutputProblem(Summary summary, SourceSet sourceSet, SourceSet dependency, URI uri, String problem, Summary.ClassOutputProblem.Kind kind, int parsedTypes, List missing, List stale, - java.time.Instant newestClassFile, java.time.Instant oldestStaleSource) { + Instant newestClassFile, Instant oldestStaleSource) { String detail = "Source set '" + sourceSet.name() + "' resolves its references into '" + dependency.name() + "' through class files, and " + problem + ". Those references will not resolve, and the compilation units holding them are dropped." @@ -2266,7 +2272,7 @@ public Set sourceFiles() { } @Override - public io.codelaser.maddi.cst.api.info.InfoMapView lastRewireInfoMap() { + public InfoMapView lastRewireInfoMap() { return lastRewireInfoMap; } diff --git a/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/RuntimeWithCompiledTypesManager.java b/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/RuntimeWithCompiledTypesManager.java index 3d1393b76b..d177c4f7fe 100644 --- a/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/RuntimeWithCompiledTypesManager.java +++ b/maddi-inspection-openjdk/src/main/java/io/codelaser/maddi/inspection/openjdk/RuntimeWithCompiledTypesManager.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.openjdk; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; +import java.util.function.*; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -31,11 +36,6 @@ import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import java.net.URI; -import java.util.ArrayList; -import java.util.List; -import java.util.function.*; - // at the moment, a literal copy of integration/RuntimeWithCompiledTypesManager public class RuntimeWithCompiledTypesManager extends RuntimeImpl { private final CompiledTypesManager compiledTypesManager; @@ -69,7 +69,7 @@ public TypeInfo getFullyQualified(String name, boolean complain, SourceSet sourc } @Override - public java.util.List loadedCopies(String fullyQualifiedName) { + public List loadedCopies(String fullyQualifiedName) { return compiledTypesManager.typesIfLoaded(fullyQualifiedName); } diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/LombokJar.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/LombokJar.java index 6db95934bf..bec2d2291c 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/LombokJar.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/LombokJar.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; - import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; + /** * A Lombok jar as a dependency of a parsed source set. The real one comes from the build ({@code maddi.test.lombokJar}, * see build.gradle.kts): it is on the class path maddi parses and NOT on the test JVM's, so javac loads the diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestAlternativeJRE.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestAlternativeJRE.java index 65a2b7104e..8bc46c0ba0 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestAlternativeJRE.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestAlternativeJRE.java @@ -1,5 +1,19 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.io.IOException; +import java.net.URI; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -8,19 +22,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * The parser loads platform (java.*) types from the JDK running the analyzer by default. When diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestAnonymousForwardReference.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestAnonymousForwardReference.java index 29a1c3c23d..3803e6af2e 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestAnonymousForwardReference.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestAnonymousForwardReference.java @@ -1,5 +1,17 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.io.IOException; +import java.net.URI; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -7,17 +19,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; /* Regression test: a method reference whose javac-inferred type is an anonymous class declared elsewhere in the diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestCompilationUnitIdentity.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestCompilationUnitIdentity.java index 9931428283..ae9103b01a 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestCompilationUnitIdentity.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestCompilationUnitIdentity.java @@ -1,5 +1,18 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.io.IOException; +import java.net.URI; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -8,18 +21,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertSame; /** * Two top-level types in the same source file must share a single {@link CompilationUnit} instance: every diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestConcurrentClassFileLoad.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestConcurrentClassFileLoad.java index 0c89d8354a..cf31fd48b5 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestConcurrentClassFileLoad.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestConcurrentClassFileLoad.java @@ -17,28 +17,16 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.CompilationUnit; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InfoByFqn; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.IOException; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.Collections; +import java.util.IdentityHashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -51,8 +39,24 @@ import java.util.jar.JarOutputStream; import java.util.stream.Stream; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.CompilationUnit; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InfoByFqn; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A library type committed twice from the same class file: "type io.micronaut.http.client.HttpClient committed @@ -140,7 +144,7 @@ public void concurrentLoadersAgreeOnOneInstance() throws Exception { })); } start.countDown(); - Set winners = java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()); + Set winners = Collections.newSetFromMap(new IdentityHashMap<>()); for (Future f : futures) winners.add(f.get()); // an AssertionError surfaces here assertEquals(1, winners.size(), "every loader must get the same instance"); assertSame(winners.iterator().next(), registry.getType("a.b.Api", task("set0"))); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDeepExpressionOnSmallStack.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDeepExpressionOnSmallStack.java index d25969b714..0c5c8a1f77 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDeepExpressionOnSmallStack.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDeepExpressionOnSmallStack.java @@ -17,21 +17,22 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; import java.net.URI; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * javac attributes {@code "a" + "a" + … } recursively, a few frames per operand, and so does Lombok's JavacAST when diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDescribeParseProblem.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDescribeParseProblem.java index bb70f49eb6..5ac88a86d6 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDescribeParseProblem.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDescribeParseProblem.java @@ -1,13 +1,14 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.analysis.Message; -import io.codelaser.maddi.inspection.api.parser.Summary; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.net.URI; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.analysis.Message; +import io.codelaser.maddi.inspection.api.parser.Summary; /** * The parse's INFO line names its first problem on one line: the file as a path, where in it, and javac's message diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDropAstFailLoud.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDropAstFailLoud.java index 4c2d52758a..dc21b75be4 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDropAstFailLoud.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestDropAstFailLoud.java @@ -1,15 +1,17 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.resource.InfoByFqn; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.net.URI; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.resource.InfoByFqn; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * The safety contract of dropping the javac AST (DESIGN-drop-javac-ast.md): once the lazy loader is @@ -19,7 +21,7 @@ */ public class TestDropAstFailLoud { - private static CompiledTypesManagerImpl newCtm(java.util.function.Function loader) { + private static CompiledTypesManagerImpl newCtm(Function loader) { SourceSet javaBase = new SourceSetImpl.Builder().setName("java.base").setUri(URI.create("file:/")).build(); CompiledTypesManagerImpl ctm = new CompiledTypesManagerImpl(javaBase, new InfoByFqn()); // the loader takes the requesting source set too; these tests are about surfacing misses after the AST diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestEventualConformance.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestEventualConformance.java index cb658f602f..7e9e9d6405 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestEventualConformance.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestEventualConformance.java @@ -17,6 +17,30 @@ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.opentest4j.AssertionFailedError; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.annotation.Container; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -28,30 +52,16 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.FieldReference; +import io.codelaser.maddi.cst.impl.analysis.ValueImpl; +import io.codelaser.maddi.cst.impl.info.TypeInfoImpl; +import io.codelaser.maddi.cst.io.CodecImpl; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; - -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.fail; +import io.codelaser.maddi.support.SetOnce; +import io.codelaser.maddi.util.GetSetNames; /** * Mechanical enforcement of the four cst-impl idioms that eventual immutability rests on, so that a @@ -146,41 +156,41 @@ public void before() throws IOException, URISyntaxException { Path maddiAnnotationSrc = Path.of("../maddi-annotation/src/main/java"); SourceSet maddiAnnotation = new SourceSetImpl.Builder().setName("maddi-annotation") .setSourceDirectories(List.of(maddiAnnotationSrc)) - .setUri(artifactOf(io.codelaser.maddi.annotation.Container.class)) + .setUri(artifactOf(Container.class)) .setLibrary(true).setModule(true).build(); Path maddiSupportSrc = Path.of("../maddi-support/src/main/java"); SourceSet maddiSupport = new SourceSetImpl.Builder().setName("maddi-support") .setSourceDirectories(List.of(maddiSupportSrc)) - .setUri(artifactOf(io.codelaser.maddi.support.SetOnce.class)) + .setUri(artifactOf(SetOnce.class)) .setLibrary(true).setModule(true) .setDependencies(List.of(maddiAnnotation)).build(); Path maddiUtilSrc = Path.of("../maddi-util/src/main/java"); maddiUtil = new SourceSetImpl.Builder().setName("maddi-util") .setSourceDirectories(List.of(maddiUtilSrc)) - .setUri(artifactOf(io.codelaser.maddi.util.GetSetNames.class)) + .setUri(artifactOf(GetSetNames.class)) .setLibrary(true).setModule(true) .setDependencies(List.of(maddiAnnotation, maddiSupport, orgSlf4jApi)).build(); Path cstApiSrc = Path.of("../maddi-cst-api/src/main/java"); SourceSet cstApi = new SourceSetImpl.Builder().setName("maddi-cst-api") .setSourceDirectories(List.of(cstApiSrc)) - .setUri(artifactOf(io.codelaser.maddi.cst.api.element.Element.class)) + .setUri(artifactOf(Element.class)) .setLibrary(true).setModule(true) .setDependencies(List.of(maddiAnnotation, maddiSupport, annotations)).build(); Path cstAnalysisSrc = Path.of("../maddi-cst-analysis/src/main/java"); SourceSet cstAnalysis = new SourceSetImpl.Builder().setName("maddi-cst-analysis") .setSourceDirectories(List.of(cstAnalysisSrc)) - .setUri(artifactOf(io.codelaser.maddi.cst.impl.analysis.ValueImpl.class)) + .setUri(artifactOf(ValueImpl.class)) .setModule(true) .setDependencies(List.of(cstApi, maddiAnnotation, maddiSupport, orgSlf4jApi)).build(); Path cstImplSrc = Path.of("../maddi-cst-impl/src/main/java"); cstImpl = new SourceSetImpl.Builder().setName("maddi-cst-impl") .setSourceDirectories(List.of(cstImplSrc)) - .setUri(artifactOf(io.codelaser.maddi.cst.impl.info.TypeInfoImpl.class)) + .setUri(artifactOf(TypeInfoImpl.class)) .setModule(true) .setDependencies(List.of(cstApi, cstAnalysis, maddiAnnotation, maddiSupport, maddiUtil, orgSlf4jApi, annotations)) .build(); @@ -191,12 +201,12 @@ public void before() throws IOException, URISyntaxException { Path cstIoSrc = Path.of("../maddi-cst-io/src/main/java"); SourceSet cstIo = new SourceSetImpl.Builder().setName("maddi-cst-io") .setSourceDirectories(List.of(cstIoSrc)) - .setUri(artifactOf(io.codelaser.maddi.cst.io.CodecImpl.class)) + .setUri(artifactOf(CodecImpl.class)) .setModule(true) .setDependencies(List.of(cstApi, cstAnalysis, maddiAnnotation, maddiSupport, orgSlf4jApi, annotations)).build(); SourceSet junitJupiter = externalJar(Test.class); - SourceSet openTest = SourceSetImpl.sourceSetOf(org.opentest4j.AssertionFailedError.class); + SourceSet openTest = SourceSetImpl.sourceSetOf(AssertionFailedError.class); for (Path p : List.of(maddiAnnotationSrc, maddiSupportSrc, maddiUtilSrc, cstApiSrc, cstAnalysisSrc, cstImplSrc, cstIoSrc)) { assertTrue(Files.isDirectory(p), "Expected maddi source directory " + p.toAbsolutePath()); @@ -278,14 +288,14 @@ public void test() { * of {@code TypeInspectionImpl}. */ private static Set immutabilityRelevantTypes(List cstImplTypes) { - Map> implementors = new java.util.HashMap<>(); + Map> implementors = new HashMap<>(); for (TypeInfo typeInfo : cstImplTypes) { if (!typeInfo.hasBeenInspected()) continue; for (TypeInfo superType : typeInfo.superTypesExcludingJavaLangObject()) { implementors.computeIfAbsent(superType, _ -> new ArrayList<>()).add(typeInfo); } } - Set inScope = new java.util.LinkedHashSet<>(); + Set inScope = new LinkedHashSet<>(); List worklist = new ArrayList<>(); for (TypeInfo typeInfo : cstImplTypes) { if (implementsElement(typeInfo) && inScope.add(typeInfo)) worklist.add(typeInfo); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestFingerPrint.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestFingerPrint.java index 4e4b99c10b..8c6c572595 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestFingerPrint.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestFingerPrint.java @@ -1,5 +1,16 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.FingerPrint; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -9,16 +20,6 @@ import io.codelaser.maddi.inspection.api.resource.MD5FingerPrint; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; /** * A compilation unit's fingerprint is the MD5 of its source text — the prerequisite for diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap12ClasspathGapReproduction.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap12ClasspathGapReproduction.java index a15c6b15ec..153e255fe9 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap12ClasspathGapReproduction.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap12ClasspathGapReproduction.java @@ -1,18 +1,8 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.File; import java.io.IOException; import java.net.URI; @@ -24,8 +14,20 @@ import java.util.Map; import java.util.stream.Stream; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * What a MISSING CLASSPATH ENTRY does to an annotated record — measured, with its control. @@ -144,7 +146,7 @@ public void controlWithTheAnnotationPresent() throws Exception { @Test public void withTheGapTheTypeIsDroppedAndTheParseStillSucceeds() throws Exception { Observation o = run(true); - if (java.lang.Runtime.version().feature() >= 27) { + if (Runtime.version().feature() >= 27) { // JDK 27's javac recovers from the unresolvable annotation and maddi stubs it: the gap no longer costs // the type, which parses exactly as in the control assertEquals("[3-arg, 1-arg]", o.cfgConstructors(), "JDK 27 keeps the whole type"); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap12StaleJarReproduction.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap12StaleJarReproduction.java index aa41722437..9fbf8c9470 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap12StaleJarReproduction.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap12StaleJarReproduction.java @@ -1,17 +1,8 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.IOException; import java.net.URI; import java.nio.file.*; @@ -22,8 +13,19 @@ import java.util.jar.JarOutputStream; import java.util.stream.Stream; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * GAP #12, the REPRODUCTION attempt — a real stale jar, not a hand-written message. diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap150NestedAccessOrder.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap150NestedAccessOrder.java index f951eac627..86ec82630b 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap150NestedAccessOrder.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGap150NestedAccessOrder.java @@ -1,23 +1,24 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.net.URI; import java.util.List; import java.util.Map; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * #150 — FIXED. This file began as the discriminating EXPERIMENT (root cause unknown) and is now the diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGeneratedClassOutput.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGeneratedClassOutput.java index 19d823ded8..914026a2da 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGeneratedClassOutput.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestGeneratedClassOutput.java @@ -1,22 +1,7 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.JavaFileObject; -import javax.tools.StandardJavaFileManager; -import javax.tools.StandardLocation; -import javax.tools.ToolProvider; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -25,7 +10,23 @@ import java.util.Map; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.StandardLocation; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * The class-file dependency between source sets, and the two answers to it. diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestInfoByFqnAllTypes.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestInfoByFqnAllTypes.java index dd1116e21c..6b0a675700 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestInfoByFqnAllTypes.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestInfoByFqnAllTypes.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.net.URI; +import java.util.List; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -24,12 +31,6 @@ import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; import io.codelaser.maddi.inspection.resource.InfoByFqn; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * {@link InfoByFqn#allTypes}: every registered copy of a name, one per source set, without stubs. A library a diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestInvalidate.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestInvalidate.java index 970f459b13..62abe712c1 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestInvalidate.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestInvalidate.java @@ -1,7 +1,30 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; + +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.StandardLocation; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.ConstructorCall; +import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -9,25 +32,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import javax.tools.JavaCompiler; -import javax.tools.JavaFileObject; -import javax.tools.StandardJavaFileManager; -import javax.tools.StandardLocation; -import javax.tools.ToolProvider; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; -import static org.junit.jupiter.api.Assertions.*; /** * Re-parsing with an {@code Invalidated}, across source sets. @@ -192,7 +196,7 @@ public void testInfoMapViewExposed() { TypeInfo user2 = pr2.findType(USER_FQN); assertNotSame(user1, user2); - io.codelaser.maddi.cst.api.info.InfoMapView view = javaInspector.lastRewireInfoMap(); + InfoMapView view = javaInspector.lastRewireInfoMap(); assertNotNull(view, "User was rewired, so the reload must expose a view"); assertSame(user2, view.typeInfo(user1), "the exposed view maps the old User to the rewired one"); assertTrue(view.rewiredTypes().contains(user2), "rewiredTypes includes the rewired User"); @@ -220,7 +224,7 @@ public void testRescanOnlyExposesView() { TypeInfo base2 = pr2.findType(BASE_FQN); assertNotSame(base1, base2, "Base was re-scanned"); - io.codelaser.maddi.cst.api.info.InfoMapView view = javaInspector.lastRewireInfoMap(); + InfoMapView view = javaInspector.lastRewireInfoMap(); assertNotNull(view, "a rescanned set exposes a view even with nothing to rewire"); // the old rescanned type resolves to the new one by fqn+source-set equality (InfoMapImpl seeds rebuilt types) assertSame(base2, view.typeInfo(base1), "the view maps the old rescanned Base to the new one"); @@ -346,7 +350,7 @@ public void testRewiredAnonymousTypeIsRegistered() { /** The anonymous class created inside {@code typeInfo}'s method {@code methodName}, or null. */ private static TypeInfo anonymousClassIn(TypeInfo typeInfo, String methodName) { - java.util.concurrent.atomic.AtomicReference found = new java.util.concurrent.atomic.AtomicReference<>(); + AtomicReference found = new AtomicReference<>(); typeInfo.findUniqueMethod(methodName, 1).methodBody().visit(e -> { if (found.get() == null && e instanceof ConstructorCall cc && cc.anonymousClass() != null) { found.set(cc.anonymousClass()); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector1OnlyJmod.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector1OnlyJmod.java index ff5c6b9c41..8aaa967697 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector1OnlyJmod.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector1OnlyJmod.java @@ -1,5 +1,17 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -8,17 +20,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; public class TestJavaInspector1OnlyJmod { diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector2JarOnClasspath.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector2JarOnClasspath.java index b3def7fe92..c4f24fee97 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector2JarOnClasspath.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector2JarOnClasspath.java @@ -1,5 +1,21 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.nio.file.Path; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; @@ -9,21 +25,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.nio.file.Path; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl.JAR_WITH_PATH_PREFIX; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestJavaInspector2JarOnClasspath { diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector3RealClasspath.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector3RealClasspath.java index d127601dd2..50f6c5c945 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector3RealClasspath.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector3RealClasspath.java @@ -1,18 +1,8 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.annotation.ImmutableContainer; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -25,9 +15,20 @@ import java.util.List; import java.util.Map; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; + +import io.codelaser.maddi.annotation.ImmutableContainer; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; public class TestJavaInspector3RealClasspath { diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector4RealClasspath.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector4RealClasspath.java index d3a38df34d..7839e47b26 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector4RealClasspath.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector4RealClasspath.java @@ -1,16 +1,8 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.support.SetOnce; -import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.resource.SourceSetImpl.sourceSetOf; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.net.URI; @@ -20,9 +12,19 @@ import java.util.List; import java.util.Map; -import static io.codelaser.maddi.inspection.resource.SourceSetImpl.sourceSetOf; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.annotation.Immutable; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.support.SetOnce; public class TestJavaInspector4RealClasspath { @@ -34,7 +36,7 @@ public void test() throws IOException, URISyntaxException { SourceSet javaBase = SourceSetImpl.javaBase(); SourceSet annotations = sourceSetOf(NotNull.class, javaBase); - SourceSet maddiAnnotation = sourceSetOf(io.codelaser.maddi.annotation.Immutable.class, javaBase); + SourceSet maddiAnnotation = sourceSetOf(Immutable.class, javaBase); SourceSet maddiSupport = sourceSetOf(SetOnce.class, javaBase, maddiAnnotation); Path cstApiPath = Path.of("../maddi-cst-api/src/main/java"); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector5RealClasspathModule.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector5RealClasspathModule.java index 52995822f5..69121973ec 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector5RealClasspathModule.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector5RealClasspathModule.java @@ -1,5 +1,24 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.resource.SourceSetImpl.sourceSetModuleOf; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; + +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -10,23 +29,6 @@ import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.support.SetOnce; import io.codelaser.maddi.util.StringUtil; -import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.resource.SourceSetImpl.sourceSetModuleOf; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestJavaInspector5RealClasspathModule { @@ -39,7 +41,7 @@ public void test() throws IOException, URISyntaxException { SourceSet javaBase = SourceSetImpl.javaBase(); SourceSet annotations = sourceSetModuleOf(NotNull.class, javaBase); - SourceSet maddiAnnotation = sourceSetModuleOf(io.codelaser.maddi.annotation.Immutable.class, javaBase); + SourceSet maddiAnnotation = sourceSetModuleOf(Immutable.class, javaBase); SourceSet maddiSupport = sourceSetModuleOf(SetOnce.class, javaBase, maddiAnnotation); SourceSet maddiUtil = sourceSetModuleOf(StringUtil.class, javaBase); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector6MultiProject.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector6MultiProject.java index 196f639427..50d5e6dc24 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector6MultiProject.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector6MultiProject.java @@ -1,20 +1,6 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.ModuleInfo; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.opentest4j.AssertionFailedError; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.net.URI; @@ -25,7 +11,29 @@ import java.util.Map; import java.util.Set; -import static org.junit.jupiter.api.Assertions.*; +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.opentest4j.AssertionFailedError; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.annotation.Container; +import io.codelaser.maddi.cst.api.element.Element; +import io.codelaser.maddi.cst.api.element.ModuleInfo; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.cst.impl.analysis.ValueImpl; +import io.codelaser.maddi.cst.impl.info.TypeInfoImpl; +import io.codelaser.maddi.cst.io.CodecImpl; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.support.SetOnce; +import io.codelaser.maddi.util.GetSetNames; public class TestJavaInspector6MultiProject { private static final Logger LOGGER = LoggerFactory.getLogger(TestJavaInspector6MultiProject.class); @@ -75,7 +83,7 @@ public void test() throws IOException, URISyntaxException { maddiAnnotation = new SourceSetImpl.Builder() .setName("maddi-annotation") .setSourceDirectories(List.of(maddiAnnotationSrc)) - .setUri(artifactOf(io.codelaser.maddi.annotation.Container.class)) + .setUri(artifactOf(Container.class)) .setLibrary(true) .setModule(true) .build(); @@ -84,7 +92,7 @@ public void test() throws IOException, URISyntaxException { maddiSupport = new SourceSetImpl.Builder() .setName("maddi-support") .setSourceDirectories(List.of(maddiSupportSrc)) - .setUri(artifactOf(io.codelaser.maddi.support.SetOnce.class)) + .setUri(artifactOf(SetOnce.class)) .setLibrary(true) .setModule(true) .setDependencies(List.of(maddiAnnotation)) @@ -94,7 +102,7 @@ public void test() throws IOException, URISyntaxException { maddiUtil = new SourceSetImpl.Builder() .setName("maddi-util") .setSourceDirectories(List.of(maddUtilSrc)) - .setUri(artifactOf(io.codelaser.maddi.util.GetSetNames.class)) + .setUri(artifactOf(GetSetNames.class)) .setLibrary(true) .setModule(true) .setDependencies(List.of(maddiAnnotation, maddiSupport, orgSlf4jApi)) @@ -112,7 +120,7 @@ public void test() throws IOException, URISyntaxException { cstApi = new SourceSetImpl.Builder() .setName("maddi-cst-api") .setSourceDirectories(List.of(cstApiPath)) - .setUri(artifactOf(io.codelaser.maddi.cst.api.element.Element.class)) + .setUri(artifactOf(Element.class)) .setLibrary(true) .setModule(true) .setDependencies(List.of(maddiAnnotation, maddiSupport, annotations)) @@ -130,7 +138,7 @@ public void test() throws IOException, URISyntaxException { cstAnalysis = new SourceSetImpl.Builder() .setName("maddi-cst-analysis") .setSourceDirectories(List.of(cstAnalysisPath)) - .setUri(artifactOf(io.codelaser.maddi.cst.impl.analysis.ValueImpl.class)) + .setUri(artifactOf(ValueImpl.class)) .setModule(true) .setDependencies(List.of(cstApi, maddiAnnotation, maddiSupport, orgSlf4jApi)) .build(); @@ -139,7 +147,7 @@ public void test() throws IOException, URISyntaxException { cstImpl = new SourceSetImpl.Builder() .setName("maddi-cst-impl") .setSourceDirectories(List.of(cstImplPath)) - .setUri(artifactOf(io.codelaser.maddi.cst.impl.info.TypeInfoImpl.class)) + .setUri(artifactOf(TypeInfoImpl.class)) .setModule(true) .setDependencies(List.of(cstApi, cstAnalysis, maddiAnnotation, maddiSupport, maddiUtil, orgSlf4jApi, annotations)) .build(); @@ -159,7 +167,7 @@ public void test() throws IOException, URISyntaxException { cstIo = new SourceSetImpl.Builder() .setName("maddi-cst-io") .setSourceDirectories(List.of(cstIoPath)) - .setUri(artifactOf(io.codelaser.maddi.cst.io.CodecImpl.class)) + .setUri(artifactOf(CodecImpl.class)) .setModule(true) .setDependencies(List.of(cstApi, cstAnalysis, maddiAnnotation, maddiSupport, orgSlf4jApi, annotations)) .build(); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector7MulltiTypeClass.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector7MulltiTypeClass.java index feaaed622c..fc615a862c 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector7MulltiTypeClass.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector7MulltiTypeClass.java @@ -1,5 +1,20 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.net.URI; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -9,20 +24,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestJavaInspector7MulltiTypeClass { public static final String COMMONS_CLI_1_11_0_JAR = "commons-cli-1.11.0.jar"; // as a file in the project diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector7MulltiTypeSource.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector7MulltiTypeSource.java index 9ad606f5d7..38511ebeaf 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector7MulltiTypeSource.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJavaInspector7MulltiTypeSource.java @@ -1,5 +1,20 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -10,20 +25,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; public class TestJavaInspector7MulltiTypeSource { private static final Logger LOGGER = LoggerFactory.getLogger(TestJavaInspector7MulltiTypeSource.class); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJdkInternalsWithoutJdkDependencies.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJdkInternalsWithoutJdkDependencies.java index 78f6031ffc..9a02db365c 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJdkInternalsWithoutJdkDependencies.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestJdkInternalsWithoutJdkDependencies.java @@ -1,5 +1,17 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -7,16 +19,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; /** * {@code --jdk-internals} must not depend on HOW the configuration was authored. @@ -91,7 +93,7 @@ private Outcome run(boolean declareJdkAsDependencies) { .map(e -> String.valueOf(e.getMessage())).toList(); TypeInfo t = summary.parseResult().findType("a.b.UsesInternal"); return new Outcome(messages.isEmpty(), messages, warnings, t != null); - } catch (RuntimeException | java.io.IOException re) { + } catch (RuntimeException | IOException re) { return new Outcome(false, List.of(re.getClass().getSimpleName() + ": " + re.getMessage()), List.of(), false); } diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLazyLoaderSourceSet.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLazyLoaderSourceSet.java index cafb2d7a49..f07efafde2 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLazyLoaderSourceSet.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLazyLoaderSourceSet.java @@ -4,20 +4,23 @@ */ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +import java.io.IOException; +import java.net.URI; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.opentest4j.AssertionFailedError; +import org.slf4j.Logger; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; /** * ⛔ A class path belongs to a source set, so an on-demand compiled-type load must run on the source set that @@ -56,8 +59,8 @@ private record Fixture(JavaInspector javaInspector, SourceSet withSlf4j, SourceS private static Fixture parse() throws IOException { SourceSet javaBase = SourceSetImpl.javaBase(); - SourceSet slf4jJar = SourceSetImpl.sourceSetOf(org.slf4j.Logger.class, javaBase); - SourceSet opentest4jJar = SourceSetImpl.sourceSetOf(org.opentest4j.AssertionFailedError.class, javaBase); + SourceSet slf4jJar = SourceSetImpl.sourceSetOf(Logger.class, javaBase); + SourceSet opentest4jJar = SourceSetImpl.sourceSetOf(AssertionFailedError.class, javaBase); SourceSet withSlf4j = new SourceSetImpl.Builder() .setName("with-slf4j").setUri(URI.create("file:/")) .setDependencies(List.of(javaBase, slf4jJar)) diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLombok.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLombok.java index 4a764a8d70..f93386bccc 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLombok.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLombok.java @@ -17,6 +17,20 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -25,19 +39,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.Map; -import java.util.NoSuchElementException; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * Exercises the production openjdk parse path ({@link JavaInspectorImpl}) with Lombok. Unlike the diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLombokFallback.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLombokFallback.java index 784a07a27b..3a0836de91 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLombokFallback.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestLombokFallback.java @@ -17,19 +17,9 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.IOException; import java.io.OutputStream; import java.net.URI; @@ -41,8 +31,20 @@ import java.util.jar.JarOutputStream; import java.util.stream.Stream; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A Lombok processor that cannot run makes the parse fall back to parsing WITHOUT Lombok -- and that fallback is a diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestModuleDirectiveResolution.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestModuleDirectiveResolution.java index 4fff39e043..5604612c87 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestModuleDirectiveResolution.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestModuleDirectiveResolution.java @@ -17,28 +17,29 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.ModuleInfo; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; +import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; -import java.net.URI; import java.util.List; import java.util.Map; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.ModuleInfo; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * Gap ledger {@code #201}. A {@code uses}/{@code provides} directive names a service type, and diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestMultiReleaseJarOverwrite.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestMultiReleaseJarOverwrite.java index 3f2f16f727..592f8d5bd5 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestMultiReleaseJarOverwrite.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestMultiReleaseJarOverwrite.java @@ -17,23 +17,9 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.CompilationUnit; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InfoByFqn; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.IOException; import java.net.URI; import java.nio.file.Files; @@ -47,8 +33,24 @@ import java.util.jar.Manifest; import java.util.stream.Stream; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.CompilationUnit; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InfoByFqn; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A multi-release jar presents the same FQN through TWO class-file entries — {@code x/Y.class} and diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestNarOnClassPath.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestNarOnClassPath.java index b677c8df9d..bd4aa9d3f3 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestNarOnClassPath.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestNarOnClassPath.java @@ -1,21 +1,7 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.JavaFileObject; -import javax.tools.StandardJavaFileManager; -import javax.tools.StandardLocation; -import javax.tools.ToolProvider; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -25,7 +11,23 @@ import java.util.jar.JarOutputStream; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.StandardLocation; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A library archive that is not named {@code .jar} maps its types onto the library's source set. diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestNestedTypeLoad.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestNestedTypeLoad.java index 23b45a74f1..d1cbf9a317 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestNestedTypeLoad.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestNestedTypeLoad.java @@ -4,17 +4,18 @@ */ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.io.IOException; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; - -import java.io.IOException; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * A nested type must be resolvable by its dotted fully-qualified name via getOrLoad. javac's getTypeElement resolves diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPartialReparse.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPartialReparse.java index 14d6d11a93..5b0314f11d 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPartialReparse.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPartialReparse.java @@ -1,5 +1,26 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.lang.ref.WeakReference; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; + +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.StandardLocation; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -8,24 +29,6 @@ import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.run.rewire.ReparseOracle; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import javax.tools.JavaCompiler; -import javax.tools.JavaFileObject; -import javax.tools.StandardJavaFileManager; -import javax.tools.StandardLocation; -import javax.tools.ToolProvider; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.InvalidationState.*; -import static org.junit.jupiter.api.Assertions.*; /** * The per-file re-parse within a source set ({@code JavaInspectorImpl.reparse}, {@code SourceSetAction.PARTIAL}): @@ -430,11 +433,11 @@ public void testOldGenerationsAreCollectable() throws IOException, InterruptedEx JavaInspector inspector = inspector(set); // the cold parse's Doc too: it is rewired in round 1, and nothing may keep the original (the scanner's setup // claim did, InfoByFqn.replaceType) - java.lang.ref.WeakReference doc0 = new java.lang.ref.WeakReference<>(parse(inspector).findType("c.Doc")); + WeakReference doc0 = new WeakReference<>(parse(inspector).findType("c.Doc")); write(cSrc, "c/Other.java", "// round 1\n" + OTHER); ParseResult pr1 = reparse(inspector, Map.of("c.Other", INVALID, "c.Doc", REWIRE)); - java.lang.ref.WeakReference doc1 = new java.lang.ref.WeakReference<>(pr1.findType("c.Doc")); - java.lang.ref.WeakReference other1 = new java.lang.ref.WeakReference<>(pr1.findType("c.Other")); + WeakReference doc1 = new WeakReference<>(pr1.findType("c.Doc")); + WeakReference other1 = new WeakReference<>(pr1.findType("c.Other")); pr1 = null; for (int round = 2; round <= 4; round++) { write(cSrc, "c/Other.java", "// round " + round + "\n" + OTHER); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPerSourceSetAddExports.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPerSourceSetAddExports.java index 0ff1217142..294ae87450 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPerSourceSetAddExports.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPerSourceSetAddExports.java @@ -17,24 +17,26 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; /** * A source set compiles against {@link SourceSet#addExports()} -- javac's {@code --add-exports} -- of its own. @@ -54,7 +56,7 @@ public class UsesJavacTypes { } """; - private static ParseResult parse(List addExports) throws java.io.IOException { + private static ParseResult parse(List addExports) throws IOException { JavaInspector javaInspector = new JavaInspectorImpl(); SourceSet sourceSet = new SourceSetImpl.Builder() .setName(TEST_PROTOCOL) @@ -72,7 +74,7 @@ private static ParseResult parse(List addExports) throws java.io.IOExcep @DisplayName("a set that opens com.sun.tools.javac.code resolves javac's Types") @Test - public void theSetsOwnExportsReachJavac() throws java.io.IOException { + public void theSetsOwnExportsReachJavac() throws IOException { // the build's spelling, naming its own module as well: the parse compiles unnamed, so it must re-target ParseResult parseResult = parse(List.of("jdk.compiler/com.sun.tools.javac.code=my.module,ALL-UNNAMED")); TypeInfo usesTypes = parseResult.findType("p.UsesJavacTypes"); @@ -83,7 +85,7 @@ public void theSetsOwnExportsReachJavac() throws java.io.IOException { @DisplayName("CONTROL: without the export, the same unit does not resolve") @Test - public void withoutTheExportTheUnitIsDropped() throws java.io.IOException { + public void withoutTheExportTheUnitIsDropped() throws IOException { ParseResult parseResult; try { parseResult = parse(List.of()); @@ -91,7 +93,7 @@ public void withoutTheExportTheUnitIsDropped() throws java.io.IOException { return; // a refused parse is the other way of saying the same thing } TypeInfo usesTypes = parseResult.findType("p.UsesJavacTypes"); - if (java.lang.Runtime.version().feature() < 27) { + if (Runtime.version().feature() < 27) { assertNull(usesTypes, "com.sun.tools.javac.code is not exported to the unnamed module; if this resolves," + " the test above proves nothing"); return; diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPerSourceSetRelease.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPerSourceSetRelease.java index df5389fe0e..ec85191a5e 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPerSourceSetRelease.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPerSourceSetRelease.java @@ -1,5 +1,19 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.io.IOException; +import java.net.URI; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -8,17 +22,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * {@link SourceSet#sourceRelease()}: a source set compiles against ITS OWN Java API level. @@ -53,7 +56,7 @@ public class UsesApplet { @DisplayName("a set states release 21 and resolves a type the running JDK removed; the global release is 0") @Test - public void perSetReleaseReachesJavac() throws java.io.IOException { + public void perSetReleaseReachesJavac() throws IOException { int running = Runtime.version().feature(); Assumptions.assumeTrue(running >= 26, "the probe is java.applet.Applet, removed in JDK 26; below that the default release resolves it" @@ -70,7 +73,7 @@ public void perSetReleaseReachesJavac() throws java.io.IOException { .addClassPath(InputConfigurationImpl.DEFAULT_MODULES) // java.desktop carries java.applet .build(); // 0: the mixed-reactor case, where the global field has nothing it can honestly say - org.junit.jupiter.api.Assertions.assertEquals(0, inputConfiguration.sourceRelease()); + Assertions.assertEquals(0, inputConfiguration.sourceRelease()); javaInspector.initialize(inputConfiguration); ParseResult parseResult = javaInspector diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreload.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreload.java index d4b688408e..2fa18458c0 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreload.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreload.java @@ -1,5 +1,13 @@ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -7,13 +15,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; - -import java.io.IOException; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; public class TestPreload { @@ -22,7 +23,7 @@ public class TestPreload { @Test public void test() throws IOException { SourceSet slf4j = SourceSetImpl.sourceSetOf(Logger.class); - JavaInspector javaInspector = new io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl(); + JavaInspector javaInspector = new JavaInspectorImpl(); javaInspector.preload("java.base::java.util."); javaInspector.preload("org.slf4j"); InputConfiguration inputConfiguration = new InputConfigurationImpl.Builder() diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadBeforeSourceSymbols.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadBeforeSourceSymbols.java index 333c00ade6..a392a7a926 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadBeforeSourceSymbols.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadBeforeSourceSymbols.java @@ -1,24 +1,13 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.IOException; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -26,8 +15,22 @@ import java.util.jar.JarOutputStream; import java.util.stream.Stream; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * The source-and-jar duplicate-interfaces defect (2026-08-21). @@ -121,7 +124,7 @@ private static Path compilePackagePJar(Path tmp) throws IOException { sources.put("a.b.Impl", IMPL); sources.put("p.Used", USED); sources.put("p.User", USER); - List files = new java.util.ArrayList<>(); + List files = new ArrayList<>(); for (Map.Entry e : sources.entrySet()) { Path javaFile = src.resolve(e.getKey().replace('.', '/') + ".java"); Files.createDirectories(javaFile.getParent()); @@ -130,7 +133,7 @@ private static Path compilePackagePJar(Path tmp) throws IOException { } JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); assertNotNull(compiler, "this test needs a JDK, not a JRE"); - List args = new java.util.ArrayList<>(List.of("-d", classes.toString())); + List args = new ArrayList<>(List.of("-d", classes.toString())); args.addAll(files); int rc = compiler.run(null, null, null, args.toArray(String[]::new)); assertEquals(0, rc, "the class-path artifact must compile"); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadLeavesScannedTypesInspected.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadLeavesScannedTypesInspected.java index 576b82009f..4fe583f88e 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadLeavesScannedTypesInspected.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadLeavesScannedTypesInspected.java @@ -17,20 +17,21 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.expression.Lambda; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.util.Arrays; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.Lambda; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A JDK type that the source scan reaches first, outside every preloaded package, is inspected once the parse diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadOffClasspath.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadOffClasspath.java index 4e88dc1b41..13ed7e45de 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadOffClasspath.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPreloadOffClasspath.java @@ -17,19 +17,21 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +import java.net.URI; +import java.net.URISyntaxException; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.net.URISyntaxException; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; /** * A preload must survive a class-path part it cannot attribute. @@ -73,7 +75,7 @@ public void misnamedClassPathPartIsSkippedNotDereferenced() { // SourceSetImpl.sourceSetOf(ImmutableContainer.class) here would name it correctly and attribute fine. SourceSet misnamed = new SourceSetImpl.Builder() .setName("maddi-annotation") - .setUri(artifactOf(io.codelaser.maddi.annotation.ImmutableContainer.class)) + .setUri(artifactOf(ImmutableContainer.class)) .setExternalLibrary(true).build(); InputConfiguration inputConfiguration = new InputConfigurationImpl.Builder() diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateConstructor.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateConstructor.java index 4b9388bb24..c0d7a24c00 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateConstructor.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateConstructor.java @@ -4,6 +4,14 @@ */ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; + +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -11,13 +19,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; - -import java.io.IOException; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * A private constructor of a compiled classpath type must be loaded. Static-utility classes (e.g. org.slf4j.MDC, diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateField.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateField.java index bf7fbc1954..fb7798bdff 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateField.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateField.java @@ -4,20 +4,21 @@ */ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.util.Set; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; - -import java.io.IOException; -import java.util.Set; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; /** * Private fields of a compiled classpath type must be loaded. Like private constructors (see diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateNestedTypeInClassFile.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateNestedTypeInClassFile.java index 8b110d85ef..5376d1f5da 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateNestedTypeInClassFile.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestPrivateNestedTypeInClassFile.java @@ -1,28 +1,30 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.JavaFileObject; -import javax.tools.StandardJavaFileManager; -import javax.tools.StandardLocation; -import javax.tools.ToolProvider; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.StandardLocation; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * ⛔⛔ A PRIVATE NESTED TYPE IS SKIPPED BY THE MEMBER WALK AND STILL REACHABLE THROUGH A MEMBER'S SIGNATURE. @@ -176,7 +178,7 @@ public void privateNestedTypeDoesNotRefuseTheParse() throws IOException { // not take a class directory: User.java was DROPPED with an UnresolvedSymbolException, summary.types() // was empty, and "the parse has no errors" passed on nothing at all. assertEquals(List.of("c.d.User"), summary.types().stream() - .map(io.codelaser.maddi.cst.api.info.TypeInfo::fullyQualifiedName).sorted().toList(), + .map(TypeInfo::fullyQualifiedName).sorted().toList(), "the source set must actually have parsed"); assertTrue(summary.parseWarnings().isEmpty(), "and resolved its references: " + summary.parseWarnings().stream() diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadPrerequisites.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadPrerequisites.java index 2896b370d5..f6e1a15d4b 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadPrerequisites.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadPrerequisites.java @@ -1,5 +1,19 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -10,18 +24,6 @@ import io.codelaser.maddi.inspection.api.resource.SourceFile; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; /** * The three prerequisites for reloading + rewiring on the openjdk inspector: the {@code sourceFiles} map that @@ -72,7 +74,7 @@ public void testSourceFilesPopulated() { ParseResult pr = parse(); assertEquals(2, pr.primaryTypes().size()); - java.util.Set files = javaInspector.sourceFiles(); + Set files = javaInspector.sourceFiles(); assertEquals(2, files.size(), "expected one SourceFile per compilation unit, have: " + files); for (SourceFile sf : files) { assertSame(sourceSet, sf.sourceSet()); @@ -113,8 +115,8 @@ public void testSetRewiredType() { // exactly as the parse does it: newInfoMap over the types to rewire, rewireAll, then register every type the // map built -- setRewiredType registers the one type it is given, and the map is what knows the full list - InfoMap infoMap = javaInspector.runtime().newInfoMap(java.util.Set.of(x)); - java.util.Set rewiredSet = infoMap.rewireAll(); + InfoMap infoMap = javaInspector.runtime().newInfoMap(Set.of(x)); + Set rewiredSet = infoMap.rewireAll(); assertEquals(1, rewiredSet.size(), "rewireAll returns the primary types"); TypeInfo rewired = rewiredSet.iterator().next(); assertNotSame(x, rewired); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadSources.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadSources.java index 19ff8033e0..e7d6d8ef78 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadSources.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadSources.java @@ -1,16 +1,7 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.net.URI; @@ -18,8 +9,18 @@ import java.util.Map; import java.util.stream.Collectors; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * {@code reloadSources} answers one question — which types' source files changed since we parsed them? — by diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadSourcesFromDisk.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadSourcesFromDisk.java index b76d2f18ae..4d2ba23cfa 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadSourcesFromDisk.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestReloadSourcesFromDisk.java @@ -1,26 +1,26 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; -import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * {@code reloadSources} over real files on disk — the path {@code RunRewireTests} drives, and the one that matters diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestRescanAfterDroppedUnit.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestRescanAfterDroppedUnit.java index fa73558019..dabac0d669 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestRescanAfterDroppedUnit.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestRescanAfterDroppedUnit.java @@ -1,14 +1,6 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.nio.file.Files; import java.nio.file.Path; @@ -16,7 +8,16 @@ import java.util.Map; import java.util.Set; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * REPRODUCER (jfocus refactor-base TestIncrementalParseDiagnostics, gate 2026-10-17 on laser1, JDK 26.0.2). diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestRestrictToPackagesRelativeSourceDirectory.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestRestrictToPackagesRelativeSourceDirectory.java index e4d7d6f75c..008d00e145 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestRestrictToPackagesRelativeSourceDirectory.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestRestrictToPackagesRelativeSourceDirectory.java @@ -17,15 +17,7 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.nio.file.Files; import java.nio.file.Path; @@ -33,7 +25,16 @@ import java.util.Map; import java.util.Set; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A source set's package restriction must hold when its source directory is written RELATIVE to the configuration's diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestScanOrder.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestScanOrder.java index badc50d523..54245b5c5b 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestScanOrder.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestScanOrder.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.net.URI; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * {@code JavaInspectorImpl.computeScanOrder}: a source set must be scanned after everything it depends on. diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSelfReferentialClassTypeParameter.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSelfReferentialClassTypeParameter.java index 8adb576672..5fbf66ee67 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSelfReferentialClassTypeParameter.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSelfReferentialClassTypeParameter.java @@ -16,20 +16,9 @@ */ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.IOException; import java.net.URI; import java.nio.file.Files; @@ -41,8 +30,21 @@ import java.util.jar.JarOutputStream; import java.util.stream.Stream; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A class-file type whose class type parameter is bounded by its own type, diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSharedJdkRelease.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSharedJdkRelease.java index 92a3ff4e21..abad168e90 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSharedJdkRelease.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSharedJdkRelease.java @@ -17,6 +17,20 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -24,18 +38,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * ⛔ THE SHARED {@code java.*} MODEL MUST NOT BE BUILT FROM A {@code ct.sym} BAND. @@ -66,7 +68,7 @@ public class X { @DisplayName("two releases in one configuration: the shared java.util.List is the HIGHER band's") @Test - public void sharedJdkIsTheHighestBandTheConfigurationStates() throws java.io.IOException { + public void sharedJdkIsTheHighestBandTheConfigurationStates() throws IOException { int running = Runtime.version().feature(); Assumptions.assumeTrue(running >= 21, "the probe is List.getFirst(), added in Java 21 (running on " + running + ")"); @@ -114,7 +116,7 @@ public void sharedJdkIsTheHighestBandTheConfigurationStates() throws java.io.IOE */ @DisplayName("a set that states no release counts as the running JDK for the shared java.util.List") @Test - public void aSilentSetCountsAsTheRunningJdk() throws java.io.IOException { + public void aSilentSetCountsAsTheRunningJdk() throws IOException { int running = Runtime.version().feature(); Assumptions.assumeTrue(running >= 21, "the probe is List.getFirst(), added in Java 21 (running on " + running + ")"); @@ -155,7 +157,7 @@ public void aSilentSetCountsAsTheRunningJdk() throws java.io.IOException { */ @DisplayName("a platform type first touched lazily by a lower-release set is the shared band's, not that set's") @Test - public void lazilyTouchedPlatformTypeIsTheSharedBands() throws java.io.IOException { + public void lazilyTouchedPlatformTypeIsTheSharedBands() throws IOException { int running = Runtime.version().feature(); Assumptions.assumeTrue(running >= 21, "the probe is List.getFirst(), added in Java 21 (running on " + running + ")"); @@ -201,7 +203,7 @@ public class UsesList { */ @DisplayName("the per-set release still reaches javac for the set's own sources") @Test - public void perSetReleaseSurvivesThePreloadPass() throws java.io.IOException { + public void perSetReleaseSurvivesThePreloadPass() throws IOException { int running = Runtime.version().feature(); Assumptions.assumeTrue(running >= 26, "the probe is java.applet.Applet, removed in JDK 26 (running on " + running + ")"); @@ -239,7 +241,7 @@ public class UsesApplet { */ @DisplayName("a nested type in a lazily loaded platform type's signature is the member type, not a flat-named primary") @Test - public void nestedTypeOfALazilyLoadedPlatformTypeIsTheMemberType() throws java.io.IOException { + public void nestedTypeOfALazilyLoadedPlatformTypeIsTheMemberType() throws IOException { int running = Runtime.version().feature(); Assumptions.assumeTrue(running >= 21, "the shared task needs a release below the running JDK's (" + running + ")"); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSharedSourceFileInTwoSourceSets.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSharedSourceFileInTwoSourceSets.java index 8908578dcd..5f99065ddf 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSharedSourceFileInTwoSourceSets.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSharedSourceFileInTwoSourceSets.java @@ -14,6 +14,21 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.net.URI; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -23,20 +38,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * ONE SOURCE FILE COMPILED INTO TWO SOURCE SETS THAT DO NOT DEPEND ON EACH OTHER. Each source set has its own copy of diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSingleAbstractMethodDiagnostic.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSingleAbstractMethodDiagnostic.java index 5ec2494623..578865b2f9 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSingleAbstractMethodDiagnostic.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestSingleAbstractMethodDiagnostic.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.util.Map; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; @@ -25,14 +34,6 @@ import io.codelaser.maddi.inspection.impl.parser.GenericsHelperImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; /** * What {@code GenericsHelperImpl.findSingleAbstractMethodOfInterface} says when there is no SAM. @@ -92,7 +93,7 @@ public void testNotLoaded() { @DisplayName("loaded but not functional: the message counts the abstract methods and names them") @Test public void testLoadedButNotFunctional() { - javaInspector.parse(java.util.Map.of("a.Two", """ + javaInspector.parse(Map.of("a.Two", """ package a; public interface Two { int one(); @@ -113,7 +114,7 @@ public interface Two { @Test public void testNotAnInterface() { // something has to be parsed first, or the JDK has not been scanned and nothing resolves at all - javaInspector.parse(java.util.Map.of("a.UsesString", """ + javaInspector.parse(Map.of("a.UsesString", """ package a; public class UsesString { String s = "x"; } """), JavaInspectorImpl.DETAILED_SOURCES); @@ -129,7 +130,7 @@ public class UsesString { String s = "x"; } public void testStillWorks() { // preload BEFORE the parse: it is what asks for the package to be loaded rather than resolved javaInspector.preload("java.base::java.util.function"); - javaInspector.parse(java.util.Map.of("a.UsesString", """ + javaInspector.parse(Map.of("a.UsesString", """ package a; public class UsesString { String s = "x"; } """), JavaInspectorImpl.DETAILED_SOURCES); diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStopPolicy.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStopPolicy.java index 2d38719065..2e6e1e7269 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStopPolicy.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStopPolicy.java @@ -17,6 +17,18 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -26,17 +38,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; /** * javac's default stop policy: an error BEFORE attribution -- a syntax error, an annotation processor's error, a diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStubMeetsItsOwnSource.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStubMeetsItsOwnSource.java index 2bfdff86bb..4c7de91a6a 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStubMeetsItsOwnSource.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStubMeetsItsOwnSource.java @@ -17,19 +17,9 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.File; import java.io.IOException; import java.net.URI; @@ -41,8 +31,20 @@ import java.util.Map; import java.util.stream.Stream; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * ⛔⛔ A STUB MET THE SOURCE IT STANDS IN FOR, AND THE SOURCE LOST. {@code ClassSymbolScanner} mints a diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStubTypeRegistration.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStubTypeRegistration.java index 2f351c6b6d..f8dc9eae76 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStubTypeRegistration.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestStubTypeRegistration.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +import java.net.URI; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -24,13 +32,6 @@ import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; import io.codelaser.maddi.inspection.resource.InfoByFqn; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.net.URI; - -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; /** * ⛔ A STUB TYPE HAS NO SOURCE SET, AND THE REGISTRY ASSERTED ON IT. When a class file names a type diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestTypeByBinaryName.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestTypeByBinaryName.java index c6ab40ff19..85a469975e 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestTypeByBinaryName.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestTypeByBinaryName.java @@ -17,6 +17,19 @@ package io.codelaser.maddi.inspection.openjdk; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -24,18 +37,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.Map; - -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertEquals; /** * {@link ParseResult#typeByBinaryName} is the inverse of {@link TypeInfo#binaryName()}: it resolves the form a diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestUnaccountedUnits.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestUnaccountedUnits.java index 6c3195c675..bb401c5214 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestUnaccountedUnits.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestUnaccountedUnits.java @@ -17,17 +17,7 @@ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.net.URI; @@ -38,7 +28,18 @@ import java.util.Set; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; /** * CodeLaser/maddi#133: every file handed to javac ends as types or as a reported failure. On the gate's audit diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestUnqualifiedCallOnUnresolvedSupertype.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestUnqualifiedCallOnUnresolvedSupertype.java index ab985ebb14..e9eba7f2da 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestUnqualifiedCallOnUnresolvedSupertype.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestUnqualifiedCallOnUnresolvedSupertype.java @@ -16,23 +16,24 @@ */ package io.codelaser.maddi.inspection.openjdk; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.net.URI; import java.util.List; import java.util.Map; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * An unqualified call to an inherited method, in a type whose superclass is not on the class path, resolves to diff --git a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestWithSupportFromClasspath.java b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestWithSupportFromClasspath.java index 98f5db1165..0b2ca4515c 100644 --- a/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestWithSupportFromClasspath.java +++ b/maddi-inspection-openjdk/src/test/java/io/codelaser/maddi/inspection/openjdk/TestWithSupportFromClasspath.java @@ -17,6 +17,19 @@ package io.codelaser.maddi.inspection.openjdk; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; @@ -25,19 +38,6 @@ import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.io.IOException; -import java.net.URI; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * {@link InputConfiguration#withSupportFromClasspath(Map)} and its {@code withMaddiSupportFromClasspath()} diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ContextImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ContextImpl.java index 834e26aafe..f119bfb742 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ContextImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ContextImpl.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -28,12 +35,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.*; import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.HashSet; -import java.util.Map; -import java.util.Set; public class ContextImpl implements Context { diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/GenericsHelperImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/GenericsHelperImpl.java index fade65bd4b..d3d1f82023 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/GenericsHelperImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/GenericsHelperImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.*; +import java.util.stream.Collectors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -36,11 +42,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.inspection.api.parser.GenericsHelper; import io.codelaser.maddi.inspection.api.parser.MethodTypeParameterMap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; -import java.util.stream.Collectors; public record GenericsHelperImpl(Runtime runtime) implements GenericsHelper { private static final Logger LOGGER = LoggerFactory.getLogger(GenericsHelperImpl.class); diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ListMethodAndConstructorCandidates.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ListMethodAndConstructorCandidates.java index ab480c1e8e..3d86ad8cf6 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ListMethodAndConstructorCandidates.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ListMethodAndConstructorCandidates.java @@ -17,6 +17,9 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.*; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; @@ -29,9 +32,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.inspection.api.parser.*; -import java.util.*; -import java.util.stream.Collectors; - /* Code that goes through the type hierarchy to find the candidate methods or constructors for method/constructor resolution. Further resolution will only restrict based on parameter types. diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/LombokImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/LombokImpl.java index a90535489e..7174c3ccb3 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/LombokImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/LombokImpl.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.*; @@ -30,13 +38,6 @@ import io.codelaser.maddi.inspection.api.parser.Lombok; import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; import io.codelaser.maddi.util.GetSetNames; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; public record LombokImpl(Runtime runtime, CompiledTypesManager compiledTypesManager) implements Lombok { private static final String LOMBOK_DOT = "lombok."; diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/MethodResolutionImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/MethodResolutionImpl.java index 326b4000f9..d0c6c57207 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/MethodResolutionImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/MethodResolutionImpl.java @@ -17,6 +17,17 @@ package io.codelaser.maddi.inspection.impl.parser; +import static io.codelaser.maddi.inspection.api.parser.TypeContext.SUBTYPE_HIERARCHY_IN_CONSTRUCTOR_PRIORITY; +import static io.codelaser.maddi.inspection.impl.parser.ListMethodAndConstructorCandidates.IGNORE_PARAMETER_NUMBERS; +import static io.codelaser.maddi.inspection.impl.parser.ReevaluateErasedExpressions.containsErasedExpressions; + +import java.util.*; +import java.util.function.IntFunction; +import java.util.stream.Collectors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -36,16 +47,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.inspection.api.parser.*; import io.codelaser.maddi.support.Either; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; -import java.util.function.IntFunction; -import java.util.stream.Collectors; - -import static io.codelaser.maddi.inspection.api.parser.TypeContext.SUBTYPE_HIERARCHY_IN_CONSTRUCTOR_PRIORITY; -import static io.codelaser.maddi.inspection.impl.parser.ListMethodAndConstructorCandidates.IGNORE_PARAMETER_NUMBERS; -import static io.codelaser.maddi.inspection.impl.parser.ReevaluateErasedExpressions.containsErasedExpressions; public class MethodResolutionImpl implements MethodResolution { private static final Logger LOGGER = LoggerFactory.getLogger(MethodResolutionImpl.class); diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/MethodTypeParameterMapImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/MethodTypeParameterMapImpl.java index 2c58dde050..1ce8fc5c50 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/MethodTypeParameterMapImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/MethodTypeParameterMapImpl.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -27,13 +34,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.MethodTypeParameterMap; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; -import java.util.stream.IntStream; - // use GenericsHelper to construct class MethodTypeParameterMapImpl implements MethodTypeParameterMap { diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ReevaluateErasedExpressions.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ReevaluateErasedExpressions.java index 9141af23ab..4cf0efa82a 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ReevaluateErasedExpressions.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ReevaluateErasedExpressions.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.NullConstant; @@ -26,11 +32,6 @@ import io.codelaser.maddi.cst.api.type.NamedType; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; -import java.util.concurrent.atomic.AtomicBoolean; public class ReevaluateErasedExpressions { private static final Logger LOGGER = LoggerFactory.getLogger(ReevaluateErasedExpressions.class); diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ResolverImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ResolverImpl.java index e5fd8e8bb8..d2db76eef4 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ResolverImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/ResolverImpl.java @@ -18,17 +18,6 @@ package io.codelaser.maddi.inspection.impl.parser; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.info.*; -import io.codelaser.maddi.cst.api.statement.Statement; -import io.codelaser.maddi.inspection.api.parser.*; -import io.codelaser.maddi.graph.util.TimedLogger; -import io.codelaser.maddi.cst.api.analysis.Message; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.HashSet; import java.util.LinkedList; import java.util.List; @@ -36,6 +25,18 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Stream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.analysis.Message; +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.api.info.*; +import io.codelaser.maddi.cst.api.statement.Statement; +import io.codelaser.maddi.graph.util.TimedLogger; +import io.codelaser.maddi.inspection.api.parser.*; + public class ResolverImpl implements Resolver { private static final Logger LOGGER = LoggerFactory.getLogger(ResolverImpl.class); private static final TimedLogger TIMED_LOGGER = new TimedLogger(LOGGER, 1000L); diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/StaticImportMapImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/StaticImportMapImpl.java index 809f54adab..3f92fe0387 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/StaticImportMapImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/StaticImportMapImpl.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.*; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.parser.StaticImportMap; -import java.util.*; - public class StaticImportMapImpl implements StaticImportMap { private final Set staticAsterisk = new LinkedHashSet<>(); diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/TypeContextImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/TypeContextImpl.java index 746a73b9e5..6c7dff68cc 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/TypeContextImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/TypeContextImpl.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.*; +import java.util.stream.Stream; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.ImportStatement; @@ -31,11 +37,6 @@ import io.codelaser.maddi.inspection.api.parser.StaticImportMap; import io.codelaser.maddi.inspection.api.parser.TypeContext; import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; -import java.util.stream.Stream; public class TypeContextImpl implements TypeContext { private static final Logger LOGGER = LoggerFactory.getLogger(TypeContextImpl.class); diff --git a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/VariableContextImpl.java b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/VariableContextImpl.java index a30f53c7c4..062c98a7b8 100644 --- a/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/VariableContextImpl.java +++ b/maddi-inspection-parser/src/main/java/io/codelaser/maddi/inspection/impl/parser/VariableContextImpl.java @@ -17,16 +17,16 @@ package io.codelaser.maddi.inspection.impl.parser; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.inspection.api.parser.VariableContext; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - public class VariableContextImpl implements VariableContext { private final VariableContext parentContext; diff --git a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/BuildFilesCapture.java b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/BuildFilesCapture.java index 62ff264352..c2638f1f10 100644 --- a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/BuildFilesCapture.java +++ b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/BuildFilesCapture.java @@ -17,10 +17,6 @@ package io.codelaser.maddi.inspection.resource; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; - import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; @@ -43,6 +39,10 @@ import java.util.Set; import java.util.TreeMap; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; + /** * Takes the {@link BuildFiles} of an input configuration: the hashes are the files' contents NOW, at capture time, * so a configuration captured before an edit and registered after it still reads as stale. diff --git a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/DetectKotlinSources.java b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/DetectKotlinSources.java index 2387f0e8bb..7b30cd5c10 100644 --- a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/DetectKotlinSources.java +++ b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/DetectKotlinSources.java @@ -17,13 +17,7 @@ package io.codelaser.maddi.inspection.resource; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; -import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -32,6 +26,12 @@ import java.util.Set; import java.util.stream.Stream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; + /** * Kotlin source files handed to a run that can only read Java. The Java front end walks a source * directory with {@code filter(p -> p.endsWith(".java"))}, so a {@code .kt} file beside them is not an error, diff --git a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/InfoByFqn.java b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/InfoByFqn.java index 2f3a449a5b..86af011abe 100644 --- a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/InfoByFqn.java +++ b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/InfoByFqn.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.inspection.resource; -import io.codelaser.maddi.cst.api.element.CompilationUnit; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.*; import java.util.function.Predicate; import java.util.stream.Stream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.CompilationUnit; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; + /** * The shared type registry: fully-qualified name -> {@link TypeInfo}, with multi-source-set resolution * (when the same FQN exists in several source sets, {@link #getType} returns the one nearest in the diff --git a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/InputConfigurationImpl.java b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/InputConfigurationImpl.java index a9858b2c64..9139b2affd 100644 --- a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/InputConfigurationImpl.java +++ b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/InputConfigurationImpl.java @@ -17,21 +17,20 @@ package io.codelaser.maddi.inspection.resource; -import io.codelaser.maddi.annotation.Container; -import io.codelaser.maddi.annotation.Fluent; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; - import java.net.URI; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.*; import java.util.regex.Pattern; -import java.util.stream.Collectors; import java.util.stream.Stream; +import io.codelaser.maddi.annotation.Container; +import io.codelaser.maddi.annotation.Fluent; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; + public record InputConfigurationImpl(Path workingDirectory, List sourceSets, List classPathParts, diff --git a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/ParseResultImpl.java b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/ParseResultImpl.java index 0f052402ea..98f2f5c3b6 100644 --- a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/ParseResultImpl.java +++ b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/ParseResultImpl.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.inspection.resource; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -26,11 +31,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.ParseResult; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - public class ParseResultImpl implements ParseResult { private static final Set NO_CHILDREN = Set.of(); private final Set types; diff --git a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/ResolveModuleDirectives.java b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/ResolveModuleDirectives.java index b94bb82684..d8919b1cd4 100644 --- a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/ResolveModuleDirectives.java +++ b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/ResolveModuleDirectives.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.inspection.resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; /** * Resolves the service types a module descriptor names in its {@code uses} and {@code provides} directives, so diff --git a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/SourceSetImpl.java b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/SourceSetImpl.java index 26cdf27ae5..944095147c 100644 --- a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/SourceSetImpl.java +++ b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/SourceSetImpl.java @@ -17,9 +17,7 @@ package io.codelaser.maddi.inspection.resource; -import io.codelaser.maddi.cst.api.element.FingerPrint; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.support.SetOnce; +import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; import java.net.URI; import java.net.URISyntaxException; @@ -28,7 +26,9 @@ import java.nio.file.Path; import java.util.*; -import static io.codelaser.maddi.inspection.api.integration.JavaInspector.TEST_PROTOCOL; +import io.codelaser.maddi.cst.api.element.FingerPrint; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.support.SetOnce; public class SourceSetImpl implements SourceSet { private final String name; diff --git a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/SummaryImpl.java b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/SummaryImpl.java index 9bd40a76f8..f12c252baf 100644 --- a/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/SummaryImpl.java +++ b/maddi-inspection-resource/src/main/java/io/codelaser/maddi/inspection/resource/SummaryImpl.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.inspection.resource; +import java.util.*; + import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.api.parser.Summary; -import java.util.*; - public class SummaryImpl implements Summary { private final Set types = new HashSet<>(); // one list; errors vs warnings distinguished by ParseException.level() (single source of truth) diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/ExpressionFactory.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/ExpressionFactory.java index 8746895548..d674b53f12 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/ExpressionFactory.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/ExpressionFactory.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.bytecode.java; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.objectweb.asm.Type; + import io.codelaser.maddi.bytecode.java.asm.LocalTypeMap; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.ArrayInitializer; @@ -26,11 +32,6 @@ import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.util.StringUtil; -import org.objectweb.asm.Type; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; public class ExpressionFactory { diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/BuildParameterNameIndex.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/BuildParameterNameIndex.java index 5d8812bf33..8d464b2bc5 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/BuildParameterNameIndex.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/BuildParameterNameIndex.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.bytecode.java.asm; +import java.util.Set; +import java.util.TreeSet; +import java.util.function.Predicate; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; import io.codelaser.maddi.inspection.api.resource.Resources; import io.codelaser.maddi.inspection.api.resource.SourceFile; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Set; -import java.util.TreeSet; -import java.util.function.Predicate; /** * Offline driver that builds a {@link ParameterNameIndex} for a module/jar: it enumerates the primary types in diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ByteCodeInspectorImpl.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ByteCodeInspectorImpl.java index 46febb2ac3..af9bb25ced 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ByteCodeInspectorImpl.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ByteCodeInspectorImpl.java @@ -17,6 +17,18 @@ package io.codelaser.maddi.bytecode.java.asm; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; + +import org.objectweb.asm.ClassReader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.FingerPrint; import io.codelaser.maddi.cst.api.element.SourceSet; @@ -27,17 +39,6 @@ import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; import io.codelaser.maddi.inspection.api.resource.MD5FingerPrint; import io.codelaser.maddi.inspection.api.resource.SourceFile; -import org.objectweb.asm.ClassReader; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; /* diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyAnnotationVisitor.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyAnnotationVisitor.java index 38484ce61a..0e2ef7e8d4 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyAnnotationVisitor.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyAnnotationVisitor.java @@ -18,6 +18,14 @@ package io.codelaser.maddi.bytecode.java.asm; +import static org.objectweb.asm.Opcodes.ASM9; + +import java.util.Objects; + +import org.objectweb.asm.AnnotationVisitor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.bytecode.java.ExpressionFactory; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -26,13 +34,6 @@ import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; -import org.objectweb.asm.AnnotationVisitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Objects; - -import static org.objectweb.asm.Opcodes.ASM9; public class MyAnnotationVisitor>> extends AnnotationVisitor { diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyClassVisitor.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyClassVisitor.java index bfbb2258c2..b65d630753 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyClassVisitor.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyClassVisitor.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.bytecode.java.asm; +import static org.objectweb.asm.Opcodes.ASM9; + +import java.util.Arrays; + +import org.objectweb.asm.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.bytecode.java.ExpressionFactory; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; @@ -30,13 +38,6 @@ import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; import io.codelaser.maddi.inspection.api.util.CreateSyntheticFieldsForGetSet; -import org.objectweb.asm.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Arrays; - -import static org.objectweb.asm.Opcodes.ASM9; public class MyClassVisitor extends ClassVisitor { private static final Logger LOGGER = LoggerFactory.getLogger(MyClassVisitor.class); diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyFieldVisitor.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyFieldVisitor.java index 1646cb04b9..16a97f9c97 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyFieldVisitor.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyFieldVisitor.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.bytecode.java.asm; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; +import static org.objectweb.asm.Opcodes.ASM9; + import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.FieldVisitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static org.objectweb.asm.Opcodes.ASM9; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; public class MyFieldVisitor extends FieldVisitor { private static final Logger LOGGER = LoggerFactory.getLogger(MyFieldVisitor.class); diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyMethodVisitor.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyMethodVisitor.java index 9f0ecdc405..68855c8577 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyMethodVisitor.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/MyMethodVisitor.java @@ -17,6 +17,21 @@ package io.codelaser.maddi.bytecode.java.asm; +import static org.objectweb.asm.Opcodes.ACC_FINAL; +import static org.objectweb.asm.Opcodes.ASM9; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Stream; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.element.Source; @@ -26,20 +41,6 @@ import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; -import org.objectweb.asm.AnnotationVisitor; -import org.objectweb.asm.Label; -import org.objectweb.asm.MethodVisitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.stream.Stream; - -import static org.objectweb.asm.Opcodes.ACC_FINAL; -import static org.objectweb.asm.Opcodes.ASM9; public class MyMethodVisitor extends MethodVisitor { private static final Logger LOGGER = LoggerFactory.getLogger(MyMethodVisitor.class); diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParameterNameFactory.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParameterNameFactory.java index 398707de1f..98906f5e97 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParameterNameFactory.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParameterNameFactory.java @@ -18,11 +18,11 @@ package io.codelaser.maddi.bytecode.java.asm; -import io.codelaser.maddi.cst.api.type.ParameterizedType; - import java.util.HashSet; import java.util.Set; +import io.codelaser.maddi.cst.api.type.ParameterizedType; + public class ParameterNameFactory { private final Set names = new HashSet<>(); diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParameterizedTypeFactory.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParameterizedTypeFactory.java index a308ab5791..da1b7b6019 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParameterizedTypeFactory.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParameterizedTypeFactory.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.bytecode.java.asm; +import java.util.ArrayList; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -25,11 +31,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.type.Wildcard; import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; // signatures formally defined in https://docs.oracle.com/javase/specs/jvms/se13/html/jvms-4.html diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParseGenerics.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParseGenerics.java index f824b5d6d1..f0c0ed0420 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParseGenerics.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParseGenerics.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.bytecode.java.asm; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.TypeParameter; @@ -24,10 +28,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; -import java.util.ArrayList; -import java.util.List; -import java.util.function.Consumer; - class ParseGenerics { private final Runtime runtime; private final ByteCodeInspector.TypeParameterContext typeParameterContext; diff --git a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParseParameterTypes.java b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParseParameterTypes.java index f48c4d330f..a9f565eb1a 100644 --- a/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParseParameterTypes.java +++ b/maddi-java-bytecode/src/main/java/io/codelaser/maddi/bytecode/java/asm/ParseParameterTypes.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.bytecode.java.asm; +import java.util.ArrayList; +import java.util.List; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; -import java.util.ArrayList; -import java.util.List; - record ParseParameterTypes(Runtime runtime, LocalTypeMap findType, LocalTypeMap.LoadMode loadMode) { diff --git a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/CommonJmodBaseTests.java b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/CommonJmodBaseTests.java index 308c5f964f..50c913b349 100644 --- a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/CommonJmodBaseTests.java +++ b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/CommonJmodBaseTests.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.bytecode.java.asm; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Path; + +import org.junit.jupiter.api.BeforeAll; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; @@ -26,13 +34,6 @@ import io.codelaser.maddi.inspection.integration.CompiledTypesManagerImpl; import io.codelaser.maddi.inspection.integration.ResourcesImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.BeforeAll; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Path; public abstract class CommonJmodBaseTests { protected static Runtime runtime; diff --git a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/GenerateParameterNameIndex.java b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/GenerateParameterNameIndex.java index 07591ce6e7..1ad7c1bdc4 100644 --- a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/GenerateParameterNameIndex.java +++ b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/GenerateParameterNameIndex.java @@ -17,20 +17,8 @@ package io.codelaser.maddi.bytecode.java.asm; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; -import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; -import io.codelaser.maddi.inspection.api.resource.Resources; -import io.codelaser.maddi.inspection.api.resource.SourceFile; -import io.codelaser.maddi.inspection.integration.CompiledTypesManagerImpl; -import io.codelaser.maddi.inspection.integration.ResourcesImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.io.StringWriter; @@ -43,8 +31,21 @@ import java.util.Map; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; +import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; +import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; +import io.codelaser.maddi.inspection.api.resource.Resources; +import io.codelaser.maddi.inspection.api.resource.SourceFile; +import io.codelaser.maddi.inspection.integration.CompiledTypesManagerImpl; +import io.codelaser.maddi.inspection.integration.ResourcesImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * Run-on-demand tool that generates {@link ParameterNameIndex} files from the (faithful) ASM loader, strictly one diff --git a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestGrpcStub.java b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestGrpcStub.java index 0715a491f3..ce828e8daf 100644 --- a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestGrpcStub.java +++ b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestGrpcStub.java @@ -17,6 +17,18 @@ package io.codelaser.maddi.bytecode.java.asm; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -29,18 +41,6 @@ import io.codelaser.maddi.inspection.integration.CompiledTypesManagerImpl; import io.codelaser.maddi.inspection.integration.ResourcesImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; public class TestGrpcStub { diff --git a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParameterNameIndex.java b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParameterNameIndex.java index 741fbfbf02..3dc63610a8 100644 --- a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParameterNameIndex.java +++ b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParameterNameIndex.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.bytecode.java.asm; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; public class TestParameterNameIndex extends CommonJmodBaseTests { diff --git a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParameterizedTypeFactory.java b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParameterizedTypeFactory.java index 00a02d5a2f..191e5597ca 100644 --- a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParameterizedTypeFactory.java +++ b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParameterizedTypeFactory.java @@ -18,13 +18,14 @@ package io.codelaser.maddi.bytecode.java.asm; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.Objects; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; public class TestParameterizedTypeFactory extends CommonJmodBaseTests { diff --git a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParseGenerics.java b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParseGenerics.java index 835b5cce63..08b63fd86c 100644 --- a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParseGenerics.java +++ b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestParseGenerics.java @@ -18,6 +18,16 @@ package io.codelaser.maddi.bytecode.java.asm; +import static org.junit.jupiter.api.Assertions.*; + +import java.net.URI; +import java.util.Collection; +import java.util.EnumSet; +import java.util.SortedSet; +import java.util.Spliterator; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -30,15 +40,6 @@ import io.codelaser.maddi.inspection.api.resource.ByteCodeInspector; import io.codelaser.maddi.inspection.api.resource.SourceFile; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.util.Collection; -import java.util.EnumSet; -import java.util.SortedSet; -import java.util.Spliterator; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseGenerics extends CommonJmodBaseTests { diff --git a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestPredefined.java b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestPredefined.java index 6b5aff644f..5cc06ceff1 100644 --- a/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestPredefined.java +++ b/maddi-java-bytecode/src/test/java/io/codelaser/maddi/bytecode/java/asm/TestPredefined.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.bytecode.java.asm; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; +import static org.junit.jupiter.api.Assertions.assertSame; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertSame; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.resource.CompiledTypesManager; public class TestPredefined extends CommonJmodBaseTests { diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ClassSymbolScanner.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ClassSymbolScanner.java index 87d453e3af..95962900b3 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ClassSymbolScanner.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ClassSymbolScanner.java @@ -1,8 +1,38 @@ package io.codelaser.maddi.java.openjdk; +import java.io.File; +import java.io.IOException; +import java.lang.module.ModuleFinder; +import java.lang.module.ModuleReference; +import java.net.JarURLConnection; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.util.Elements; +import javax.tools.JavaFileObject; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.sun.source.tree.Tree; import com.sun.tools.javac.code.*; import com.sun.tools.javac.tree.JCTree; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -19,32 +49,6 @@ import io.codelaser.maddi.inspection.api.util.CreateSyntheticFieldsForGetSet; import io.codelaser.maddi.inspection.resource.InfoByFqn; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import java.util.concurrent.ConcurrentHashMap; -import java.util.Optional; -import java.lang.module.ModuleFinder; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.Element; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.util.Elements; -import javax.tools.JavaFileObject; -import java.io.File; -import java.io.IOException; -import java.net.JarURLConnection; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.function.Function; -import java.util.stream.Collectors; public class ClassSymbolScanner implements ConvertType, TypeData { private static final Logger LOGGER = LoggerFactory.getLogger(ClassSymbolScanner.class); @@ -1026,7 +1030,7 @@ private Expression annotationConstant(Attribute.Constant c) { */ private static final Pattern JAR_FILE = Pattern.compile("(jar:file:.+)/([^/!]+(" + SourceSetImpl.ARCHIVE_EXTENSIONS.stream().sorted().map(Pattern::quote) - .collect(java.util.stream.Collectors.joining("|")) + .collect(Collectors.joining("|")) + "))!/.*"); // javac's authoritative source-vs-binary provenance of a type. NOTE: cs.sourcefile is NOT reliable here, as @@ -1125,9 +1129,9 @@ static String systemModuleOfPackage(String packageName) { private static final class SystemPackages { static final Map MODULE_BY_PACKAGE = ModuleFinder.ofSystem().findAll().stream() - .map(java.lang.module.ModuleReference::descriptor) + .map(ModuleReference::descriptor) .flatMap(d -> d.packages().stream().map(p -> Map.entry(p, d.name()))) - .collect(java.util.stream.Collectors.toUnmodifiableMap(Map.Entry::getKey, Map.Entry::getValue, + .collect(Collectors.toUnmodifiableMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> a)); } diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ComputeMethodOverrides.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ComputeMethodOverrides.java index 3662a9b50a..52b9ce355d 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ComputeMethodOverrides.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ComputeMethodOverrides.java @@ -1,14 +1,15 @@ package io.codelaser.maddi.java.openjdk; +import java.util.ArrayList; +import java.util.List; + +import javax.lang.model.util.Elements; + import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.code.Types; -import javax.lang.model.util.Elements; -import java.util.ArrayList; -import java.util.List; - public record ComputeMethodOverrides(Types types, Elements elements) { List findOverriddenMethods(Symbol.MethodSymbol method) { diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ConvertType.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ConvertType.java index a60909827a..7695adfc5f 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ConvertType.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ConvertType.java @@ -1,15 +1,17 @@ package io.codelaser.maddi.java.openjdk; +import java.util.IdentityHashMap; + +import org.jetbrains.annotations.Nullable; + import com.sun.source.tree.Tree; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.Type; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import org.jetbrains.annotations.Nullable; - -import java.util.IdentityHashMap; public interface ConvertType { // must be set before scanning of compilation unit starts diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ElementStack.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ElementStack.java index 6b46067031..824554c06d 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ElementStack.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ElementStack.java @@ -1,12 +1,12 @@ package io.codelaser.maddi.java.openjdk; -import io.codelaser.maddi.cst.api.element.Element; - import java.util.ArrayDeque; import java.util.Deque; import java.util.HashMap; import java.util.Map; +import io.codelaser.maddi.cst.api.element.Element; + public class ElementStack { private final Deque> elementStack = new ArrayDeque<>(); diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/FlagHelper.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/FlagHelper.java index 983504227d..1e12c8e350 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/FlagHelper.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/FlagHelper.java @@ -2,6 +2,7 @@ import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.code.Symbol; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.FieldModifier; import io.codelaser.maddi.cst.api.info.MethodInfo; diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/InMemoryJavaFileObject.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/InMemoryJavaFileObject.java index 2450631ffe..ca3207a8ab 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/InMemoryJavaFileObject.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/InMemoryJavaFileObject.java @@ -1,7 +1,9 @@ package io.codelaser.maddi.java.openjdk; -import javax.tools.SimpleJavaFileObject; import java.net.URI; +import java.net.URISyntaxException; + +import javax.tools.SimpleJavaFileObject; public class InMemoryJavaFileObject extends SimpleJavaFileObject { private final String source; @@ -24,7 +26,7 @@ public InMemoryJavaFileObject(String sourceSetName, String className, String sou public static URI uri(String sourceSetName, String className) { try { return new URI("mem", "", "/" + sourceSetName + "/" + className.replace('.', '/') + ".java", null, null); - } catch (java.net.URISyntaxException e) { + } catch (URISyntaxException e) { throw new IllegalArgumentException("no in-memory URI for " + className + " in source set '" + sourceSetName + "'", e); } diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/MaddiDiagnosticCollector.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/MaddiDiagnosticCollector.java index 51ec0d6bed..a366bd6b48 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/MaddiDiagnosticCollector.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/MaddiDiagnosticCollector.java @@ -1,13 +1,15 @@ package io.codelaser.maddi.java.openjdk; -import com.sun.tools.javac.code.Symbol; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.*; import javax.tools.Diagnostic; import javax.tools.DiagnosticListener; import javax.tools.JavaFileObject; -import java.util.*; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.sun.tools.javac.code.Symbol; public class MaddiDiagnosticCollector implements DiagnosticListener { private static final Logger LOGGER = LoggerFactory.getLogger(MaddiDiagnosticCollector.class); diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ResolveJavaDoc.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ResolveJavaDoc.java index 030b1c6373..c05318f7aa 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ResolveJavaDoc.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ResolveJavaDoc.java @@ -1,5 +1,9 @@ package io.codelaser.maddi.java.openjdk; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.ImportStatement; import io.codelaser.maddi.cst.api.element.JavaDoc; @@ -8,10 +12,6 @@ import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.translate.TranslationMap; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - public record ResolveJavaDoc(Runtime runtime, TypeData typeData) { public JavaDoc resolve(TypeInfo currentType, MethodInfo currentMethod, JavaDoc javaDoc) { diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanCompilationUnit.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanCompilationUnit.java index 3edaff9415..6d34a5efe5 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanCompilationUnit.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanCompilationUnit.java @@ -1,15 +1,35 @@ package io.codelaser.maddi.java.openjdk; +import java.io.IOException; +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.IntFunction; +import java.util.function.UnaryOperator; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.util.Elements; +import javax.tools.Diagnostic; + +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.sun.source.doctree.DocCommentTree; -import com.sun.source.util.TreePath; import com.sun.source.tree.*; import com.sun.source.util.*; +import com.sun.source.util.TreePath; import com.sun.tools.javac.code.Attribute; import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.code.Types; import com.sun.tools.javac.tree.JCTree; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.*; @@ -25,21 +45,6 @@ import io.codelaser.maddi.inspection.api.util.RecordSynthetics; import io.codelaser.maddi.parser.java.util.TextBlockParser; import io.codelaser.maddi.util.StringUtil; -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.TypeElement; -import javax.lang.model.util.Elements; -import javax.tools.Diagnostic; -import java.io.IOException; -import java.util.*; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.IntFunction; -import java.util.stream.Collectors; -import java.util.stream.IntStream; class ScanCompilationUnit extends TreePathScanner implements SourceProvider { private static final Logger LOGGER = LoggerFactory.getLogger(ScanCompilationUnit.class); @@ -1349,7 +1354,7 @@ private static ParameterizedType withElementAnnotations(ParameterizedType pt, Li } /** {@code f} applied to the innermost component of an array type (to the type itself when not an array). */ - static ParameterizedType mapElement(ParameterizedType pt, java.util.function.UnaryOperator f) { + static ParameterizedType mapElement(ParameterizedType pt, UnaryOperator f) { if (pt.arrays() == 0) return f.apply(pt); return pt.withComponentType(mapElement(pt.componentType(), f)); } @@ -1360,7 +1365,7 @@ private static ParameterizedType withExtraAnnotations(ParameterizedType pt, if (extra.isEmpty()) return pt; List merged = new ArrayList<>(pt.annotations()); Set present = merged.stream().map(a -> a.typeInfo() == null ? "" : a.typeInfo().fullyQualifiedName()) - .collect(java.util.stream.Collectors.toSet()); + .collect(Collectors.toSet()); for (AnnotationExpression ae : extra) { String fqn = ae.typeInfo() == null ? "" : ae.typeInfo().fullyQualifiedName(); if (present.add(fqn)) merged.add(ae); @@ -2104,7 +2109,7 @@ public Void visitTry(TryTree node, Void unused) { unionType = type; } LocalVariable lv = runtime.newLocalVariable(c.getParameter().getName().toString(), unionType); - boolean isFinal = c.getParameter().getModifiers().getFlags().contains(javax.lang.model.element.Modifier.FINAL); + boolean isFinal = c.getParameter().getModifiers().getFlags().contains(Modifier.FINAL); Block catchBlock = parseBlock(StringUtil.pad(i, n), c.getBlock(), lv); // annotations @@ -3953,7 +3958,7 @@ private Source extendSource(Source base, String all, String sub) { // use this instead of lineMap.getColumnNumber(offset), which uses 8 spaces for a TAB // we want to see a single character. private int getExactColumn(long startOffset, long lineNumber) { - if (startOffset == javax.tools.Diagnostic.NOPOS) return -1; + if (startOffset == Diagnostic.NOPOS) return -1; // 1. Find the character offset where this specific line starts long lineStartOffset = lineMap.getStartPosition(lineNumber); // 2. The true character column is simply the absolute offset minus the line's start offset diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanCompilationUnits.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanCompilationUnits.java index 18355e93ba..be292cb91c 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanCompilationUnits.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanCompilationUnits.java @@ -1,8 +1,27 @@ package io.codelaser.maddi.java.openjdk; -import com.sun.source.tree.CompilationUnitTree; - +import java.io.IOException; import java.net.URI; +import java.util.*; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; + +import javax.lang.model.element.TypeElement; +import javax.lang.model.util.Elements; +import javax.tools.JavaFileManager; +import javax.tools.JavaFileObject; +import javax.tools.StandardLocation; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.sun.source.tree.CompilationUnitTree; import com.sun.source.tree.LineMap; import com.sun.source.util.DocTrees; import com.sun.source.util.JavacTask; @@ -13,6 +32,8 @@ import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.Types; import com.sun.tools.javac.tree.JCTree; +import com.sun.tools.javac.util.Names; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.FingerPrint; @@ -23,28 +44,11 @@ import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.graph.util.TimedLogger; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.api.resource.MD5FingerPrint; +import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; import io.codelaser.maddi.inspection.resource.InfoByFqn; -import io.codelaser.maddi.graph.util.TimedLogger; -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.TypeElement; -import javax.lang.model.util.Elements; -import javax.tools.JavaFileManager; -import javax.tools.JavaFileObject; -import javax.tools.StandardLocation; -import java.io.IOException; -import java.util.*; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.function.Predicate; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; public class ScanCompilationUnits { private static final Logger LOGGER = LoggerFactory.getLogger(ScanCompilationUnits.class); @@ -93,7 +97,7 @@ public ScanCompilationUnits(Runtime runtime, boolean detailedSources, MaddiDiagnosticCollector diagnosticCollector, List packagesToPreload, - io.codelaser.maddi.inspection.api.resource.ParameterNameIndex parameterNameIndex, + ParameterNameIndex parameterNameIndex, boolean jdkInternals, boolean computeFingerPrints, boolean syntheticListField) { @@ -119,7 +123,7 @@ assert nameTableIsNotShared(task) : "-XDuseUnsharedTable=true passed but NOT hon } /** The shared-JDK loader for platform types; see {@code ClassSymbolScanner#setSharedJdkLoader}. */ - public void setSharedJdkLoader(java.util.function.Function sharedJdkLoader) { + public void setSharedJdkLoader(Function sharedJdkLoader) { classSymbolScanner.setSharedJdkLoader(sharedJdkLoader); } @@ -193,8 +197,8 @@ TypeInfo declare(String fullyQualifiedName) { // diagnostic; tolerant of future javac internals changes. private static boolean nameTableIsNotShared(JavacTask task) { try { - com.sun.tools.javac.util.Names names = - com.sun.tools.javac.util.Names.instance(((BasicJavacTask) task).getContext()); + Names names = + Names.instance(((BasicJavacTask) task).getContext()); return !"SharedNameTable".equals(names.table.getClass().getSimpleName()); } catch (RuntimeException e) { return true; diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanJavaDoc.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanJavaDoc.java index 151345fa71..67752051c2 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanJavaDoc.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/ScanJavaDoc.java @@ -1,5 +1,14 @@ package io.codelaser.maddi.java.openjdk; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import javax.tools.Diagnostic; + +import org.jetbrains.annotations.Nullable; + import com.sun.source.doctree.*; import com.sun.source.tree.CompilationUnitTree; import com.sun.source.tree.LineMap; @@ -7,17 +16,11 @@ import com.sun.source.util.DocTreeScanner; import com.sun.tools.javac.tree.DCTree; import com.sun.tools.javac.util.JCDiagnostic; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.runtime.Runtime; -import org.jetbrains.annotations.Nullable; - -import javax.tools.Diagnostic; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; public record ScanJavaDoc(Runtime runtime, TypeData typeData, diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceCodeScan.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceCodeScan.java index ca3f6ec63b..673f953dd4 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceCodeScan.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceCodeScan.java @@ -1,9 +1,9 @@ package io.codelaser.maddi.java.openjdk; -import io.codelaser.maddi.cst.api.element.Comment; -import io.codelaser.maddi.cst.api.element.DetailedSources; -import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.api.runtime.Runtime; +import java.util.*; +import java.util.function.Predicate; +import java.util.stream.Stream; + import org.jetbrains.annotations.Nullable; import org.parsers.java.JavaParser; import org.parsers.java.Node; @@ -12,9 +12,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; -import java.util.function.Predicate; -import java.util.stream.Stream; +import io.codelaser.maddi.cst.api.element.Comment; +import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.element.Source; +import io.codelaser.maddi.cst.api.runtime.Runtime; public final class SourceCodeScan { private static final Logger LOGGER = LoggerFactory.getLogger(SourceCodeScan.class); diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceProvider.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceProvider.java index a0e8fb05f4..5796012f83 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceProvider.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceProvider.java @@ -1,11 +1,12 @@ package io.codelaser.maddi.java.openjdk; +import java.util.List; + import com.sun.source.tree.Tree; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.Source; -import java.util.List; - public interface SourceProvider { Source sourceForNode(Tree node); diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceSetInterleave.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceSetInterleave.java index 41ea5144db..14b3c8219f 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceSetInterleave.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/SourceSetInterleave.java @@ -1,10 +1,10 @@ package io.codelaser.maddi.java.openjdk; +import java.util.function.Function; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; -import java.util.function.Function; - /** * A second front end's share of the parse of ONE source set, when that set's Java sources and another language's * sources reference each other in both directions (a mixed Java+Kotlin module: javalin's {@code Handler.java} diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/TypeData.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/TypeData.java index d9965a82bc..ff7668e3ad 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/TypeData.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/TypeData.java @@ -1,11 +1,10 @@ package io.codelaser.maddi.java.openjdk; import com.sun.tools.javac.code.Symbol; -import io.codelaser.maddi.cst.api.element.SourceSet; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.TypeParameter; public interface TypeData { diff --git a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/UnresolvedSymbolException.java b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/UnresolvedSymbolException.java index b6a5dd5a75..afa92a9c0c 100644 --- a/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/UnresolvedSymbolException.java +++ b/maddi-java-openjdk/src/main/java/io/codelaser/maddi/java/openjdk/UnresolvedSymbolException.java @@ -17,6 +17,8 @@ package io.codelaser.maddi.java.openjdk; +import com.sun.tools.javac.code.Symbol; + /** * A referenced type, constructor or method could not be resolved during the openjdk scan — typically because * maddi runs on a deliberately partial classpath, so a library symbol simply is not present (javac hands us an @@ -58,7 +60,7 @@ public UnresolvedSymbolException(String message) { public static boolean isTolerable(Throwable t) { for (Throwable c = t; c != null; c = c.getCause()) { if (c instanceof UnresolvedSymbolException) return true; - if (c instanceof com.sun.tools.javac.code.Symbol.CompletionFailure) return true; + if (c instanceof Symbol.CompletionFailure) return true; } return false; } diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/CommonTest.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/CommonTest.java index f4f2e1986c..934d8dac55 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/CommonTest.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/CommonTest.java @@ -1,9 +1,28 @@ package io.codelaser.maddi.java.openjdk; -import ch.qos.logback.classic.Level; -import com.sun.source.util.JavacTask; -import lombok.Data; +import static io.codelaser.maddi.inspection.resource.SourceSetImpl.sourceSetOf; +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import javax.tools.*; + import org.assertj.core.api.Assert; +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.Assertions; +import org.slf4j.Logger; + +import com.sun.source.util.JavacTask; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.core.util.CloseUtil; +import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.Info; @@ -20,24 +39,8 @@ import io.codelaser.maddi.inspection.resource.InfoByFqn; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.annotation.Immutable; import io.codelaser.maddi.support.SetOnce; -import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.Assertions; -import org.slf4j.Logger; - -import javax.tools.*; -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static io.codelaser.maddi.inspection.resource.SourceSetImpl.sourceSetOf; -import static org.junit.jupiter.api.Assertions.fail; +import lombok.Data; public class CommonTest { @@ -109,7 +112,7 @@ public ScanCompilationUnits.Result scan(boolean ignoreErrors, MapBASELINE. What declaration annotations do TODAY — written so a type-use fix cannot break them diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestDeclaredNullability.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestDeclaredNullability.java index a6613d3687..fb7650d72a 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestDeclaredNullability.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestDeclaredNullability.java @@ -1,19 +1,20 @@ package io.codelaser.maddi.java.openjdk; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.impl.type.DeclaredNullability; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.cst.impl.type.DeclaredNullability; /** * {@link DeclaredNullability}: what the source declares, per position, read against the {@code @NullMarked} scope. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestDeepNestingPrint.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestDeepNestingPrint.java index 8617e9f589..bf1dcc5573 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestDeepNestingPrint.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestDeepNestingPrint.java @@ -1,5 +1,10 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Formatter; import io.codelaser.maddi.cst.api.output.FormattingOptions; @@ -7,10 +12,6 @@ import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /* Hardening regression: deeply-nested blocks printed on a narrow page must degrade gracefully. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestFormatterRoundTripStable.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestFormatterRoundTripStable.java index bd3d3db5e6..eaf99d7ead 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestFormatterRoundTripStable.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestFormatterRoundTripStable.java @@ -1,13 +1,15 @@ package io.codelaser.maddi.java.openjdk; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.output.Formatter; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; +import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.junit.jupiter.api.Test; /* Formatting must never corrupt tokens. At any page width the formatted output, re-parsed and @@ -40,7 +42,7 @@ static > Map> build(List in, Function } """; - private String printAt(TypeInfo ti, io.codelaser.maddi.cst.api.runtime.Runtime rt, int width, + private String printAt(TypeInfo ti, Runtime rt, int width, FormattingOptions.WrapStyle style) { OutputBuilder ob = rt.newCompilationUnitPrinter(ti.compilationUnit(), true) .print(new ImportComputerImpl(), rt.qualificationQualifyFromPrimaryType()); @@ -82,7 +84,7 @@ public void formattingNeverCorruptsTokens() { } } if (!problems.isEmpty()) { - org.junit.jupiter.api.Assertions.fail(problems.toString()); + Assertions.fail(problems.toString()); } } } diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestFormatterStress.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestFormatterStress.java index 66d77595c1..0dd88ba6ae 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestFormatterStress.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestFormatterStress.java @@ -1,5 +1,9 @@ package io.codelaser.maddi.java.openjdk; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Formatter; import io.codelaser.maddi.cst.api.output.FormattingOptions; @@ -7,8 +11,6 @@ import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Tag; @Tag("slow") public class TestFormatterStress extends CommonTest { @@ -74,7 +76,7 @@ public void noCrashOrMalformedOutputAcrossWidths() { } } if (!problems.isEmpty()) { - org.junit.jupiter.api.Assertions.fail("formatter problems:\n" + problems); + Assertions.fail("formatter problems:\n" + problems); } } } diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestGap12StaleArtifactDiagnosis.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestGap12StaleArtifactDiagnosis.java index f5a0224c6d..3943670eb0 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestGap12StaleArtifactDiagnosis.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestGap12StaleArtifactDiagnosis.java @@ -1,14 +1,15 @@ package io.codelaser.maddi.java.openjdk; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import java.util.stream.IntStream; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; /** * GAP #12's residual. When the same type arrives twice — once committed from a stale jar, once again from @@ -138,7 +139,7 @@ public void neverThrows() { /** One missing package produces one error per use site; this is the real shape, 50 of them in one file. */ private static List fiftyMissingPackageErrors() { - return java.util.stream.IntStream.range(0, 50) + return IntStream.range(0, 50) .mapToObj(i -> "line " + (7 + i) + ": package com.example.ann does not exist") .toList(); } @@ -175,7 +176,7 @@ public void javacErrorsOutrankTheMemberLists() { @DisplayName("#12b: the error list is deduplicated and capped, but says what it dropped") @Test public void theCapIsNotSilent() { - List many = java.util.stream.IntStream.range(0, 12) + List many = IntStream.range(0, 12) .mapToObj(i -> "line " + i + ": cannot find symbol Distinct" + i).toList(); String m = StaleArtifactDiagnosis.message(TYPE, SRC, "main", false, CLASSES, MEMBER, EXISTING, many); assertTrue(m.contains("12 javac error(s)"), m); diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestLineCommentNotInlined.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestLineCommentNotInlined.java index ceb8acf28c..5c926e0447 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestLineCommentNotInlined.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestLineCommentNotInlined.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.fail; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.fail; /** * A {@code //} comment runs to the end of its line, so a block containing one can never be inlined: whatever is diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestPrinterRoundTripIssues.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestPrinterRoundTripIssues.java index afbf036b6e..260a8d2397 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestPrinterRoundTripIssues.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestPrinterRoundTripIssues.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /** Printed source that no longer compiles: GitHub CodeLaser/maddi #106, #107, #108. */ public class TestPrinterRoundTripIssues extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestSpaceBeforeParenOperand.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestSpaceBeforeParenOperand.java index 1e4b1ff4f1..586ed60326 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestSpaceBeforeParenOperand.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestSpaceBeforeParenOperand.java @@ -1,15 +1,16 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /* Regression: a binary operator followed by a parenthesised operand rendered as its own guide diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationDistinguishesUses.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationDistinguishesUses.java index 39be4b2b3b..92ac05dd6b 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationDistinguishesUses.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationDistinguishesUses.java @@ -1,5 +1,13 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.Map; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; @@ -9,13 +17,6 @@ import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * Two uses of ONE type, one annotated and one not, must be two distinct values. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnACalledMethod.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnACalledMethod.java index bb1d981958..aea8bfe93e 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnACalledMethod.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnACalledMethod.java @@ -1,16 +1,17 @@ package io.codelaser.maddi.java.openjdk; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.ParameterInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.ParameterInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; /** * A TYPE_USE-only annotation lands on the TYPE whichever way the method was first created. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnAReferencedField.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnAReferencedField.java index 0fc2ea7efe..d0488ff182 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnAReferencedField.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnAReferencedField.java @@ -1,15 +1,16 @@ package io.codelaser.maddi.java.openjdk; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; /** * maddi#145: a field REFERENCED before its declaration is reached keeps the type-use annotations of its type diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnAnonymousSupertype.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnAnonymousSupertype.java index e2772022bc..e9946ceb92 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnAnonymousSupertype.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationOnAnonymousSupertype.java @@ -1,16 +1,17 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * CodeLaser/maddi#144: the type-use annotations written on an anonymous class creation's type are kept, on the diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationQualifiedName.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationQualifiedName.java index 61a2802921..03617be920 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationQualifiedName.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationQualifiedName.java @@ -1,18 +1,19 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Map; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; +import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * CodeLaser/maddi#113. The source reaches the nested types {@code P} and {@code C} by simple name through diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationRoundTrip.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationRoundTrip.java index 34727523e3..acead61d1a 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationRoundTrip.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationRoundTrip.java @@ -1,25 +1,26 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.translate.TranslationMap; -import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; +import io.codelaser.maddi.cst.api.translate.TranslationMap; +import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotSame; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * TYPE-USE annotations (JLS 9.7.4, {@code ElementType.TYPE_USE}, Java 8) are dropped by the parse. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationTargetRouting.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationTargetRouting.java index 2054d3f86b..fd29db92fb 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationTargetRouting.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/TestTypeUseAnnotationTargetRouting.java @@ -1,5 +1,13 @@ package io.codelaser.maddi.java.openjdk; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.Map; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -8,13 +16,6 @@ import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * THE SPEC: where an annotation belongs is decided by its {@code @Target}, and javac says so in the class diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestAnonymousType.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestAnonymousType.java index 4be092ea9a..432d32f72b 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestAnonymousType.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestAnonymousType.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.java.openjdk.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; @@ -24,11 +30,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestAnonymousType extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestCompactConstructorProbe.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestCompactConstructorProbe.java index ff6e3c7f25..7a4f1ca109 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestCompactConstructorProbe.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestCompactConstructorProbe.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.constructor; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * ⭐ A CHARACTERIZATION TEST, written to REFUTE a diagnosis rather than to fix a defect. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestConstructor.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestConstructor.java index cebab0db4d..f805fbf4f9 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestConstructor.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestConstructor.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.java.openjdk.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.HashMap; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -24,14 +33,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.HashMap; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; public class TestConstructor extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestConstructor2.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestConstructor2.java index 44ac60b221..81f472dade 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestConstructor2.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestConstructor2.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.java.openjdk.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestConstructor2 extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestExplicitConstructorInvocation.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestExplicitConstructorInvocation.java index 075282b8bc..167feb2f91 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestExplicitConstructorInvocation.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestExplicitConstructorInvocation.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestExplicitConstructorInvocation extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestExtendedConstructor.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestExtendedConstructor.java index 19899425d2..ff41e070b4 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestExtendedConstructor.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestExtendedConstructor.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -25,10 +30,6 @@ import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestExtendedConstructor extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestInitializers.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestInitializers.java index 56660c9622..848e9cb276 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestInitializers.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestInitializers.java @@ -1,14 +1,15 @@ package io.codelaser.maddi.java.openjdk.constructor; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestInitializers extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestRecordConstructor.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestRecordConstructor.java index 27f72d5998..96b1d69534 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestRecordConstructor.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/constructor/TestRecordConstructor.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.java.openjdk.constructor; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestRecordConstructor extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestAnonymousInTypeArgument.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestAnonymousInTypeArgument.java index c1fd77671f..1311fad769 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestAnonymousInTypeArgument.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestAnonymousInTypeArgument.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.expression; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestAnonymousInTypeArgument extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArray.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArray.java index d5d59c9bf2..8cea919fdf 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArray.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArray.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.java.openjdk.expression; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestArray extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArrayInitializer.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArrayInitializer.java index 684fc8949f..02372f6a62 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArrayInitializer.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArrayInitializer.java @@ -17,22 +17,22 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.ArrayInitializer; import io.codelaser.maddi.cst.api.expression.ClassExpression; -import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; public class TestArrayInitializer extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArrayMethodReference.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArrayMethodReference.java index bb74d79cdd..cfc355ed16 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArrayMethodReference.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestArrayMethodReference.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.expression; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A method reference whose scope is an ARRAY TYPE rather than a class: {@code long[]::clone}. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestAssignment.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestAssignment.java index dcf27c811c..a14aa62937 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestAssignment.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestAssignment.java @@ -1,13 +1,14 @@ package io.codelaser.maddi.java.openjdk.expression; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestAssignment extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestBinaryOperator.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestBinaryOperator.java index a4b113d8fe..acc9372bf1 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestBinaryOperator.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestBinaryOperator.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -25,10 +30,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestBinaryOperator extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestCast.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestCast.java index 43c9268a93..95e69474bf 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestCast.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestCast.java @@ -1,13 +1,14 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestCast extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestCompoundAssignment.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestCompoundAssignment.java index 50f22ec240..882afd40d2 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestCompoundAssignment.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestCompoundAssignment.java @@ -1,15 +1,17 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Assignment; import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; +import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; /** * Regression for the reported CST-completeness bug (notes/compound-assignment-missing-binary-operator.md): @@ -84,7 +86,7 @@ public void stringPlainAddIsConcat() { TypeInfo typeInfo = scan("a.b.X", STRING_INPUT); MethodInfo plain = typeInfo.findUniqueMethod("plain", 1); // return s + "y"; - var ret = (io.codelaser.maddi.cst.api.statement.ReturnStatement) plain.methodBody().statements().get(0); + var ret = (ReturnStatement) plain.methodBody().statements().get(0); BinaryOperator binary = (BinaryOperator) ret.expression(); assertSame(runtime.plusOperatorString(), binary.operator(), "plain String '+' is concatenation"); } diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestInstanceOf.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestInstanceOf.java index 2af6b452f9..df632408db 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestInstanceOf.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestInstanceOf.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Cast; import io.codelaser.maddi.cst.api.expression.InstanceOf; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -28,10 +33,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestInstanceOf extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLambda.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLambda.java index b28df882f1..4dc64787a7 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLambda.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLambda.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Cast; import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -26,11 +32,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.impl.variable.LocalVariableImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestLambda extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLambdaCapturedWildcard.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLambdaCapturedWildcard.java index ac6caaa4aa..e349c367fb 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLambdaCapturedWildcard.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLambdaCapturedWildcard.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.java.openjdk.expression; -import io.codelaser.maddi.cst.api.expression.Lambda; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.Lambda; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * CodeLaser/maddi#112. javac types the inner lambda's parameter as {@code List}, CAP#1 the capture of diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLiteralSpelling.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLiteralSpelling.java index c60ae5c4e3..b740ebcc8d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLiteralSpelling.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestLiteralSpelling.java @@ -18,20 +18,21 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import java.util.LinkedHashMap; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstantExpression; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.LinkedHashMap; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; /** * CodeLaser/maddi#49: a literal prints as it was written. {@code 0xFFFF} printed as {@code 65535} and diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestMethodReference.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestMethodReference.java index 74f0727e02..49a5dcd0bb 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestMethodReference.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestMethodReference.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.MethodReference; import io.codelaser.maddi.cst.api.expression.TypeExpression; @@ -26,11 +32,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodReference extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestStringConstant.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestStringConstant.java index d3f2930060..782b01293d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestStringConstant.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestStringConstant.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.expression.ArrayInitializer; import io.codelaser.maddi.cst.api.expression.StringConstant; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -25,15 +35,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.impl.output.QualificationImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestStringConstant extends CommonTest { private static final Logger LOGGER = LoggerFactory.getLogger(TestStringConstant.class); diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestSwitchExpression.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestSwitchExpression.java index ac63c203f5..a6ca0191b5 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestSwitchExpression.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestSwitchExpression.java @@ -1,24 +1,25 @@ package io.codelaser.maddi.java.openjdk.expression; -import io.codelaser.maddi.cst.api.expression.SwitchExpression; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.RecordPattern; -import io.codelaser.maddi.cst.api.statement.SwitchEntry; -import io.codelaser.maddi.cst.impl.output.QualificationImpl; +import io.codelaser.maddi.cst.api.expression.SwitchExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Statement; +import io.codelaser.maddi.cst.api.statement.SwitchEntry; import io.codelaser.maddi.cst.api.statement.YieldStatement; +import io.codelaser.maddi.cst.impl.output.QualificationImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertInstanceOf; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestSwitchExpression extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestThisSuper.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestThisSuper.java index 51c527b851..8d9a21a412 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestThisSuper.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestThisSuper.java @@ -1,5 +1,10 @@ package io.codelaser.maddi.java.openjdk.expression; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -7,10 +12,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.This; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestThisSuper extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestUnnamedVariable.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestUnnamedVariable.java index ea8a9a2965..7d9f917940 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestUnnamedVariable.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/expression/TestUnnamedVariable.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.expression; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.ForEachStatement; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.ForEachStatement; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestUnnamedVariable extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/initial/TestClass1.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/initial/TestClass1.java index d9f6c4db7d..4f2677e29d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/initial/TestClass1.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/initial/TestClass1.java @@ -1,5 +1,12 @@ package io.codelaser.maddi.java.openjdk.initial; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -12,12 +19,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.io.IOException; - -import static org.junit.jupiter.api.Assertions.*; public class TestClass1 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/initial/TestInMemoryUri.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/initial/TestInMemoryUri.java index a3ddc5cb01..14200485f5 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/initial/TestInMemoryUri.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/initial/TestInMemoryUri.java @@ -1,11 +1,12 @@ package io.codelaser.maddi.java.openjdk.initial; -import io.codelaser.maddi.java.openjdk.InMemoryJavaFileObject; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.net.URI; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.java.openjdk.InMemoryJavaFileObject; /** * A source set's name is free text; a Maven reactor's reads "Project :: Module/main". The in-memory URI quotes diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestBuilder.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestBuilder.java index 94d2a14f7e..ec1ac8b977 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestBuilder.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestBuilder.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.lombok; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestBuilder extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestConstructor.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestConstructor.java index 29a5bc5e90..e6fb729bea 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestConstructor.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestConstructor.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.lombok; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.NoSuchElementException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.NoSuchElementException; - -import static org.junit.jupiter.api.Assertions.*; public class TestConstructor extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestData.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestData.java index f0694d5b5a..0dfca0e9f6 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestData.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestData.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.lombok; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.NoSuchElementException; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestData extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestGetter.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestGetter.java index 147e926496..79984e44ab 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestGetter.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestGetter.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.lombok; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.NoSuchElementException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.NoSuchElementException; - -import static org.junit.jupiter.api.Assertions.*; public class TestGetter extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestLogger.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestLogger.java index 35451338f4..01e07a19b3 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestLogger.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestLogger.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.java.openjdk.lombok; -import io.codelaser.maddi.cst.api.expression.StringConstant; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestLogger extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestSetter.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestSetter.java index 13c3dcfa65..7005ef3052 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestSetter.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestSetter.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.lombok; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.NoSuchElementException; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.NoSuchElementException; - -import static org.junit.jupiter.api.Assertions.*; public class TestSetter extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestSuperBuilder.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestSuperBuilder.java index d38073e18d..0595c5b848 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestSuperBuilder.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/lombok/TestSuperBuilder.java @@ -1,16 +1,17 @@ package io.codelaser.maddi.java.openjdk.lombok; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; + /** * {@code @SuperBuilder} generates classes that EXTEND -- {@code ChildBuilderImpl extends ChildBuilder<..>}, * {@code ChildBuilder extends Base.BaseBuilder} -- and nobody typed their {@code extends}. With diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestImplicitThisEnclosing.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestImplicitThisEnclosing.java index 43bc6542ba..ccca3e0791 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestImplicitThisEnclosing.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestImplicitThisEnclosing.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -28,12 +35,6 @@ import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.variable.This; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * The implicit {@code this} receiver of an unqualified instance-method call inside an anonymous class must be the diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall0.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall0.java index 82685282ad..72e859e556 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall0.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall0.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -27,10 +32,6 @@ import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall0 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall1.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall1.java index b2a3df86b8..5a1b049377 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall1.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall1.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -25,10 +30,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall1 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall10.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall10.java index 576bc5d956..09720c5130 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall10.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall10.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.java.openjdk.CommonTest; + public class TestMethodCall10 extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall11.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall11.java index b53dcb34d0..4ea3bb8981 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall11.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall11.java @@ -17,18 +17,18 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.expression.Lambda; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + +import java.net.URL; + import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.net.URL; - -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.expression.Lambda; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestMethodCall11 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall12.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall12.java index 11bccd6d17..c0078376b9 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall12.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall12.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Map; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestMethodCall12 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall13.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall13.java index b013b1e598..9061d37ab8 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall13.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall13.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestMethodCall13 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall2.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall2.java index 2b077039e2..10215a9cc5 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall2.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall2.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestMethodCall2 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall3.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall3.java index d7a7e733f3..aa50155292 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall3.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall3.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall3 extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall4.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall4.java index be854baa2c..d3394dd2e1 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall4.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall4.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.java.openjdk.CommonTest; + public class TestMethodCall4 extends CommonTest { @Language("java") private static final String INPUT0 = """ diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall5.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall5.java index 3cccbcc0d3..dbfb38a9e1 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall5.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall5.java @@ -17,10 +17,11 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.java.openjdk.CommonTest; + public class TestMethodCall5 extends CommonTest { @Language("java") private static final String INPUT0 = """ diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall6.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall6.java index 193480b509..f0fcbb893a 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall6.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall6.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall6 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall7.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall7.java index 99c620ccd8..868b197772 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall7.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall7.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -28,11 +34,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall7 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall8.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall8.java index 98d0b6cf0e..ef1d206d27 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall8.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall8.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.MethodReference; @@ -27,11 +33,6 @@ import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestMethodCall8 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall9.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall9.java index 4141985b33..efd57d949d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall9.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCall9.java @@ -17,18 +17,18 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertSame; public class TestMethodCall9 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCallB1.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCallB1.java index d10eed265e..41ab2a938c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCallB1.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodCallB1.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.java.openjdk.CommonTest; + public class TestMethodCallB1 extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodTypeParameterSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodTypeParameterSource.java index d4caff9077..bbc3653613 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodTypeParameterSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestMethodTypeParameterSource.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.TypeParameter; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.util.LinkedHashMap; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A METHOD type parameter used to lose its declaration source, and get a different bound, when the compilation diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestNestedTypeArgumentSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestNestedTypeArgumentSource.java index 5a944b37e4..d7c3da9377 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestNestedTypeArgumentSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestNestedTypeArgumentSource.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * The nested half of {@link TestParameterInfoSource} and {@link TestReturnTypeSource}. Those pin that a diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverload0.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverload0.java index 6d26205f45..63a84fe4cd 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverload0.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverload0.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -26,10 +31,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestOverload0 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverload1.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverload1.java index 401e71a2b1..1ff5f3b86c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverload1.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverload1.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestOverload1 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride2.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride2.java index 01a5c424ff..24b0aeb355 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride2.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride2.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.method; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestOverride2 extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride3.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride3.java index ea3c949090..028e862ea4 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride3.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride3.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertFalse; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestOverride3 extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride4.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride4.java index 78f008644d..eb40126308 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride4.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverride4.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestOverride4 extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverrides.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverrides.java index df89e57011..dbbcc0eca5 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverrides.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverrides.java @@ -1,21 +1,22 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.expression.MethodCall; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.expression.MethodCall; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestOverrides extends CommonTest { private static final Logger LOGGER = LoggerFactory.getLogger(TestOverrides.class); diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesOfRecordAccessors.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesOfRecordAccessors.java index 8e927bb5e9..ab60efb710 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesOfRecordAccessors.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesOfRecordAccessors.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Map; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestOverridesOfRecordAccessors extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesTwoInterfaces.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesTwoInterfaces.java index 910bda819f..7a27f0405e 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesTwoInterfaces.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesTwoInterfaces.java @@ -17,18 +17,18 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * One method, one signature, declared by TWO implemented interfaces: {@code overrides()} must report both. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesUnitOrder.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesUnitOrder.java index 9fb3da85cb..2e4e0148d3 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesUnitOrder.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestOverridesUnitOrder.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * The order in which compilation units are handed to javac must not change what a method overrides. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestParameterInfoSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestParameterInfoSource.java index ff0e32fdcf..091357bb92 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestParameterInfoSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestParameterInfoSource.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.ParameterInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.ParameterInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestParameterInfoSource extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestParameterNameSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestParameterNameSource.java index ccc7e10836..ad31117a71 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestParameterNameSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestParameterNameSource.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.ParameterInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.ParameterInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A formal parameter's detailed sources must contain an entry keyed by the parameter's name diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestReturnTypeSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestReturnTypeSource.java index fa7be0f41c..d65f422f7f 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestReturnTypeSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestReturnTypeSource.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * The return-type counterpart of {@link TestParameterInfoSource}. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestTrailingStatementComment.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestTrailingStatementComment.java index 9f49ffd3e8..6f99eae558 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestTrailingStatementComment.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/method/TestTrailingStatementComment.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.method; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A line comment written at the end of a statement's line must not end up printed BEFORE that statement. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnnotatedArrayReturnType.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnnotatedArrayReturnType.java index c46195d1be..f9896ae869 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnnotatedArrayReturnType.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnnotatedArrayReturnType.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +import java.util.Map; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * {@code Constraint @NonNull [] defineConstraints(@NonNull ConstraintFactory f)} — the JSpecify array @@ -208,7 +209,7 @@ public interface Unresolved { @Test public void unresolvedAnnotation() { Map types = scan(true, "a.b.Factory", FACTORY, "a.b.Unresolved", UNRESOLVED_ANNOTATION); - if (java.lang.Runtime.version().feature() < 27) { + if (Runtime.version().feature() < 27) { assertNull(types.get("a.b.Unresolved"), "the unit is dropped, not repaired: " + types.keySet()); return; } diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnnotations.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnnotations.java index 45ad10c7aa..1e83da8ead 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnnotations.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnnotations.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -28,12 +35,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.impl.element.SourceImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; public class TestAnnotations extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnonymousClassSupertypeDetailedSources.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnonymousClassSupertypeDetailedSources.java index 22e0307098..20fa39cf2a 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnonymousClassSupertypeDetailedSources.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestAnonymousClassSupertypeDetailedSources.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; @@ -24,13 +32,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; /** * An anonymous-class creation ({@code new Supertype(){...}}) must expose the WRITTEN supertype's source token in the diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestClassLiteralOnUnresolvedType.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestClassLiteralOnUnresolvedType.java index b9ff5e1cf9..b3c8a8d746 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestClassLiteralOnUnresolvedType.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestClassLiteralOnUnresolvedType.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.java.openjdk.CommonTest; -import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.java.openjdk.CommonTest; +import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; /** * #40: a class literal whose qualifier javac could not resolve carries an error symbol: a ClassSymbol named diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestClassSymbolScanner.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestClassSymbolScanner.java index 68efa192c6..e386d4fc84 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestClassSymbolScanner.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestClassSymbolScanner.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestClassSymbolScanner extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestComments.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestComments.java index 85afee3bbe..caba914bd5 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestComments.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestComments.java @@ -17,20 +17,21 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestComments extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCompilationProblem.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCompilationProblem.java index 73a8e20d3f..44bd64cbd1 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCompilationProblem.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCompilationProblem.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.java.openjdk.CommonTest; + public class TestCompilationProblem extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCompiledTypesManager.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCompiledTypesManager.java index 7dab1aaf3f..156248525b 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCompiledTypesManager.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCompiledTypesManager.java @@ -17,12 +17,10 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestCompiledTypesManager extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCrossScannerDuplicateInterfaces.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCrossScannerDuplicateInterfaces.java index 060b0fae85..621723f4ce 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCrossScannerDuplicateInterfaces.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestCrossScannerDuplicateInterfaces.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; - -import java.util.List; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.java.openjdk.CommonTest; + /** * Regression (originally surfaced by {@code TestCloneBench}): the class scanner's per-type "setup block" (parent, * type parameters, interfaces, annotations) must run exactly once per {@link TypeInfo}, ever. It used to be guarded by diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDescriptorWithoutTypeUseAnnotations.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDescriptorWithoutTypeUseAnnotations.java index b4d08b5c5a..d9e26d9192 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDescriptorWithoutTypeUseAnnotations.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDescriptorWithoutTypeUseAnnotations.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +import java.util.Map; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A descriptor is a NAME: it must not vary with the TYPE-USE annotations written on a particular use of a type. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDetailedSourcePreScanFailureDegrades.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDetailedSourcePreScanFailureDegrades.java index 38d1a15739..31c62a1f06 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDetailedSourcePreScanFailureDegrades.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDetailedSourcePreScanFailureDegrades.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.java.openjdk.CommonTest; -import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.java.openjdk.CommonTest; +import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; /** * Regression (originally surfaced by Apache Camel's {@code TransformerRouteTest}): the openjdk front-end runs an diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDroppedUnitMethodAccess.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDroppedUnitMethodAccess.java index 061beec93c..db5fd885cb 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDroppedUnitMethodAccess.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestDroppedUnitMethodAccess.java @@ -17,23 +17,23 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * ⛔ A METHOD HALF-SCANNED BY A DROPPED COMPILATION UNIT IS NEVER FINISHED, AND ITS TYPE IS COMMITTED @@ -172,7 +172,7 @@ public void inTheNestedType() { public void commitThrowsToo() { // ⚠ Up to JDK 26 completing the type threw on 'later(Gone g)'. JDK 27's javac stubs Gone, so the commit // succeeds and every member must come out committed: the failed-commit branch has no fixture on 27. - check(COMMIT_THROWS_TOO, java.lang.Runtime.version().feature() >= 27); + check(COMMIT_THROWS_TOO, Runtime.version().feature() >= 27); } private void check(String source, boolean commitSucceeds) { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestElasticsearchShapes.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestElasticsearchShapes.java index 172e09d42a..76daba3478 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestElasticsearchShapes.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestElasticsearchShapes.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * Source shapes surfaced by the elasticsearch first-contact scan (2026-07-18); each test pins one diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestEnum.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestEnum.java index 221655ce70..936ad6b50d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestEnum.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestEnum.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -25,10 +30,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestEnum extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestEnumConstantComments.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestEnumConstantComments.java index 0c79c637f7..9b3cbeb311 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestEnumConstantComments.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestEnumConstantComments.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * An enum constant carries the comments written for it, as a field declaration does: a comment above it, and a diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestExceptionTypes.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestExceptionTypes.java index 536a248f9a..d7d407e121 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestExceptionTypes.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestExceptionTypes.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.MethodPrinter; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.impl.info.MethodPrinterImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestExceptionTypes extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestField.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestField.java index 7d7104c5a4..ca4c0938a1 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestField.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestField.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.VariableExpression; @@ -25,12 +32,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; public class TestField extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestFieldAccess.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestFieldAccess.java index b0e81ad1ec..9ffe432b91 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestFieldAccess.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestFieldAccess.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Assignment; @@ -30,12 +37,6 @@ import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.This; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestFieldAccess extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestFieldTypeDetailUnitOrder.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestFieldTypeDetailUnitOrder.java index 2dabde552b..6bbaf331a6 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestFieldTypeDetailUnitOrder.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestFieldTypeDetailUnitOrder.java @@ -16,20 +16,21 @@ */ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.util.LinkedHashMap; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.LinkedHashMap; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * The order in which compilation units are scanned must not change whether a field's type has a source position. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestForLoop.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestForLoop.java index b191c02b5f..6cd3c976fd 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestForLoop.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestForLoop.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ForEachStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestForLoop extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport.java index 4e61a7a401..80c7031738 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport.java @@ -17,7 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.expression.ConstructorCall; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -25,14 +33,6 @@ import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; public class TestImport extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport2.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport2.java index bc32dff88f..b0e53af7a8 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport2.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport2.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestImport2 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport3.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport3.java index c456008a89..6577c990ae 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport3.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport3.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestImport3 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport4.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport4.java index cb30cdf7aa..18d86c8177 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport4.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestImport4.java @@ -17,17 +17,17 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.java.openjdk.CommonTest; import io.codelaser.maddi.java.openjdk.CompilationProblems; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; public class TestImport4 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestIntersectionBoundPrinting.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestIntersectionBoundPrinting.java index 3808af9232..31048e0633 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestIntersectionBoundPrinting.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestIntersectionBoundPrinting.java @@ -17,18 +17,20 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.impl.type.WildcardEnum; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import java.util.Map; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.cst.impl.type.WildcardEnum; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * ⛔⛔ PRINTING AN INTERSECTION TYPE THAT CARRIES A PLAIN {@code EXTENDS} WILDCARD RAISED AN @@ -80,7 +82,7 @@ private ParameterizedType intersection() { Map types = scan(false, "a.b.A", TYPES, "a.b.B", B, "a.b.Pair", PAIR); ParameterizedType a = runtime.newParameterizedType(types.get("a.b.A"), 0); ParameterizedType b = runtime.newParameterizedType(types.get("a.b.B"), 0); - ParameterizedType intersection = runtime.newIntersectionType(null, java.util.List.of(a, b)); + ParameterizedType intersection = runtime.newIntersectionType(null, List.of(a, b)); assertTrue(intersection.isIntersectionType(), "fixture must be an intersection: " + intersection); return intersection; } diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc.java index 65dc87de4e..87482343a5 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestJavaDoc extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc2.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc2.java index 5657fbb22c..d6c8c1eb7a 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc2.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc2.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; public class TestJavaDoc2 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc3.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc3.java index fbcbb157d4..98b7bb9e18 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc3.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDoc3.java @@ -17,21 +17,22 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.Map; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; public class TestJavaDoc3 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocEmptyHasASource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocEmptyHasASource.java index 01d6522e2b..eadda49d38 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocEmptyHasASource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocEmptyHasASource.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * #31: javac positions a doc comment by its body, so an empty {@code /** */} had no position and the JavaDoc diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocEmptyTag.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocEmptyTag.java index e3100f1591..39e4603048 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocEmptyTag.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocEmptyTag.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * An EMPTY doc tag is legal input, and it must not throw. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocField.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocField.java index 5974701cb7..c666eba796 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocField.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocField.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * JavaDoc on FIELDS and ENUM CONSTANTS. Types ({@link TestJavaDoc2}) and methods have carried resolved javadoc for diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocKeepsItsLines.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocKeepsItsLines.java index b97d364b8b..23155f814c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocKeepsItsLines.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocKeepsItsLines.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * {@link JavaDoc#commentWithPlaceholders()} keeps the comment's LINES: its line {@code k} is the javadoc's source diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocLiteralBraces.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocLiteralBraces.java index c0a70df081..e507b46c88 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocLiteralBraces.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocLiteralBraces.java @@ -16,15 +16,16 @@ */ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * #166: a javadoc may hold {@code {n}} as text, a MessageFormat pattern in nacos. comment() took it for a tag diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocMemberRefNotUnique.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocMemberRefNotUnique.java index 6924d6ca3b..3dc45a8003 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocMemberRefNotUnique.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocMemberRefNotUnique.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; /** * A javadoc member reference whose MEMBER cannot be pinned down — {@code {@link X#write}} where {@code write} is diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocNestedTypeReference.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocNestedTypeReference.java index e176579e3b..b0d896a099 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocNestedTypeReference.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestJavaDocNestedTypeReference.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.DetailedSources; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Map; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A nested type named through its ENCLOSING type — {@code {@link Outer.Nested}} — which is legal wherever diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLambdaWithoutTargetType.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLambdaWithoutTargetType.java index 02811a49a1..4c71a4757a 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLambdaWithoutTargetType.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLambdaWithoutTargetType.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.java.openjdk.CommonTest; -import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.java.openjdk.CommonTest; +import io.codelaser.maddi.java.openjdk.ScanCompilationUnits; /** * A lambda passed to a call that does not resolve. {@code JCLambda.target} — the functional interface javac diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLocalTypeStream.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLocalTypeStream.java index f8e523bf67..4ac0ea0376 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLocalTypeStream.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLocalTypeStream.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * CodeLaser/maddi#126: the anonymous and local classes of a type's code, which {@code subTypes()} does not hold. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLocalVariableDeclarationId.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLocalVariableDeclarationId.java index 8db50d355a..67694a260a 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLocalVariableDeclarationId.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestLocalVariableDeclarationId.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -24,14 +33,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; /** * CodeLaser/maddi#127: two same-named locals of sibling scopes are equal (a local's FQN is its name), so a tool diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestMethodCallDetailedSources.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestMethodCallDetailedSources.java index 068373c03a..faeec389aa 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestMethodCallDetailedSources.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestMethodCallDetailedSources.java @@ -17,18 +17,20 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * A method call's detailed sources must contain an entry keyed by the called method's simple name @@ -57,7 +59,7 @@ int staticCall(String s) { private static MethodCall firstCall(MethodInfo methodInfo) { Statement s = methodInfo.methodBody().statements().getFirst(); - io.codelaser.maddi.cst.api.expression.Expression e = + Expression e = s instanceof ReturnStatement rs ? rs.expression() : s.expression(); return (MethodCall) e; } diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestModifierDetailedSources.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestModifierDetailedSources.java index b2d1f7ce75..6922fa6866 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestModifierDetailedSources.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestModifierDetailedSources.java @@ -17,21 +17,22 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.DetailedSources; -import io.codelaser.maddi.cst.api.element.Element; -import io.codelaser.maddi.cst.api.expression.ConstructorCall; -import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; -import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.api.info.*; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.element.Element; +import io.codelaser.maddi.cst.api.element.Source; +import io.codelaser.maddi.cst.api.expression.ConstructorCall; +import io.codelaser.maddi.cst.api.info.*; +import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestModifierDetailedSources extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestModuleInfo.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestModuleInfo.java index 0d637b142c..2a1744f2a4 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestModuleInfo.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestModuleInfo.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.ModuleInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.ModuleInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestModuleInfo extends CommonTest { private static final String SCAN = """ diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestNative.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestNative.java index 79888dea5b..b9dacfb455 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestNative.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestNative.java @@ -1,12 +1,13 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestNative extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestOperators.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestOperators.java index 824b03de0d..79374a20cb 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestOperators.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestOperators.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.IfElseStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestOperators extends CommonTest { /* diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPackageAnnotationNamesItsOwnType.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPackageAnnotationNamesItsOwnType.java index 113c957216..052349d1e9 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPackageAnnotationNamesItsOwnType.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPackageAnnotationNamesItsOwnType.java @@ -17,19 +17,21 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A package whose {@code package-info} annotation reaches a type of that package, read from class files, with that diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPackageInfo.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPackageInfo.java index 05bb68ae4f..9401c948e4 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPackageInfo.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPackageInfo.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestPackageInfo extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestParameterNamesFromIndex.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestParameterNamesFromIndex.java index c6a47fd01e..c8b6a9bc6c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestParameterNamesFromIndex.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestParameterNamesFromIndex.java @@ -1,15 +1,16 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.io.StringReader; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.resource.ParameterNameIndex; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestParameterNamesFromIndex extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestParseResult.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestParseResult.java index ad704c00e7..78ef9f058c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestParseResult.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestParseResult.java @@ -17,21 +17,23 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.api.parser.ParseResult; -import io.codelaser.maddi.inspection.resource.ParseResultImpl; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.api.parser.ParseResult; +import io.codelaser.maddi.inspection.resource.ParseResultImpl; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestParseResult extends CommonTest { @@ -51,7 +53,7 @@ record RI(Set set, int i, List list) implements R {} @DisplayName("basics of findMostLikelyType") @Test public void test1() { - ParseResult parseResult = new ParseResultImpl(new java.util.HashSet<>(scan(false, "a.b.X", A_B_X).values()), Map.of(), Map.of()); + ParseResult parseResult = new ParseResultImpl(new HashSet<>(scan(false, "a.b.X", A_B_X).values()), Map.of(), Map.of()); List testR = parseResult.findMostLikelyType("r"); assertEquals(1, testR.size()); assertEquals("a.b.X.R", testR.getFirst().fullyQualifiedName()); @@ -87,7 +89,7 @@ interface R { @DisplayName("findMostLikelyType, partial name") @Test public void test2() { - ParseResult parseResult = new ParseResultImpl(new java.util.HashSet<>(scan(false, "a.b.X", A_B_X_2).values()), Map.of(), Map.of()); + ParseResult parseResult = new ParseResultImpl(new HashSet<>(scan(false, "a.b.X", A_B_X_2).values()), Map.of(), Map.of()); assertEquals(3, parseResult.findMostLikelyType("r").size()); assertEquals(3, parseResult.findMostLikelyType(".r").size()); assertEquals(3, parseResult.findMostLikelyType("r.").size()); @@ -126,7 +128,7 @@ interface Y { @DisplayName("findMostLikelyMethod") @Test public void test3() { - ParseResult parseResult = new ParseResultImpl(new java.util.HashSet<>(scan(false, "a.b.X", A_B_X_3).values()), Map.of(), Map.of()); + ParseResult parseResult = new ParseResultImpl(new HashSet<>(scan(false, "a.b.X", A_B_X_3).values()), Map.of(), Map.of()); assertEquals(1, parseResult.findMostLikelyMethod("X").size()); assertEquals(0, parseResult.findMostLikelyMethod("Y").size()); assertEquals(4, parseResult.findMostLikelyMethod("method").size()); @@ -156,7 +158,7 @@ class Y { @DisplayName("findMostLikelyField") @Test public void test4() { - ParseResult parseResult = new ParseResultImpl(new java.util.HashSet<>(scan(false, "a.b.X", A_B_X_4).values()), Map.of(), Map.of()); + ParseResult parseResult = new ParseResultImpl(new HashSet<>(scan(false, "a.b.X", A_B_X_4).values()), Map.of(), Map.of()); assertEquals(2, parseResult.findMostLikelyField("i").size()); assertEquals(1, parseResult.findMostLikelyField("x.i").size()); assertEquals(1, parseResult.findMostLikelyField("y.i").size()); diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPlatformModuleOutsideJavaSe.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPlatformModuleOutsideJavaSe.java index 02437340aa..0061c33328 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPlatformModuleOutsideJavaSe.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPlatformModuleOutsideJavaSe.java @@ -1,12 +1,13 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * A type from a platform module that the configuration does not list is still the JDK, and must not be attributed to diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPreload.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPreload.java index 6a4dc1fb8a..f2ac9e4324 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPreload.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPreload.java @@ -1,14 +1,15 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.ClassExpression; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestPreload extends CommonTest { @Test diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPreloadDuplicateInterfaces.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPreloadDuplicateInterfaces.java index fbdc67be58..d3b47e265f 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPreloadDuplicateInterfaces.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestPreloadDuplicateInterfaces.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * Regression: a preloaded type was loaded LAZILY (interfaces added, but not committed) and then again with diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestReceiverParameterDetailedSources.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestReceiverParameterDetailedSources.java index de516b04fd..3642ab4860 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestReceiverParameterDetailedSources.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestReceiverParameterDetailedSources.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * A receiver parameter ({@code X this}, JLS 8.4.1) no longer costs a compilation unit its detailed sources diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecord.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecord.java index 1e4bdb597d..4d34508b68 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecord.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecord.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -25,11 +31,6 @@ import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestRecord extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordAccessorCalledIsStillSynthetic.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordAccessorCalledIsStillSynthetic.java index 26b2bab467..8b366e9f65 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordAccessorCalledIsStillSynthetic.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordAccessorCalledIsStillSynthetic.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A record accessor stays synthetic even when something calls it. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordCompactConstructorAccess.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordCompactConstructorAccess.java index 9f687043b5..dc9e7d7673 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordCompactConstructorAccess.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordCompactConstructorAccess.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.MethodModifier; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.MethodModifier; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * The access modifier of a record's COMPACT canonical constructor: its value, and its source position. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordComponentParameterSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordComponentParameterSource.java index 8bda86ac42..c3d05b6cc0 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordComponentParameterSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordComponentParameterSource.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -24,12 +31,6 @@ import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * A record's canonical-constructor parameters are synthesised by javac; their tree positions are unreliable, so the diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordPattern.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordPattern.java index 1091637bc1..e397765be5 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordPattern.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordPattern.java @@ -18,6 +18,12 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.InstanceOf; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -25,11 +31,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestRecordPattern extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordWritesOutOneOfItsAccessors.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordWritesOutOneOfItsAccessors.java index 399e8f5793..1ff2aa2dac 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordWritesOutOneOfItsAccessors.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestRecordWritesOutOneOfItsAccessors.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A record may write out one of its accessors itself, and then no second one is supplied. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestReleaseEightPlatformTypes.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestReleaseEightPlatformTypes.java index d266ada089..49739f10be 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestReleaseEightPlatformTypes.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestReleaseEightPlatformTypes.java @@ -1,11 +1,12 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; /** * A source set compiled with {@code --release 8} still resolves JDK types to the JDK. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSealed.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSealed.java index cb43b939a2..b8184ad4ae 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSealed.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSealed.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.DetailedSources; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestSealed extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSelfAnnotatedPackage.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSelfAnnotatedPackage.java index 7e7a9f39d5..7e01b06ae5 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSelfAnnotatedPackage.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSelfAnnotatedPackage.java @@ -1,18 +1,20 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A package annotated with an annotation type declared in that same package, read from class files: Spring's diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSubTypes.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSubTypes.java index fc9b5e3cd4..4d761ca687 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSubTypes.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSubTypes.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; + public class TestSubTypes extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSwitch.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSwitch.java index 931617d948..732030b15c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSwitch.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSwitch.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.SwitchExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -26,14 +35,6 @@ import io.codelaser.maddi.cst.api.statement.SwitchStatementOldStyle; import io.codelaser.maddi.cst.impl.output.QualificationImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestSwitch extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSwitchArrowCaseLocalOnStack.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSwitchArrowCaseLocalOnStack.java index 5538b34347..e021854895 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSwitchArrowCaseLocalOnStack.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestSwitchArrowCaseLocalOnStack.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A local variable declared inside an arrow-form {@code switch} case block, and read by a LATER diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeAndPackageDetailedSources.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeAndPackageDetailedSources.java index 327cdc86e7..d3825f5f8b 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeAndPackageDetailedSources.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeAndPackageDetailedSources.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.element.CompilationUnit; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.element.CompilationUnit; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * The openjdk parser must produce detailed-sources for the compilation unit (its package name) and for a type diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeParameter.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeParameter.java index 63c1313965..b438d68c12 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeParameter.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeParameter.java @@ -1,5 +1,14 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.fail; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -9,14 +18,6 @@ import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertSame; -import static org.junit.jupiter.api.Assertions.fail; public class TestTypeParameter extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeParameter2.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeParameter2.java index e7201da2ba..e6859c41a4 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeParameter2.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypeParameter2.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestTypeParameter2 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypesReferenced.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypesReferenced.java index a03b26c259..09c0435035 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypesReferenced.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestTypesReferenced.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestTypesReferenced extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestUnresolvedEnumConstantInAnnotation.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestUnresolvedEnumConstantInAnnotation.java index 19ec1fc617..bd8f95c236 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestUnresolvedEnumConstantInAnnotation.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestUnresolvedEnumConstantInAnnotation.java @@ -17,21 +17,23 @@ package io.codelaser.maddi.java.openjdk.other; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * An annotation on a binary type whose enum-constant value cannot be resolved, because the enum's own diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestVar.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestVar.java index 0591820e26..d1fad0f331 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestVar.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/other/TestVar.java @@ -17,21 +17,21 @@ package io.codelaser.maddi.java.openjdk.other; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.ForEachStatement; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.ErasedExpression; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestVar extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBlankLinesFromSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBlankLinesFromSource.java index 50d5207a92..1858360bd7 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBlankLinesFromSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBlankLinesFromSource.java @@ -18,6 +18,12 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -25,11 +31,6 @@ import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * CodeLaser/maddi#49: {@link FormattingOptions#blankLinesFromSource()}. The blank line after the imports was lost, diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBracePlacement.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBracePlacement.java index b644a19f58..83ff993e88 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBracePlacement.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBracePlacement.java @@ -18,16 +18,17 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * CodeLaser/maddi#49: {@link FormattingOptions#bracesOnOwnLine()}. An Allman-style project (the brace of a body on diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBracelessBodies.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBracelessBodies.java index 12f610353d..cf34661bc2 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBracelessBodies.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestBracelessBodies.java @@ -18,6 +18,12 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; @@ -26,11 +32,6 @@ import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * CodeLaser/maddi#49: a body written without braces prints without them. A braceless {@code if} came out as diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestCastAndMemberAccess.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestCastAndMemberAccess.java index 39db151a8c..3afc70b35f 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestCastAndMemberAccess.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestCastAndMemberAccess.java @@ -17,21 +17,21 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Cast; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.DependentVariable; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestCastAndMemberAccess extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestCommentBeforeBrace.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestCommentBeforeBrace.java index d2db36c3a6..ec4822ef3b 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestCommentBeforeBrace.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestCommentBeforeBrace.java @@ -18,16 +18,17 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * CodeLaser/maddi#49: a line comment between an {@code if}'s condition and its brace stays there. It moved to the diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestDetailedSources.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestDetailedSources.java index 32cff1825b..07a10ddc8d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestDetailedSources.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestDetailedSources.java @@ -1,5 +1,13 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -12,13 +20,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; public class TestDetailedSources extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestLambdaBlockBody.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestLambdaBlockBody.java index 14b4b0e3f6..5bc5575329 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestLambdaBlockBody.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestLambdaBlockBody.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * CodeLaser/maddi#137: a lambda body written as a block keeps its braces. {@code () -> { a(); }} printed as diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestMemberOrder.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestMemberOrder.java index cd82e7e068..45760c161c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestMemberOrder.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestMemberOrder.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * CodeLaser/maddi#137: the members of a type print in the order they were written. Fields, nested types, diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestMethodReferenceTypeArguments.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestMethodReferenceTypeArguments.java index c4af57077d..fa1a18db11 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestMethodReferenceTypeArguments.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestMethodReferenceTypeArguments.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodReference; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -24,11 +30,6 @@ import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * CodeLaser/maddi#136: a method reference whose type has type arguments kept the last type argument as its diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestPrintSpacing.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestPrintSpacing.java index 453055a043..3c28c02694 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestPrintSpacing.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestPrintSpacing.java @@ -18,6 +18,15 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.api.output.OutputBuilder; @@ -25,14 +34,6 @@ import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * CodeLaser/maddi#49, spacing: code the printer re-renders must not gain spaces the source did not have. Each line diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestQualifiedNestedTypeTakenName.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestQualifiedNestedTypeTakenName.java index 2e5bb0f3b1..6119bb15c8 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestQualifiedNestedTypeTakenName.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestQualifiedNestedTypeTakenName.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.impl.output.QualificationImpl; import io.codelaser.maddi.cst.impl.output.TypeNameImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; /** * CodeLaser/maddi#114. In a unit whose own type is {@code s.Try}, the import computer reserves {@code Try} and diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestReparsedPrintBugs.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestReparsedPrintBugs.java index e5af964ffe..309e07f7f7 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestReparsedPrintBugs.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestReparsedPrintBugs.java @@ -17,20 +17,21 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Map; +import java.util.regex.Pattern; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.Map; -import java.util.regex.Pattern; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * Printed units that did not compile when re-parsed (jenkins core, timefold-solver, retrofit), on the openjdk front diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestSameLineComments.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestSameLineComments.java index bea85f2d06..994009f735 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestSameLineComments.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestSameLineComments.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.FormattingOptions; import io.codelaser.maddi.cst.print.FormattingOptionsImpl; import io.codelaser.maddi.cst.print.formatter2.Formatter2Impl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * CodeLaser/maddi#137: a comment written after a statement, on its line, is printed there. Since #128 it belongs diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestSealedPrint.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestSealedPrint.java index ee9b6ad617..c067063fee 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestSealedPrint.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestSealedPrint.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.java.openjdk.print; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * Printing a {@code sealed} type and its {@code permits} clause, and the {@code non-sealed} modifier on diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestStaticImports.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestStaticImports.java index 380ae3ea2d..38d073807d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestStaticImports.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestStaticImports.java @@ -1,16 +1,17 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * {@code ImportComputer.addStaticImport}: a caller that pastes verbatim text can ask for a static import. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestTextBlockFormatting.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestTextBlockFormatting.java index b216dac342..43be059043 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestTextBlockFormatting.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestTextBlockFormatting.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.TextBlock; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestTextBlockFormatting extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestTypeQualification.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestTypeQualification.java index 88882d71cc..0ffcd79816 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestTypeQualification.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestTypeQualification.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.ImportComputer; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.impl.info.ImportComputerImpl; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestTypeQualification extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestUnnamedPatternVariable.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestUnnamedPatternVariable.java index f93e6fcd60..06f1190c59 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestUnnamedPatternVariable.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestUnnamedPatternVariable.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.java.openjdk.print; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * Printing a TYPE PATTERN whose variable is unnamed: {@code case Square _ ->} (Java 21). diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestVariousPrint2Issues.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestVariousPrint2Issues.java index 8be951ee50..f62f1dee76 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestVariousPrint2Issues.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/print/TestVariousPrint2Issues.java @@ -1,5 +1,12 @@ package io.codelaser.maddi.java.openjdk.print; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.JavaDoc; import io.codelaser.maddi.cst.api.element.MultiLineComment; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -7,12 +14,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestVariousPrint2Issues extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/sourcecode/TestSourceCodeScan.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/sourcecode/TestSourceCodeScan.java index a47bab76c4..06909966d1 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/sourcecode/TestSourceCodeScan.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/sourcecode/TestSourceCodeScan.java @@ -1,12 +1,6 @@ package io.codelaser.maddi.java.openjdk.sourcecode; -import io.codelaser.maddi.cst.api.element.Comment; -import io.codelaser.maddi.cst.api.element.DetailedSources; -import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; -import io.codelaser.maddi.java.openjdk.SourceCodeScan; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.ArrayList; import java.util.Iterator; @@ -14,7 +8,14 @@ import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.Comment; +import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.element.Source; +import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; +import io.codelaser.maddi.java.openjdk.SourceCodeScan; public class TestSourceCodeScan { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestAssert.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestAssert.java index fb111d3637..769aea1d6c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestAssert.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestAssert.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.AssertStatement; import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestAssert extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestBlock.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestBlock.java index 25e6a0a697..dfe60de6bc 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestBlock.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestBlock.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Block; @@ -24,13 +32,6 @@ import io.codelaser.maddi.cst.api.statement.IfElseStatement; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestBlock extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentBeforeEveryStatementKind.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentBeforeEveryStatementKind.java index e27485a05a..d298a37193 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentBeforeEveryStatementKind.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentBeforeEveryStatementKind.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.java.openjdk.statement; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.Statement; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.Statement; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A comment written above a statement must reach that statement, whatever kind of statement it is. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentBeforeSwitch.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentBeforeSwitch.java index fd49e4a141..e6c180c79e 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentBeforeSwitch.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentBeforeSwitch.java @@ -17,6 +17,17 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Block; @@ -24,15 +35,6 @@ import io.codelaser.maddi.cst.api.statement.SwitchStatementNewStyle; import io.codelaser.maddi.cst.api.statement.SwitchStatementOldStyle; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * A comment above a {@code switch} belongs to the switch, and must not be claimed by the block the old-style form @@ -142,7 +144,7 @@ public void testItPrints() { () -> "the switch's comment was printed more than once:\n" + printed); } - private static List comments(io.codelaser.maddi.cst.api.element.Element element) { + private static List comments(Element element) { return element.comments().stream().map(c -> c.comment().strip()).toList(); } } diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentInEmptyConstructor.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentInEmptyConstructor.java index 6c3167d2d7..2ce27a7ae7 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentInEmptyConstructor.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestCommentInEmptyConstructor.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.statement; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A comment that is the only thing in a body, or that follows the body's last statement, must survive parsing: diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestFor.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestFor.java index 539753a51a..9701a18922 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestFor.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestFor.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BooleanConstant; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.*; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestFor extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestForEach.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestForEach.java index 1948fc02ff..770c3966ac 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestForEach.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestForEach.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ForEachStatement; import io.codelaser.maddi.java.openjdk.CommonTest; import io.codelaser.maddi.java.openjdk.CompilationProblems; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestForEach extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestForLoopLvcSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestForLoopLvcSource.java index 6351067511..bdbbea21ad 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestForLoopLvcSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestForLoopLvcSource.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ForStatement; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; /** * A classic for-loop's local-variable-creation initializer ({@code for (int i = 0; ...)}) must carry a source. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestIfElse.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestIfElse.java index d187136c3b..fc7487d6a0 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestIfElse.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestIfElse.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.IfElseStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestIfElse extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestLocalType.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestLocalType.java index 157fa41046..9c3656d3fe 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestLocalType.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestLocalType.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestLocalType extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestLocalVariable.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestLocalVariable.java index de5bce8141..1c6ba4ce09 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestLocalVariable.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestLocalVariable.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.ArrayLength; @@ -32,10 +37,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestLocalVariable extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchGuardPatternVariable.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchGuardPatternVariable.java index 803e845402..7b244e81ec 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchGuardPatternVariable.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchGuardPatternVariable.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.statement; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A pattern variable introduced by the GUARD of a switch arm is in scope in that arm's body (JLS 6.3.1 flow diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchLabelVariables.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchLabelVariables.java index 4f944209ec..d80d798974 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchLabelVariables.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchLabelVariables.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.statement.SwitchStatementNewStyle; import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * #66: a switch entry's labels read variables too. For Java that is an enum constant (a static field read); K2 diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchNewStyle.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchNewStyle.java index 840f301645..e1a55ac687 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchNewStyle.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchNewStyle.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.SwitchExpression; @@ -27,15 +37,6 @@ import io.codelaser.maddi.cst.api.statement.SwitchEntry; import io.codelaser.maddi.cst.api.statement.SwitchStatementNewStyle; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; public class TestSwitchNewStyle extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchOldStyle.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchOldStyle.java index e59cb5135e..4112621710 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchOldStyle.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSwitchOldStyle.java @@ -17,22 +17,23 @@ package io.codelaser.maddi.java.openjdk.statement; -import io.codelaser.maddi.cst.api.expression.MethodCall; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.element.RecordPattern; -import io.codelaser.maddi.cst.api.statement.SwitchStatementOldStyle; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.RecordPattern; +import io.codelaser.maddi.cst.api.expression.MethodCall; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.SwitchStatementOldStyle; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestSwitchOldStyle extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSynchronized.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSynchronized.java index d3eaaa13ec..f85d305456 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSynchronized.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestSynchronized.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -24,10 +29,6 @@ import io.codelaser.maddi.cst.api.statement.SynchronizedStatement; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestSynchronized extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTrailingStatementComments.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTrailingStatementComments.java index a55b3eac05..25b50f1ccc 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTrailingStatementComments.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTrailingStatementComments.java @@ -18,22 +18,23 @@ package io.codelaser.maddi.java.openjdk.statement; -import io.codelaser.maddi.cst.api.element.Comment; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.Block; -import io.codelaser.maddi.cst.api.statement.Statement; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.Comment; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.Block; +import io.codelaser.maddi.cst.api.statement.Statement; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * CodeLaser/maddi#128: the single-line comment after a statement, on its last line, belongs to that statement, also diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTryCatch.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTryCatch.java index 2b622b36c5..5804a7a9e6 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTryCatch.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTryCatch.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.SingleLineComment; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -28,10 +33,6 @@ import io.codelaser.maddi.cst.api.statement.TryStatement; import io.codelaser.maddi.cst.api.variable.DependentVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestTryCatch extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTryResource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTryResource.java index bb1f8d4a9a..fd8c85cf83 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTryResource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestTryResource.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.VariableExpression; @@ -26,10 +31,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.TryStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestTryResource extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestWhile.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestWhile.java index bd92459a08..9133bbaa07 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestWhile.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/statement/TestWhile.java @@ -1,5 +1,10 @@ package io.codelaser.maddi.java.openjdk.statement; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ArrayLength; import io.codelaser.maddi.cst.api.expression.Assignment; import io.codelaser.maddi.cst.api.expression.BinaryOperator; @@ -9,10 +14,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.WhileStatement; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestWhile extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/stub/TestStub1.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/stub/TestStub1.java index 914d5151d3..2e4613b5d4 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/stub/TestStub1.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/stub/TestStub1.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.java.openjdk.stub; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertThrows; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertThrows; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.java.openjdk.CommonTest; @Disabled("stubs not implemented yet") public class TestStub1 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/stub/TestStub2.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/stub/TestStub2.java index d01f07df64..28989ccbeb 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/stub/TestStub2.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/stub/TestStub2.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.java.openjdk.stub; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; @Disabled("stubs not implemented yet") public class TestStub2 extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslate.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslate.java index 82e5314501..ee909ed1da 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslate.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslate.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.java.openjdk.translate; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestTranslate extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateAnonymousType.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateAnonymousType.java index 4558f9b4e6..224f4a77a4 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateAnonymousType.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateAnonymousType.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.java.openjdk.translate; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -29,12 +36,6 @@ import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestTranslateAnonymousType extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateLocalHoldingLambda.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateLocalHoldingLambda.java index 01c9a8c24b..4b09ea8c15 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateLocalHoldingLambda.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateLocalHoldingLambda.java @@ -16,6 +16,12 @@ */ package io.codelaser.maddi.java.openjdk.translate; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.VariableExpression; @@ -26,11 +32,6 @@ import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; /** * A local variable carries its assignment expression, and the declaration and every reference share one diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateMethodReference.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateMethodReference.java index 752cdf982d..5febfb2677 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateMethodReference.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateMethodReference.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.java.openjdk.translate; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * {@code TranslationMap} must remap the METHOD of a method reference, not only its scope and types. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateUnchangedSubType.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateUnchangedSubType.java index 9ad96f29e1..b9af3e6585 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateUnchangedSubType.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/translate/TestTranslateUnchangedSubType.java @@ -16,14 +16,15 @@ */ package io.codelaser.maddi.java.openjdk.translate; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.translate.TranslationMap; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.translate.TranslationMap; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A translation that changes a type re-creates it, and so must re-create EVERY subtype: a subtype is owned by its diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestApplyTranslation.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestApplyTranslation.java index ca13fb6ea5..d910e61ba4 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestApplyTranslation.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestApplyTranslation.java @@ -1,19 +1,11 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.TypeParameter; -import io.codelaser.maddi.cst.api.type.NamedType; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestApplyTranslation extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestArrayLengthOnInheritedTypeVariable.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestArrayLengthOnInheritedTypeVariable.java index dea2b6a1d9..5b11d8334d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestArrayLengthOnInheritedTypeVariable.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestArrayLengthOnInheritedTypeVariable.java @@ -1,13 +1,14 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * {@code .length} on a field whose array-ness arrives through a type variable. diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestClassTypeParameterIdentity.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestClassTypeParameterIdentity.java index 5ddcdc34e4..f8f8325a33 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestClassTypeParameterIdentity.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestClassTypeParameterIdentity.java @@ -17,23 +17,24 @@ package io.codelaser.maddi.java.openjdk.type; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.util.LinkedHashMap; +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.LinkedHashMap; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertSame; /** * A CLASS type parameter must be ONE object, whichever order the compilation units are scanned in: the type's own diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestClassTypeParameterSource.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestClassTypeParameterSource.java index 2151bbe4a7..a9e461306b 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestClassTypeParameterSource.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestClassTypeParameterSource.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.info.TypeParameter; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A CLASS type parameter used to lose its declaration source, and get a wildcard-widened bound, when the type diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestCommonTypeRawArgument.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestCommonTypeRawArgument.java index 2a57fc9b01..c269bc1b88 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestCommonTypeRawArgument.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestCommonTypeRawArgument.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertNotNull; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; + /** * Regression (originally surfaced by Jenkins' {@code hudson.model.Descriptor}, on {@code commonType(String, * net.sf.json.JSONObject)}): folding the common type of an array initializer whose elements' common supertype is diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestConcreteSuperTypeWildcardArgument.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestConcreteSuperTypeWildcardArgument.java index fed56957bd..4fd9f3292a 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestConcreteSuperTypeWildcardArgument.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestConcreteSuperTypeWildcardArgument.java @@ -1,12 +1,13 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * maddi#159: {@code concreteSuperType} puts a WILDCARD argument into the type arguments nested in a supertype's diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestFullyQualified.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestFullyQualified.java index 2dd5405c0b..1c25567214 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestFullyQualified.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestFullyQualified.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.java.openjdk.type; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -25,12 +32,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; public class TestFullyQualified extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestHierarchy.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestHierarchy.java index 5ab56eeacc..8f189585eb 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestHierarchy.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestHierarchy.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.element.DetailedSources; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestHierarchy extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestInner2.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestInner2.java index 6eff37bf24..402ada0178 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestInner2.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestInner2.java @@ -17,19 +17,18 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.element.DetailedSources; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Map; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.TypeExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; public class TestInner2 extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestInnerClass.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestInnerClass.java index 17b9394297..873aeb578b 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestInnerClass.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestInnerClass.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestInnerClass extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestIsAssignableFrom.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestIsAssignableFrom.java index 6e90d3b638..6a5357542d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestIsAssignableFrom.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestIsAssignableFrom.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; public class TestIsAssignableFrom extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestListSyntheticGetSet.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestListSyntheticGetSet.java index c64e834218..dc623ebe98 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestListSyntheticGetSet.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestListSyntheticGetSet.java @@ -1,16 +1,17 @@ package io.codelaser.maddi.java.openjdk.type; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.analysis.Value; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; /** * Regression for notes/getset-list-element-getter-npe.md, openjdk (stdbase) path. The JDK's java.util.List is diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestLocalClassForwardReferenceInAnonymous.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestLocalClassForwardReferenceInAnonymous.java index cec8a57c05..37896d7544 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestLocalClassForwardReferenceInAnonymous.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestLocalClassForwardReferenceInAnonymous.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * Regression (originally surfaced by Guava's {@code com.google.common.collect.HashBiMap}): a named local class diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestLocalClassTypeParameter.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestLocalClassTypeParameter.java index 5754077b8f..cefc1e168c 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestLocalClassTypeParameter.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestLocalClassTypeParameter.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * Regression (originally surfaced by Guava's {@code com.google.common.reflect.Types}): a local class with its own diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestMemberClassOfLocalClass.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestMemberClassOfLocalClass.java index 5320a359e7..db4ec9ea8d 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestMemberClassOfLocalClass.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestMemberClassOfLocalClass.java @@ -1,12 +1,13 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A type declared inside a method body resolves through the element stack — including what is declared INSIDE diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestNestedTypeAccess.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestNestedTypeAccess.java index 0885c89d99..9875197cce 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestNestedTypeAccess.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestNestedTypeAccess.java @@ -1,13 +1,14 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * Nested-type access modifiers must be read from the source. Regression for a copy-paste bug in FlagHelper.type that diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestSelfReferentialBound.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestSelfReferentialBound.java index dde673b31f..11962a3871 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestSelfReferentialBound.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestSelfReferentialBound.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.java.openjdk.type; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; + import org.assertj.core.api.AbstractAssert; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; /* Captures bug (b): a self-referential ("F-bounded") generic bound that mentions more than one of the diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestTypeParameter.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestTypeParameter.java index 6a27ed1c5f..504a20ab42 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestTypeParameter.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestTypeParameter.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.java.openjdk.type; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.expression.Assignment; @@ -28,14 +37,6 @@ import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; public class TestTypeParameter extends CommonTest { diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestVoid.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestVoid.java index 52eab4b3a8..a0367edfca 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestVoid.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestVoid.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.java.openjdk.CommonTest; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.java.openjdk.CommonTest; + public class TestVoid extends CommonTest { @Language("java") diff --git a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestWildcardBoundIsNotFlattened.java b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestWildcardBoundIsNotFlattened.java index 04fc0bb5e4..5ebe756995 100644 --- a/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestWildcardBoundIsNotFlattened.java +++ b/maddi-java-openjdk/src/test/java/io/codelaser/maddi/java/openjdk/type/TestWildcardBoundIsNotFlattened.java @@ -1,17 +1,18 @@ package io.codelaser.maddi.java.openjdk.type; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.java.openjdk.CommonTest; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.java.openjdk.CommonTest; /** * A wildcard's bound keeps its array dimensions and its type arguments. diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/CommonParse.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/CommonParse.java index b1fc74af1e..39a9ee3d6e 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/CommonParse.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/CommonParse.java @@ -17,6 +17,20 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; +import org.parsers.java.ast.Delimiter; +import org.parsers.java.ast.ImportDeclaration; +import org.parsers.java.ast.KeyWord; +import org.parsers.java.ast.MultiLineComment; +import org.parsers.java.ast.Operator; +import org.parsers.java.ast.SingleLineComment; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.ImportStatement; @@ -32,19 +46,6 @@ import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.ForwardType; import io.codelaser.maddi.parser.java.util.JavaDocParser; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.Delimiter; -import org.parsers.java.ast.ImportDeclaration; -import org.parsers.java.ast.KeyWord; -import org.parsers.java.ast.Operator; -import org.parsers.java.ast.*; -import org.parsers.java.ast.MultiLineComment; -import org.parsers.java.ast.SingleLineComment; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; public abstract class CommonParse { protected final Runtime runtime; @@ -387,8 +388,8 @@ protected void parseNewSwitchLabel(String index, ForwardType selectorTypeFwd, Context enumContext) { Context newContext = Objects.requireNonNullElse(enumContext, context); - io.codelaser.maddi.cst.api.expression.Expression whenExpression = runtime.newEmptyExpression(); - List conditions = new ArrayList<>(); + Expression whenExpression = runtime.newEmptyExpression(); + List conditions = new ArrayList<>(); // 'case A _, B _ ->' (JEP 456): the first pattern is the entry's pattern variable, the others go to // SwitchEntry.otherPatterns. Setting each one as THE pattern variable kept only the last. boolean havePattern = false; diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseAnnotationExpression.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseAnnotationExpression.java index 0ca0f906ba..7d4fe6cf9f 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseAnnotationExpression.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseAnnotationExpression.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.parser.java; +import java.util.List; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -29,11 +35,6 @@ import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.ForwardType; import io.codelaser.maddi.inspection.api.parser.Summary; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; - -import java.util.List; /* IMPORTANT: there are three variants of the parsing code. diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseAnnotationMethodDeclaration.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseAnnotationMethodDeclaration.java index 4ad91c6871..7a1c51f156 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseAnnotationMethodDeclaration.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseAnnotationMethodDeclaration.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; + +import org.parsers.java.Node; +import org.parsers.java.ast.*; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -25,11 +31,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.Summary; -import org.parsers.java.Node; -import org.parsers.java.ast.*; - -import java.util.ArrayList; -import java.util.List; public class ParseAnnotationMethodDeclaration extends CommonParse { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseBlock.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseBlock.java index dc4a25ddc7..5deae4b561 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseBlock.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseBlock.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import java.util.List; + +import org.parsers.java.Node; +import org.parsers.java.ast.*; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.runtime.Runtime; @@ -24,10 +29,6 @@ import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.util.StringUtil; -import org.parsers.java.Node; -import org.parsers.java.ast.*; - -import java.util.List; public class ParseBlock extends CommonParse { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseCompilationUnit.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseCompilationUnit.java index 3d69f3fd9a..40f1dbafc3 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseCompilationUnit.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseCompilationUnit.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.parsers.java.ast.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.inspection.api.parser.TypeContext; import io.codelaser.maddi.support.Either; -import org.parsers.java.ast.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; /* Second round! ScanCompilationUnit has already run. diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseConstructorCall.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseConstructorCall.java index 5b8ce2de55..664139582f 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseConstructorCall.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseConstructorCall.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -34,15 +44,6 @@ import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.inspection.api.parser.TypeContext; import io.codelaser.maddi.parser.java.erasure.ConstructorCallErasure; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; public class ParseConstructorCall extends CommonParse { private final static Logger LOGGER = LoggerFactory.getLogger(ParseConstructorCall.class); @@ -54,7 +55,7 @@ protected ParseConstructorCall(Runtime runtime, Parsers parsers) { public Expression parse(Context context, String index, ForwardType forwardType, - org.parsers.java.ast.AllocationExpression aeIn) { + AllocationExpression aeIn) { AllocationExpression ae; Node unparsedObject; Context newContext; diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseExpression.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseExpression.java index 256ffe36db..76bee9d4b8 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseExpression.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseExpression.java @@ -17,6 +17,23 @@ package io.codelaser.maddi.parser.java; +import static org.parsers.java.Token.TokenType.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; +import org.parsers.java.ast.ArrayInitializer; +import org.parsers.java.ast.MethodCall; +import org.parsers.java.ast.MethodReference; +import org.parsers.java.ast.SwitchExpression; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.RecordPattern; @@ -39,21 +56,6 @@ import io.codelaser.maddi.parser.java.util.EscapeSequence; import io.codelaser.maddi.parser.java.util.TextBlockParser; import io.codelaser.maddi.util.StringUtil; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; -import org.parsers.java.ast.ArrayInitializer; -import org.parsers.java.ast.MethodCall; -import org.parsers.java.ast.MethodReference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static org.parsers.java.Token.TokenType.*; public class ParseExpression extends CommonParse { private static final Logger LOGGER = LoggerFactory.getLogger(ParseExpression.class); @@ -138,7 +140,7 @@ private Expression internalParse(Context context, String index, ForwardType forw case TernaryExpression _ -> inlineConditional(context, index, forwardType, comments, source, node); case ArrayInitializer _, MemberValueArrayInitializer _ -> arrayInitializer(context, index, forwardType, comments, source, node); - case org.parsers.java.ast.SwitchExpression _ -> + case SwitchExpression _ -> parseSwitchExpression(context, index, forwardType, comments, source, node.getFirst()); case InstanceOfExpression ioe -> parseInstanceOf(context, index, forwardType, comments, source, ioe); case ObjectType ot -> { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseFieldDeclaration.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseFieldDeclaration.java index b4c1a5c096..74d637b4fd 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseFieldDeclaration.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseFieldDeclaration.java @@ -17,6 +17,12 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; + +import org.parsers.java.Node; +import org.parsers.java.ast.*; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -29,11 +35,6 @@ import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.ForwardType; import io.codelaser.maddi.inspection.api.parser.Lombok; -import org.parsers.java.Node; -import org.parsers.java.ast.*; - -import java.util.ArrayList; -import java.util.List; public class ParseFieldDeclaration extends CommonParse { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseHelperImpl.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseHelperImpl.java index d870e943a6..10d59e37ce 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseHelperImpl.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseHelperImpl.java @@ -17,6 +17,17 @@ package io.codelaser.maddi.parser.java; +import static io.codelaser.maddi.util.StringUtil.pad; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -36,16 +47,6 @@ import io.codelaser.maddi.inspection.api.parser.ForwardType; import io.codelaser.maddi.inspection.api.parser.ParseHelper; import io.codelaser.maddi.inspection.api.parser.Summary; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; - -import static io.codelaser.maddi.util.StringUtil.pad; public class ParseHelperImpl extends CommonParse implements ParseHelper { public ParseHelperImpl(Runtime runtime) { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseLambdaExpression.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseLambdaExpression.java index 0717eac94e..35212a9a14 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseLambdaExpression.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseLambdaExpression.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.parser.java; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -28,19 +37,12 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.statement.Block; +import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.type.NamedType; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.*; import io.codelaser.maddi.parser.java.erasure.LambdaErasure; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; -import java.util.concurrent.atomic.AtomicReference; public class ParseLambdaExpression extends CommonParse { private static final Logger LOGGER = LoggerFactory.getLogger(ParseLambdaExpression.class); @@ -161,7 +163,7 @@ public Expression parse(Context context, private ParameterizedType mostSpecificReturnType(TypeInfo primaryType, Block methodBody) { AtomicReference mostSpecific = new AtomicReference<>(); methodBody.visit(statement -> { - if (statement instanceof io.codelaser.maddi.cst.api.statement.ReturnStatement returnStatement) { + if (statement instanceof ReturnStatement returnStatement) { Expression expression = returnStatement.expression(); if (expression.isEmpty()) { mostSpecific.set(runtime.voidParameterizedType()); diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseLocalTypeDeclaration.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseLocalTypeDeclaration.java index 27e65f7c56..d549526fd0 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseLocalTypeDeclaration.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseLocalTypeDeclaration.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.parser.java; +import org.parsers.java.ast.TypeDeclaration; + import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.statement.LocalTypeDeclaration; import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.TypeContext; -import org.parsers.java.ast.TypeDeclaration; public class ParseLocalTypeDeclaration extends CommonParse { public ParseLocalTypeDeclaration(Runtime runtime, Parsers parsers) { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodCall.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodCall.java index 593c842b07..9df6856797 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodCall.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodCall.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -26,15 +36,6 @@ import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.ForwardType; import io.codelaser.maddi.parser.java.erasure.MethodCallErasure; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; public class ParseMethodCall extends CommonParse { private final static Logger LOGGER = LoggerFactory.getLogger(ParseMethodCall.class); @@ -44,7 +45,7 @@ protected ParseMethodCall(Runtime runtime, Parsers parsers) { } public Expression parse(Context context, List comments, Source source, - String index, ForwardType forwardType, org.parsers.java.ast.MethodCall mc) { + String index, ForwardType forwardType, MethodCall mc) { List unparsedArguments = new ArrayList<>(); Node name = mc.getFirst(); assert name instanceof Name || name instanceof DotName || name instanceof SuperDotName; diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodDeclaration.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodDeclaration.java index 1dd46a1e6e..d65867a31c 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodDeclaration.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodDeclaration.java @@ -17,6 +17,15 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -32,14 +41,6 @@ import io.codelaser.maddi.inspection.api.parser.ForwardType; import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.inspection.api.parser.TypeContext; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; public class ParseMethodDeclaration extends CommonParse { private final Logger LOGGER = LoggerFactory.getLogger(ParseTypeDeclaration.class); diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodReference.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodReference.java index e45df151b2..7583c72fa0 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodReference.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseMethodReference.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.parser.java; +import java.util.List; +import java.util.Set; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.Identifier; +import org.parsers.java.ast.MethodReference; +import org.parsers.java.ast.ObjectType; +import org.parsers.java.ast.Type; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; @@ -28,14 +38,6 @@ import io.codelaser.maddi.inspection.api.parser.MethodResolution; import io.codelaser.maddi.parser.java.erasure.LambdaErasure; import io.codelaser.maddi.support.Either; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.Identifier; -import org.parsers.java.ast.ObjectType; -import org.parsers.java.ast.Type; - -import java.util.List; -import java.util.Set; public class ParseMethodReference extends CommonParse { @@ -45,7 +47,7 @@ public ParseMethodReference(Runtime runtime, Parsers parsers) { public Expression parse(Context context, List comments, Source source, String index, ForwardType forwardType, - org.parsers.java.ast.MethodReference mr) { + MethodReference mr) { Expression scope; DetailedSources.Builder detailedSourcesBuilder = context.newDetailedSourcesBuilder(); Node n0 = mr.getFirst(); diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseModuleInfo.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseModuleInfo.java index 112382b934..5f81f80e08 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseModuleInfo.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseModuleInfo.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.ModuleInfo; @@ -24,12 +31,6 @@ import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.Summary; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; - -import java.util.ArrayList; -import java.util.List; public class ParseModuleInfo extends CommonParse { public ParseModuleInfo(Runtime runtime, Parsers parsers) { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseRecordPattern.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseRecordPattern.java index 1eccc93c08..d3dbccf727 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseRecordPattern.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseRecordPattern.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.parsers.java.Token.TokenType.UNDERSCORE; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.element.Source; @@ -26,16 +36,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.LocalVariable; import io.codelaser.maddi.inspection.api.parser.Context; -import io.codelaser.maddi.inspection.api.parser.GenericsHelper; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import static org.parsers.java.Token.TokenType.UNDERSCORE; public class ParseRecordPattern extends CommonParse { protected ParseRecordPattern(Runtime runtime, Parsers parsers) { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseStatement.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseStatement.java index fbd06214fb..08cb0ba5fb 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseStatement.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseStatement.java @@ -17,23 +17,10 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.element.Comment; -import io.codelaser.maddi.cst.api.element.DetailedSources; -import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.api.expression.AnnotationExpression; -import io.codelaser.maddi.cst.api.expression.Expression; -import io.codelaser.maddi.cst.api.expression.VariableExpression; -import io.codelaser.maddi.cst.api.info.Info; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import io.codelaser.maddi.cst.api.statement.*; -import io.codelaser.maddi.cst.api.type.NamedType; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.api.variable.LocalVariable; -import io.codelaser.maddi.inspection.api.parser.Context; -import io.codelaser.maddi.inspection.api.parser.ForwardType; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.util.StringUtil; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + import org.parsers.java.Node; import org.parsers.java.Token; import org.parsers.java.ast.*; @@ -52,9 +39,24 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import io.codelaser.maddi.cst.api.element.Comment; +import io.codelaser.maddi.cst.api.element.DetailedSources; +import io.codelaser.maddi.cst.api.element.Source; +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; +import io.codelaser.maddi.cst.api.expression.Expression; +import io.codelaser.maddi.cst.api.expression.VariableExpression; +import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.runtime.Runtime; +import io.codelaser.maddi.cst.api.statement.*; +import io.codelaser.maddi.cst.api.statement.ForStatement; +import io.codelaser.maddi.cst.api.type.NamedType; +import io.codelaser.maddi.cst.api.type.ParameterizedType; +import io.codelaser.maddi.cst.api.variable.LocalVariable; +import io.codelaser.maddi.inspection.api.parser.Context; +import io.codelaser.maddi.inspection.api.parser.ForwardType; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.util.StringUtil; public class ParseStatement extends CommonParse { @@ -332,7 +334,7 @@ else if (exceptionTypes.size() == 1) { } if (statement instanceof BasicForStatement) { - io.codelaser.maddi.cst.api.statement.ForStatement.Builder builder = runtime.newForBuilder(); + ForStatement.Builder builder = runtime.newForBuilder(); Context newContext = context.newVariableContext("for-loop"); // initializers diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseType.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseType.java index ed43d38f85..6177d4be53 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseType.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseType.java @@ -17,6 +17,14 @@ package io.codelaser.maddi.parser.java; +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -26,13 +34,6 @@ import io.codelaser.maddi.cst.api.type.Wildcard; import io.codelaser.maddi.inspection.api.parser.Context; import io.codelaser.maddi.inspection.api.parser.Summary; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Stack; public class ParseType extends CommonParse { diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseTypeDeclaration.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseTypeDeclaration.java index 12e2b5946a..b8de9311a7 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseTypeDeclaration.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ParseTypeDeclaration.java @@ -17,6 +17,20 @@ package io.codelaser.maddi.parser.java; +import static io.codelaser.maddi.inspection.api.parser.TypeContext.*; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.function.Function; + +import org.parsers.java.Node; +import org.parsers.java.Token; +import org.parsers.java.ast.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.element.*; import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.CompilationUnit; @@ -37,19 +51,6 @@ import io.codelaser.maddi.inspection.api.util.EnumSynthetics; import io.codelaser.maddi.inspection.api.util.RecordSynthetics; import io.codelaser.maddi.support.Either; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.function.Function; - -import static io.codelaser.maddi.inspection.api.parser.TypeContext.*; public class ParseTypeDeclaration extends CommonParse { private static final Logger LOGGER = LoggerFactory.getLogger(ParseTypeDeclaration.class); diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ScanCompilationUnit.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ScanCompilationUnit.java index 5b416e9b32..b5075745f4 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ScanCompilationUnit.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/ScanCompilationUnit.java @@ -17,6 +17,18 @@ package io.codelaser.maddi.parser.java; +import java.net.URI; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import org.parsers.java.Node; +import org.parsers.java.ast.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.FingerPrint; import io.codelaser.maddi.cst.api.element.ImportStatement; import io.codelaser.maddi.cst.api.element.Source; @@ -26,17 +38,6 @@ import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.support.Either; -import org.parsers.java.Node; -import org.parsers.java.Token; -import org.parsers.java.ast.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.URI; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; /* First round, we only prepare a type map. @@ -81,7 +82,7 @@ private ScanResult internalScan(URI uri, String packageName; Source s1 = source(cu); Source source; - List comments; + List comments; if (packageDeclaration == null) { source = s1; packageName = ""; diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/ConstructorCallErasure.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/ConstructorCallErasure.java index 7f2d6eafa4..a5b234458f 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/ConstructorCallErasure.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/ConstructorCallErasure.java @@ -17,19 +17,18 @@ package io.codelaser.maddi.parser.java.erasure; +import java.util.Objects; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.Objects; -import java.util.Set; - public class ConstructorCallErasure extends ErasureExpressionImpl { private final ParameterizedType formalType; diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/ErasureExpressionImpl.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/ErasureExpressionImpl.java index 86ffd5598b..066069a542 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/ErasureExpressionImpl.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/ErasureExpressionImpl.java @@ -17,6 +17,10 @@ package io.codelaser.maddi.parser.java.erasure; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Stream; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.Source; @@ -29,10 +33,6 @@ import io.codelaser.maddi.cst.api.variable.Variable; import io.codelaser.maddi.inspection.api.parser.ErasedExpression; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Stream; - public abstract class ErasureExpressionImpl implements ErasedExpression, Expression { protected final Runtime runtime; protected final Source source; diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/LambdaErasure.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/LambdaErasure.java index c479a3a361..6c77d803a0 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/LambdaErasure.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/LambdaErasure.java @@ -17,10 +17,13 @@ package io.codelaser.maddi.parser.java.erasure; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; @@ -29,10 +32,6 @@ import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.inspection.api.parser.MethodResolution; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; - public class LambdaErasure extends ErasureExpressionImpl { private final Set counts; diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/MethodCallErasure.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/MethodCallErasure.java index 331d6bf338..7287ea7d54 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/MethodCallErasure.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/erasure/MethodCallErasure.java @@ -17,19 +17,18 @@ package io.codelaser.maddi.parser.java.erasure; +import java.util.Objects; +import java.util.Set; + import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.expression.Precedence; -import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.InfoMapView; import io.codelaser.maddi.cst.api.output.OutputBuilder; import io.codelaser.maddi.cst.api.output.Qualification; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import java.util.Objects; -import java.util.Set; - public class MethodCallErasure extends ErasureExpressionImpl { private final Set returnTypes; private final String methodName; diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/util/JavaDocParser.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/util/JavaDocParser.java index 8e60066566..5663c6c60b 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/util/JavaDocParser.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/util/JavaDocParser.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.parser.java.util; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.element.Source; -import io.codelaser.maddi.cst.api.runtime.Runtime; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.element.Source; +import io.codelaser.maddi.cst.api.runtime.Runtime; + public final class JavaDocParser { private static final Logger LOGGER = LoggerFactory.getLogger(JavaDocParser.class); diff --git a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/util/TextBlockParser.java b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/util/TextBlockParser.java index d23676c300..bd940b68e9 100644 --- a/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/util/TextBlockParser.java +++ b/maddi-java-parser/src/main/java/io/codelaser/maddi/parser/java/util/TextBlockParser.java @@ -17,16 +17,15 @@ package io.codelaser.maddi.parser.java.util; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.Expression; import io.codelaser.maddi.cst.api.output.element.TextBlockFormatting; import io.codelaser.maddi.cst.api.runtime.Runtime; -import org.parsers.java.ast.StringLiteral; - -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public record TextBlockParser(Runtime runtime) { private static final Pattern START = Pattern.compile("^\"\"\"[\t ]*\n", Pattern.MULTILINE); diff --git a/maddi-java-parser/src/main/java/org/parsers/java/JavaLexer.java b/maddi-java-parser/src/main/java/org/parsers/java/JavaLexer.java index a5a129c522..97eaaf292c 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/JavaLexer.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/JavaLexer.java @@ -18,10 +18,12 @@ /* Generated by: CongoCC Parser Generator. JavaLexer.java */ package org.parsers.java; -import org.parsers.java.Token.TokenType; import static org.parsers.java.Token.TokenType.*; + import java.util.*; +import org.parsers.java.Token.TokenType; + public class JavaLexer extends TokenSource { private static MatcherHook MATCHER_HOOK; diff --git a/maddi-java-parser/src/main/java/org/parsers/java/JavaParser.java b/maddi-java-parser/src/main/java/org/parsers/java/JavaParser.java index 33ba2f48e9..2e791d0748 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/JavaParser.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/JavaParser.java @@ -18,159 +18,163 @@ /* Generated by: CongoCC Parser Generator. JavaParser.java */ package org.parsers.java; +import static org.parsers.java.Token.TokenType.*; + import java.io.IOException; import java.io.PrintStream; +import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.charset.Charset; -import java.util.Arrays; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; import java.util.Iterator; import java.util.ListIterator; import java.util.concurrent.CancellationException; + import org.parsers.java.Token.TokenType; -import static org.parsers.java.Token.TokenType.*; -import org.parsers.java.ast.ModularCompilationUnit; -import org.parsers.java.ast.ModuleDirective; -import org.parsers.java.ast.RequiresDirective; -import org.parsers.java.ast.ExportsDirective; -import org.parsers.java.ast.OpensDirective; -import org.parsers.java.ast.UsesDirective; -import org.parsers.java.ast.ProvidesDirective; +import org.parsers.java.ast.AdditiveExpression; +import org.parsers.java.ast.AndExpression; +import org.parsers.java.ast.AnnotationMethodDeclaration; +import org.parsers.java.ast.AnnotationTypeBody; +import org.parsers.java.ast.AnnotationTypeDeclaration; +import org.parsers.java.ast.AnnotationTypeMemberDeclaration; +import org.parsers.java.ast.ArrayAccess; +import org.parsers.java.ast.ArrayDimsAndInits; +import org.parsers.java.ast.ArrayInitializer; +import org.parsers.java.ast.AssertStatement; +import org.parsers.java.ast.AssignmentExpression; +import org.parsers.java.ast.BasicForStatement; +import org.parsers.java.ast.BooleanLiteral; +import org.parsers.java.ast.BreakStatement; +import org.parsers.java.ast.CasePattern; +import org.parsers.java.ast.CastExpression; +import org.parsers.java.ast.CatchBlock; +import org.parsers.java.ast.ClassDeclaration; +import org.parsers.java.ast.ClassLiteral; +import org.parsers.java.ast.ClassOrInterfaceBody; +import org.parsers.java.ast.ClassicCaseStatement; +import org.parsers.java.ast.ClassicSwitchLabel; +import org.parsers.java.ast.CodeBlock; +import org.parsers.java.ast.CompactConstructorDeclaration; import org.parsers.java.ast.CompilationUnit; -import org.parsers.java.ast.PackageDeclaration; -import org.parsers.java.ast.ImportDeclaration; -import org.parsers.java.ast.Modifiers; +import org.parsers.java.ast.ConditionalAndExpression; +import org.parsers.java.ast.ConditionalOrExpression; +import org.parsers.java.ast.ConstructorDeclaration; +import org.parsers.java.ast.ContinueStatement; +import org.parsers.java.ast.DefaultValue; +import org.parsers.java.ast.DiamondOperator; +import org.parsers.java.ast.DoStatement; +import org.parsers.java.ast.DotName; +import org.parsers.java.ast.DotNew; +import org.parsers.java.ast.DotSuper; +import org.parsers.java.ast.DotThis; import org.parsers.java.ast.EmptyDeclaration; -import org.parsers.java.ast.ClassDeclaration; -import org.parsers.java.ast.InterfaceDeclaration; -import org.parsers.java.ast.PermitsList; -import org.parsers.java.ast.ExtendsList; -import org.parsers.java.ast.ImplementsList; -import org.parsers.java.ast.EnumDeclaration; +import org.parsers.java.ast.EmptyStatement; +import org.parsers.java.ast.EnhancedForStatement; import org.parsers.java.ast.EnumBody; -import org.parsers.java.ast.RecordDeclaration; -import org.parsers.java.ast.RecordHeader; -import org.parsers.java.ast.RecordComponent; -import org.parsers.java.ast.RecordBody; -import org.parsers.java.ast.CompactConstructorDeclaration; import org.parsers.java.ast.EnumConstant; -import org.parsers.java.ast.TypeParameters; -import org.parsers.java.ast.TypeParameter; -import org.parsers.java.ast.TypeBound; -import org.parsers.java.ast.ClassOrInterfaceBody; -import org.parsers.java.ast.FieldDeclaration; -import org.parsers.java.ast.VariableDeclarator; -import org.parsers.java.ast.VariableDeclaratorId; -import org.parsers.java.ast.ArrayInitializer; -import org.parsers.java.ast.MethodDeclaration; -import org.parsers.java.ast.FormalParameters; -import org.parsers.java.ast.FormalParameter; -import org.parsers.java.ast.ConstructorDeclaration; +import org.parsers.java.ast.EnumDeclaration; +import org.parsers.java.ast.EqualityExpression; +import org.parsers.java.ast.ExclusiveOrExpression; import org.parsers.java.ast.ExplicitConstructorInvocation; -import org.parsers.java.ast.Initializer; -import org.parsers.java.ast.ReferenceType; -import org.parsers.java.ast.ObjectType; -import org.parsers.java.ast.DiamondOperator; -import org.parsers.java.ast.TypeArguments; -import org.parsers.java.ast.TypeArgument; -import org.parsers.java.ast.WildcardBounds; -import org.parsers.java.ast.PrimitiveType; -import org.parsers.java.ast.PrimitiveArrayType; -import org.parsers.java.ast.ReturnType; -import org.parsers.java.ast.Name; -import org.parsers.java.ast.ThrowsList; +import org.parsers.java.ast.ExportsDirective; import org.parsers.java.ast.Expression; -import org.parsers.java.ast.TernaryExpression; -import org.parsers.java.ast.AssignmentExpression; -import org.parsers.java.ast.ConditionalOrExpression; -import org.parsers.java.ast.ConditionalAndExpression; +import org.parsers.java.ast.ExpressionStatement; +import org.parsers.java.ast.ExtendsList; +import org.parsers.java.ast.FieldDeclaration; +import org.parsers.java.ast.FinallyBlock; +import org.parsers.java.ast.FormalParameter; +import org.parsers.java.ast.FormalParameters; +import org.parsers.java.ast.IfStatement; +import org.parsers.java.ast.ImplementsList; +import org.parsers.java.ast.ImportDeclaration; import org.parsers.java.ast.InclusiveOrExpression; -import org.parsers.java.ast.ExclusiveOrExpression; -import org.parsers.java.ast.AndExpression; -import org.parsers.java.ast.EqualityExpression; +import org.parsers.java.ast.Initializer; import org.parsers.java.ast.InstanceOfExpression; -import org.parsers.java.ast.RelationalExpression; -import org.parsers.java.ast.ShiftExpression; -import org.parsers.java.ast.AdditiveExpression; -import org.parsers.java.ast.MultiplicativeExpression; -import org.parsers.java.ast.UnaryExpression; -import org.parsers.java.ast.PreIncrementExpression; -import org.parsers.java.ast.PreDecrementExpression; -import org.parsers.java.ast.UnaryExpressionNotPlusMinus; -import org.parsers.java.ast.PostfixExpression; -import org.parsers.java.ast.SwitchExpression; -import org.parsers.java.ast.CastExpression; -import org.parsers.java.ast.PrimitiveCastExpression; -import org.parsers.java.ast.ObjectCastExpression; -import org.parsers.java.ast.LiteralExpression; -import org.parsers.java.ast.SuperDotName; -import org.parsers.java.ast.DotThis; -import org.parsers.java.ast.DotSuper; -import org.parsers.java.ast.DotNew; -import org.parsers.java.ast.DotName; -import org.parsers.java.ast.ArrayAccess; -import org.parsers.java.ast.MethodReference; -import org.parsers.java.ast.MethodCall; -import org.parsers.java.ast.Parentheses; -import org.parsers.java.ast.ClassLiteral; +import org.parsers.java.ast.InterfaceDeclaration; import org.parsers.java.ast.InvocationArguments; -import org.parsers.java.ast.PrimitiveArrayInitialization; -import org.parsers.java.ast.ObjectArrayInitialization; -import org.parsers.java.ast.ObjectInstantiation; -import org.parsers.java.ast.ArrayDimsAndInits; import org.parsers.java.ast.Label; import org.parsers.java.ast.LabeledStatement; -import org.parsers.java.ast.AssertStatement; -import org.parsers.java.ast.CodeBlock; +import org.parsers.java.ast.LambdaExpression; +import org.parsers.java.ast.LambdaLHS; +import org.parsers.java.ast.LambdaParameter; +import org.parsers.java.ast.LambdaParameters; +import org.parsers.java.ast.LiteralExpression; import org.parsers.java.ast.LocalVariableDeclaration; -import org.parsers.java.ast.EmptyStatement; -import org.parsers.java.ast.StatementExpression; -import org.parsers.java.ast.ExpressionStatement; -import org.parsers.java.ast.CasePattern; +import org.parsers.java.ast.MarkerAnnotation; +import org.parsers.java.ast.MemberValue; +import org.parsers.java.ast.MemberValueArrayInitializer; +import org.parsers.java.ast.MemberValuePair; +import org.parsers.java.ast.MemberValuePairs; +import org.parsers.java.ast.MethodCall; +import org.parsers.java.ast.MethodDeclaration; +import org.parsers.java.ast.MethodReference; +import org.parsers.java.ast.Modifiers; +import org.parsers.java.ast.ModularCompilationUnit; +import org.parsers.java.ast.ModuleDirective; +import org.parsers.java.ast.MultiplicativeExpression; +import org.parsers.java.ast.Name; +import org.parsers.java.ast.NewCaseStatement; +import org.parsers.java.ast.NewSwitchLabel; +import org.parsers.java.ast.NormalAnnotation; +import org.parsers.java.ast.NumericalLiteral; +import org.parsers.java.ast.ObjectArrayInitialization; +import org.parsers.java.ast.ObjectCastExpression; +import org.parsers.java.ast.ObjectInstantiation; +import org.parsers.java.ast.ObjectType; +import org.parsers.java.ast.OpensDirective; +import org.parsers.java.ast.PackageDeclaration; +import org.parsers.java.ast.Parentheses; +import org.parsers.java.ast.PermitsList; +import org.parsers.java.ast.PostfixExpression; +import org.parsers.java.ast.PreDecrementExpression; +import org.parsers.java.ast.PreIncrementExpression; +import org.parsers.java.ast.PrimitiveArrayInitialization; +import org.parsers.java.ast.PrimitiveArrayType; +import org.parsers.java.ast.PrimitiveCastExpression; +import org.parsers.java.ast.PrimitiveType; +import org.parsers.java.ast.ProvidesDirective; +import org.parsers.java.ast.ReceiverParameter; +import org.parsers.java.ast.RecordBody; +import org.parsers.java.ast.RecordComponent; +import org.parsers.java.ast.RecordDeclaration; +import org.parsers.java.ast.RecordHeader; import org.parsers.java.ast.RecordPattern; +import org.parsers.java.ast.ReferenceType; +import org.parsers.java.ast.RelationalExpression; +import org.parsers.java.ast.RequiresDirective; +import org.parsers.java.ast.ResourcesInTryBlock; +import org.parsers.java.ast.ReturnStatement; +import org.parsers.java.ast.ReturnType; +import org.parsers.java.ast.ShiftExpression; +import org.parsers.java.ast.SingleMemberAnnotation; +import org.parsers.java.ast.StatementExpression; +import org.parsers.java.ast.SuperDotName; +import org.parsers.java.ast.SwitchExpression; +import org.parsers.java.ast.SwitchStatement; +import org.parsers.java.ast.SynchronizedStatement; +import org.parsers.java.ast.TernaryExpression; +import org.parsers.java.ast.ThrowStatement; +import org.parsers.java.ast.ThrowsList; +import org.parsers.java.ast.TryStatement; +import org.parsers.java.ast.TypeArgument; +import org.parsers.java.ast.TypeArguments; +import org.parsers.java.ast.TypeBound; +import org.parsers.java.ast.TypeParameter; +import org.parsers.java.ast.TypeParameters; import org.parsers.java.ast.TypePattern; +import org.parsers.java.ast.UnaryExpression; +import org.parsers.java.ast.UnaryExpressionNotPlusMinus; +import org.parsers.java.ast.UsesDirective; +import org.parsers.java.ast.VariableDeclarator; +import org.parsers.java.ast.VariableDeclaratorId; import org.parsers.java.ast.WhenClause; -import org.parsers.java.ast.SwitchStatement; -import org.parsers.java.ast.ClassicCaseStatement; -import org.parsers.java.ast.NewSwitchLabel; -import org.parsers.java.ast.ClassicSwitchLabel; -import org.parsers.java.ast.NewCaseStatement; -import org.parsers.java.ast.IfStatement; import org.parsers.java.ast.WhileStatement; -import org.parsers.java.ast.DoStatement; -import org.parsers.java.ast.BasicForStatement; -import org.parsers.java.ast.EnhancedForStatement; -import org.parsers.java.ast.BreakStatement; +import org.parsers.java.ast.WildcardBounds; import org.parsers.java.ast.YieldStatement; -import org.parsers.java.ast.ContinueStatement; -import org.parsers.java.ast.ReturnStatement; -import org.parsers.java.ast.ThrowStatement; -import org.parsers.java.ast.SynchronizedStatement; -import org.parsers.java.ast.TryStatement; -import org.parsers.java.ast.ResourcesInTryBlock; -import org.parsers.java.ast.CatchBlock; -import org.parsers.java.ast.FinallyBlock; -import org.parsers.java.ast.NormalAnnotation; -import org.parsers.java.ast.MarkerAnnotation; -import org.parsers.java.ast.SingleMemberAnnotation; -import org.parsers.java.ast.MemberValuePairs; -import org.parsers.java.ast.MemberValuePair; -import org.parsers.java.ast.MemberValue; -import org.parsers.java.ast.MemberValueArrayInitializer; -import org.parsers.java.ast.AnnotationTypeDeclaration; -import org.parsers.java.ast.AnnotationTypeBody; -import org.parsers.java.ast.AnnotationMethodDeclaration; -import org.parsers.java.ast.AnnotationTypeMemberDeclaration; -import org.parsers.java.ast.DefaultValue; -import org.parsers.java.ast.LambdaExpression; -import org.parsers.java.ast.LambdaLHS; -import org.parsers.java.ast.LambdaParameters; -import org.parsers.java.ast.LambdaParameter; -import org.parsers.java.ast.ReceiverParameter; public class JavaParser { @@ -6466,12 +6470,12 @@ final public void PrimaryExpression() { fail("Assertion at: Java.ccc:936:4 failed. " + "A method reference cannot be derereferenced.", getToken(1)); } // Code for Assertion specified at Java.ccc:937:4 - if (!(!(getToken(0) instanceof org.parsers.java.ast.NumericalLiteral))) { + if (!(!(getToken(0) instanceof NumericalLiteral))) { pushOntoCallStack("PrimaryExpression", "Java.ccc", 937, 4); fail("Assertion at: Java.ccc:937:4 failed. " + "A numerical literal cannot be derereferenced.", getToken(1)); } // Code for Assertion specified at Java.ccc:938:4 - if (!(!(getToken(0) instanceof org.parsers.java.ast.BooleanLiteral))) { + if (!(!(getToken(0) instanceof BooleanLiteral))) { pushOntoCallStack("PrimaryExpression", "Java.ccc", 938, 4); fail("Assertion at: Java.ccc:938:4 failed. " + "A boolean literal cannot be derereferenced.", getToken(1)); } diff --git a/maddi-java-parser/src/main/java/org/parsers/java/Node.java b/maddi-java-parser/src/main/java/org/parsers/java/Node.java index 6ff153dbb2..52bfcfaa07 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/Node.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/Node.java @@ -18,11 +18,11 @@ /* Generated by: CongoCC Parser Generator. Node.java */ package org.parsers.java; -import java.util.*; import java.io.PrintStream; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.lang.reflect.InvocationTargetException; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; @@ -88,7 +88,7 @@ default Node get(int i) { } default List children() { - return java.util.Collections.emptyList(); + return Collections.emptyList(); } } @@ -457,7 +457,7 @@ default T firstDescendantOfType(Class clazz) { } default List childrenOfType(Class clazz, Predicate pred) { - List result = new java.util.ArrayList<>(); + List result = new ArrayList<>(); for (int i = 0; i < size(); i++) { Node child = get(i); if (clazz.isInstance(child)) { @@ -485,7 +485,7 @@ default boolean hasDescendantOfType(NodeType type) { } default List childrenOfType(NodeType type, Predicate pred) { - List result = new java.util.ArrayList<>(); + List result = new ArrayList<>(); for (int i = 0; i < size(); i++) { Node child = get(i); if (child.getType() == type) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ParseException.java b/maddi-java-parser/src/main/java/org/parsers/java/ParseException.java index 7ccf77271e..22a91a2ee8 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ParseException.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ParseException.java @@ -211,7 +211,7 @@ private static String addEscapes(String str) { continue; default : if (Character.isISOControl(ch)) { - String s = "0000" + java.lang.Integer.toString(ch, 16); + String s = "0000" + Integer.toString(ch, 16); retval.append("\\u" + s.substring(s.length() - 4)); } else { retval.appendCodePoint(ch); diff --git a/maddi-java-parser/src/main/java/org/parsers/java/Token.java b/maddi-java-parser/src/main/java/org/parsers/java/Token.java index f2e6bfebe1..5b0623d993 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/Token.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/Token.java @@ -20,11 +20,13 @@ */ package org.parsers.java; -import org.parsers.java.ast.*; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.NoSuchElementException; + +import org.parsers.java.ast.*; public class Token implements CharSequence, Node.TerminalNode { @@ -324,7 +326,7 @@ public boolean hasNext() { public Token next() { Token previous = currentPoint.previousCachedToken(); - if (previous == null) throw new java.util.NoSuchElementException("No previous token!"); + if (previous == null) throw new NoSuchElementException("No previous token!"); return currentPoint = previous; } }; @@ -348,7 +350,7 @@ public List precedingUnparsedTokens() { * @return An iterator of the (cached) tokens that follow this one. */ public Iterator followingTokens() { - return new java.util.Iterator() { + return new Iterator() { Token currentPoint = Token.this; @@ -358,7 +360,7 @@ public boolean hasNext() { public Token next() { Token next = currentPoint.nextCachedToken(); - if (next == null) throw new java.util.NoSuchElementException("No next token!"); + if (next == null) throw new NoSuchElementException("No next token!"); return currentPoint = next; } }; diff --git a/maddi-java-parser/src/main/java/org/parsers/java/TokenSource.java b/maddi-java-parser/src/main/java/org/parsers/java/TokenSource.java index 729594e6b5..8ef81cac28 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/TokenSource.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/TokenSource.java @@ -20,13 +20,14 @@ */ package org.parsers.java; -import java.nio.charset.Charset; +import static java.nio.charset.StandardCharsets.*; + import java.nio.ByteBuffer; import java.nio.CharBuffer; +import java.nio.charset.CharacterCodingException; +import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CoderResult; -import java.nio.charset.CharacterCodingException; -import static java.nio.charset.StandardCharsets.*; import java.util.Arrays; import java.util.BitSet; diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AdditiveExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AdditiveExpression.java index d45b62fbbb..32be2cfd58 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AdditiveExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AdditiveExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class AdditiveExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AllocationExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AllocationExpression.java index ca6d9e99f4..b7915526e4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AllocationExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AllocationExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public abstract class AllocationExpression extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AndExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AndExpression.java index 09246f9686..51fd99a5e7 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AndExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AndExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class AndExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Annotation.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Annotation.java index 13ffae7900..2534c7398f 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Annotation.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Annotation.java @@ -22,7 +22,6 @@ package org.parsers.java.ast; import org.parsers.java.*; -import java.util.*; public interface Annotation extends Node { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationMethodDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationMethodDeclaration.java index 8e5728fddd..0d89469466 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationMethodDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationMethodDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class AnnotationMethodDeclaration extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeBody.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeBody.java index 46de7feaf7..3d7e37d99a 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeBody.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeBody.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class AnnotationTypeBody extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeDeclaration.java index 7e50fc1356..9d5cab5f25 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class AnnotationTypeDeclaration extends BaseNode implements TypeDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeMemberDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeMemberDeclaration.java index 26ba827318..89eb9aba15 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeMemberDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AnnotationTypeMemberDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class AnnotationTypeMemberDeclaration extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayAccess.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayAccess.java index c69877617c..2539b7f28b 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayAccess.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayAccess.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ArrayAccess extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayDimsAndInits.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayDimsAndInits.java index f95747d993..c07ee7314d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayDimsAndInits.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayDimsAndInits.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ArrayDimsAndInits extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayInitializer.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayInitializer.java index b89cac50a8..9abb2e35e5 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayInitializer.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ArrayInitializer.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ArrayInitializer extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AssertStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AssertStatement.java index e226651c67..7e94f53651 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AssertStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AssertStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class AssertStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/AssignmentExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/AssignmentExpression.java index 1fa56b16b8..bb4e9eeb27 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/AssignmentExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/AssignmentExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class AssignmentExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/BaseNode.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/BaseNode.java index 1cef90e38d..12e7c51b9b 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/BaseNode.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/BaseNode.java @@ -18,14 +18,16 @@ /* Generated by: CongoCC Parser Generator. Do not edit. BaseNode.java */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; -import java.util.List; + import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.parsers.java.*; /** * The base concrete class for non-terminal Nodes diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/BasicForStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/BasicForStatement.java index 0f416fe052..793acfe385 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/BasicForStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/BasicForStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class BasicForStatement extends ForStatement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/BooleanLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/BooleanLiteral.java index 669c4d0084..d78091348e 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/BooleanLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/BooleanLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class BooleanLiteral extends KeyWord { public BooleanLiteral(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/BreakStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/BreakStatement.java index 6971ff4fba..561a7e723b 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/BreakStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/BreakStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class BreakStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/CTRL_Z.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/CTRL_Z.java index 3947a6fdb5..1563159009 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/CTRL_Z.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/CTRL_Z.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class CTRL_Z extends Token { public CTRL_Z(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/CasePattern.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/CasePattern.java index dd7f659433..58f84c693f 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/CasePattern.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/CasePattern.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class CasePattern extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/CastExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/CastExpression.java index d245325535..a98a5495fa 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/CastExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/CastExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class CastExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/CatchBlock.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/CatchBlock.java index c534479d98..266153f95c 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/CatchBlock.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/CatchBlock.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class CatchBlock extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/CharacterLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/CharacterLiteral.java index 2c3b33a0e5..30e83635d6 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/CharacterLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/CharacterLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class CharacterLiteral extends Literal { public CharacterLiteral(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassDeclaration.java index 3b2dd8c26b..a95c9ce83a 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ClassDeclaration extends BaseNode implements TypeDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassLiteral.java index c3676b2c5e..921cd904a4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassLiteral.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ClassLiteral extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassOrInterfaceBody.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassOrInterfaceBody.java index 0b4c0f12b5..bd75204af6 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassOrInterfaceBody.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassOrInterfaceBody.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ClassOrInterfaceBody extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassOrInterfaceBodyDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassOrInterfaceBodyDeclaration.java index a4470843a2..6663b8c49e 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassOrInterfaceBodyDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassOrInterfaceBodyDeclaration.java @@ -22,7 +22,6 @@ package org.parsers.java.ast; import org.parsers.java.*; -import java.util.*; public interface ClassOrInterfaceBodyDeclaration extends Node { } diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassicCaseStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassicCaseStatement.java index 2c25ea7a0d..04c2c10cb4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassicCaseStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassicCaseStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ClassicCaseStatement extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassicSwitchLabel.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassicSwitchLabel.java index 99b1f376fc..451ad62566 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassicSwitchLabel.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ClassicSwitchLabel.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ClassicSwitchLabel extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/CodeBlock.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/CodeBlock.java index 0adf0afd99..1eff99df96 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/CodeBlock.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/CodeBlock.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class CodeBlock extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Comment.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Comment.java index e419cb4378..d72a290907 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Comment.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Comment.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class Comment extends Token { public Comment(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/CompactConstructorDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/CompactConstructorDeclaration.java index 3fd57c835d..4b165610f8 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/CompactConstructorDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/CompactConstructorDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class CompactConstructorDeclaration extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/CompilationUnit.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/CompilationUnit.java index d7c667ad33..b2b7f7492a 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/CompilationUnit.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/CompilationUnit.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class CompilationUnit extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ConditionalAndExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ConditionalAndExpression.java index a76edecbfe..e6d454bc32 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ConditionalAndExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ConditionalAndExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ConditionalAndExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ConditionalOrExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ConditionalOrExpression.java index 16c47da273..f3414973af 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ConditionalOrExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ConditionalOrExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ConditionalOrExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ConstructorDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ConstructorDeclaration.java index 66aa34ceaf..93d9be2fa5 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ConstructorDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ConstructorDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ConstructorDeclaration extends BaseNode implements ClassOrInterfaceBodyDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ContinueStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ContinueStatement.java index 9e5782e7f7..5a74fa96d6 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ContinueStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ContinueStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ContinueStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/DefaultValue.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/DefaultValue.java index 227352de6b..e6a9e8531e 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/DefaultValue.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/DefaultValue.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class DefaultValue extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Delimiter.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Delimiter.java index f762c71846..cef27e4826 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Delimiter.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Delimiter.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class Delimiter extends Token { public Delimiter(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/DiamondOperator.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/DiamondOperator.java index c18d785dfc..469308a06e 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/DiamondOperator.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/DiamondOperator.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class DiamondOperator extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/DoStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/DoStatement.java index 4c36297ba3..529b4cbfd3 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/DoStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/DoStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class DoStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/DotName.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/DotName.java index a91ad4ea99..4a339957ef 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/DotName.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/DotName.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class DotName extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/DotNew.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/DotNew.java index ba1ad33e84..3fc7824fde 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/DotNew.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/DotNew.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class DotNew extends AllocationExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/DotSuper.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/DotSuper.java index 9769b38d7f..2cc3afd7fc 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/DotSuper.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/DotSuper.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class DotSuper extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/DotThis.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/DotThis.java index d79445f220..46686a0aa3 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/DotThis.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/DotThis.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class DotThis extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/EmptyDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/EmptyDeclaration.java index e8571f4f73..13de16ebb6 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/EmptyDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/EmptyDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class EmptyDeclaration extends BaseNode implements TypeDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/EmptyStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/EmptyStatement.java index 73414483bf..fdc7d6cffc 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/EmptyStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/EmptyStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class EmptyStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/EnhancedForStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/EnhancedForStatement.java index 2ef03ffb0b..0f0043f6ca 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/EnhancedForStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/EnhancedForStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class EnhancedForStatement extends ForStatement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumBody.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumBody.java index aa391843fa..1aee45c800 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumBody.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumBody.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class EnumBody extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumConstant.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumConstant.java index 22d4430166..f3b778d2a8 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumConstant.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumConstant.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class EnumConstant extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumDeclaration.java index 3cc6d01491..a4e69a3340 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/EnumDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class EnumDeclaration extends BaseNode implements TypeDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/EqualityExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/EqualityExpression.java index 125e3fdd2e..f57e0bc6f0 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/EqualityExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/EqualityExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class EqualityExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExclusiveOrExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExclusiveOrExpression.java index 55aa41fca8..4605a3d2c7 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExclusiveOrExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExclusiveOrExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ExclusiveOrExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExplicitConstructorInvocation.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExplicitConstructorInvocation.java index 837dedde54..22ace166b2 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExplicitConstructorInvocation.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExplicitConstructorInvocation.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ExplicitConstructorInvocation extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExportsDirective.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExportsDirective.java index 367e5b9afa..fc5baf7c25 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExportsDirective.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExportsDirective.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ExportsDirective extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Expression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Expression.java index 89e30571fc..5f5b719893 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Expression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Expression.java @@ -22,7 +22,6 @@ package org.parsers.java.ast; import org.parsers.java.*; -import java.util.*; public interface Expression extends Node { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExpressionStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExpressionStatement.java index f66fcbe08d..fff278c81d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExpressionStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExpressionStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ExpressionStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExtendsList.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExtendsList.java index 84917add50..5d152b017f 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ExtendsList.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ExtendsList.java @@ -21,11 +21,11 @@ */ package org.parsers.java.ast; -import java.util.List; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; +import java.util.*; +import java.util.List; + public class ExtendsList extends BaseNode { public List getTypes() { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/FieldDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/FieldDeclaration.java index 95eafa01a5..18952d5a4c 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/FieldDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/FieldDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class FieldDeclaration extends BaseNode implements ClassOrInterfaceBodyDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/FinallyBlock.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/FinallyBlock.java index b7f472a48f..2ee40d79b4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/FinallyBlock.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/FinallyBlock.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class FinallyBlock extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/FloatingPointLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/FloatingPointLiteral.java index d9f9c8b0f4..4accd6b1c6 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/FloatingPointLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/FloatingPointLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class FloatingPointLiteral extends NumericalLiteral { public FloatingPointLiteral(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ForStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ForStatement.java index ea3609c86c..9ca4d81fc3 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ForStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ForStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public abstract class ForStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/FormalParameter.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/FormalParameter.java index 0df487bdf9..419777cc20 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/FormalParameter.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/FormalParameter.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class FormalParameter extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/FormalParameters.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/FormalParameters.java index af43fbcd22..856db63956 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/FormalParameters.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/FormalParameters.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class FormalParameters extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Identifier.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Identifier.java index be505b0e9a..fade4ff90c 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Identifier.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Identifier.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class Identifier extends Token { public Identifier(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/IfStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/IfStatement.java index 04644de86f..41bba2d155 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/IfStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/IfStatement.java @@ -21,10 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class IfStatement extends BaseNode implements Statement { public Node getElseBlock() { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ImplementsList.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ImplementsList.java index 208745911b..8b0f75892e 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ImplementsList.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ImplementsList.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ImplementsList extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ImportDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ImportDeclaration.java index c2504f1e39..8b2294acf0 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ImportDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ImportDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ImportDeclaration extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/InclusiveOrExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/InclusiveOrExpression.java index 172d94065e..99c5f95b05 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/InclusiveOrExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/InclusiveOrExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class InclusiveOrExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Initializer.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Initializer.java index e4cd1e253a..6d6441e9fc 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Initializer.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Initializer.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class Initializer extends CodeBlock implements ClassOrInterfaceBodyDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/InstanceOfExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/InstanceOfExpression.java index c744bde6f0..8925509464 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/InstanceOfExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/InstanceOfExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class InstanceOfExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/IntegerLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/IntegerLiteral.java index d752077c2a..755c08d164 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/IntegerLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/IntegerLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class IntegerLiteral extends NumericalLiteral { public int getValue() { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/InterfaceDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/InterfaceDeclaration.java index 09943f7039..8e6c516b39 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/InterfaceDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/InterfaceDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class InterfaceDeclaration extends BaseNode implements TypeDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/InvocationArguments.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/InvocationArguments.java index a437d06723..d04b6665c5 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/InvocationArguments.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/InvocationArguments.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class InvocationArguments extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/KeyWord.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/KeyWord.java index b969fb4558..cdcda2c260 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/KeyWord.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/KeyWord.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class KeyWord extends Token { public KeyWord(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Label.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Label.java index c1b984e3a1..074565b337 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Label.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Label.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class Label extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/LabeledStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/LabeledStatement.java index a80edb94b8..70bc72d7e1 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/LabeledStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/LabeledStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class LabeledStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaExpression.java index bb01666527..f2f01c36f1 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class LambdaExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaLHS.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaLHS.java index 4655eb9494..e78f97ca30 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaLHS.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaLHS.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class LambdaLHS extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaParameter.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaParameter.java index 50b769f63b..f9baa0e25b 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaParameter.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaParameter.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class LambdaParameter extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaParameters.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaParameters.java index 296e18d4f3..208ac86b31 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaParameters.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/LambdaParameters.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class LambdaParameters extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Literal.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Literal.java index 77ddf94a9e..c9d9508efc 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Literal.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Literal.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class Literal extends Token { public Literal(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/LiteralExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/LiteralExpression.java index d681b7efd6..f7f34050fd 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/LiteralExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/LiteralExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class LiteralExpression extends BaseNode implements PrimaryExpression, Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/LocalVariableDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/LocalVariableDeclaration.java index b9f3f2be57..0b1ddc8c6a 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/LocalVariableDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/LocalVariableDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class LocalVariableDeclaration extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/LongLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/LongLiteral.java index 007b63f9fa..b0bf0d9cd4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/LongLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/LongLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class LongLiteral extends NumericalLiteral { public LongLiteral(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MarkerAnnotation.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MarkerAnnotation.java index 8f33fc486c..a665d7d837 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MarkerAnnotation.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MarkerAnnotation.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MarkerAnnotation extends BaseNode implements Annotation { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValue.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValue.java index c38ff4efaf..0866371801 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValue.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValue.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MemberValue extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValueArrayInitializer.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValueArrayInitializer.java index fb4d2426ef..d523666966 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValueArrayInitializer.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValueArrayInitializer.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MemberValueArrayInitializer extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValuePair.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValuePair.java index e28db0c413..eb8c8ac8ae 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValuePair.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValuePair.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MemberValuePair extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValuePairs.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValuePairs.java index 90b08fd876..0bbedad97b 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValuePairs.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MemberValuePairs.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MemberValuePairs extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodCall.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodCall.java index 6e0e00cdd3..546c347358 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodCall.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodCall.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MethodCall extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodDeclaration.java index 9777595660..bd3935f5d8 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MethodDeclaration extends BaseNode implements ClassOrInterfaceBodyDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodReference.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodReference.java index 24ce231902..ad5973caef 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodReference.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MethodReference.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MethodReference extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Modifiers.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Modifiers.java index d6944986eb..92d28a98f4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Modifiers.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Modifiers.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class Modifiers extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ModularCompilationUnit.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ModularCompilationUnit.java index 90c895bae0..dcd8236217 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ModularCompilationUnit.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ModularCompilationUnit.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ModularCompilationUnit extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ModuleDirective.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ModuleDirective.java index 96283e1c48..a2a188483d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ModuleDirective.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ModuleDirective.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ModuleDirective extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MultiLineComment.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MultiLineComment.java index 71f2b16c05..4c1b0828cf 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MultiLineComment.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MultiLineComment.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class MultiLineComment extends Comment { public MultiLineComment(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/MultiplicativeExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/MultiplicativeExpression.java index e6d1e1838f..a8b06243c9 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/MultiplicativeExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/MultiplicativeExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class MultiplicativeExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Name.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Name.java index a7535ae8ab..aab1df24cc 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Name.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Name.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class Name extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/NewCaseStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/NewCaseStatement.java index 10cd12dd8e..8412deefd2 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/NewCaseStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/NewCaseStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class NewCaseStatement extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/NewSwitchLabel.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/NewSwitchLabel.java index 5220b82fa8..2a4db9127d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/NewSwitchLabel.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/NewSwitchLabel.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class NewSwitchLabel extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/NormalAnnotation.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/NormalAnnotation.java index 9375313abb..ac6d91c751 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/NormalAnnotation.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/NormalAnnotation.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class NormalAnnotation extends BaseNode implements Annotation { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/NullLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/NullLiteral.java index 2aa6612b5c..120ea01cb9 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/NullLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/NullLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class NullLiteral extends KeyWord { public NullLiteral(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/NumericalLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/NumericalLiteral.java index 43c4fb9ca9..48fa1a9a21 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/NumericalLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/NumericalLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class NumericalLiteral extends Literal { public NumericalLiteral(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectArrayInitialization.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectArrayInitialization.java index 5492f503de..e90720a981 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectArrayInitialization.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectArrayInitialization.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ObjectArrayInitialization extends AllocationExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectCastExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectCastExpression.java index d4e115e1df..9789390162 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectCastExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectCastExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ObjectCastExpression extends CastExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectInstantiation.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectInstantiation.java index 8f58289532..6b9456f63f 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectInstantiation.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectInstantiation.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ObjectInstantiation extends AllocationExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectType.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectType.java index e3ac3a3ac8..3562a19970 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectType.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ObjectType.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ObjectType extends BaseNode implements Type { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/OpensDirective.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/OpensDirective.java index 92d3ac61e1..3fb9c0d524 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/OpensDirective.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/OpensDirective.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class OpensDirective extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Operator.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Operator.java index 9dc6c278b7..bca4e0acdc 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Operator.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Operator.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class Operator extends Token { public Operator(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PackageDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PackageDeclaration.java index 209c88773a..26e07619b1 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PackageDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PackageDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PackageDeclaration extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Parentheses.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Parentheses.java index 6c85068099..8e072e6458 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Parentheses.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Parentheses.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class Parentheses extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PermitsList.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PermitsList.java index 366b663430..cf34359105 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PermitsList.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PermitsList.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PermitsList extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PostfixExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PostfixExpression.java index 0b7c7b9cad..d7aff17253 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PostfixExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PostfixExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PostfixExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PreDecrementExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PreDecrementExpression.java index 97c35d2f4c..5e4a801eb2 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PreDecrementExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PreDecrementExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PreDecrementExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PreIncrementExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PreIncrementExpression.java index 80552d08fa..3b8687ccd4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PreIncrementExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PreIncrementExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PreIncrementExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimaryExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimaryExpression.java index cc599891f1..a541fdecfe 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimaryExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimaryExpression.java @@ -22,7 +22,6 @@ package org.parsers.java.ast; import org.parsers.java.*; -import java.util.*; public interface PrimaryExpression extends Node, Expression { } diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Primitive.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Primitive.java index d02261b0f7..10dcd6e66a 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Primitive.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Primitive.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class Primitive extends KeyWord { public Primitive(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveArrayInitialization.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveArrayInitialization.java index db2101fcab..a39ce50e61 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveArrayInitialization.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveArrayInitialization.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PrimitiveArrayInitialization extends AllocationExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveArrayType.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveArrayType.java index e4913f6ab5..65a1918878 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveArrayType.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveArrayType.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PrimitiveArrayType extends BaseNode implements Type { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveCastExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveCastExpression.java index cb14e038fb..8d165eead2 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveCastExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveCastExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PrimitiveCastExpression extends CastExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveType.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveType.java index c6c13ce837..05af32f290 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveType.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/PrimitiveType.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class PrimitiveType extends BaseNode implements Type { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ProvidesDirective.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ProvidesDirective.java index 4919aee827..3bbb44952e 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ProvidesDirective.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ProvidesDirective.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ProvidesDirective extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ReceiverParameter.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ReceiverParameter.java index c2535b1eb4..c4156a2184 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ReceiverParameter.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ReceiverParameter.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ReceiverParameter extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordBody.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordBody.java index f22a88f37f..a83281c0d6 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordBody.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordBody.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class RecordBody extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordComponent.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordComponent.java index 4b026603f9..658a18b0b4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordComponent.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordComponent.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class RecordComponent extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordDeclaration.java index fe80138740..80b3a15795 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordDeclaration.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class RecordDeclaration extends BaseNode implements TypeDeclaration { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordHeader.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordHeader.java index 2027eb67be..c1130960f9 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordHeader.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordHeader.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class RecordHeader extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordPattern.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordPattern.java index 7f3bc875e6..046720d455 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordPattern.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/RecordPattern.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class RecordPattern extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ReferenceType.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ReferenceType.java index ed625d6606..5b4ab83941 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ReferenceType.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ReferenceType.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ReferenceType extends BaseNode implements Type { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/RelationalExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/RelationalExpression.java index 796af7d63f..aa96ba9ede 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/RelationalExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/RelationalExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class RelationalExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/RequiresDirective.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/RequiresDirective.java index 5ff95c22c5..bf72ece246 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/RequiresDirective.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/RequiresDirective.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class RequiresDirective extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ResourcesInTryBlock.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ResourcesInTryBlock.java index ec73e9ad69..dfe7e269d2 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ResourcesInTryBlock.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ResourcesInTryBlock.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ResourcesInTryBlock extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ReturnStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ReturnStatement.java index e3f9948077..1bc614e5c9 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ReturnStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ReturnStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ReturnStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ReturnType.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ReturnType.java index cd79c9a462..ea63c563e5 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ReturnType.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ReturnType.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ReturnType extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ShiftExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ShiftExpression.java index 2b0d615158..505ef0d2fe 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ShiftExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ShiftExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ShiftExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/SingleLineComment.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/SingleLineComment.java index 8f72b6b079..e0e07ca5f2 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/SingleLineComment.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/SingleLineComment.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class SingleLineComment extends Comment { public SingleLineComment(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/SingleMemberAnnotation.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/SingleMemberAnnotation.java index e824167869..f3b22b11d0 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/SingleMemberAnnotation.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/SingleMemberAnnotation.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class SingleMemberAnnotation extends BaseNode implements Annotation { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Statement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Statement.java index 086abdc9b7..5ee88d6f84 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Statement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Statement.java @@ -22,7 +22,6 @@ package org.parsers.java.ast; import org.parsers.java.*; -import java.util.*; public interface Statement extends Node { } diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/StatementExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/StatementExpression.java index eb4538b9d0..dd2612a440 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/StatementExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/StatementExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class StatementExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/StringLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/StringLiteral.java index 2a9953f105..7c80153150 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/StringLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/StringLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class StringLiteral extends Literal { /** diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/SuperDotName.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/SuperDotName.java index 62c4d6ba11..b15e9598cc 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/SuperDotName.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/SuperDotName.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class SuperDotName extends BaseNode implements PrimaryExpression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/SwitchExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/SwitchExpression.java index 4e2a464185..672d3b878d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/SwitchExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/SwitchExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class SwitchExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/SwitchStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/SwitchStatement.java index d0da380a29..d4043f7d01 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/SwitchStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/SwitchStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class SwitchStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/SynchronizedStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/SynchronizedStatement.java index e77abe627f..94ff4b2af4 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/SynchronizedStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/SynchronizedStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class SynchronizedStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TernaryExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TernaryExpression.java index c89fabca0d..b1144b3fd1 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TernaryExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TernaryExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class TernaryExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ThisLiteral.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ThisLiteral.java index 4976f7a447..e38fc8499d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ThisLiteral.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ThisLiteral.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class ThisLiteral extends KeyWord { public ThisLiteral(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ThrowStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ThrowStatement.java index bf19d74d5c..3a81728813 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ThrowStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ThrowStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ThrowStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/ThrowsList.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/ThrowsList.java index 221aa26299..ee2fed52e7 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/ThrowsList.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/ThrowsList.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class ThrowsList extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TryStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TryStatement.java index 9a8f774eb3..08d959603f 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TryStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TryStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class TryStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Type.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Type.java index cff5bbbe71..b69c5faf97 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Type.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Type.java @@ -22,7 +22,6 @@ package org.parsers.java.ast; import org.parsers.java.*; -import java.util.*; public interface Type extends Node { } diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeArgument.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeArgument.java index 5f783b7adb..91af34ce50 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeArgument.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeArgument.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class TypeArgument extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeArguments.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeArguments.java index bcb21fe6cf..cef0df8692 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeArguments.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeArguments.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class TypeArguments extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeBound.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeBound.java index 156145e490..e8cc627c5d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeBound.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeBound.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class TypeBound extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeDeclaration.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeDeclaration.java index ce9d41f53c..bdabe59341 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeDeclaration.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeDeclaration.java @@ -22,7 +22,6 @@ package org.parsers.java.ast; import org.parsers.java.*; -import java.util.*; public interface TypeDeclaration extends Node, ClassOrInterfaceBodyDeclaration { } diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeParameter.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeParameter.java index 5040c92b1c..eface91d3b 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeParameter.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeParameter.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class TypeParameter extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeParameters.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeParameters.java index 89aa33fa8e..72daf4a775 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeParameters.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypeParameters.java @@ -21,11 +21,11 @@ */ package org.parsers.java.ast; -import java.util.List; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; +import java.util.*; +import java.util.List; + public class TypeParameters extends BaseNode { public List getParameters() { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypePattern.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypePattern.java index 5aca3c7878..690bb12136 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/TypePattern.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/TypePattern.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class TypePattern extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/UnaryExpression.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/UnaryExpression.java index 73b5677a8c..f014fd120d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/UnaryExpression.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/UnaryExpression.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class UnaryExpression extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/UnaryExpressionNotPlusMinus.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/UnaryExpressionNotPlusMinus.java index 4d19c893e8..3dc74fb5de 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/UnaryExpressionNotPlusMinus.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/UnaryExpressionNotPlusMinus.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class UnaryExpressionNotPlusMinus extends BaseNode implements Expression { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/UsesDirective.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/UsesDirective.java index a1aeadc91b..ea777ef0bf 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/UsesDirective.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/UsesDirective.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class UsesDirective extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/VariableDeclarator.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/VariableDeclarator.java index d35db7120a..80a164efab 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/VariableDeclarator.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/VariableDeclarator.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class VariableDeclarator extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/VariableDeclaratorId.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/VariableDeclaratorId.java index e097086daa..562cb21abc 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/VariableDeclaratorId.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/VariableDeclaratorId.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class VariableDeclaratorId extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/WhenClause.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/WhenClause.java index 9a726ea185..a1abfcd04f 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/WhenClause.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/WhenClause.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class WhenClause extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/WhileStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/WhileStatement.java index ebb9018b97..1fc19299c1 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/WhileStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/WhileStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class WhileStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/Whitespace.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/Whitespace.java index 61f9011e40..a19da6ad1d 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/Whitespace.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/Whitespace.java @@ -21,9 +21,10 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; import static org.parsers.java.Token.TokenType.*; +import org.parsers.java.*; + public class Whitespace extends Token { public Whitespace(TokenType type, TokenSource tokenSource, int beginOffset, int endOffset) { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/WildcardBounds.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/WildcardBounds.java index 977b61e577..df6e11eee7 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/WildcardBounds.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/WildcardBounds.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class WildcardBounds extends BaseNode { diff --git a/maddi-java-parser/src/main/java/org/parsers/java/ast/YieldStatement.java b/maddi-java-parser/src/main/java/org/parsers/java/ast/YieldStatement.java index 2aa896b032..b90c26fc70 100644 --- a/maddi-java-parser/src/main/java/org/parsers/java/ast/YieldStatement.java +++ b/maddi-java-parser/src/main/java/org/parsers/java/ast/YieldStatement.java @@ -21,8 +21,6 @@ */ package org.parsers.java.ast; -import org.parsers.java.*; -import java.util.*; import static org.parsers.java.Token.TokenType.*; public class YieldStatement extends BaseNode implements Statement { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/CommonTestParse.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/CommonTestParse.java index 2f0a69654c..9f28c78a59 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/CommonTestParse.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/CommonTestParse.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.parser.java; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; + +import org.parsers.java.JavaParser; + import io.codelaser.maddi.cst.api.element.CompilationUnit; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.*; @@ -35,15 +45,6 @@ import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.inspection.resource.SummaryImpl; import io.codelaser.maddi.support.Either; -import org.parsers.java.JavaParser; - -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; public class CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestAssignment.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestAssignment.java index cea54c0918..a213ec740e 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestAssignment.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestAssignment.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Assignment; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; -import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestAssignment extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestExplicitConstructorInvocation.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestExplicitConstructorInvocation.java index accb44b73b..8d34e1c6e8 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestExplicitConstructorInvocation.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestExplicitConstructorInvocation.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.IntConstant; import io.codelaser.maddi.cst.api.expression.StringConstant; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestExplicitConstructorInvocation extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestInlineConditionalOperator.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestInlineConditionalOperator.java index 8ac4512716..4cf3b8b586 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestInlineConditionalOperator.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestInlineConditionalOperator.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.InlineConditional; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ReturnStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestInlineConditionalOperator extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParameterAnnotations.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParameterAnnotations.java index f45a08c675..713b270292 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParameterAnnotations.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParameterAnnotations.java @@ -17,7 +17,6 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.TypeInfo; import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParse101.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParse101.java index 3bf55dec9a..1bea32887e 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParse101.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParse101.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.SingleLineComment; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -26,10 +31,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.impl.element.SourceImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParse101 extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnnotationDeclaration.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnnotationDeclaration.java index 2a4472a6bf..6ac1cae22a 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnnotationDeclaration.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnnotationDeclaration.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.impl.element.SourceImpl; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.impl.element.SourceImpl; public class TestParseAnnotationDeclaration extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnnotationExpression.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnnotationExpression.java index 7e501c3eff..3246f268e3 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnnotationExpression.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnnotationExpression.java @@ -17,6 +17,13 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.AnnotationExpression; @@ -25,12 +32,6 @@ import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseAnnotationExpression extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnonymousType.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnonymousType.java index b0f0cca482..172dc7dc1d 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnonymousType.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAnonymousType.java @@ -17,17 +17,16 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.expression.ArrayInitializer; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.ReturnStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseAnonymousType extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArray.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArray.java index 3bd0f27f58..9ec6275b2a 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArray.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArray.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import io.codelaser.maddi.cst.api.info.TypeInfo; public class TestParseArray extends CommonTestParse { @Language("java") diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArrayInitializer.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArrayInitializer.java index 7fa5b8fceb..87c04a6031 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArrayInitializer.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArrayInitializer.java @@ -17,20 +17,18 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ArrayInitializer; -import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.ConstructorCall; -import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.AssertStatement; import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseArrayInitializer extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArrayMethodReference.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArrayMethodReference.java index c2733a5c79..7db23ae3c4 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArrayMethodReference.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseArrayMethodReference.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.cst.api.info.TypeInfo; /** * The array-method-reference construct run through maddi's OWN parser, to establish whether the diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAssert.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAssert.java index 423ebcb2f7..5a3130dabd 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAssert.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseAssert.java @@ -17,20 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.AssertStatement; import io.codelaser.maddi.cst.api.statement.Block; -import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; -import io.codelaser.maddi.cst.api.statement.ReturnStatement; -import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.api.variable.LocalVariable; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseAssert extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseBinaryOperator.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseBinaryOperator.java index 4f9181a69c..b32a1010f7 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseBinaryOperator.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseBinaryOperator.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -24,10 +29,6 @@ import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.statement.ReturnStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseBinaryOperator extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseBlock.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseBlock.java index 622706d65b..b1ec23a889 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseBlock.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseBlock.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.IfElseStatement; import io.codelaser.maddi.cst.api.statement.Statement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestParseBlock extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseConstructorCall.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseConstructorCall.java index 4bf1c4d608..68e24be53a 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseConstructorCall.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseConstructorCall.java @@ -17,16 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseConstructorCall extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseDetailedSources.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseDetailedSources.java index 197e2486c7..c3d0e67c22 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseDetailedSources.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseDetailedSources.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.parser.java; +import static io.codelaser.maddi.cst.api.element.DetailedSources.PRECEDING_COMMA; +import static io.codelaser.maddi.cst.api.element.DetailedSources.SUCCEEDING_COMMA; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.List; +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.expression.ConstructorCall; @@ -24,15 +34,6 @@ import io.codelaser.maddi.cst.api.info.*; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.stream.Collectors; - -import static io.codelaser.maddi.cst.api.element.DetailedSources.PRECEDING_COMMA; -import static io.codelaser.maddi.cst.api.element.DetailedSources.SUCCEEDING_COMMA; -import static org.junit.jupiter.api.Assertions.*; public class TestParseDetailedSources extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseEnum.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseEnum.java index f9467e8980..a8a50f5ab6 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseEnum.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseEnum.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -24,10 +29,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.variable.FieldReference; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseEnum extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseFields.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseFields.java index 8f0247d847..38ab6797b7 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseFields.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseFields.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.element.MultiLineComment; import io.codelaser.maddi.cst.api.element.SingleLineComment; @@ -32,10 +37,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.This; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseFields extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseFor.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseFor.java index 067defbd36..ea90dac69b 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseFor.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseFor.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BooleanConstant; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.*; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseFor extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseForEach.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseForEach.java index 1fd9b3a372..f962e4de6a 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseForEach.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseForEach.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ForEachStatement; import io.codelaser.maddi.inspection.api.parser.Summary; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseForEach extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseHierarchy.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseHierarchy.java index db293b6f13..ada66fb2d1 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseHierarchy.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseHierarchy.java @@ -17,11 +17,12 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.TypeInfo; public class TestParseHierarchy extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseIfElse.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseIfElse.java index 553d592384..895a3ec832 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseIfElse.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseIfElse.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.IfElseStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseIfElse extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseInstanceOfPattern.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseInstanceOfPattern.java index 71b04c233a..5b0c9c6304 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseInstanceOfPattern.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseInstanceOfPattern.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.InstanceOf; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.IfElseStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestParseInstanceOfPattern extends CommonTestParse { @Language("java") diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseJavaDoc.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseJavaDoc.java index a56b5aa342..7bb03a9d65 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseJavaDoc.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseJavaDoc.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.element.JavaDoc; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; public class TestParseJavaDoc extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLambdaExpression.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLambdaExpression.java index b6adc46462..cacf3af76d 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLambdaExpression.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLambdaExpression.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -24,10 +29,6 @@ import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.statement.Statement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseLambdaExpression extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLambdaWithBlock.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLambdaWithBlock.java index dafab8ab49..cdfa7b64ef 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLambdaWithBlock.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLambdaWithBlock.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Lambda; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.ReturnStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseLambdaWithBlock extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLiteral.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLiteral.java index 73119333f1..a06195696f 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLiteral.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLiteral.java @@ -17,19 +17,20 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.expression.*; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; -import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.expression.*; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; +import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; public class TestParseLiteral extends CommonTestParse { private static final Logger LOGGER = LoggerFactory.getLogger(TestParseLiteral.class); diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLocalVariable.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLocalVariable.java index 24c16c85ac..c005fea44c 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLocalVariable.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseLocalVariable.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.ArrayLength; import io.codelaser.maddi.cst.api.expression.BinaryOperator; @@ -30,10 +35,6 @@ import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.LocalVariable; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseLocalVariable extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethodReference.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethodReference.java index 90d92daa89..79fba8973e 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethodReference.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethodReference.java @@ -17,16 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodReference; -import io.codelaser.maddi.cst.api.expression.TypeExpression; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ReturnStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseMethodReference extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethodTypeParameter.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethodTypeParameter.java index 48a3242110..6e6f890b4a 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethodTypeParameter.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethodTypeParameter.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseMethodTypeParameter extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethods.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethods.java index bbed1efc9b..c122238855 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethods.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseMethods.java @@ -18,15 +18,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.ParameterInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ThrowStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseMethods extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseRecord.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseRecord.java index 97431b7247..505742a4f4 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseRecord.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseRecord.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.Statement; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseRecord extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseRecordCompactConstructorAccess.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseRecordCompactConstructorAccess.java index 35b577b691..d9ff1b5a0d 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseRecordCompactConstructorAccess.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseRecordCompactConstructorAccess.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; /** * The access of a record's COMPACT canonical constructor, which is currently always reported as public. diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSealed.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSealed.java index f4b6f366ca..431b92343a 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSealed.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSealed.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.TypeInfo; public class TestParseSealed extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSplitExpression0.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSplitExpression0.java index e1af0b36fc..ef9d15cf23 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSplitExpression0.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSplitExpression0.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -25,10 +30,6 @@ import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.variable.FieldReference; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseSplitExpression0 extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSubType.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSubType.java index 0901e48d5e..25e807397a 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSubType.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSubType.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.Block; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.*; +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.Block; public class TestParseSubType extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchExpression.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchExpression.java index 290d7aa51d..efb574dd83 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchExpression.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchExpression.java @@ -17,22 +17,21 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import java.util.ArrayList; +import java.util.List; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.RecordPattern; import io.codelaser.maddi.cst.api.expression.SwitchExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.ReturnStatement; import io.codelaser.maddi.cst.api.statement.SwitchEntry; -import io.codelaser.maddi.cst.api.statement.SwitchStatementNewStyle; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestParseSwitchExpression extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchNewStyle.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchNewStyle.java index b92a60da4f..969a590123 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchNewStyle.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchNewStyle.java @@ -17,16 +17,15 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.SwitchStatementNewStyle; -import io.codelaser.maddi.cst.api.statement.SwitchStatementOldStyle; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.SwitchStatementNewStyle; public class TestParseSwitchNewStyle extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchOldStyle.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchOldStyle.java index ca3813f8a4..ab0f2a8094 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchOldStyle.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSwitchOldStyle.java @@ -17,16 +17,15 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; -import io.codelaser.maddi.cst.api.statement.IfElseStatement; import io.codelaser.maddi.cst.api.statement.SwitchStatementNewStyle; import io.codelaser.maddi.cst.api.statement.SwitchStatementOldStyle; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseSwitchOldStyle extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSynchronized.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSynchronized.java index 08a97de9d0..71e26bb3eb 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSynchronized.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseSynchronized.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.FieldInfo; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.SynchronizedStatement; import io.codelaser.maddi.cst.api.variable.FieldReference; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseSynchronized extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTryCatch.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTryCatch.java index 995cdf6b55..9eb253f735 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTryCatch.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTryCatch.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; @@ -24,10 +29,6 @@ import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.TryStatement; import io.codelaser.maddi.cst.api.variable.DependentVariable; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseTryCatch extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTryResource.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTryResource.java index d40d4b6f69..7cc5b6e9b4 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTryResource.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTryResource.java @@ -17,17 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; -import io.codelaser.maddi.cst.api.expression.VariableExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.TryStatement; -import io.codelaser.maddi.cst.api.variable.DependentVariable; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseTryResource extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseType.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseType.java index a0de48d03c..a529cafcd7 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseType.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseType.java @@ -17,17 +17,14 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.expression.Assignment; -import io.codelaser.maddi.cst.api.expression.BinaryOperator; -import io.codelaser.maddi.cst.api.info.FieldInfo; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; -import io.codelaser.maddi.cst.api.statement.WhileStatement; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.cst.api.info.FieldInfo; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; public class TestParseType extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTypeParameter.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTypeParameter.java index 61eb7ec93e..f57ba14f0b 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTypeParameter.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseTypeParameter.java @@ -17,18 +17,19 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.element.DetailedSources; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.info.TypeParameter; import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.type.ParameterizedType; -import io.codelaser.maddi.cst.api.info.TypeParameter; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseTypeParameter extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseUnaryOperator.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseUnaryOperator.java index c266c7819a..7943454239 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseUnaryOperator.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseUnaryOperator.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.*; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.api.statement.Block; import io.codelaser.maddi.cst.api.statement.ReturnStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseUnaryOperator extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseVarargs.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseVarargs.java index e559b2b381..4242707843 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseVarargs.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseVarargs.java @@ -17,17 +17,15 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.expression.Assignment; -import io.codelaser.maddi.cst.api.expression.BinaryOperator; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; -import io.codelaser.maddi.cst.api.statement.WhileStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseVarargs extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseWhile.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseWhile.java index 3c6a50344c..31350488ce 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseWhile.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParseWhile.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.Assignment; import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.ExpressionAsStatement; import io.codelaser.maddi.cst.api.statement.WhileStatement; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestParseWhile extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParserError.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParserError.java index f67fb8cfa1..9d679f4079 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParserError.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestParserError.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.inspection.api.parser.Context; -import io.codelaser.maddi.inspection.api.parser.Summary; +import static org.junit.jupiter.api.Assertions.*; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import io.codelaser.maddi.inspection.api.parser.Context; +import io.codelaser.maddi.inspection.api.parser.Summary; public class TestParserError extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestReceiverParameter.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestReceiverParameter.java index cc75010cf9..c5f362f376 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestReceiverParameter.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestReceiverParameter.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static io.codelaser.maddi.parser.java.TestRecordPatternGrammar.assertParses; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.Test; import org.parsers.java.JavaParser; import org.parsers.java.ParseException; -import static io.codelaser.maddi.parser.java.TestRecordPatternGrammar.assertParses; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; /* * The receiver parameter (JLS 8.4.1): 'X this' as the first formal parameter of an instance method, or diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestRecordAccessorIsSynthetic.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestRecordAccessorIsSynthetic.java index 51bbc01570..b23c6d9c5e 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestRecordAccessorIsSynthetic.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestRecordAccessorIsSynthetic.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; /** * An accessor that the compiler supplies for a record component reports itself as synthetic. diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestRecordWritesOutOneOfItsAccessors.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestRecordWritesOutOneOfItsAccessors.java index 91b61f3904..0bb9af3959 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestRecordWritesOutOneOfItsAccessors.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestRecordWritesOutOneOfItsAccessors.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.parser.java; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.cst.api.info.MethodInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; /** * A record may write out one of its accessors itself, and then no second one is supplied. diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestStringConstant.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestStringConstant.java index 7f541a4729..bb782a9fd2 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestStringConstant.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestStringConstant.java @@ -17,6 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import java.util.stream.Collectors; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.expression.ArrayInitializer; import io.codelaser.maddi.cst.api.expression.StringConstant; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -24,15 +34,6 @@ import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.LocalVariableCreation; import io.codelaser.maddi.cst.impl.output.QualificationImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; public class TestStringConstant extends CommonTestParse { private static final Logger LOGGER = LoggerFactory.getLogger(TestStringConstant.class); diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestSwitchIsVisited.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestSwitchIsVisited.java index 51edcd71b2..741ea21e25 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestSwitchIsVisited.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestSwitchIsVisited.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.SwitchExpression; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.statement.SwitchStatementNewStyle; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * A new-style switch statement and a switch expression are elements like any other: a predicate visitor is asked diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestTranslate.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestTranslate.java index 3568cc9c84..15b0c3cf5c 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestTranslate.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/TestTranslate.java @@ -17,6 +17,11 @@ package io.codelaser.maddi.parser.java; +import static org.junit.jupiter.api.Assertions.*; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.expression.BinaryOperator; import io.codelaser.maddi.cst.api.expression.TypeExpression; import io.codelaser.maddi.cst.api.expression.VariableExpression; @@ -26,10 +31,6 @@ import io.codelaser.maddi.cst.api.translate.TranslationMap; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.cst.api.variable.This; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; public class TestTranslate extends CommonTestParse { diff --git a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/util/TestEscapeSequence.java b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/util/TestEscapeSequence.java index 4d4b2e2eab..2ea860caba 100644 --- a/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/util/TestEscapeSequence.java +++ b/maddi-java-parser/src/test/java/io/codelaser/maddi/parser/java/util/TestEscapeSequence.java @@ -17,10 +17,10 @@ package io.codelaser.maddi.parser.java.util; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + public class TestEscapeSequence { @Test diff --git a/maddi-kotlin-realm/src/main/java/io/codelaser/maddi/kotlin/realm/ClasspathCensus.java b/maddi-kotlin-realm/src/main/java/io/codelaser/maddi/kotlin/realm/ClasspathCensus.java index 80d1a93e01..8e263271d7 100644 --- a/maddi-kotlin-realm/src/main/java/io/codelaser/maddi/kotlin/realm/ClasspathCensus.java +++ b/maddi-kotlin-realm/src/main/java/io/codelaser/maddi/kotlin/realm/ClasspathCensus.java @@ -17,6 +17,7 @@ package io.codelaser.maddi.kotlin.realm; +import java.io.File; import java.io.IOException; import java.io.UncheckedIOException; import java.nio.file.Files; @@ -28,6 +29,7 @@ import java.util.Map; import java.util.Set; import java.util.stream.Stream; +import java.util.zip.ZipEntry; import java.util.zip.ZipFile; /** @@ -87,7 +89,7 @@ public static List providers(List classpathInOrder, String classEntr /** A path-separated classpath, as {@code -Dmaddi.k2.classpath} or {@code java.class.path} carries it. */ public static List split(String classpath) { List entries = new ArrayList<>(); - for (String s : classpath.split(java.io.File.pathSeparator)) { + for (String s : classpath.split(File.pathSeparator)) { if (!s.isBlank()) entries.add(Path.of(s)); } return entries; @@ -105,7 +107,7 @@ private static Set classEntries(Path entry) { } } else if (Files.isRegularFile(entry)) { try (ZipFile zip = new ZipFile(entry.toFile())) { - zip.stream().map(java.util.zip.ZipEntry::getName) + zip.stream().map(ZipEntry::getName) .filter(n -> n.endsWith(".class")) .filter(ClasspathCensus::isLoadableName) .forEach(names::add); diff --git a/maddi-kotlin-realm/src/main/java/io/codelaser/maddi/kotlin/realm/K2Realm.java b/maddi-kotlin-realm/src/main/java/io/codelaser/maddi/kotlin/realm/K2Realm.java index 5e3ed4e986..b59eb80236 100644 --- a/maddi-kotlin-realm/src/main/java/io/codelaser/maddi/kotlin/realm/K2Realm.java +++ b/maddi-kotlin-realm/src/main/java/io/codelaser/maddi/kotlin/realm/K2Realm.java @@ -17,19 +17,23 @@ package io.codelaser.maddi.kotlin.realm; -import io.codelaser.maddi.kotlin.api.KotlinFrontEnd; -import org.codehaus.plexus.classworlds.ClassWorld; -import org.codehaus.plexus.classworlds.realm.ClassRealm; -import org.codehaus.plexus.classworlds.realm.DuplicateRealmException; - +import java.io.File; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; +import org.codehaus.plexus.classworlds.ClassWorld; +import org.codehaus.plexus.classworlds.realm.ClassRealm; +import org.codehaus.plexus.classworlds.realm.DuplicateRealmException; + +import io.codelaser.maddi.kotlin.api.KotlinFrontEnd; +import io.codelaser.maddi.kotlin.api.KotlinFrontEnds; + /** * A classloader of its own for the Kotlin front end. {@code kotlin-compiler-2.4.0.jar} is 61.9 MB and * carries 8,235 non-Kotlin classes under their original package names — {@code org.antlr.v4.runtime}, @@ -129,12 +133,12 @@ public static KotlinFrontEnd create(List jars) throws IOException { * compiler is genuinely absent it would fail later, deeper, and less legibly. */ public static void install() throws IOException { - io.codelaser.maddi.kotlin.api.KotlinFrontEnds.install(create(discover())); + KotlinFrontEnds.install(create(discover())); } /** {@link #install}, unless a front end is already installed. Safe to call on every entry point. */ public static void installIfAbsent() throws IOException { - if (!io.codelaser.maddi.kotlin.api.KotlinFrontEnds.isInstalled()) install(); + if (!KotlinFrontEnds.isInstalled()) install(); } /** Where this JVM's K2 jars are; see {@link #install}. */ @@ -174,7 +178,7 @@ private static Path besideOwnJar() { private static List split(String classpath) { List jars = new ArrayList<>(); - for (String entry : classpath.split(java.io.File.pathSeparator)) { + for (String entry : classpath.split(File.pathSeparator)) { if (!entry.isBlank()) jars.add(Path.of(entry)); } return jars; @@ -185,7 +189,7 @@ public static KotlinFrontEnd create(String classpath) throws IOException { return create(split(classpath)); } - private static java.net.URL toUrl(Path jar) throws MalformedURLException { + private static URL toUrl(Path jar) throws MalformedURLException { return jar.toUri().toURL(); } } diff --git a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/BuildFileCheck.java b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/BuildFileCheck.java index 805f01a645..0dca5e94b9 100644 --- a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/BuildFileCheck.java +++ b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/BuildFileCheck.java @@ -17,11 +17,6 @@ package io.codelaser.maddi.project.config; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; -import io.codelaser.maddi.inspection.resource.BuildFilesCapture; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -31,6 +26,12 @@ import java.util.List; import java.util.Map; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.inspection.resource.BuildFilesCapture; + /** * Whether a configuration still matches its build: the build files recorded with it ({@link BuildFiles}, the * {@code buildFiles} key of {@code inputConfiguration.json}) hashed again and compared. diff --git a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureException.java b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureException.java index 0fe6ea5746..3846fd76d1 100644 --- a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureException.java +++ b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureException.java @@ -18,6 +18,7 @@ package io.codelaser.maddi.project.config; import java.io.IOException; +import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayDeque; @@ -62,7 +63,7 @@ private static List tail(Path log) { if (last.size() == TAIL_LINES) last.removeFirst(); last.addLast(line); }); - } catch (IOException | java.io.UncheckedIOException e) { + } catch (IOException | UncheckedIOException e) { return List.of(); } return List.copyOf(last); diff --git a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureResult.java b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureResult.java index e24518fb9f..28e6da1f25 100644 --- a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureResult.java +++ b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureResult.java @@ -17,10 +17,10 @@ package io.codelaser.maddi.project.config; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; - import java.nio.file.Path; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; + /** * What a capture made. * diff --git a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureSpec.java b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureSpec.java index b5d77e1f7e..bc048bd058 100644 --- a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureSpec.java +++ b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CaptureSpec.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.project.config; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; -import io.codelaser.maddi.run.config.javac.ParseJavacList; - import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.run.config.javac.ParseJavacList; + /** * A build to capture the javac invocations of: a log, a pattern, javac lines, then the configuration. Gradle, Maven * and any other build differ only in the command, the pattern and the build files. Everything in it is a string or a diff --git a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CompileLogCapture.java b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CompileLogCapture.java index e75cb959ca..d6770cb5d3 100644 --- a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CompileLogCapture.java +++ b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/CompileLogCapture.java @@ -17,13 +17,6 @@ package io.codelaser.maddi.project.config; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.BuildFilesCapture; -import io.codelaser.maddi.run.config.javac.Javac; -import io.codelaser.maddi.run.config.javac.ParseJavacList; -import io.codelaser.maddi.run.config.util.JsonStreaming; - import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; @@ -38,6 +31,13 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.BuildFilesCapture; +import io.codelaser.maddi.run.config.javac.Javac; +import io.codelaser.maddi.run.config.javac.ParseJavacList; +import io.codelaser.maddi.run.config.util.JsonStreaming; + /** * A build's javac invocations, taken from its output as it runs, made into an {@code inputConfiguration.json} with * its build files hashed. The output is streamed, never held: a Gradle {@code --debug} or Maven {@code -X} log of a diff --git a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/Directories.java b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/Directories.java index 057c6e5d1b..052fdb1ca1 100644 --- a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/Directories.java +++ b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/Directories.java @@ -17,8 +17,8 @@ package io.codelaser.maddi.project.config; -import java.util.List; import java.nio.file.Path; +import java.util.List; /** * A project named by hand, for a build no capture fits: its main sources and class path, and optionally test sources diff --git a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/DirectoriesConfiguration.java b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/DirectoriesConfiguration.java index 46cd7a74a6..c14a9e7163 100644 --- a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/DirectoriesConfiguration.java +++ b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/DirectoriesConfiguration.java @@ -17,10 +17,6 @@ package io.codelaser.maddi.project.config; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.run.config.util.JsonStreaming; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -28,6 +24,10 @@ import java.util.ArrayList; import java.util.List; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.util.JsonStreaming; + /** * A configuration from {@link Directories}: one source set per source directory ({@code main}, or {@code main/} * when there are several; {@code test} likewise), the tests seeing the main sets. Its build files are the Gradle and diff --git a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/Regenerate.java b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/Regenerate.java index 18fa6d2113..955d4c43ac 100644 --- a/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/Regenerate.java +++ b/maddi-project-config/src/main/java/io/codelaser/maddi/project/config/Regenerate.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.project.config; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; - import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; + /** * How to make a project's configuration again, when its build files changed: run {@code command} in * {@code directory}, which rewrites the project's {@code inputConfiguration.json} where it is; or capture the build diff --git a/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/CompileLogCaptureTest.java b/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/CompileLogCaptureTest.java index e34bdab5fc..942c92de8c 100644 --- a/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/CompileLogCaptureTest.java +++ b/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/CompileLogCaptureTest.java @@ -17,16 +17,19 @@ package io.codelaser.maddi.project.config; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import java.util.regex.Pattern; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.run.config.javac.ParseJavacList; public class CompileLogCaptureTest { @@ -75,7 +78,7 @@ public void chatter() { @Test public void javacCommandLines() { - var pattern = java.util.regex.Pattern.compile(CaptureSpec.JAVAC_COMMAND_LINE); + var pattern = Pattern.compile(CaptureSpec.JAVAC_COMMAND_LINE); for (String line : List.of("javac -d out A.java", "/usr/bin/javac -d out A.java", "+ javac @args", " C:\\jdk\\bin\\javac.exe -d out A.java")) { var m = pattern.matcher(line); @@ -162,7 +165,7 @@ public void aFailedBuild(@TempDir Path dir) throws Exception { public void specs(@TempDir Path dir) { CaptureSpec maven = CaptureSpec.maven(dir); assertEquals(List.of("mvn", "-B", "-X", "clean", "compile", "test-compile"), maven.command()); - assertEquals(io.codelaser.maddi.run.config.javac.ParseJavacList.MAVEN_PATTERN, maven.patternOrDefault()); + assertEquals(ParseJavacList.MAVEN_PATTERN, maven.patternOrDefault()); assertTrue(maven.buildFileGlobs().contains("**/pom.xml")); assertEquals(List.of("gradle"), CaptureSpec.gradle(dir).command()); assertThrows(IllegalArgumentException.class, diff --git a/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/MavenCaptureTest.java b/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/MavenCaptureTest.java index 35592e55a2..516b038243 100644 --- a/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/MavenCaptureTest.java +++ b/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/MavenCaptureTest.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.project.config; -import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; +import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; /* A real Maven build, captured twice: a main and a test source set from the -X log, the pom hashed, and the capture run @@ -76,7 +77,7 @@ public void mainAndTest(@TempDir Path dir) throws Exception { } private static boolean onPath(String tool) { - for (String dir : System.getenv().getOrDefault("PATH", "").split(java.io.File.pathSeparator)) { + for (String dir : System.getenv().getOrDefault("PATH", "").split(File.pathSeparator)) { if (Files.isExecutable(Path.of(dir, tool))) return true; } return false; diff --git a/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/ProjectConfiguratorTest.java b/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/ProjectConfiguratorTest.java index 6be344fc29..09aeb63f56 100644 --- a/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/ProjectConfiguratorTest.java +++ b/maddi-project-config/src/test/java/io/codelaser/maddi/project/config/ProjectConfiguratorTest.java @@ -17,8 +17,7 @@ package io.codelaser.maddi.project.config; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.nio.file.Files; import java.nio.file.Path; @@ -28,7 +27,10 @@ import java.util.Map; import java.util.Optional; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.inspection.api.resource.BuildFiles; public class ProjectConfiguratorTest { @@ -159,8 +161,8 @@ public void goneConfiguration(@TempDir Path dir) throws Exception { @Test public void defaultRegenerate(@TempDir Path dir) { - var gradle = new io.codelaser.maddi.inspection.api.resource.BuildFiles( - io.codelaser.maddi.inspection.api.resource.BuildFiles.GRADLE_PLUGIN, dir.toString(), List.of(), + var gradle = new BuildFiles( + BuildFiles.GRADLE_PLUGIN, dir.toString(), List.of(), Map.of(), "now"); Regenerate r = Regenerate.defaultFor(gradle, dir.resolve("a/build/inputConfiguration.json")); assertEquals(List.of("gradle", "-q", "-p", dir.resolve("a").toString(), Regenerate.GRADLE_TASK), r.command()); diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/Configuration.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/Configuration.java index 422d7da4eb..7e3d7de017 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/Configuration.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/Configuration.java @@ -19,6 +19,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; + import io.codelaser.maddi.cst.api.runtime.LanguageConfiguration; import io.codelaser.maddi.cst.impl.runtime.LanguageConfigurationImpl; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/ShippedAnalysisResults.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/ShippedAnalysisResults.java index bb73c7312e..e58356e213 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/ShippedAnalysisResults.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/ShippedAnalysisResults.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.run.config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.ArrayList; import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Which analysis results an analysis run preloads: the rule behind {@code --preload-analysis-results-dirs} of the * command lines and {@code preloadAnalysisResultsDirs} of the Gradle and Maven plugins. diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/AnnotationProcessorOutput.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/AnnotationProcessorOutput.java index df928fc94f..1b52ac2ac5 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/AnnotationProcessorOutput.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/AnnotationProcessorOutput.java @@ -16,18 +16,10 @@ */ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.Opcodes; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import java.io.File; import java.io.IOException; -import java.io.UncheckedIOException; -import java.nio.file.FileVisitResult; import java.net.URI; +import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; @@ -44,6 +36,15 @@ import java.util.regex.Pattern; import java.util.stream.Stream; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.Opcodes; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; + /** * Recovers the annotation-processor products that {@link CompileListToSourceSets} drops, by declaring them * as an ordinary external library. @@ -365,10 +366,10 @@ private static String packageOf(Path sourceFile) { /** {@code p/q/Foo$Bar$1.class} -> {@code p/q/Foo}: a nested class is decided by its top-level name. */ private static String topLevelOf(String relative) { String withoutSuffix = relative.substring(0, relative.length() - ".class".length()); - int separator = withoutSuffix.lastIndexOf(java.io.File.separatorChar); + int separator = withoutSuffix.lastIndexOf(File.separatorChar); int dollar = withoutSuffix.indexOf('$', separator + 1); return (dollar < 0 ? withoutSuffix : withoutSuffix.substring(0, dollar)) - .replace(java.io.File.separatorChar, '/'); + .replace(File.separatorChar, '/'); } private static boolean exists(List roots, String relative) { diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/CompileListToInputConfiguration.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/CompileListToInputConfiguration.java index 08273874b1..4c1d618ff7 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/CompileListToInputConfiguration.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/CompileListToInputConfiguration.java @@ -16,24 +16,28 @@ */ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.run.config.util.ConfigurationChecks; -import io.codelaser.maddi.run.config.util.JavaModules; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; - import java.util.ArrayList; -import java.util.HashSet; import java.util.ArrayList; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.TreeSet; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.util.ConfigurationChecks; +import io.codelaser.maddi.run.config.util.JavaModules; + /** * Assembles a {@link CompileListToSourceSets.Result} into an {@link InputConfiguration}: the JDK module closure, * the source sets, the libraries, and the two repairs neither front-end can make on its own — the generated @@ -46,8 +50,8 @@ * front-ends BY CONSTRUCTION rather than by remembering. */ public class CompileListToInputConfiguration { - private static final org.slf4j.Logger LOGGER = - org.slf4j.LoggerFactory.getLogger(CompileListToInputConfiguration.class); + private static final Logger LOGGER = + LoggerFactory.getLogger(CompileListToInputConfiguration.class); /** @@ -145,7 +149,7 @@ private static void setSourceRelease(CompileListToSourceSets.Result result, // run of this method for want of one null check. List invocations = result.jSourceSets().stream() .map(CompileListToSourceSets.JSourceSet::invocation) - .filter(java.util.Objects::nonNull) + .filter(Objects::nonNull) .toList(); Set releases = invocations.stream() .map(CompileInvocation::effectiveRelease) diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/CompileListToSourceSets.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/CompileListToSourceSets.java index c4bd060190..476585e5ae 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/CompileListToSourceSets.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/CompileListToSourceSets.java @@ -1,10 +1,5 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.URI; import java.nio.charset.Charset; @@ -17,6 +12,12 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; + /** * Turns a list of {@link CompileInvocation}s (parsed {@code javac} or {@code kotlinc} command lines) into a * source-set graph plus the library jars. The engine is language-independent; see {@link CompileInvocation} diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/JarContentOwner.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/JarContentOwner.java index 92ed22bc0e..88865381ce 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/JarContentOwner.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/JarContentOwner.java @@ -17,9 +17,6 @@ package io.codelaser.maddi.run.config.compile; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -28,6 +25,9 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Which compile destination a packaged jar was built from, decided by what the jar CONTAINS rather than by its * name or its directory. diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/TypeUseAnnotationClosure.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/TypeUseAnnotationClosure.java index 1512cb0770..f2763e1d01 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/TypeUseAnnotationClosure.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/compile/TypeUseAnnotationClosure.java @@ -16,20 +16,23 @@ */ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.objectweb.asm.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import java.io.File; import java.io.IOException; import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.*; +import java.util.jar.Manifest; import java.util.stream.Stream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.objectweb.asm.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.SourceSet; + /** * Closes each source set's classpath over the TYPE_USE annotations its dependencies carry in their bytecode. * @@ -263,7 +266,7 @@ private void index(SourceSet location, Map> provides, try (Stream walk = Files.walk(path)) { for (Path file : walk.filter(p -> p.toString().endsWith(".class")).toList()) { String binaryName = path.relativize(file).toString() - .replace(java.io.File.separatorChar, '.'); + .replace(File.separatorChar, '.'); binaryName = binaryName.substring(0, binaryName.length() - 6); if (isNotAType(binaryName)) { if (binaryName.endsWith("module-info")) modular.add(location); @@ -285,7 +288,7 @@ private static boolean hasAutomaticModuleName(ZipFile zip) throws IOException { ZipEntry manifest = zip.getEntry("META-INF/MANIFEST.MF"); if (manifest == null) return false; try (var in = zip.getInputStream(manifest)) { - return new java.util.jar.Manifest(in).getMainAttributes().getValue("Automatic-Module-Name") != null; + return new Manifest(in).getMainAttributes().getValue("Automatic-Module-Name") != null; } } diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/Javac.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/Javac.java index 43257d7424..e738740174 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/Javac.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/Javac.java @@ -1,10 +1,5 @@ package io.codelaser.maddi.run.config.javac; -import io.codelaser.maddi.run.config.compile.CompileInvocation; -import io.codelaser.maddi.run.config.util.PluginSourceSets; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -13,6 +8,12 @@ import java.util.List; import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.run.config.compile.CompileInvocation; +import io.codelaser.maddi.run.config.util.PluginSourceSets; + public record Javac(int sourceRelease, int targetRelease, int release, diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/MakeJavacList.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/MakeJavacList.java index c27deec569..5c6079acf8 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/MakeJavacList.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/MakeJavacList.java @@ -1,8 +1,5 @@ package io.codelaser.maddi.run.config.javac; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -10,6 +7,9 @@ import java.util.List; import java.util.regex.Pattern; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class MakeJavacList { private static final Logger LOGGER = LoggerFactory.getLogger(MakeJavacList.class); diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/ParseJavacList.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/ParseJavacList.java index 7d48d2ade1..fde72c55ac 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/ParseJavacList.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/javac/ParseJavacList.java @@ -1,10 +1,5 @@ package io.codelaser.maddi.run.config.javac; -import io.codelaser.maddi.run.config.compile.CompileListToInputConfiguration; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; @@ -15,6 +10,12 @@ import java.util.regex.Pattern; import java.util.zip.GZIPInputStream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.run.config.compile.CompileListToInputConfiguration; + public class ParseJavacList { private static final Logger LOGGER = LoggerFactory.getLogger(ParseJavacList.class); diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/report/ErrorReport.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/report/ErrorReport.java index c3088bf2e2..331863648e 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/report/ErrorReport.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/report/ErrorReport.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.config.report; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.api.analysis.Message; import io.codelaser.maddi.cst.api.element.Source; import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.inspection.api.parser.Summary; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; /** * Harmonized error rendering for every runner. All three front-ends (openjdk, in-house/main, kotlin) accumulate diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/ComputeDependencies.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/ComputeDependencies.java index 126bf5dc0f..cd7de139d2 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/ComputeDependencies.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/ComputeDependencies.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.run.config.util; +import java.util.*; +import java.util.function.Consumer; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.graph.G; import io.codelaser.maddi.graph.ImmutableGraph; -import java.util.*; -import java.util.function.Consumer; - /** * The dependency graph over a MAVEN module's source sets and libraries. * diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/ConfigurationChecks.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/ConfigurationChecks.java index afb082aca0..f240924526 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/ConfigurationChecks.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/ConfigurationChecks.java @@ -17,10 +17,6 @@ package io.codelaser.maddi.run.config.util; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedHashMap; @@ -28,6 +24,11 @@ import java.util.Map; import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.SourceSet; + /** * What must be true of an {@link io.codelaser.maddi.inspection.api.resource.InputConfiguration} before anything * reads it, whichever of the three producers built it. diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/JavaModules.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/JavaModules.java index b8a651c3c1..7e72b5641d 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/JavaModules.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/JavaModules.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.run.config.util; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; - import java.net.URI; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; + public class JavaModules { /** diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/JsonStreaming.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/JsonStreaming.java index 352e3054a8..17c5c7ed46 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/JsonStreaming.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/JsonStreaming.java @@ -17,6 +17,19 @@ package io.codelaser.maddi.run.config.util; +import java.io.IOException; +import java.net.URI; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.fasterxml.jackson.core.JacksonException; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; @@ -29,8 +42,7 @@ import com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; -import io.codelaser.maddi.run.config.AnalysisHintsConfigurationImpl; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.runtime.LanguageConfiguration; import io.codelaser.maddi.cst.impl.runtime.LanguageConfigurationImpl; @@ -38,18 +50,8 @@ import io.codelaser.maddi.inspection.api.resource.MD5FingerPrint; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.net.URI; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; +import io.codelaser.maddi.run.config.AnalysisHintsConfigurationImpl; public class JsonStreaming { private static final Logger LOGGER = LoggerFactory.getLogger(JsonStreaming.class); diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/PluginInputConfiguration.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/PluginInputConfiguration.java index ebc645dd9f..a543361a26 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/PluginInputConfiguration.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/PluginInputConfiguration.java @@ -17,14 +17,9 @@ package io.codelaser.maddi.run.config.util; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.graph.G; -import io.codelaser.maddi.graph.V; -import io.codelaser.maddi.graph.op.Linearize; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; - import java.util.ArrayDeque; import java.util.ArrayList; +import java.util.Comparator; import java.util.Deque; import java.util.HashSet; import java.util.LinkedHashSet; @@ -33,6 +28,12 @@ import java.util.Set; import java.util.function.Consumer; +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.graph.G; +import io.codelaser.maddi.graph.V; +import io.codelaser.maddi.graph.op.Linearize; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; + /** * Walking a dependency graph out into an {@link InputConfiguration}: the last step of both build plugins, and * the same twenty lines in each. @@ -88,7 +89,7 @@ public static void emit(InputConfiguration.Builder builder, // touched neither. // ⚠ The same guard, for the same reason, is already stated in CompileListToInputConfiguration // over the jmod parts; the plugin path never had it. - dependencies.sort(java.util.Comparator.comparing(SourceSet::name)); + dependencies.sort(Comparator.comparing(SourceSet::name)); } SourceSet sourceSet = allByName.get(name); if (sourceSet == null) { diff --git a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/PluginSourceSets.java b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/PluginSourceSets.java index 0bfebd4e85..502c4be8ba 100644 --- a/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/PluginSourceSets.java +++ b/maddi-run-config/src/main/java/io/codelaser/maddi/run/config/util/PluginSourceSets.java @@ -17,12 +17,6 @@ package io.codelaser.maddi.run.config.util; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.net.URI; @@ -40,6 +34,12 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; + /** * The source set of a build plugin: the Gradle and the Maven plugin both ask their build tool the same * two questions -- which directories hold this set's sources, and where does the build compile them to -- and diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAbsorbedSourceSetStaysReadable.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAbsorbedSourceSetStaysReadable.java index a0b6fce8e1..cf77444184 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAbsorbedSourceSetStaysReadable.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAbsorbedSourceSetStaysReadable.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.net.URI; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * ⛔⛔ TWO INVOCATIONS OVER ONE SOURCE TREE HAVE TWO DESTINATIONS, AND ONLY ONE OF THEM SURVIVES. diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAnnotationProcessorOutput.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAnnotationProcessorOutput.java index 246e9eab27..80b22edd51 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAnnotationProcessorOutput.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAnnotationProcessorOutput.java @@ -17,14 +17,9 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; +import java.io.File; import java.io.IOException; import java.net.URI; import java.nio.file.Files; @@ -32,7 +27,15 @@ import java.util.List; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * ⛔⛔ THE DEFECT: an output directory that becomes a source set stops being a classpath entry, so a @@ -108,7 +111,7 @@ private static SourceSet sourceSet(String name, Path destination, List sou private static List relativeClassFiles(Path directory) throws IOException { try (Stream walk = Files.walk(directory)) { return walk.filter(p -> p.toString().endsWith(".class")) - .map(p -> directory.relativize(p).toString().replace(java.io.File.separatorChar, '/')) + .map(p -> directory.relativize(p).toString().replace(File.separatorChar, '/')) .sorted().toList(); } } diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAntLayout.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAntLayout.java index e2976b2b60..138cb4ec67 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAntLayout.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestAntLayout.java @@ -1,9 +1,6 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.io.OutputStream; @@ -13,7 +10,11 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; /** * Cassandra's Ant build in miniature (2026-09-18), ON DISK, because the defects are only visible, and only diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestEncapsulatedImports.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestEncapsulatedImports.java index b825de1d9c..b9a61e92d3 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestEncapsulatedImports.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestEncapsulatedImports.java @@ -1,17 +1,18 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; /** * A build at {@code -source 8} compiles without module encapsulation; the parse does not. The set then states diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestExcludeSourceSets.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestExcludeSourceSets.java index cfa81ce905..fbecbc656f 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestExcludeSourceSets.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestExcludeSourceSets.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.net.URI; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * ⛔⛔ A COMPILE TASK LIST CANNOT KEEP A SOURCE SET OUT OF THE PARSE, which is the entire reason this exists. diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestExternalJarNamedLikeAModule.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestExternalJarNamedLikeAModule.java index 02ba6508b3..8bf7fe06a8 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestExternalJarNamedLikeAModule.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestExternalJarNamedLikeAModule.java @@ -1,12 +1,13 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; /** * PROBE: an external library whose FILE NAME begins with a reactor module's directory name. diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestGradleSiblingJarOnClasspath.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestGradleSiblingJarOnClasspath.java index 6eaadfeeea..14cc3ab3c6 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestGradleSiblingJarOnClasspath.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestGradleSiblingJarOnClasspath.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; /** * A NON-modular consumer gets a gradle sibling's jar ({@code build/libs/x-0.9.1.jar}) on {@code -classpath}. The diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestNamesAreIdentities.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestNamesAreIdentities.java index 420282de7f..5f78d79c6f 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestNamesAreIdentities.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestNamesAreIdentities.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.net.URI; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A {@code SourceSet}'s NAME is its identity — its own contract says so: "source sets are identified by their diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestPartialReleaseIsNotGlobal.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestPartialReleaseIsNotGlobal.java index 1e8abd7887..839855d7ad 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestPartialReleaseIsNotGlobal.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestPartialReleaseIsNotGlobal.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; /** * A release stated by SOME compile invocations must not become the configuration's global release: the parse diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestReactorJarOnClasspath.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestReactorJarOnClasspath.java index 947f6024d7..7aa92acaf5 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestReactorJarOnClasspath.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestReactorJarOnClasspath.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; /** * ⛔⛔ A REACTOR SIBLING'S PACKAGED JAR ON THE {@code -classpath} IS ITS SOURCE SET'S OUTPUT, AND WAS READ AS diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestShadedJar.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestShadedJar.java index 980b22c6b2..387df71ad8 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestShadedJar.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestShadedJar.java @@ -1,9 +1,6 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.io.OutputStream; @@ -13,7 +10,11 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; /** * Pulsar's shaded client in miniature (2026-09-24), ON DISK, like {@link TestAntLayout}. diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestSourceSetKind.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestSourceSetKind.java index ee8d942c24..eae6878f87 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestSourceSetKind.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestSourceSetKind.java @@ -17,15 +17,16 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; /** * ⛔⛔ A SOURCE SET MUST SAY IT IS A TEST SET (`#89`), AND AN ABSENT BOOLEAN IS THE HARDEST KIND OF WRONG: every diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestStatedSourceOlderThanRunningJdk.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestStatedSourceOlderThanRunningJdk.java index c45cc3774f..5551e6bdd9 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestStatedSourceOlderThanRunningJdk.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestStatedSourceOlderThanRunningJdk.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.run.config.compile; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.util.List; - import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.List; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + /** * A build that states {@code -source N} below the running JDK compiled its API against its own, older platform; * the parse compiles it against the running one, and every type removed in between stops resolving. The cost is diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestTestJarOnClasspath.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestTestJarOnClasspath.java index a93d703297..089ff0db95 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestTestJarOnClasspath.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestTestJarOnClasspath.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; /** * ⛔⛔ A MODULE'S TEST-JAR SHARES AN OUTPUT ROOT WITH ITS MAIN JAR, AND WAS HANDED TO THE MAIN SOURCE SET. diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestTypeUseAnnotationClosure.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestTypeUseAnnotationClosure.java index f142559712..270e5dfaa2 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestTypeUseAnnotationClosure.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestTypeUseAnnotationClosure.java @@ -16,22 +16,28 @@ */ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; +import java.io.File; import java.io.IOException; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; -import static org.junit.jupiter.api.Assertions.*; +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * A compile classpath is not a closure over the TYPE_USE annotations its dependencies carry. @@ -82,7 +88,7 @@ public static void compileTheFixture() throws IOException { import java.lang.annotation.*; @Target(ElementType.METHOD) @Retention(RetentionPolicy.CLASS) public @interface Decl {} """); - carrier = compile(javac, "carrier", annotations + java.io.File.pathSeparator + declAnnotations, """ + carrier = compile(javac, "carrier", annotations + File.pathSeparator + declAnnotations, """ package lib; public class Carrier { @decl.Decl public @tu.TU String hello() { return ""; } } """); @@ -113,21 +119,21 @@ public class Other {} * ⚠ The file is named after the PUBLIC type it declares; javac rejects any other name, which is how the * first version of this fixture failed. */ - private static final java.util.regex.Pattern DECLARES = - java.util.regex.Pattern.compile("public (?:@interface|class|interface|record|enum) (\\w+)"); + private static final Pattern DECLARES = + Pattern.compile("public (?:@interface|class|interface|record|enum) (\\w+)"); private static Path compile(JavaCompiler javac, String name, String cp, String... sources) throws IOException { Path src = Files.createDirectories(root.resolve(name).resolve("src")); Path out = Files.createDirectories(root.resolve(name).resolve("classes")); - List files = new java.util.ArrayList<>(); + List files = new ArrayList<>(); for (String source : sources) { - java.util.regex.Matcher m = DECLARES.matcher(source); + Matcher m = DECLARES.matcher(source); assertTrue(m.find(), "cannot see what this source declares: " + source); Path f = src.resolve(m.group(1) + ".java"); Files.writeString(f, source); files.add(f.toString()); } - List args = new java.util.ArrayList<>(List.of("-d", out.toString())); + List args = new ArrayList<>(List.of("-d", out.toString())); if (cp != null) args.addAll(List.of("-classpath", cp)); args.addAll(files); assertEquals(0, javac.run(null, null, System.err, args.toArray(String[]::new)), @@ -144,18 +150,18 @@ private static Path compileModule(JavaCompiler javac, String name, String module String... sources) throws IOException { Path src = Files.createDirectories(root.resolve(name).resolve("src")); Path out = Files.createDirectories(root.resolve(name).resolve("classes")); - List files = new java.util.ArrayList<>(); + List files = new ArrayList<>(); Path mi = src.resolve("module-info.java"); Files.writeString(mi, moduleInfo); files.add(mi.toString()); for (String source : sources) { - java.util.regex.Matcher m = DECLARES.matcher(source); + Matcher m = DECLARES.matcher(source); assertTrue(m.find(), "cannot see what this source declares: " + source); Path f = src.resolve(m.group(1) + ".java"); Files.writeString(f, source); files.add(f.toString()); } - List args = new java.util.ArrayList<>(List.of("-d", out.toString())); + List args = new ArrayList<>(List.of("-d", out.toString())); if (modulePath != null) args.addAll(List.of("--module-path", modulePath)); args.addAll(files); assertEquals(0, javac.run(null, null, System.err, args.toArray(String[]::new)), diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestWorkingDirectoryIsTheBuildRoot.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestWorkingDirectoryIsTheBuildRoot.java index 6bc05354f3..783bf59e34 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestWorkingDirectoryIsTheBuildRoot.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/compile/TestWorkingDirectoryIsTheBuildRoot.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.run.config.compile; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; /** * ⛔⛔ THE ANALYSED TREE MUST NOT BE FOREIGN TO ITSELF. An {@code InputConfiguration}'s working diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestAntJavacBlock.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestAntJavacBlock.java index 0e5095d204..360616ea70 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestAntJavacBlock.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestAntJavacBlock.java @@ -17,12 +17,13 @@ package io.codelaser.maddi.run.config.javac; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; +import java.util.ArrayList; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; /** * The fourth build tool, and the only one whose compile invocation does not fit on a line. @@ -113,7 +114,7 @@ public void aLogWithoutAnAntBlockIsUnchanged() { @DisplayName("control: two blocks in one log are two invocations, and the lines between them survive") @Test public void twoBlocks() { - List two = new java.util.ArrayList<>(LOG); + List two = new ArrayList<>(LOG); two.addAll(LOG); List folded = ParseJavacList.foldAntBlocks(two); assertEquals(2, folded.stream().filter(l -> l.startsWith("javac ")).count(), () -> folded.toString()); diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestExtractBuildProjectNames.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestExtractBuildProjectNames.java index 6292080f4d..298a324cc8 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestExtractBuildProjectNames.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestExtractBuildProjectNames.java @@ -1,13 +1,13 @@ package io.codelaser.maddi.run.config.javac; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; public class TestExtractBuildProjectNames { @Disabled diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavac.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavac.java index da75009cf4..7c0dc34b6b 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavac.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavac.java @@ -1,13 +1,13 @@ package io.codelaser.maddi.run.config.javac; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; /** * ParseJavacList against a compile log that is CHECKED IN, and nothing else. diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavacGradleLine.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavacGradleLine.java index fd8bdbb660..71e78aad7f 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavacGradleLine.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavacGradleLine.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.run.config.javac; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; /** * {@link Javac#parse} against a line Gradle writes, rather than one Maven writes. diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavacTimefoldSolverCore.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavacTimefoldSolverCore.java index aa18e70ead..528e7ebad3 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavacTimefoldSolverCore.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/javac/TestJavacTimefoldSolverCore.java @@ -1,17 +1,19 @@ package io.codelaser.maddi.run.config.javac; -import com.fasterxml.jackson.databind.ObjectMapper; -import io.codelaser.maddi.run.config.util.JsonStreaming; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.util.JsonStreaming; public class TestJavacTimefoldSolverCore { @Test diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestBuildFiles.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestBuildFiles.java index 6255f64f9c..92f157f790 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestBuildFiles.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestBuildFiles.java @@ -17,20 +17,23 @@ package io.codelaser.maddi.run.config.util; -import com.fasterxml.jackson.databind.ObjectMapper; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.BuildFilesCapture; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.time.Instant; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.BuildFilesCapture; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; /** The build files an input configuration declares, hashed at capture time, and their JSON ({@link BuildFiles}). */ public class TestBuildFiles { @@ -74,7 +77,7 @@ public void stableUntilABuildFileChanges(@TempDir Path tmp) throws IOException { assertNotEquals(first.sha256().get("a/build.gradle.kts"), third.sha256().get("a/build.gradle.kts")); assertEquals(first.sha256().get("settings.gradle.kts"), third.sha256().get("settings.gradle.kts")); assertEquals(root.toAbsolutePath().normalize().toString(), third.root()); - assertNotNull(java.time.Instant.parse(third.capturedAt())); + assertNotNull(Instant.parse(third.capturedAt())); } @Test diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestJavaModules.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestJavaModules.java index 6fc6319095..d6d8cb35db 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestJavaModules.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestJavaModules.java @@ -17,13 +17,14 @@ package io.codelaser.maddi.run.config.util; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.util.List; import java.util.Set; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; /** * The JDK class path parts both build plugins contribute. Each used to build them itself, and each diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestPluginInputConfiguration.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestPluginInputConfiguration.java index 7926299d56..a58ac839c1 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestPluginInputConfiguration.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestPluginInputConfiguration.java @@ -17,13 +17,7 @@ package io.codelaser.maddi.run.config.util; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.graph.G; -import io.codelaser.maddi.graph.ImmutableGraph; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.net.URI; import java.util.ArrayList; @@ -31,7 +25,14 @@ import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.graph.G; +import io.codelaser.maddi.graph.ImmutableGraph; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; /** * The last step both build plugins share: walking a dependency graph out into an {@link InputConfiguration}. diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestPluginSourceSets.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestPluginSourceSets.java index d17299f37a..0d84a7233d 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestPluginSourceSets.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestPluginSourceSets.java @@ -17,9 +17,7 @@ package io.codelaser.maddi.run.config.util; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.ByteArrayInputStream; import java.io.File; @@ -33,7 +31,10 @@ import java.util.jar.JarOutputStream; import java.util.jar.Manifest; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; /** * The construction both build plugins share. The assertions here are the ones that used to hold in neither diff --git a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestStreaming.java b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestStreaming.java index 0fe099cb9e..e8989f533c 100644 --- a/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestStreaming.java +++ b/maddi-run-config/src/test/java/io/codelaser/maddi/run/config/util/TestStreaming.java @@ -17,26 +17,28 @@ package io.codelaser.maddi.run.config.util; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.net.URI; +import java.nio.file.Path; +import java.util.List; +import java.util.Set; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; -import io.codelaser.maddi.run.config.AnalysisHintsConfigurationImpl; -import io.codelaser.maddi.run.config.Configuration; + import io.codelaser.maddi.cst.api.element.FingerPrint; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.api.resource.MD5FingerPrint; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import java.net.URI; -import java.nio.file.Path; -import java.util.List; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.assertNotNull; +import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; +import io.codelaser.maddi.run.config.AnalysisHintsConfigurationImpl; +import io.codelaser.maddi.run.config.Configuration; public class TestStreaming { @Test diff --git a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/Main.java b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/Main.java index 171931d9bb..173300f456 100644 --- a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/Main.java +++ b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/Main.java @@ -17,15 +17,13 @@ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.run.config.Configuration; -import io.codelaser.maddi.run.config.report.ErrorReport; -import io.codelaser.maddi.run.config.report.ExitCode; -import io.codelaser.maddi.run.config.util.JsonStreaming; -import io.codelaser.maddi.run.kotlinmain.kotlinc.ParseMixedList; -import io.codelaser.maddi.run.openjdkmain.RunAnalyzer; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.DetectKotlinSources; -import io.codelaser.maddi.kotlin.realm.K2Realm; +import static io.codelaser.maddi.run.openjdkmain.Main.*; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.DefaultParser; @@ -34,12 +32,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import static io.codelaser.maddi.run.openjdkmain.Main.*; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.DetectKotlinSources; +import io.codelaser.maddi.kotlin.realm.K2Realm; +import io.codelaser.maddi.run.config.Configuration; +import io.codelaser.maddi.run.config.report.ErrorReport; +import io.codelaser.maddi.run.config.report.ExitCode; +import io.codelaser.maddi.run.config.util.JsonStreaming; +import io.codelaser.maddi.run.kotlinmain.kotlinc.ParseMixedList; +import io.codelaser.maddi.run.openjdkmain.RunAnalyzer; /** * The mixed Java+Kotlin CLI — one entry point, not a second tool. It takes the same command line diff --git a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/RunMixedPrepAnalyzer.java b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/RunMixedPrepAnalyzer.java index 8670c9ca0e..c64808cb2c 100644 --- a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/RunMixedPrepAnalyzer.java +++ b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/RunMixedPrepAnalyzer.java @@ -17,6 +17,24 @@ package io.codelaser.maddi.run.kotlinmain; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.analysis.api.AnalysisEngine; import io.codelaser.maddi.analysis.api.AnalysisEngines; import io.codelaser.maddi.analysis.api.AnalysisProblem; @@ -24,39 +42,23 @@ import io.codelaser.maddi.analysis.api.ModificationRequest; import io.codelaser.maddi.analysis.api.PrepRequest; import io.codelaser.maddi.callgraph.ComputeAnalysisOrder; -import java.io.File; -import io.codelaser.maddi.util.Trie; import io.codelaser.maddi.cst.api.analysis.Value; +import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.MethodCall; -import io.codelaser.maddi.cst.api.info.MethodInfo; -import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.Info; +import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.runtime.Runtime; import io.codelaser.maddi.cst.impl.analysis.PropertyImpl; import io.codelaser.maddi.cst.impl.analysis.ValueImpl; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.kotlin.api.PlaceholderCensus; +import io.codelaser.maddi.graph.G; import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; +import io.codelaser.maddi.kotlin.api.PlaceholderCensus; import io.codelaser.maddi.kotlin.realm.K2Realm; -import io.codelaser.maddi.graph.G; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.IdentityHashMap; -import java.util.Map; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; +import io.codelaser.maddi.util.Trie; /** * Prep-only runner for a mixed Java+Kotlin project. Parses the input configuration with @@ -361,10 +363,10 @@ private static void writeVerdicts(List types) throws IOException { private static void writeMemberVerdicts(List types) throws IOException { String target = System.getProperty("maddi.memberVerdictDump"); if (target == null || target.isBlank()) return; - List lines = new java.util.ArrayList<>(); + List lines = new ArrayList<>(); Map seen = new IdentityHashMap<>(); for (TypeInfo type : types) memberVerdicts(type, lines, seen); - java.util.Collections.sort(lines); + Collections.sort(lines); Path path = Path.of(target); if (path.getParent() != null) Files.createDirectories(path.getParent()); Files.write(path, lines); diff --git a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/Kotlinc.java b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/Kotlinc.java index 19f690ddf0..4dc7756c21 100644 --- a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/Kotlinc.java +++ b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/Kotlinc.java @@ -1,9 +1,5 @@ package io.codelaser.maddi.run.kotlinmain.kotlinc; -import io.codelaser.maddi.run.config.compile.CompileInvocation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -12,6 +8,12 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.run.config.compile.CompileInvocation; /** * One parsed {@code kotlinc} command line — the Kotlin analogue of {@code Javac}. A {@link CompileInvocation} @@ -92,7 +94,7 @@ private static int parseJvmTarget(String version) { } // options that consume the following token as their value (so it is not misread as a source file) - private static final java.util.Set VALUE_OPTIONS = java.util.Set.of( + private static final Set VALUE_OPTIONS = Set.of( "-d", "-classpath", "-cp", "-module-name", "-jvm-target", "-api-version", "-language-version", "-jdk-home", "-kotlin-home", "-script-templates", "-jvm-default", "-expression", "-e", "-P"); diff --git a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/ParseKotlincList.java b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/ParseKotlincList.java index fa367a7586..f0e435d0bb 100644 --- a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/ParseKotlincList.java +++ b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/ParseKotlincList.java @@ -1,13 +1,7 @@ package io.codelaser.maddi.run.kotlinmain.kotlinc; -import io.codelaser.maddi.run.config.compile.CompileListToInputConfiguration; -import io.codelaser.maddi.run.config.compile.CompileInvocation; -import io.codelaser.maddi.run.config.compile.CompileListToSourceSets; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.BufferedInputStream; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.nio.file.Files; @@ -17,6 +11,14 @@ import java.util.regex.Pattern; import java.util.zip.GZIPInputStream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.run.config.compile.CompileInvocation; +import io.codelaser.maddi.run.config.compile.CompileListToInputConfiguration; +import io.codelaser.maddi.run.config.compile.CompileListToSourceSets; + /** * Reads a build log containing {@code kotlinc} command lines and reconstructs an {@link InputConfiguration}. * The Kotlin analogue of {@code ParseJavacList}: same log-reading (plain / {@code .gz} / json-list), same @@ -188,6 +190,6 @@ private static List splitCommaList(String inside) { private static List splitPath(String path) { if (path.isBlank()) return List.of(); - return Arrays.stream(path.split(java.io.File.pathSeparator)).filter(s -> !s.isBlank()).toList(); + return Arrays.stream(path.split(File.pathSeparator)).filter(s -> !s.isBlank()).toList(); } } diff --git a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/ParseMixedList.java b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/ParseMixedList.java index 1cfc99aefe..e17fdf26cb 100644 --- a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/ParseMixedList.java +++ b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/ParseMixedList.java @@ -1,12 +1,5 @@ package io.codelaser.maddi.run.kotlinmain.kotlinc; -import io.codelaser.maddi.run.config.compile.CompileInvocation; -import io.codelaser.maddi.run.config.javac.Javac; -import io.codelaser.maddi.run.config.javac.ParseJavacList; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; @@ -17,6 +10,14 @@ import java.util.List; import java.util.zip.GZIPInputStream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.run.config.compile.CompileInvocation; +import io.codelaser.maddi.run.config.javac.Javac; +import io.codelaser.maddi.run.config.javac.ParseJavacList; + /** * Phase 5 — one build log, both compilers. Reads a single log that contains {@code javac} and * {@code kotlinc} invocations (a mixed Java+Kotlin project), and reconstructs one {@link InputConfiguration} diff --git a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/SharedDestination.java b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/SharedDestination.java index 78ece3ec91..5b0012bb91 100644 --- a/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/SharedDestination.java +++ b/maddi-run-kotlin/src/main/java/io/codelaser/maddi/run/kotlinmain/kotlinc/SharedDestination.java @@ -1,7 +1,5 @@ package io.codelaser.maddi.run.kotlinmain.kotlinc; -import io.codelaser.maddi.run.config.compile.CompileInvocation; - import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedHashMap; @@ -12,6 +10,8 @@ import java.util.Set; import java.util.stream.Stream; +import io.codelaser.maddi.run.config.compile.CompileInvocation; + /** * A {@code kotlinc} and a {@code javac} invocation that write into ONE output directory, as one invocation. * diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/K2RealmTestBootstrap.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/K2RealmTestBootstrap.java index b38dfd7fe9..ec72e535ee 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/K2RealmTestBootstrap.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/K2RealmTestBootstrap.java @@ -17,11 +17,13 @@ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.kotlin.realm.K2Realm; +import java.io.IOException; +import java.io.UncheckedIOException; + import org.junit.platform.launcher.LauncherSession; import org.junit.platform.launcher.LauncherSessionListener; -import java.io.UncheckedIOException; +import io.codelaser.maddi.kotlin.realm.K2Realm; /** * Installs the K2 realm once, for every test in this module. The Kotlin compiler is not on this JVM's @@ -40,7 +42,7 @@ public class K2RealmTestBootstrap implements LauncherSessionListener { public void launcherSessionOpened(LauncherSession session) { try { K2Realm.installIfAbsent(); - } catch (java.io.IOException e) { + } catch (IOException e) { throw new UncheckedIOException( "the test JVM could not build the K2 realm; see maddi-run-kotlin/build.gradle.kts, which" + " passes -D" + K2Realm.CLASSPATH_PROPERTY + " from the k2Runtime configuration", e); diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCensusRatchet.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCensusRatchet.java index f06f8e24eb..08f7ce4f75 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCensusRatchet.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCensusRatchet.java @@ -16,13 +16,13 @@ */ package io.codelaser.maddi.run.kotlinmain; -import org.junit.jupiter.api.Test; -import org.opentest4j.AssertionFailedError; - import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; +import org.opentest4j.AssertionFailedError; + /** * ⚠ The ratchet is an assertion, and an assertion nobody has seen fail is a guess. The corpus runs can only * ever exercise its PASSING side (the numbers are, by construction, the recorded ones), so both failing diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCompilerIsNotOnTheClasspath.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCompilerIsNotOnTheClasspath.java index 3995e54b89..fc51c08ece 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCompilerIsNotOnTheClasspath.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCompilerIsNotOnTheClasspath.java @@ -17,13 +17,16 @@ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.kotlin.api.KotlinFrontEnds; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertNull; + +import java.util.List; + +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.kotlin.api.KotlinFrontEnds; /** * ⭐ What makes every other test in this module evidence for the isolation. The corpus runs here parse @@ -76,7 +79,7 @@ public void antlrIsTheRealAntlr() throws NoSuchMethodException { */ @Test public void nothingOnThisClasspathIsServedByTheCompilerJar() { - for (String fqn : java.util.List.of( + for (String fqn : List.of( "org.antlr.v4.runtime.CharStreams", "com.google.common.collect.ImmutableList", "com.sun.jna.Native", diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCorpusRequirement.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCorpusRequirement.java index d748089eba..6e473eecfd 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCorpusRequirement.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestCorpusRequirement.java @@ -16,17 +16,18 @@ */ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.util.corpus.Corpora; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; -import org.opentest4j.TestAbortedException; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.nio.file.Files; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.opentest4j.TestAbortedException; + +import io.codelaser.maddi.util.corpus.Corpora; /** * ⛔ The guard that makes every other corpus test's green mean something. A corpus test that SKIPS because diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestDestructuring.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestDestructuring.java index 239113f179..630b0f8f2b 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestDestructuring.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestDestructuring.java @@ -16,21 +16,23 @@ */ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.kotlin.api.PlaceholderCensus; /** * Destructuring, in a declaration and in a lambda's parameter list. A destructured lambda parameter `(a, b) ->` is @@ -66,7 +68,7 @@ fun useEntry(e: Map.Entry): String = entry(e) { (k, v) -> k + v } SourceSet kotlinSet = new SourceSetImpl.Builder().setName("kotlin/main") .setSourceDirectories(List.of(kDir)).setUri(kDir.toUri()).setDependencies(List.of(javaSet)).build(); String cp = System.getProperty("maddi.k2.classpath", ""); - String stdlib = Stream.of(cp.split(java.io.File.pathSeparator)) + String stdlib = Stream.of(cp.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches("kotlin-stdlib-\\d[^-]*\\.jar")).findFirst().orElseThrow(); MixedProjectInspector.Result parsed = new MixedProjectInspector().parse(new InputConfigurationImpl.Builder() .addSourceSets(javaSet).addSourceSets(kotlinSet).addClassPath(stdlib).build()); diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestDetektReferenceRecall.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestDetektReferenceRecall.java index eb9835aba7..5d330c88d1 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestDetektReferenceRecall.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestDetektReferenceRecall.java @@ -16,6 +16,18 @@ */ package io.codelaser.maddi.run.kotlinmain; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; + +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.cst.impl.runtime.RuntimeImpl; import io.codelaser.maddi.inspection.kotlin.KotlinInspector; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; @@ -24,17 +36,6 @@ import io.codelaser.maddi.kotlin.realm.K2Realm; import io.codelaser.maddi.run.config.util.JsonStreaming; import io.codelaser.maddi.util.corpus.Corpora; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertTrue; /** * How much of what a source editor must update is visible in detekt's Kotlin CST: every project reference K2 resolves, diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestInlineOnlyLowering.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestInlineOnlyLowering.java index d58dc7aaae..4c308f069f 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestInlineOnlyLowering.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestInlineOnlyLowering.java @@ -16,21 +16,23 @@ */ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.kotlin.api.PlaceholderCensus; /** * An {@code @InlineOnly} stdlib member has no method in the class file -- kotlinc inlines its body -- so the kotlin @@ -147,7 +149,7 @@ fun td(): Int = TODO() } private static String jar(String classPath, String pattern) { - return Stream.of(classPath.split(java.io.File.pathSeparator)) + return Stream.of(classPath.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches(pattern)).findFirst().orElseThrow(); } } diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestJavaSetterOverloads.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestJavaSetterOverloads.java index d4be938975..43a4ac0bd1 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestJavaSetterOverloads.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestJavaSetterOverloads.java @@ -16,21 +16,23 @@ */ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.kotlin.api.PlaceholderCensus; /** * Javalin's Java-interop shapes in the class-file world (the k2 unit fixture builds JDK types from K2, where a Java @@ -99,7 +101,7 @@ fun g(s: String): Int = parse(s) } private static String jar(String classPath, String pattern) { - return Stream.of(classPath.split(java.io.File.pathSeparator)) + return Stream.of(classPath.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches(pattern)).findFirst().orElseThrow(); } } diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryCompanions.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryCompanions.java index 72143c6762..afe1635bf3 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryCompanions.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryCompanions.java @@ -16,21 +16,23 @@ */ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.kotlin.api.PlaceholderCensus; /** * A library class NAME used as a value is its companion (`ClassId.fromString(…)`, 18× on detekt; @@ -116,7 +118,7 @@ class Unused { } private static String jar(String classPath, String pattern) { - return Stream.of(classPath.split(java.io.File.pathSeparator)) + return Stream.of(classPath.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches(pattern)).findFirst().orElseThrow(); } } diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryShellMembers.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryShellMembers.java index befe165872..925b5d0944 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryShellMembers.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryShellMembers.java @@ -16,26 +16,29 @@ */ package io.codelaser.maddi.run.kotlinmain; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.MethodReference; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation; import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Stream; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * ⛔ A class-file type the Java front end had registered as a SHELL -- loaded hierarchy-only because another type's @@ -128,20 +131,20 @@ class P(start: Int) : java.text.ParsePosition(start + 1) assertEquals("java.net.URLStreamHandler.()", superCall(parsed, "a.H")); assertEquals("java.text.ParsePosition.(int)", superCall(parsed, "a.P")); // ...with its argument: the reads a dropped call took with it - io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation eci = eci(parsed, "a.P"); + ExplicitConstructorInvocation eci = eci(parsed, "a.P"); assertEquals(1, eci.parameterExpressions().size(), eci.toString()); PlaceholderCensus census = PlaceholderCensus.of(parsed.getKotlinTypes()); assertEquals(0, census.getTotal(), census.dumpLines().toString()); } - private static io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation eci( + private static ExplicitConstructorInvocation eci( MixedProjectInspector.Result parsed, String fqn) { TypeInfo t = parsed.getKotlinTypes().stream().filter(x -> fqn.equals(x.fullyQualifiedName())).findFirst() .orElseThrow(); MethodInfo ctor = t.constructors().getFirst(); return ctor.methodBody().statements().stream() - .filter(s -> s instanceof io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation) - .map(s -> (io.codelaser.maddi.cst.api.statement.ExplicitConstructorInvocation) s) + .filter(s -> s instanceof ExplicitConstructorInvocation) + .map(s -> (ExplicitConstructorInvocation) s) .findFirst().orElseThrow(() -> new AssertionError(fqn + ": the super call was dropped, body " + ctor.methodBody().statements())); } @@ -165,7 +168,7 @@ private static List targets(TypeInfo type, String name) { private static String kotlinStdlibJar() { String cp = System.getProperty("maddi.k2.classpath", ""); - return Stream.of(cp.split(java.io.File.pathSeparator)) + return Stream.of(cp.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches("kotlin-stdlib-\\d[^-]*\\.jar")) .findFirst().orElseThrow(() -> new AssertionError("no kotlin-stdlib jar on " + cp)); } diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryVarargCalls.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryVarargCalls.java index 8a58b53d77..a3d168edca 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryVarargCalls.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestLibraryVarargCalls.java @@ -16,21 +16,23 @@ */ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.inspection.mixed.MixedProjectInspector; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.kotlin.api.PlaceholderCensus; /** * A LIBRARY function with a vararg parameter, called omitting a defaulted argument or passing one after the vararg, @@ -83,7 +85,7 @@ fun c(e: PsiElement): KtElement? = } private static String jar(String classPath, String pattern) { - return Stream.of(classPath.split(java.io.File.pathSeparator)) + return Stream.of(classPath.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches(pattern)).findFirst().orElseThrow(); } } diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestOneEntryPoint.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestOneEntryPoint.java index 641675b9e6..236860c56b 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestOneEntryPoint.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestOneEntryPoint.java @@ -17,29 +17,32 @@ package io.codelaser.maddi.run.kotlinmain; -import io.codelaser.maddi.run.config.report.ExitCode; -import io.codelaser.maddi.run.config.util.JavaModules; -import io.codelaser.maddi.run.config.util.JsonStreaming; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.apache.commons.cli.Option; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.inspection.resource.SourceSetImpl; +import io.codelaser.maddi.run.config.report.ExitCode; +import io.codelaser.maddi.run.config.util.JavaModules; +import io.codelaser.maddi.run.config.util.JsonStreaming; /** * "One entry point" as a test. {@code bin/maddi-kotlin} must be a strict SUPERSET of {@code bin/maddi}: @@ -48,7 +51,7 @@ */ public class TestOneEntryPoint { - private static Set longOptions(org.apache.commons.cli.Options options) { + private static Set longOptions(Options options) { return options.getOptions().stream().map(Option::getLongOpt).collect(Collectors.toUnmodifiableSet()); } @@ -170,7 +173,7 @@ private static String[] kotlinProject(Path tmp) throws Exception { } private static String[] concat(String[] first, String... rest) { - String[] all = java.util.Arrays.copyOf(first, first.length + rest.length); + String[] all = Arrays.copyOf(first, first.length + rest.length); System.arraycopy(rest, 0, all, first.length, rest.length); return all; } diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestPrimitiveMembers.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestPrimitiveMembers.java index 56d5797d1b..331bbb8587 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestPrimitiveMembers.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestPrimitiveMembers.java @@ -16,6 +16,17 @@ */ package io.codelaser.maddi.run.kotlinmain; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.stream.Stream; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -24,15 +35,6 @@ import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.stream.Stream; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * A member of a Kotlin primitive (`i.toString()` 72x on detekt, `b.not()` 17x) has no Java declaration to bind to; each @@ -83,7 +85,7 @@ fun si(s: String): Char = s[0] SourceSet kotlinSet = new SourceSetImpl.Builder().setName("kotlin/main") .setSourceDirectories(List.of(kDir)).setUri(kDir.toUri()).setDependencies(List.of(javaSet)).build(); String cp = System.getProperty("maddi.k2.classpath", ""); - String stdlib = Stream.of(cp.split(java.io.File.pathSeparator)) + String stdlib = Stream.of(cp.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches("kotlin-stdlib-\\d[^-]*\\.jar")).findFirst().orElseThrow(); MixedProjectInspector.Result parsed = new MixedProjectInspector().parse(new InputConfigurationImpl.Builder() .addSourceSets(javaSet).addSourceSets(kotlinSet).addClassPath(stdlib).build()); diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestSuperCallTargets.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestSuperCallTargets.java index 6deb007be4..185e591c23 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestSuperCallTargets.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestSuperCallTargets.java @@ -16,6 +16,19 @@ */ package io.codelaser.maddi.run.kotlinmain; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.element.Element; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.MethodCall; @@ -26,17 +39,6 @@ import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Stream; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * What a Kotlin `super` binds to when the parent is Java -- source or a class file. @@ -101,7 +103,7 @@ override fun visitCallExpression(expression: KtCallExpression) { super.visitCall } private static String jar(String classPath, String pattern) { - return Stream.of(classPath.split(java.io.File.pathSeparator)) + return Stream.of(classPath.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches(pattern)).findFirst().orElseThrow(); } diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestTopLevelPropertyReads.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestTopLevelPropertyReads.java index d21efb7cee..39652f3c2a 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestTopLevelPropertyReads.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/TestTopLevelPropertyReads.java @@ -16,6 +16,17 @@ */ package io.codelaser.maddi.run.kotlinmain; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.stream.Stream; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -23,15 +34,6 @@ import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; import io.codelaser.maddi.kotlin.api.PlaceholderCensus; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.stream.Stream; - -import static org.junit.jupiter.api.Assertions.assertEquals; /** * A top-level property read from ANOTHER file or a library, by its bare name -- detekt's `NL` and ktlint's @@ -77,7 +79,7 @@ fun seq(): Sequence = sequence { } SourceSet kotlinSet = new SourceSetImpl.Builder().setName("kotlin/main") .setSourceDirectories(List.of(kDir)).setUri(kDir.toUri()).setDependencies(List.of(javaSet)).build(); String cp = System.getProperty("maddi.k2.classpath", ""); - String stdlib = Stream.of(cp.split(java.io.File.pathSeparator)) + String stdlib = Stream.of(cp.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches("kotlin-stdlib-\\d[^-]*\\.jar")).findFirst().orElseThrow(); MixedProjectInspector.Result parsed = new MixedProjectInspector().parse(new InputConfigurationImpl.Builder() .addSourceSets(javaSet).addSourceSets(kotlinSet).addClassPath(stdlib).build()); diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/kotlinc/TestKotlinc.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/kotlinc/TestKotlinc.java index 07b9a428f5..a5f3303463 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/kotlinc/TestKotlinc.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/kotlinc/TestKotlinc.java @@ -1,16 +1,19 @@ package io.codelaser.maddi.run.kotlinmain.kotlinc; -import io.codelaser.maddi.run.config.compile.CompileListToSourceSets; -import io.codelaser.maddi.cst.api.element.SourceSet; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.run.config.compile.CompileInvocation; +import io.codelaser.maddi.run.config.compile.CompileListToSourceSets; +import io.codelaser.maddi.run.config.javac.Javac; /** * Phase 1–3 coverage for the kotlinc source-set reconstruction: the {@link Kotlinc} tokenizer, the shared @@ -198,9 +201,9 @@ public void languageFactsReachTheSourceSet() throws IOException { assertTrue(kotlinOnly.languageLevel() <= 0, "kotlinc states no Java language level"); assertFalse(kotlinOnly.enablePreview()); - io.codelaser.maddi.run.config.javac.Javac javac = io.codelaser.maddi.run.config.javac.Javac.parse( + Javac javac = Javac.parse( "-d " + out + " -source 21 --enable-preview " + bar); - List merged = SharedDestination.merge(List.of(kotlinc, javac)); + List merged = SharedDestination.merge(List.of(kotlinc, javac)); assertEquals(1, merged.size()); SourceSet mixed = new CompileListToSourceSets().compute(merged).jSourceSets().getFirst().sourceSet(); assertEquals(21, mixed.languageLevel()); diff --git a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/kotlinc/TestMixedList.java b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/kotlinc/TestMixedList.java index 1cbaffc732..4459f9af4a 100644 --- a/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/kotlinc/TestMixedList.java +++ b/maddi-run-kotlin/src/test/java/io/codelaser/maddi/run/kotlinmain/kotlinc/TestMixedList.java @@ -1,17 +1,18 @@ package io.codelaser.maddi.run.kotlinmain.kotlinc; -import io.codelaser.maddi.run.config.compile.CompileInvocation; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.run.config.compile.CompileInvocation; /** * Phase 5: one build log holding both {@code kotlinc} and {@code javac} invocations produces one diff --git a/maddi-run-main/src/main/java/io/codelaser/maddi/run/main/Main.java b/maddi-run-main/src/main/java/io/codelaser/maddi/run/main/Main.java index 1027b53aa1..94939ea6af 100644 --- a/maddi-run-main/src/main/java/io/codelaser/maddi/run/main/Main.java +++ b/maddi-run-main/src/main/java/io/codelaser/maddi/run/main/Main.java @@ -17,21 +17,6 @@ package io.codelaser.maddi.run.main; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.cli.*; -import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; -import io.codelaser.maddi.run.config.AnalysisHintsConfigurationImpl; -import io.codelaser.maddi.run.config.ShippedAnalysisResults; -import io.codelaser.maddi.run.config.Configuration; -import io.codelaser.maddi.run.config.report.ExitCode; -import io.codelaser.maddi.run.config.GeneralConfiguration; -import io.codelaser.maddi.run.config.util.JsonStreaming; -import io.codelaser.maddi.cst.impl.runtime.LanguageConfigurationImpl; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -40,6 +25,23 @@ import java.util.Map; import java.util.function.Consumer; +import org.apache.commons.cli.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.codelaser.maddi.cst.impl.runtime.LanguageConfigurationImpl; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; +import io.codelaser.maddi.run.config.AnalysisHintsConfigurationImpl; +import io.codelaser.maddi.run.config.Configuration; +import io.codelaser.maddi.run.config.GeneralConfiguration; +import io.codelaser.maddi.run.config.ShippedAnalysisResults; +import io.codelaser.maddi.run.config.report.ExitCode; +import io.codelaser.maddi.run.config.util.JsonStreaming; + public class Main { private static final Logger LOGGER = LoggerFactory.getLogger(Main.class); diff --git a/maddi-run-main/src/main/java/io/codelaser/maddi/run/main/RunAnalyzer.java b/maddi-run-main/src/main/java/io/codelaser/maddi/run/main/RunAnalyzer.java index 7d05876427..5c7f3d72a2 100644 --- a/maddi-run-main/src/main/java/io/codelaser/maddi/run/main/RunAnalyzer.java +++ b/maddi-run-main/src/main/java/io/codelaser/maddi/run/main/RunAnalyzer.java @@ -17,6 +17,19 @@ package io.codelaser.maddi.run.main; +import java.io.IOException; +import java.lang.management.ManagementFactory; +import java.lang.management.MemoryMXBean; +import java.lang.management.MemoryUsage; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.function.Predicate; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import ch.qos.logback.classic.Level; import io.codelaser.maddi.analysis.api.AnalysisEngine; import io.codelaser.maddi.analysis.api.AnalysisEngines; @@ -26,39 +39,25 @@ import io.codelaser.maddi.analysis.api.ModificationOutcome; import io.codelaser.maddi.analysis.api.ModificationRequest; import io.codelaser.maddi.analysis.api.PrepRequest; -import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; import io.codelaser.maddi.callgraph.ComputeAnalysisOrder; import io.codelaser.maddi.callgraph.ComputeCallGraph; -import io.codelaser.maddi.run.rewire.RunRewireTests; -import io.codelaser.maddi.run.config.Configuration; -import io.codelaser.maddi.run.config.report.ErrorReport; import io.codelaser.maddi.cst.api.analysis.Message; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.resource.DetectKotlinSources; import io.codelaser.maddi.inspection.api.integration.JavaInspectorFactory; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.integration.JavaInspectorImpl; +import io.codelaser.maddi.inspection.resource.DetectKotlinSources; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; +import io.codelaser.maddi.run.config.Configuration; +import io.codelaser.maddi.run.config.report.ErrorReport; +import io.codelaser.maddi.run.rewire.RunRewireTests; import io.codelaser.maddi.util.Trie; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.lang.management.ManagementFactory; -import java.lang.management.MemoryMXBean; -import java.lang.management.MemoryUsage; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Stream; public class RunAnalyzer implements Runnable { private static final Logger LOGGER = LoggerFactory.getLogger(RunAnalyzer.class); @@ -110,7 +109,7 @@ public void run() { } private void runAnalyzer() throws IOException { - ((ch.qos.logback.classic.Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME)).setLevel(Level.INFO); + ((ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)).setLevel(Level.INFO); JavaInspector javaInspector = new JavaInspectorImpl(true, true); InputConfiguration inputConfiguration = configuration.inputConfiguration(); diff --git a/maddi-run-main/src/test/java/io/codelaser/maddi/run/main/TestPluginPreload.java b/maddi-run-main/src/test/java/io/codelaser/maddi/run/main/TestPluginPreload.java index 547d0a8488..70ba54cfb2 100644 --- a/maddi-run-main/src/test/java/io/codelaser/maddi/run/main/TestPluginPreload.java +++ b/maddi-run-main/src/test/java/io/codelaser/maddi/run/main/TestPluginPreload.java @@ -16,14 +16,15 @@ */ package io.codelaser.maddi.run.main; -import io.codelaser.maddi.run.config.ShippedAnalysisResults; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.List; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.run.config.ShippedAnalysisResults; /** * The Gradle and Maven plugins configure a run through {@link PluginOptions#analysisHintsMap}, which leaves the preload diff --git a/maddi-run-main/src/test/java/io/codelaser/maddi/run/main/TestRefuseKotlinSources.java b/maddi-run-main/src/test/java/io/codelaser/maddi/run/main/TestRefuseKotlinSources.java index ac3d6d530b..c580e25254 100644 --- a/maddi-run-main/src/test/java/io/codelaser/maddi/run/main/TestRefuseKotlinSources.java +++ b/maddi-run-main/src/test/java/io/codelaser/maddi/run/main/TestRefuseKotlinSources.java @@ -17,14 +17,9 @@ package io.codelaser.maddi.run.main; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.DetectKotlinSources; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.run.config.GeneralConfiguration; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.IOException; @@ -32,9 +27,15 @@ import java.nio.file.Path; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.DetectKotlinSources; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.GeneralConfiguration; /** * The Java entry points must REFUSE a project that holds Kotlin rather than skipping the {@code .kt} files and diff --git a/maddi-run-openjdk/src/main/java/io/codelaser/maddi/run/openjdkmain/Main.java b/maddi-run-openjdk/src/main/java/io/codelaser/maddi/run/openjdkmain/Main.java index 7fe533b0ff..a67bdece53 100644 --- a/maddi-run-openjdk/src/main/java/io/codelaser/maddi/run/openjdkmain/Main.java +++ b/maddi-run-openjdk/src/main/java/io/codelaser/maddi/run/openjdkmain/Main.java @@ -17,33 +17,36 @@ package io.codelaser.maddi.run.openjdkmain; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.cli.*; -import org.apache.commons.cli.help.HelpFormatter; -import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; -import io.codelaser.maddi.run.config.ShippedAnalysisResults; -import io.codelaser.maddi.run.config.AnalysisHintsConfigurationImpl; -import io.codelaser.maddi.run.config.Configuration; -import io.codelaser.maddi.run.config.report.ExitCode; -import io.codelaser.maddi.run.config.GeneralConfiguration; -import io.codelaser.maddi.inspection.api.resource.BuildFiles; -import io.codelaser.maddi.inspection.resource.BuildFilesCapture; -import io.codelaser.maddi.run.config.util.JsonStreaming; -import io.codelaser.maddi.cst.impl.runtime.LanguageConfigurationImpl; -import io.codelaser.maddi.run.config.javac.ParseJavacList; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.function.Consumer; +import org.apache.commons.cli.*; +import org.apache.commons.cli.help.HelpFormatter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.codelaser.maddi.cst.impl.runtime.LanguageConfigurationImpl; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.BuildFilesCapture; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; +import io.codelaser.maddi.run.config.AnalysisHintsConfigurationImpl; +import io.codelaser.maddi.run.config.Configuration; +import io.codelaser.maddi.run.config.GeneralConfiguration; +import io.codelaser.maddi.run.config.ShippedAnalysisResults; +import io.codelaser.maddi.run.config.javac.ParseJavacList; +import io.codelaser.maddi.run.config.report.ExitCode; +import io.codelaser.maddi.run.config.util.JsonStreaming; + public class Main { private static final Logger LOGGER = LoggerFactory.getLogger(Main.class); @@ -595,7 +598,7 @@ static AnalysisHintsConfiguration parseAnalysisHintsConfiguration(CommandLine cm AnalysisHintsConfigurationImpl.Builder builder = new AnalysisHintsConfigurationImpl.Builder(); String[] analyzedDirs = cmd.getOptionValues(PRELOAD_ANALYSIS_RESULTS_DIRS); - List stated = new java.util.ArrayList<>(); + List stated = new ArrayList<>(); splitAndAdd(analyzedDirs, ",", stated::add); boolean producesHints = cmd.hasOption(ANALYSIS_RESULTS_TARGET_DIR) || cmd.hasOption(UPDATED_HINTS_DIR); ShippedAnalysisResults.resolve(stated, producesHints, Main.class).forEach(builder::addPreloadAnalysisResultsDirs); diff --git a/maddi-run-openjdk/src/main/java/io/codelaser/maddi/run/openjdkmain/RunAnalyzer.java b/maddi-run-openjdk/src/main/java/io/codelaser/maddi/run/openjdkmain/RunAnalyzer.java index 10b8cffc3e..e4d081e0c5 100644 --- a/maddi-run-openjdk/src/main/java/io/codelaser/maddi/run/openjdkmain/RunAnalyzer.java +++ b/maddi-run-openjdk/src/main/java/io/codelaser/maddi/run/openjdkmain/RunAnalyzer.java @@ -17,6 +17,27 @@ package io.codelaser.maddi.run.openjdkmain; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.lang.management.ManagementFactory; +import java.lang.management.MemoryMXBean; +import java.lang.management.MemoryUsage; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Set; +import java.util.function.BiFunction; +import java.util.function.Predicate; +import java.util.function.Supplier; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.codelaser.maddi.analysis.api.AnalysisEngine; import io.codelaser.maddi.analysis.api.AnalysisEngines; import io.codelaser.maddi.analysis.api.AnalysisHintsShadows; @@ -28,16 +49,15 @@ import io.codelaser.maddi.analysis.api.NullabilityTarget; import io.codelaser.maddi.analysis.api.PrepOutcome; import io.codelaser.maddi.analysis.api.PrepRequest; -import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; +import io.codelaser.maddi.callgraph.CallGraphContributions; import io.codelaser.maddi.callgraph.ComputeAnalysisOrder; import io.codelaser.maddi.callgraph.ComputeCallGraph; -import io.codelaser.maddi.run.rewire.RunRewireTests; -import io.codelaser.maddi.run.config.Configuration; -import io.codelaser.maddi.run.config.report.ErrorReport; import io.codelaser.maddi.cst.api.analysis.Message; +import io.codelaser.maddi.cst.api.element.ModuleInfo; import io.codelaser.maddi.cst.api.element.SourceSet; import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.ParameterInfo; +import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.impl.analysis.LinkFacts; import io.codelaser.maddi.cst.impl.analysis.NullabilityFacts; import io.codelaser.maddi.cst.print.csharp.CSharpFacts; @@ -48,32 +68,20 @@ import io.codelaser.maddi.cst.print.kotlin.KotlinWorld; import io.codelaser.maddi.cst.print.rust.RustFacts; import io.codelaser.maddi.cst.print.rust.RustTranslator; -import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.graph.G; import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.resource.DetectKotlinSources; import io.codelaser.maddi.inspection.api.integration.JavaInspectorFactory; import io.codelaser.maddi.inspection.api.parser.ParseResult; import io.codelaser.maddi.inspection.api.parser.Summary; import io.codelaser.maddi.inspection.api.resource.InputConfiguration; import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; +import io.codelaser.maddi.inspection.resource.DetectKotlinSources; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.AnalysisHintsConfiguration; +import io.codelaser.maddi.run.config.Configuration; +import io.codelaser.maddi.run.config.report.ErrorReport; +import io.codelaser.maddi.run.rewire.RunRewireTests; import io.codelaser.maddi.util.Trie; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.lang.management.ManagementFactory; -import java.lang.management.MemoryMXBean; -import java.lang.management.MemoryUsage; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Stream; public class RunAnalyzer implements Runnable { private static final Logger LOGGER = LoggerFactory.getLogger(RunAnalyzer.class); @@ -102,16 +110,16 @@ private RunRewireTests.WarmAnalysis warmAnalysis(boolean parallel) { false, false, null, false, null); return new RunRewireTests.WarmAnalysis() { @Override - public void analyze(JavaInspector inspector, ParseResult parseResult, io.codelaser.maddi.graph.G graph, + public void analyze(JavaInspector inspector, ParseResult parseResult, G graph, Set seedTypes) { List order = new ComputeAnalysisOrder().go(graph, parallel); Set seed = null; if (seedTypes != null) { - Set types = java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()); + Set types = Collections.newSetFromMap(new IdentityHashMap<>()); types.addAll(seedTypes); - seed = new java.util.HashSet<>(); + seed = new HashSet<>(); for (Info info : order) { - if (info instanceof io.codelaser.maddi.cst.api.element.ModuleInfo) continue; + if (info instanceof ModuleInfo) continue; TypeInfo type = info instanceof TypeInfo ti ? ti : info.typeInfo(); if (type != null && types.contains(type.primaryType())) seed.add(info); } @@ -119,8 +127,8 @@ public void analyze(JavaInspector inspector, ParseResult parseResult, io.codelas try { engine().modification(new ModificationRequest(inspector, order, graph, parseResult.primaryTypes(), options, null, seed)); - } catch (java.io.IOException e) { - throw new java.io.UncheckedIOException(e); + } catch (IOException e) { + throw new UncheckedIOException(e); } } @@ -174,7 +182,7 @@ public void run() { // is left as configured. private static void setLogbackRootLevelToInfoIfPresent() { try { - org.slf4j.Logger root = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); + Logger root = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); Class logbackLogger = Class.forName("ch.qos.logback.classic.Logger"); if (logbackLogger.isInstance(root)) { Class level = Class.forName("ch.qos.logback.classic.Level"); @@ -314,20 +322,20 @@ private void runAnalyzer() throws IOException { int oracleEvery = Integer.getInteger("maddi.rewire.oracleEvery", 0); // the warm inspector's preps keep their per-type call graph from one re-parse to the next; the // oracle's cold inspector walks its own in full - io.codelaser.maddi.callgraph.CallGraphContributions contributions = - new io.codelaser.maddi.callgraph.CallGraphContributions(); - java.util.function.BiFunction> prepFn = + CallGraphContributions contributions = + new CallGraphContributions(); + BiFunction> prepFn = (inspector, pr) -> engine().prep(new PrepRequest(inspector.runtime(), Set.copyOf(pr.primaryTypes()), pr.sourceSetToModuleInfoMap().values(), externalsToAccept, parseOptions.parallel(), true, inspector == javaInspector ? contributions : null)).callGraph().graph(); - java.util.function.Supplier coldInspector = () -> { + Supplier coldInspector = () -> { JavaInspector cold = new JavaInspectorImpl(true, false); cold.setJdkInternals(configuration.generalConfiguration().jdkInternals()); try { cold.initialize(inputConfiguration); - } catch (java.io.IOException e) { - throw new java.io.UncheckedIOException(e); + } catch (IOException e) { + throw new UncheckedIOException(e); } cold.preload("java.base::java.util"); return cold; diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestCompileLogCli.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestCompileLogCli.java index dda3d5dc02..3c5d33b9dc 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestCompileLogCli.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestCompileLogCli.java @@ -17,25 +17,24 @@ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.run.config.util.JsonStreaming; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.inspection.api.resource.InputConfiguration; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.io.File; import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.stream.Collectors; -import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assumptions.assumeTrue; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.inspection.api.resource.BuildFiles; +import io.codelaser.maddi.inspection.api.resource.InputConfiguration; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.util.JsonStreaming; /** * Exercises the three CLI options that obtain an input configuration from a build/javac log: @@ -79,8 +78,8 @@ public void buildFiles(@TempDir Path tempDir) throws Exception { assertEquals(Main.EXIT_OK, Main.execute(new String[]{ "--" + Main.COMPILE_LOG, COMPILE_LOG, "--" + Main.WRITE_INPUT_CONFIGURATION, none.getAbsolutePath()})); - io.codelaser.maddi.inspection.api.resource.BuildFiles nothing = read(none).buildFiles(); - assertEquals(io.codelaser.maddi.inspection.api.resource.BuildFiles.NONE, nothing.declaredBy()); + BuildFiles nothing = read(none).buildFiles(); + assertEquals(BuildFiles.NONE, nothing.declaredBy()); // only the module-infos of the log's source directories (none where the log's tree is absent), never a // root-wide glob, and each hashed assertTrue(nothing.globs().stream().allMatch(g -> g.endsWith("/module-info.java") && !g.contains("*")), @@ -93,8 +92,8 @@ public void buildFiles(@TempDir Path tempDir) throws Exception { "--" + Main.BUILD_FILES, "**/pom.xml", "--" + Main.BUILD_FILES, ".mvn/**", "--" + Main.WRITE_INPUT_CONFIGURATION, declared.getAbsolutePath()})); - io.codelaser.maddi.inspection.api.resource.BuildFiles buildFiles = read(declared).buildFiles(); - assertEquals(io.codelaser.maddi.inspection.api.resource.BuildFiles.COMPILE_LOG, buildFiles.declaredBy()); + BuildFiles buildFiles = read(declared).buildFiles(); + assertEquals(BuildFiles.COMPILE_LOG, buildFiles.declaredBy()); assertEquals(List.of("**/pom.xml", ".mvn/**"), buildFiles.globs().subList(0, 2)); assertTrue(Path.of(buildFiles.root()).isAbsolute(), buildFiles.root()); } diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestErrorReporting.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestErrorReporting.java index 680a10b8c3..b6f9b2a599 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestErrorReporting.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestErrorReporting.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.run.openjdkmain; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; import java.nio.file.Files; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotEquals; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; /** * Guards the error-reporting fix: a source file that fails to parse must be surfaced (openjdk diagnostics now flow diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpFernflower.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpFernflower.java index b82c6b6c05..73ab5fff2b 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpFernflower.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpFernflower.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.run.j2cs.JavaToCSharpRatchet; -import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.run.j2cs.JavaToCSharpRatchet; +import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; /** * Fernflower's main sources translated to C# and judged by Roslyn; the numbers are held by diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpLangchain4j.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpLangchain4j.java index 6a2b8b3c0b..3e515cce55 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpLangchain4j.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpLangchain4j.java @@ -17,16 +17,17 @@ package io.codelaser.maddi.run.openjdkmain; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.nio.file.Path; + +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.print.csharp.CSharpLibraries; import io.codelaser.maddi.cst.print.csharp.CSharpProgram; import io.codelaser.maddi.run.j2cs.JavaToCSharpRatchet; import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; - -import java.nio.file.Path; - -import static org.junit.jupiter.api.Assertions.assertTrue; /** * langchain4j's core sources translated to C# and judged by Roslyn, the second corpus after fernflower: records, diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpTimefold.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpTimefold.java index 34c76feda3..ba9dac5e37 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpTimefold.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToCSharpTimefold.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.run.j2cs.JavaToCSharpRatchet; -import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.run.j2cs.JavaToCSharpRatchet; +import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; /** * timefold-solver's core/main translated to C# and judged by Roslyn; the numbers are held by diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinExternal.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinExternal.java index 6be7bd0b7c..fffdbbf8d2 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinExternal.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinExternal.java @@ -16,14 +16,17 @@ */ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assumptions.assumeTrue; +import java.nio.file.Files; import java.nio.file.Path; +import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assumptions.assumeTrue; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; /* The KotlinConf scoreboard (CodeLaser/maddi-mod#36): a Java -> Kotlin translation made elsewhere, IntelliJ J2K's, @@ -46,7 +49,7 @@ public void test() throws Exception { Path dir = Path.of(external).toAbsolutePath(); // a translation that is not there is not a translation with no compiling file (a lab run on a machine without // the directory judged 0 files and reported success) - try (java.util.stream.Stream walk = java.nio.file.Files.walk(dir.resolve("src"))) { + try (Stream walk = Files.walk(dir.resolve("src"))) { assertTrue(walk.anyMatch(p -> p.toString().endsWith(".kt")), "no .kt files under " + dir.resolve("src")); } JavaToKotlinRatchet.Corpus corpus = JavaToKotlinRatchet.parse(corpusName); diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinFernflower.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinFernflower.java index 1ec4eef8fb..41a414174a 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinFernflower.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinFernflower.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.cst.print.kotlin.KotlinPrintOptions; -import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.print.kotlin.KotlinPrintOptions; +import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; /** * ⛔ THE RATCHET FOR JAVA → KOTLIN TRANSLATION, the printer alone: fernflower's main sources through diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinGuava.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinGuava.java index 7b03ff87b5..e7c77eb0f4 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinGuava.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinGuava.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.cst.print.kotlin.KotlinPrintOptions; -import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.print.kotlin.KotlinPrintOptions; +import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; /** * ⛔ THE RATCHET FOR JAVA → KOTLIN TRANSLATION, a third corpus: guava's main sources through diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinLangchain4j.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinLangchain4j.java index 57ed436a9c..8946921dde 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinLangchain4j.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestJavaToKotlinLangchain4j.java @@ -17,14 +17,15 @@ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.cst.print.kotlin.KotlinPrintOptions; -import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + +import io.codelaser.maddi.cst.print.kotlin.KotlinPrintOptions; +import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; /** * ⛔ THE RATCHET FOR JAVA → KOTLIN TRANSLATION, a second corpus: langchain4j-core's main sources through diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestKotlinSourcesRefusal.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestKotlinSourcesRefusal.java index cdb7845e39..8e5f6c154f 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestKotlinSourcesRefusal.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestKotlinSourcesRefusal.java @@ -17,17 +17,18 @@ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.run.config.Configuration; -import io.codelaser.maddi.run.config.GeneralConfiguration; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.Configuration; +import io.codelaser.maddi.run.config.GeneralConfiguration; /** * The refusal has to fire in the runner, which is the thing the Gradle and Maven plugins fork. A helper diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireFBoundedTypeParameters.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireFBoundedTypeParameters.java index 253601e7ce..540b5202cc 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireFBoundedTypeParameters.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireFBoundedTypeParameters.java @@ -1,5 +1,23 @@ package io.codelaser.maddi.run.openjdkmain; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; @@ -9,23 +27,6 @@ import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotSame; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * Rewiring must terminate on mutually F-bounded type parameters. diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireIntrinsicCarry.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireIntrinsicCarry.java index dc5e1cf48c..a0168d8d1b 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireIntrinsicCarry.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireIntrinsicCarry.java @@ -17,6 +17,21 @@ package io.codelaser.maddi.run.openjdkmain; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.analysis.Property; import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; import io.codelaser.maddi.cst.api.info.FieldInfo; @@ -31,20 +46,6 @@ import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.*; /** * Only a partial re-parse carries the intrinsic tier (prep's output) onto a rewired copy diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireLocalClass.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireLocalClass.java index ada632b9e0..d416976fb6 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireLocalClass.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestRewireLocalClass.java @@ -17,6 +17,21 @@ package io.codelaser.maddi.run.openjdkmain; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.intellij.lang.annotations.Language; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import io.codelaser.maddi.cst.api.info.InfoMap; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; @@ -27,20 +42,6 @@ import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.inspection.resource.SourceSetImpl; -import org.intellij.lang.annotations.Language; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.*; /** * The local-class sibling of {@link TestRewireAnonymousType}. A class declared inside a method body is not part of diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestShippedAnalysisResults.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestShippedAnalysisResults.java index 9ef5775bfa..fbd65beaed 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestShippedAnalysisResults.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestShippedAnalysisResults.java @@ -16,16 +16,17 @@ */ package io.codelaser.maddi.run.openjdkmain; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.ParseException; import org.junit.jupiter.api.Test; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; - /** * An analysis run loads the analysis results maddi ships unless told otherwise (CodeLaser/maddi-mod#15): without them * every library type is an unknown, and a run that never loaded them looks exactly like one that did. @@ -61,7 +62,7 @@ public void anExplicitDirectoryReplacesTheDefault() throws ParseException { @Test public void defaultNamesTheShippedResultsInAList() throws ParseException { - List expected = new java.util.ArrayList<>(Main.SHIPPED_ANALYSIS_RESULTS); + List expected = new ArrayList<>(Main.SHIPPED_ANALYSIS_RESULTS); expected.add("my/results"); assertEquals(expected, preload("--source", "src", "--preload-analysis-results-dirs", "default,my/results")); } diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestShortOptionBindings.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestShortOptionBindings.java index c4a86c11ab..a0747376cf 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestShortOptionBindings.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestShortOptionBindings.java @@ -17,16 +17,16 @@ package io.codelaser.maddi.run.openjdkmain; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.HashMap; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; +import org.junit.jupiter.api.Test; /** * ⛔ Two options shared the short form {@code -s}. commons-cli keys its short-option map by the letter, diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestTranslateOption.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestTranslateOption.java index ed3d30f34d..4a6cc4c3e0 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestTranslateOption.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestTranslateOption.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.run.openjdkmain; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.*; import java.nio.file.Files; import java.nio.file.Path; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; /** * {@code --translate kotlin|csharp}: the translators behind the CLI. Here without the analysis diff --git a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestTypeParameterIdentityCorpus.java b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestTypeParameterIdentityCorpus.java index 75abc0abb9..7879e6f870 100644 --- a/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestTypeParameterIdentityCorpus.java +++ b/maddi-run-openjdk/src/test/java/io/codelaser/maddi/run/openjdkmain/TestTypeParameterIdentityCorpus.java @@ -16,7 +16,16 @@ */ package io.codelaser.maddi.run.openjdkmain; -import io.codelaser.maddi.util.corpus.Corpora; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; import io.codelaser.maddi.cst.api.info.TypeParameter; @@ -26,15 +35,7 @@ import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; import io.codelaser.maddi.run.config.util.JsonStreaming; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; - -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import io.codelaser.maddi.util.corpus.Corpora; /** * Over a whole corpus parse: every occurrence of a type parameter in a field, return or parameter type is the diff --git a/maddi-run-openjdk/src/testFixtures/java/io/codelaser/maddi/run/j2cs/JavaToCSharpRatchet.java b/maddi-run-openjdk/src/testFixtures/java/io/codelaser/maddi/run/j2cs/JavaToCSharpRatchet.java index 1046854910..a0a5a3cd72 100644 --- a/maddi-run-openjdk/src/testFixtures/java/io/codelaser/maddi/run/j2cs/JavaToCSharpRatchet.java +++ b/maddi-run-openjdk/src/testFixtures/java/io/codelaser/maddi/run/j2cs/JavaToCSharpRatchet.java @@ -17,27 +17,31 @@ package io.codelaser.maddi.run.j2cs; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.print.csharp.CSharpCompat; -import io.codelaser.maddi.cst.print.csharp.CSharpTranslator; -import io.codelaser.maddi.cst.print.csharp.CSharpLibraries; -import io.codelaser.maddi.cst.print.csharp.LibraryMapping; -import io.codelaser.maddi.cst.print.csharp.CSharpProgram; -import io.codelaser.maddi.cst.print.csharp.CSharpPrintCode; -import io.codelaser.maddi.cst.print.translate.PrintMessage; -import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; +import java.io.UncheckedIOException; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.fail; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.print.csharp.CSharpCompat; +import io.codelaser.maddi.cst.print.csharp.CSharpLibraries; +import io.codelaser.maddi.cst.print.csharp.CSharpMappingFile; +import io.codelaser.maddi.cst.print.csharp.CSharpPrintCode; +import io.codelaser.maddi.cst.print.csharp.CSharpProgram; +import io.codelaser.maddi.cst.print.csharp.CSharpTranslator; +import io.codelaser.maddi.cst.print.csharp.LibraryMapping; +import io.codelaser.maddi.cst.print.translate.PrintMessage; +import io.codelaser.maddi.run.j2k.JavaToKotlinRatchet; /** * ⛔ THE RATCHET FOR JAVA → C# TRANSLATION: a corpus's main sources, parsed by the openjdk front end, printed by @@ -82,11 +86,11 @@ public JavaToCSharpRatchet(String name, Path ratchetFile) { public JavaToCSharpRatchet withMapping(String resource) { try (var in = JavaToCSharpRatchet.class.getResourceAsStream(resource)) { if (in == null) throw new IllegalStateException("no " + resource + " beside " + JavaToCSharpRatchet.class); - var mapping = io.codelaser.maddi.cst.print.csharp.CSharpMappingFile.parse( - new String(in.readAllBytes(), java.nio.charset.StandardCharsets.UTF_8), resource); + var mapping = CSharpMappingFile.parse( + new String(in.readAllBytes(), StandardCharsets.UTF_8), resource); return new JavaToCSharpRatchet(name, ratchetFile, policy.withLibraries(policy.libraries().withFirst(mapping))); } catch (IOException e) { - throw new java.io.UncheckedIOException(e); + throw new UncheckedIOException(e); } } diff --git a/maddi-run-openjdk/src/testFixtures/java/io/codelaser/maddi/run/j2k/JavaToKotlinRatchet.java b/maddi-run-openjdk/src/testFixtures/java/io/codelaser/maddi/run/j2k/JavaToKotlinRatchet.java index 14ff8a7f39..e9b015af0c 100644 --- a/maddi-run-openjdk/src/testFixtures/java/io/codelaser/maddi/run/j2k/JavaToKotlinRatchet.java +++ b/maddi-run-openjdk/src/testFixtures/java/io/codelaser/maddi/run/j2k/JavaToKotlinRatchet.java @@ -17,34 +17,55 @@ package io.codelaser.maddi.run.j2k; -import io.codelaser.maddi.cst.api.element.SourceSet; -import io.codelaser.maddi.cst.api.info.TypeInfo; -import io.codelaser.maddi.cst.print.kotlin.KotlinTranslator; -import io.codelaser.maddi.cst.print.kotlin.KotlinPrintCode; -import io.codelaser.maddi.cst.print.translate.PrintMessage; -import io.codelaser.maddi.cst.print.kotlin.KotlinPrintOptions; -import io.codelaser.maddi.cst.print.kotlin.KotlinWorld; -import io.codelaser.maddi.inspection.api.integration.JavaInspector; -import io.codelaser.maddi.inspection.api.parser.Summary; -import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; -import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; -import io.codelaser.maddi.run.config.util.JsonStreaming; -import io.codelaser.maddi.util.corpus.Corpora; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.File; import java.io.IOException; +import java.lang.classfile.Attributes; +import java.lang.classfile.ClassFile; +import java.lang.classfile.ClassModel; +import java.lang.classfile.MethodModel; +import java.lang.classfile.constantpool.ClassEntry; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.StandardCopyOption; +import java.security.MessageDigest; import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import java.util.stream.IntStream; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.fail; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import io.codelaser.maddi.cst.api.element.SourceSet; +import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.print.kotlin.KotlinPrintCode; +import io.codelaser.maddi.cst.print.kotlin.KotlinPrintOptions; +import io.codelaser.maddi.cst.print.kotlin.KotlinTranslator; +import io.codelaser.maddi.cst.print.kotlin.KotlinWorld; +import io.codelaser.maddi.cst.print.translate.PrintMessage; +import io.codelaser.maddi.inspection.api.integration.JavaInspector; +import io.codelaser.maddi.inspection.api.parser.Summary; +import io.codelaser.maddi.inspection.openjdk.JavaInspectorImpl; +import io.codelaser.maddi.inspection.resource.InputConfigurationImpl; +import io.codelaser.maddi.run.config.util.JsonStreaming; +import io.codelaser.maddi.util.corpus.Corpora; /** * ⛔ THE RATCHET FOR JAVA → KOTLIN TRANSLATION, shared: a corpus's main sources, parsed by the openjdk front end, @@ -237,7 +258,7 @@ public static Corpus parse(String corpusName, String mainName, String testName, public void run(Corpus corpus, KotlinPrintOptions given) throws Exception { // main and test sources are compiled as one Kotlin code base: a member's uses are all in sight KotlinPrintOptions options = given.world().isFile() ? given.withWorld(KotlinWorld.of( - java.util.stream.Stream.concat(corpus.types().stream(), corpus.testTypes().stream()).toList())) : given; + Stream.concat(corpus.types().stream(), corpus.testTypes().stream()).toList())) : given; Path out = Path.of("build/j2k", name); deleteRecursively(out); Printed main = print(corpus, corpus.types(), options, out.resolve("src")); @@ -267,7 +288,7 @@ public void judgeExternal(Corpus corpus, Path mainKotlin, Path testKotlin) throw private static List copyKotlin(Path from, Path to) throws IOException { if (!Files.isDirectory(from)) return List.of(); List copied = new ArrayList<>(); - try (java.util.stream.Stream walk = Files.walk(from)) { + try (Stream walk = Files.walk(from)) { for (Path kt : walk.filter(p -> p.toString().endsWith(".kt")).sorted().toList()) { Path target = to.resolve(from.relativize(kt).toString()); Files.createDirectories(target.getParent()); @@ -329,7 +350,7 @@ private void judge(Corpus corpus, Path out, Printed main, TestTranslation testTr String runner = System.getProperty("maddi.test.junitConsoleClasspath"); String vintage = System.getProperty("maddi.test.junitVintageClasspath"); if (corpus.junit4() && runner != null && vintage != null && !vintage.isBlank()) { - runner = runner + java.io.File.pathSeparator + vintage; + runner = runner + File.pathSeparator + vintage; } boolean compileOnly = compileOnly() || !runTests; if (testSet.isPresent() && Files.isDirectory(Path.of(testSet.get().uri())) @@ -463,7 +484,7 @@ private static Compiled compile(List files, List classPath, int re if (release > 0) args.add("-Xjdk-release=" + (release == 8 ? "1.8" : String.valueOf(release))); else args.addAll(List.of("-jvm-target", "21")); args.addAll(List.of( - "-classpath", String.join(java.io.File.pathSeparator, cp), + "-classpath", String.join(File.pathSeparator, cp), "-d", dir.resolve("classes").toAbsolutePath().toString())); files.forEach(f -> args.add(f.toString())); Path argFile = dir.resolve("kotlinc.args"); @@ -507,7 +528,7 @@ private static String compilerClassPath() { /** The Kotlin standard library the compiler came with: what compiled classes run against. */ private static String stdlib() { String compilerClassPath = compilerClassPath(); - return Arrays.stream(compilerClassPath.split(java.io.File.pathSeparator)) + return Arrays.stream(compilerClassPath.split(File.pathSeparator)) .filter(p -> Path.of(p).getFileName().toString().matches("kotlin-stdlib-[0-9.]+\\.jar")) .findFirst().orElseThrow(() -> new AssertionError("no kotlin-stdlib in " + compilerClassPath)); } @@ -546,7 +567,7 @@ private static Bytecode toBytecode(List files, List classPath, Lis failing.retainAll(remaining); // the next round starts afresh: this round's errors, why its files were left out, stay beside it Files.copy(dir.resolve("kotlinc.log"), dir.resolveSibling(dir.getFileName() + "-round" + (round + 1) + ".log"), - java.nio.file.StandardCopyOption.REPLACE_EXISTING); + StandardCopyOption.REPLACE_EXISTING); if (failing.isEmpty()) fail("compile 3 failed without an error in a file it compiled; see " + dir); leftOut.add(List.copyOf(failing)); remaining.removeAll(failing); @@ -574,20 +595,20 @@ private static Map finalOverridden(List files, Path kotlinCl Map found = new TreeMap<>(); for (Map.Entry original : originals.entrySet()) { if (kotlin.containsKey(original.getKey())) continue; - java.lang.classfile.ClassModel model = java.lang.classfile.ClassFile.of().parse(original.getValue()); + ClassModel model = ClassFile.of().parse(original.getValue()); Set declared = model.methods().stream().filter(JavaToKotlinRatchet::overridable) .map(m -> m.methodName().stringValue() + m.methodType().stringValue()) .collect(Collectors.toSet()); - Optional superclass = model.superclass(); + Optional superclass = model.superclass(); while (superclass.isPresent()) { String name = superclass.get().asInternalName(); Path file = kotlin.containsKey(name) ? kotlin.get(name) : originals.get(name); if (file == null) break; // the JDK's, a library's - java.lang.classfile.ClassModel superModel = java.lang.classfile.ClassFile.of().parse(file); + ClassModel superModel = ClassFile.of().parse(file); if (kotlin.containsKey(name)) { - for (java.lang.classfile.MethodModel m : superModel.methods()) { + for (MethodModel m : superModel.methods()) { String signature = m.methodName().stringValue() + m.methodType().stringValue(); - if (overridable(m) && (m.flags().flagsMask() & java.lang.classfile.ClassFile.ACC_FINAL) != 0 + if (overridable(m) && (m.flags().flagsMask() & ClassFile.ACC_FINAL) != 0 && declared.contains(signature)) { Path source = source(superModel, name, files); if (source != null) { @@ -603,20 +624,20 @@ private static Map finalOverridden(List files, Path kotlinCl return found; } - private static boolean overridable(java.lang.classfile.MethodModel m) { + private static boolean overridable(MethodModel m) { int flags = m.flags().flagsMask(); - return (flags & (java.lang.classfile.ClassFile.ACC_STATIC | java.lang.classfile.ClassFile.ACC_PRIVATE)) == 0 + return (flags & (ClassFile.ACC_STATIC | ClassFile.ACC_PRIVATE)) == 0 && !m.methodName().stringValue().startsWith("<"); } /** The .kt file a Kotlin class came from: its package's directory and its SourceFile attribute. */ - private static Path source(java.lang.classfile.ClassModel model, String internalName, List files) { - Optional sourceFile = model.findAttribute(java.lang.classfile.Attributes.sourceFile()) + private static Path source(ClassModel model, String internalName, List files) { + Optional sourceFile = model.findAttribute(Attributes.sourceFile()) .map(a -> a.sourceFile().stringValue()); if (sourceFile.isEmpty()) return null; int slash = internalName.lastIndexOf('/'); String relative = (slash < 0 ? "" : internalName.substring(0, slash + 1)) + sourceFile.get(); - return files.stream().filter(f -> f.toString().replace(java.io.File.separatorChar, '/').endsWith("/" + relative)) + return files.stream().filter(f -> f.toString().replace(File.separatorChar, '/').endsWith("/" + relative)) .findFirst().orElse(null); } @@ -626,7 +647,7 @@ private static Map classesByName(Path dir) throws IOException { if (!Files.isDirectory(dir)) return byName; try (Stream walk = Files.walk(dir)) { for (Path f : walk.filter(p -> p.toString().endsWith(".class")).toList()) { - String name = dir.relativize(f).toString().replace(java.io.File.separatorChar, '/'); + String name = dir.relativize(f).toString().replace(File.separatorChar, '/'); byName.put(name.substring(0, name.length() - ".class".length()), f); } } @@ -677,7 +698,7 @@ List arguments() { boolean noneIn(List chunk) { if (!those) return false; return classes.stream().map(c -> c.lastIndexOf('.') < 0 ? "" : c.substring(0, c.lastIndexOf('.'))) - .noneMatch(pkg -> within(pkg, chunk.get(1)) && java.util.stream.IntStream.range(2, chunk.size()) + .noneMatch(pkg -> within(pkg, chunk.get(1)) && IntStream.range(2, chunk.size()) .filter(i -> "--exclude-package".equals(chunk.get(i - 1))) .noneMatch(i -> within(pkg, chunk.get(i)))); } @@ -702,7 +723,7 @@ private static Set affected(Path translatedClasses, Path testClasses) th for (Map.Entry> e : classFiles(testClasses).entrySet()) { Set names = new HashSet<>(); for (Path f : e.getValue()) { - String bytes = new String(Files.readAllBytes(f), java.nio.charset.StandardCharsets.ISO_8859_1); + String bytes = new String(Files.readAllBytes(f), StandardCharsets.ISO_8859_1); Matcher m = CLASS_NAME.matcher(bytes); while (m.find()) names.add(topLevel(m.group().replace('/', '.'))); } @@ -727,7 +748,7 @@ private static Map> classFiles(Path dir) throws IOException { if (!Files.isDirectory(dir)) return byTopLevel; try (Stream walk = Files.walk(dir)) { for (Path f : walk.filter(p -> p.toString().endsWith(".class")).toList()) { - String name = dir.relativize(f).toString().replace(java.io.File.separatorChar, '.'); + String name = dir.relativize(f).toString().replace(File.separatorChar, '.'); byTopLevel.computeIfAbsent(topLevel(name.substring(0, name.length() - ".class".length())), k -> new ArrayList<>()).add(f); } @@ -843,7 +864,7 @@ private static Tests runTests(Corpus corpus, List kotlinClasses, Path test Files.createDirectories(dir); List cp = testClassPath(corpus, kotlinClasses, testClasses, runner); Path argFile = dir.resolve("java.args"); - Files.write(argFile, List.of("-cp", "\"" + String.join(java.io.File.pathSeparator, cp) + "\"")); + Files.write(argFile, List.of("-cp", "\"" + String.join(File.pathSeparator, cp) + "\"")); Path java = Path.of(System.getProperty("java.home"), "bin", "java"); Path reports = dir.resolve("reports"); Path log = dir.resolve("tests.log"); @@ -886,7 +907,7 @@ private static List testClassPath(Corpus corpus, List kotlinClasse cp.add(testClasses.toString()); cp.addAll(libraries(corpus.config())); if (corpus.siblings()) cp.addAll(siblingClasses(corpus)); - cp.addAll(Arrays.asList(runner.split(java.io.File.pathSeparator))); + cp.addAll(Arrays.asList(runner.split(File.pathSeparator))); return cp; } @@ -901,7 +922,7 @@ private static Tests baseline(Corpus corpus, Path testClasses, String runner, Pa Path cache = Path.of(System.getProperty("user.home"), ".cache", "maddi-j2k-baseline") .resolve(baselineKey(testClassPath(corpus, null, testClasses, runner), corpus.junit4())); if (Files.isRegularFile(cache)) { - try (java.io.DataInputStream in = new java.io.DataInputStream(new java.io.BufferedInputStream( + try (DataInputStream in = new DataInputStream(new BufferedInputStream( Files.newInputStream(cache)))) { Tests tests = new Tests(readList(in), readList(in), readList(in)); LOGGER.info("tests on the original classes: the baseline in {}", cache); @@ -915,14 +936,14 @@ private static Tests baseline(Corpus corpus, Path testClasses, String runner, Pa try { Files.createDirectories(cache.getParent()); Path tmp = Files.createTempFile(cache.getParent(), "baseline", ".tmp"); - try (java.io.DataOutputStream out = new java.io.DataOutputStream(new java.io.BufferedOutputStream( + try (DataOutputStream out = new DataOutputStream(new BufferedOutputStream( Files.newOutputStream(tmp)))) { writeList(out, tests.passed()); writeList(out, tests.failed()); writeList(out, tests.skipped()); } - Files.move(tmp, cache, java.nio.file.StandardCopyOption.ATOMIC_MOVE, - java.nio.file.StandardCopyOption.REPLACE_EXISTING); + Files.move(tmp, cache, StandardCopyOption.ATOMIC_MOVE, + StandardCopyOption.REPLACE_EXISTING); } catch (IOException notKept) { LOGGER.warn("baseline not kept in {}: {}", cache, notKept.toString()); } @@ -931,8 +952,8 @@ private static Tests baseline(Corpus corpus, Path testClasses, String runner, Pa } private static String baselineKey(List classPath, boolean junit4) throws Exception { - java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA-256"); - java.util.function.Consumer add = v -> md.update((v + "\n").getBytes(java.nio.charset.StandardCharsets.UTF_8)); + MessageDigest md = MessageDigest.getInstance("SHA-256"); + Consumer add = v -> md.update((v + "\n").getBytes(StandardCharsets.UTF_8)); add.accept(System.getProperty("java.version")); add.accept(String.valueOf(junit4)); for (String entry : classPath) { @@ -951,12 +972,12 @@ private static String baselineKey(List classPath, boolean junit4) throws return HexFormat.of().formatHex(md.digest()); } - private static void writeList(java.io.DataOutputStream out, List list) throws IOException { + private static void writeList(DataOutputStream out, List list) throws IOException { out.writeInt(list.size()); for (String s : list) out.writeUTF(s); } - private static List readList(java.io.DataInputStream in) throws IOException { + private static List readList(DataInputStream in) throws IOException { int n = in.readInt(); List list = new ArrayList<>(n); for (int i = 0; i < n; i++) list.add(in.readUTF()); @@ -982,11 +1003,11 @@ private static Path workingDirectory(Corpus corpus, Path testClasses) { private static Tests parseReport(Path xml) throws Exception { List passed = new ArrayList<>(), failed = new ArrayList<>(), skipped = new ArrayList<>(); - org.w3c.dom.Document doc = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder() + Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse(xml.toFile()); - org.w3c.dom.NodeList cases = doc.getElementsByTagName("testcase"); + NodeList cases = doc.getElementsByTagName("testcase"); for (int i = 0; i < cases.getLength(); i++) { - org.w3c.dom.Element tc = (org.w3c.dom.Element) cases.item(i); + Element tc = (Element) cases.item(i); String id = tc.getAttribute("classname") + "#" + tc.getAttribute("name"); if (tc.getElementsByTagName("failure").getLength() > 0 || tc.getElementsByTagName("error").getLength() > 0) { failed.add(id); diff --git a/maddi-run-rewire/src/main/java/io/codelaser/maddi/run/rewire/LeakPath.java b/maddi-run-rewire/src/main/java/io/codelaser/maddi/run/rewire/LeakPath.java index bccdd9584b..a84ec45ccc 100644 --- a/maddi-run-rewire/src/main/java/io/codelaser/maddi/run/rewire/LeakPath.java +++ b/maddi-run-rewire/src/main/java/io/codelaser/maddi/run/rewire/LeakPath.java @@ -17,7 +17,16 @@ package io.codelaser.maddi.run.rewire; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collection; +import java.util.IdentityHashMap; import java.util.List; +import java.util.Map; + +import io.codelaser.maddi.cst.api.info.Info; /** * A diagnostic for the rewire driver's leak check: the shortest chain of references (by fields, map entries, @@ -29,8 +38,8 @@ private LeakPath() { } static String path(Object root, Object target) { - java.util.IdentityHashMap parent = new java.util.IdentityHashMap<>(); - java.util.ArrayDeque queue = new java.util.ArrayDeque<>(); + IdentityHashMap parent = new IdentityHashMap<>(); + ArrayDeque queue = new ArrayDeque<>(); parent.put(root, new Object[]{null, "root"}); queue.add(root); while (!queue.isEmpty()) { @@ -41,7 +50,7 @@ static String path(Object root, Object target) { while (c != null) { Object[] pe = parent.get(c); sb.insert(0, "\n " + pe[1] + " : " + c.getClass().getName() - + (c instanceof io.codelaser.maddi.cst.api.info.Info info ? " (" + info + ")" : "")); + + (c instanceof Info info ? " (" + info + ")" : "")); c = pe[0]; } return sb.toString(); @@ -60,7 +69,7 @@ static String path(Object root, Object target) { } static List edges(Object o) { - List out = new java.util.ArrayList<>(); + List out = new ArrayList<>(); Class c = o.getClass(); if (c.isArray()) { if (!c.getComponentType().isPrimitive()) { @@ -69,7 +78,7 @@ static List edges(Object o) { } return out; } - if (o instanceof java.util.Map m && !c.getName().startsWith("io.codelaser")) { + if (o instanceof Map m && !c.getName().startsWith("io.codelaser")) { try { for (var e : m.entrySet()) { out.add(new Object[]{e.getKey(), "key"}); @@ -78,7 +87,7 @@ static List edges(Object o) { } catch (RuntimeException re) { /* ignore */ } return out; } - if (o instanceof java.util.Collection col && !c.getName().startsWith("io.codelaser")) { + if (o instanceof Collection col && !c.getName().startsWith("io.codelaser")) { try { int i = 0; for (Object e : col) out.add(new Object[]{e, "elem" + (i++)}); @@ -86,8 +95,8 @@ static List edges(Object o) { return out; } for (Class k = c; k != null && k != Object.class; k = k.getSuperclass()) { - for (java.lang.reflect.Field f : k.getDeclaredFields()) { - if (java.lang.reflect.Modifier.isStatic(f.getModifiers()) || f.getType().isPrimitive()) continue; + for (Field f : k.getDeclaredFields()) { + if (Modifier.isStatic(f.getModifiers()) || f.getType().isPrimitive()) continue; try { f.setAccessible(true); out.add(new Object[]{f.get(o), k.getSimpleName() + "." + f.getName()}); @@ -99,9 +108,9 @@ static List edges(Object o) { /** Every instance of {@code type} reachable from {@code root}, visiting at most {@code cap} objects. */ static List reachable(Object root, Class type, int cap) { - java.util.IdentityHashMap seen = new java.util.IdentityHashMap<>(); - java.util.ArrayDeque queue = new java.util.ArrayDeque<>(); - List found = new java.util.ArrayList<>(); + IdentityHashMap seen = new IdentityHashMap<>(); + ArrayDeque queue = new ArrayDeque<>(); + List found = new ArrayList<>(); seen.put(root, true); queue.add(root); while (!queue.isEmpty() && seen.size() < cap) { diff --git a/maddi-run-rewire/src/main/java/io/codelaser/maddi/run/rewire/ReparseOracle.java b/maddi-run-rewire/src/main/java/io/codelaser/maddi/run/rewire/ReparseOracle.java index 5a65b650af..9de51cef84 100644 --- a/maddi-run-rewire/src/main/java/io/codelaser/maddi/run/rewire/ReparseOracle.java +++ b/maddi-run-rewire/src/main/java/io/codelaser/maddi/run/rewire/ReparseOracle.java @@ -17,8 +17,27 @@ package io.codelaser.maddi.run.rewire; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import io.codelaser.maddi.callgraph.ComputeCallGraph; +import io.codelaser.maddi.cst.api.analysis.Property; +import io.codelaser.maddi.cst.api.analysis.PropertyValueMap; +import io.codelaser.maddi.cst.api.element.Comment; import io.codelaser.maddi.cst.api.element.Element; +import io.codelaser.maddi.cst.api.element.JavaDoc; +import io.codelaser.maddi.cst.api.element.Source; +import io.codelaser.maddi.cst.api.expression.AnnotationExpression; import io.codelaser.maddi.cst.api.expression.ConstructorCall; import io.codelaser.maddi.cst.api.expression.MethodCall; import io.codelaser.maddi.cst.api.expression.VariableExpression; @@ -26,20 +45,13 @@ import io.codelaser.maddi.cst.api.info.Info; import io.codelaser.maddi.cst.api.info.MethodInfo; import io.codelaser.maddi.cst.api.info.TypeInfo; +import io.codelaser.maddi.cst.api.statement.Statement; +import io.codelaser.maddi.cst.api.type.ParameterizedType; import io.codelaser.maddi.cst.api.variable.FieldReference; import io.codelaser.maddi.graph.G; import io.codelaser.maddi.inspection.api.integration.JavaInspector; import io.codelaser.maddi.inspection.api.parser.ParseResult; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.TreeMap; -import java.util.function.Consumer; -import java.util.stream.Collectors; - /** * Is an incremental re-parse (and the prep after it) what a cold one would have produced? The oracle of * {@code docs/design/incremental-and-overlay.md} §8. Parsing and prep are deterministic, so the answer is exact: @@ -99,7 +111,7 @@ public static Map prep(ParseResult parseResult) { mi.parameters().forEach(pi -> putPrep(map, "P " + m + "#" + pi.index(), pi.analysis())); if (mi.methodBody() != null) { mi.methodBody().visit(e -> { - if (e instanceof io.codelaser.maddi.cst.api.statement.Statement st && st.source() != null) { + if (e instanceof Statement st && st.source() != null) { putPrep(map, "S " + m + "@" + st.source().index(), st.analysis()); } return true; @@ -116,11 +128,11 @@ public static Map prep(ParseResult parseResult) { } private static void putPrep(Map map, String key, - io.codelaser.maddi.cst.api.analysis.PropertyValueMap analysis) { + PropertyValueMap analysis) { String described = analysis.propertyValueStream() .filter(pv -> pv.property().carryOnRewire() || pv.property().analysisTier() - == io.codelaser.maddi.cst.api.analysis.Property.AnalysisTier.INTRINSIC) + == Property.AnalysisTier.INTRINSIC) .map(pv -> pv.property().key() + "=" + pv.value()) .sorted().collect(Collectors.joining(", ")); if (!described.isEmpty()) map.put(key, described); @@ -129,9 +141,9 @@ private static void putPrep(Map map, String key, private static void compare(String what, Map cold, Map warm, List differences) { if (!cold.keySet().equals(warm.keySet())) { Set onlyCold = cold.keySet().stream().filter(k -> !warm.containsKey(k)) - .collect(Collectors.toCollection(java.util.TreeSet::new)); + .collect(Collectors.toCollection(TreeSet::new)); Set onlyWarm = warm.keySet().stream().filter(k -> !cold.containsKey(k)) - .collect(Collectors.toCollection(java.util.TreeSet::new)); + .collect(Collectors.toCollection(TreeSet::new)); differences.add(what + ": only in the cold parse " + onlyCold + ", only in the incremental one " + onlyWarm); } for (Map.Entry e : cold.entrySet()) { @@ -154,7 +166,7 @@ private static void compare(String what, Map cold, Map TypeInfo.typesReferenced concatenates, asked one by one. Only computed for a reference found stale. */ private static String whereReferenced(TypeInfo primaryType, TypeInfo reached) { - java.util.function.Predicate> + Predicate> has = stream -> stream.anyMatch(tr -> tr.typeInfo() == reached); List where = new ArrayList<>(); primaryType.recursiveSubTypeStream().forEach(type -> { @@ -185,7 +197,7 @@ private static String whereReferenced(TypeInfo primaryType, TypeInfo reached) { parts.add("parameters"); } if (has.test(mi.exceptionTypes().stream().flatMap(et -> et.typesReferenced( - io.codelaser.maddi.cst.api.element.Element.TypeReferenceNature.EXPLICIT, null)))) { + Element.TypeReferenceNature.EXPLICIT, null)))) { parts.add("exception types"); } where.add(m + " " + (parts.isEmpty() ? "elsewhere" : parts)); @@ -212,16 +224,16 @@ private static String whereReferenced(TypeInfo primaryType, TypeInfo reached) { The type every resolved javadoc tag reaches, in the javadoc and in each JavaDoc among the comments (a declaration holds it both ways). TypeInfo.typesReferenced does not walk the comments. */ - private static void javaDocTargets(io.codelaser.maddi.cst.api.element.JavaDoc javaDoc, - List comments, - java.util.function.Consumer consumer) { - List all = new ArrayList<>(); + private static void javaDocTargets(JavaDoc javaDoc, + List comments, + Consumer consumer) { + List all = new ArrayList<>(); if (javaDoc != null) all.add(javaDoc); - for (io.codelaser.maddi.cst.api.element.Comment comment : comments) { - if (comment instanceof io.codelaser.maddi.cst.api.element.JavaDoc jd) all.add(jd); + for (Comment comment : comments) { + if (comment instanceof JavaDoc jd) all.add(jd); } - for (io.codelaser.maddi.cst.api.element.JavaDoc jd : all) { - for (io.codelaser.maddi.cst.api.element.JavaDoc.Tag tag : jd.tags()) { + for (JavaDoc jd : all) { + for (JavaDoc.Tag tag : jd.tags()) { Object target = tag.resolvedReference(); if (target instanceof TypeInfo ti) consumer.accept(ti); else if (target instanceof MethodInfo mi) consumer.accept(mi.typeInfo()); @@ -235,7 +247,7 @@ public static List staleReferences(ParseResult parseResult) { Set ours = parseResult.primaryTypes().stream().map(TypeInfo::fullyQualifiedName) .collect(Collectors.toUnmodifiableSet()); for (TypeInfo primaryType : parseResult.primaryTypes()) { - java.util.function.BiConsumer check = (reached, where) -> { + BiConsumer check = (reached, where) -> { if (reached == null) return; TypeInfo primary = reached.primaryType(); if (primary != null && ours.contains(primary.fullyQualifiedName()) @@ -317,11 +329,11 @@ public static Map declarations(ParseResult parseResult) { return map; } - private static String declaration(List comments, - List annotations, - io.codelaser.maddi.cst.api.element.JavaDoc javaDoc, - io.codelaser.maddi.cst.api.type.ParameterizedType type, - io.codelaser.maddi.cst.api.element.Source source) { + private static String declaration(List comments, + List annotations, + JavaDoc javaDoc, + ParameterizedType type, + Source source) { StringBuilder sb = new StringBuilder(); sb.append(comments.size()).append(" comment(s); annotations ") .append(annotations.stream().map(a -> a.typeInfo().fullyQualifiedName()).toList()); @@ -335,7 +347,7 @@ private static String declaration(List> watched = new ArrayList<>(); + private final List> watched = new ArrayList<>(); private int watchedAt; private void leakCheck(int iteration, InfoMapView view) { @@ -192,18 +199,18 @@ private void leakCheck(int iteration, InfoMapView view) { int n = stats.size(); if (watched.isEmpty() && n == 2 && !view.rewiredTypes().isEmpty()) { // every type the rewire built: whether a generation survives is a count, and one survivor's chain is enough - view.rewiredTypes().forEach(t -> watched.add(new java.lang.ref.WeakReference<>(t))); + view.rewiredTypes().forEach(t -> watched.add(new WeakReference<>(t))); LOGGER.info("REWIRE LEAK watching the {} type(s) built at re-parse {}", watched.size(), n); watchedAt = n; } else if (!watched.isEmpty() && n == watchedAt + 4) { for (int i = 0; i < 3; i++) System.gc(); - List alive = watched.stream().map(java.lang.ref.WeakReference::get).filter(Objects::nonNull) + List alive = watched.stream().map(WeakReference::get).filter(Objects::nonNull) .toList(); LOGGER.info("REWIRE LEAK of the {} type(s) built at re-parse {}, {} are still reachable", watched.size(), watchedAt, alive.size()); // the types reachable from the driver by name: more than one object for a name is a generation kept List all = LeakPath.reachable(this, TypeInfo.class, 40_000_000); - Map> byName = all.stream().collect(java.util.stream.Collectors.groupingBy( + Map> byName = all.stream().collect(Collectors.groupingBy( TypeInfo::fullyQualifiedName)); List>> doubled = byName.entrySet().stream() .filter(e -> e.getValue().size() > 1).sorted(Map.Entry.comparingByKey()).toList(); @@ -379,9 +386,9 @@ private void oracle(int iteration) { LOGGER.error("REWIRE ORACLE iteration {}: {} difference(s) with a cold parse", iteration, differences.size()); // up to 50 of each kind ("prep of", "analysis of", ...): one kind must not hide another - differences.stream().collect(java.util.stream.Collectors.groupingBy( - d -> d.substring(0, Math.max(0, d.indexOf(" of "))), java.util.LinkedHashMap::new, - java.util.stream.Collectors.toList())) + differences.stream().collect(Collectors.groupingBy( + d -> d.substring(0, Math.max(0, d.indexOf(" of "))), LinkedHashMap::new, + Collectors.toList())) .forEach((kind, list) -> { LOGGER.error("REWIRE ORACLE iteration {}: {} {} difference(s)", iteration, list.size(), kind.isEmpty() ? "other" : kind); @@ -420,7 +427,7 @@ private void logSummary() { median(stats.stream().mapToLong(Stats::analysisMs)), oracleChecks, oracleDifferences.size()); } - private static long median(java.util.stream.LongStream values) { + private static long median(LongStream values) { long[] sorted = values.sorted().toArray(); return sorted.length == 0 ? 0 : sorted[sorted.length / 2]; } diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/AddOnceSet.java b/maddi-support/src/main/java/io/codelaser/maddi/support/AddOnceSet.java index 140740ebfc..5c0b639cc7 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/AddOnceSet.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/AddOnceSet.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.support; -import io.codelaser.maddi.annotation.*; -import io.codelaser.maddi.annotation.eventual.Only; - import java.util.*; import java.util.function.Consumer; import java.util.stream.Stream; +import io.codelaser.maddi.annotation.*; +import io.codelaser.maddi.annotation.eventual.Only; + /** * Example of a freezable set, which disallows both removal and attempts to write an object a second time. * Implemented as a map, so you can retrieve the exact object you put in using the get method. diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/Either.java b/maddi-support/src/main/java/io/codelaser/maddi/support/Either.java index 7ba4aa7ef1..61c9353d42 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/Either.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/Either.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.support; +import java.util.Objects; + import io.codelaser.maddi.annotation.ImmutableContainer; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.annotation.NotNull; import io.codelaser.maddi.annotation.Nullable; -import java.util.Objects; - /** * A class holding either an object of type A, or one of type B; it cannot hold both, * nor can it hold neither. diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/FirstThen.java b/maddi-support/src/main/java/io/codelaser/maddi/support/FirstThen.java index 52d6dcebf0..e1ccab6453 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/FirstThen.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/FirstThen.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.support; +import java.util.Objects; + import io.codelaser.maddi.annotation.*; import io.codelaser.maddi.annotation.eventual.Mark; import io.codelaser.maddi.annotation.eventual.Only; import io.codelaser.maddi.annotation.eventual.TestMark; -import java.util.Objects; - /** * An object which first holds an object of type S, and, in the second and final stage of its life-cycle, * holds an object of type T. diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/IntMemo.java b/maddi-support/src/main/java/io/codelaser/maddi/support/IntMemo.java index b4957697b0..cdec84a254 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/IntMemo.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/IntMemo.java @@ -17,10 +17,10 @@ package io.codelaser.maddi.support; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; - import java.util.function.IntSupplier; +import io.codelaser.maddi.annotation.rare.IgnoreModifications; + /** * The primitive twin of {@link Memo}: an idempotent lazy {@code int} cache, for the cached-hash idiom. *

      diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/Lazy.java b/maddi-support/src/main/java/io/codelaser/maddi/support/Lazy.java index a951691812..5d5ffc0e05 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/Lazy.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/Lazy.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.support; +import java.util.Objects; +import java.util.function.Supplier; + import io.codelaser.maddi.annotation.*; import io.codelaser.maddi.annotation.eventual.Mark; import io.codelaser.maddi.annotation.eventual.TestMark; -import java.util.Objects; -import java.util.function.Supplier; - /** * Implementation of a lazy value, where null is used to indicate that the value has not been * evaluated yet. diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/Memo.java b/maddi-support/src/main/java/io/codelaser/maddi/support/Memo.java index 7c2d11741e..1d145e2f58 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/Memo.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/Memo.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.support; -import io.codelaser.maddi.annotation.rare.IgnoreModifications; - import java.util.Objects; import java.util.function.Supplier; +import io.codelaser.maddi.annotation.rare.IgnoreModifications; + /** * An idempotent lazy cache: a slot that is computed on first read and never observably changes after. *

      diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/SetOnce.java b/maddi-support/src/main/java/io/codelaser/maddi/support/SetOnce.java index f0c5e2faf0..778563e4e4 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/SetOnce.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/SetOnce.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.support; +import java.util.Objects; + import io.codelaser.maddi.annotation.*; import io.codelaser.maddi.annotation.eventual.Mark; import io.codelaser.maddi.annotation.eventual.Only; import io.codelaser.maddi.annotation.eventual.TestMark; -import java.util.Objects; - /** * Simple example eventually level 2 immutable type which can hold a single value. * This value is either not yet set, or set and immutable. diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/SetOnceMap.java b/maddi-support/src/main/java/io/codelaser/maddi/support/SetOnceMap.java index 69146eadcd..acc18358b2 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/SetOnceMap.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/SetOnceMap.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.support; -import io.codelaser.maddi.annotation.*; -import io.codelaser.maddi.annotation.eventual.Only; - import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.function.Function; import java.util.stream.Stream; +import io.codelaser.maddi.annotation.*; +import io.codelaser.maddi.annotation.eventual.Only; + /** * Example of an eventually level 2 immutable map, where each key can be put only once, * and removal is not permitted. Once the map is frozen, elements cannot be added anymore. diff --git a/maddi-support/src/main/java/io/codelaser/maddi/support/VariableFirstThen.java b/maddi-support/src/main/java/io/codelaser/maddi/support/VariableFirstThen.java index 9c66d28f25..6f6f46c222 100644 --- a/maddi-support/src/main/java/io/codelaser/maddi/support/VariableFirstThen.java +++ b/maddi-support/src/main/java/io/codelaser/maddi/support/VariableFirstThen.java @@ -17,13 +17,13 @@ package io.codelaser.maddi.support; +import java.util.Objects; + import io.codelaser.maddi.annotation.*; import io.codelaser.maddi.annotation.eventual.Mark; import io.codelaser.maddi.annotation.eventual.Only; import io.codelaser.maddi.annotation.eventual.TestMark; -import java.util.Objects; - /** * An object which first holds an object of type S, and, in the second and final stage of its life-cycle, * holds an object of type T. diff --git a/maddi-support/src/test/java/io/codelaser/maddi/support/TestEither.java b/maddi-support/src/test/java/io/codelaser/maddi/support/TestEither.java index 172075a6ce..2c64459f0a 100644 --- a/maddi-support/src/test/java/io/codelaser/maddi/support/TestEither.java +++ b/maddi-support/src/test/java/io/codelaser/maddi/support/TestEither.java @@ -17,10 +17,10 @@ package io.codelaser.maddi.support; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + public class TestEither { @Test diff --git a/maddi-support/src/test/java/io/codelaser/maddi/support/TestEventuallyFinal.java b/maddi-support/src/test/java/io/codelaser/maddi/support/TestEventuallyFinal.java index b07d11bc9e..5ed632a4c7 100644 --- a/maddi-support/src/test/java/io/codelaser/maddi/support/TestEventuallyFinal.java +++ b/maddi-support/src/test/java/io/codelaser/maddi/support/TestEventuallyFinal.java @@ -18,10 +18,10 @@ package io.codelaser.maddi.support; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + public class TestEventuallyFinal { @Test diff --git a/maddi-support/src/test/java/io/codelaser/maddi/support/TestFirstThen.java b/maddi-support/src/test/java/io/codelaser/maddi/support/TestFirstThen.java index a66e74b9fe..1cda3f7eca 100644 --- a/maddi-support/src/test/java/io/codelaser/maddi/support/TestFirstThen.java +++ b/maddi-support/src/test/java/io/codelaser/maddi/support/TestFirstThen.java @@ -18,10 +18,10 @@ package io.codelaser.maddi.support; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + public class TestFirstThen { @Test diff --git a/maddi-support/src/test/java/io/codelaser/maddi/support/TestLazy.java b/maddi-support/src/test/java/io/codelaser/maddi/support/TestLazy.java index a0d10ee25e..545545726f 100644 --- a/maddi-support/src/test/java/io/codelaser/maddi/support/TestLazy.java +++ b/maddi-support/src/test/java/io/codelaser/maddi/support/TestLazy.java @@ -17,12 +17,12 @@ package io.codelaser.maddi.support; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.lang.reflect.Field; import java.util.concurrent.atomic.AtomicInteger; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; public class TestLazy { diff --git a/maddi-util/src/main/java/io/codelaser/maddi/util/ListUtil.java b/maddi-util/src/main/java/io/codelaser/maddi/util/ListUtil.java index 19cb986591..04acf37bcb 100644 --- a/maddi-util/src/main/java/io/codelaser/maddi/util/ListUtil.java +++ b/maddi-util/src/main/java/io/codelaser/maddi/util/ListUtil.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.util; -import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.NotModified; -import io.codelaser.maddi.annotation.NotNull; - import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.stream.Stream; +import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.NotModified; +import io.codelaser.maddi.annotation.NotNull; + public class ListUtil { public record Pair(K k, V v) {} diff --git a/maddi-util/src/main/java/io/codelaser/maddi/util/MapUtil.java b/maddi-util/src/main/java/io/codelaser/maddi/util/MapUtil.java index 13cbd9f267..270d7f23a9 100644 --- a/maddi-util/src/main/java/io/codelaser/maddi/util/MapUtil.java +++ b/maddi-util/src/main/java/io/codelaser/maddi/util/MapUtil.java @@ -17,14 +17,14 @@ package io.codelaser.maddi.util; -import io.codelaser.maddi.annotation.NotModified; - import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.stream.Collectors; +import io.codelaser.maddi.annotation.NotModified; + // keep the 'final' here, there is a test that checks that MapUtil is not extensible public final class MapUtil { diff --git a/maddi-util/src/main/java/io/codelaser/maddi/util/Trie.java b/maddi-util/src/main/java/io/codelaser/maddi/util/Trie.java index d78313996a..63a2e93fcf 100644 --- a/maddi-util/src/main/java/io/codelaser/maddi/util/Trie.java +++ b/maddi-util/src/main/java/io/codelaser/maddi/util/Trie.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.util; +import java.util.*; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + import io.codelaser.maddi.annotation.FinalFields; import io.codelaser.maddi.annotation.Modified; import io.codelaser.maddi.annotation.NotModified; import io.codelaser.maddi.support.Freezable; -import java.util.*; -import java.util.function.BiConsumer; -import java.util.function.Consumer; - /* to make this class @ImmutableContainer, we have to secure the get() methods and the visitor by exposing copied lists, rather than the ones belonging to the fields. diff --git a/maddi-util/src/main/java/io/codelaser/maddi/util/ZipLists.java b/maddi-util/src/main/java/io/codelaser/maddi/util/ZipLists.java index d52e2e6b32..1a65e6555f 100644 --- a/maddi-util/src/main/java/io/codelaser/maddi/util/ZipLists.java +++ b/maddi-util/src/main/java/io/codelaser/maddi/util/ZipLists.java @@ -17,15 +17,15 @@ package io.codelaser.maddi.util; -import io.codelaser.maddi.annotation.Independent; -import io.codelaser.maddi.annotation.NotModified; - import java.util.Iterator; import java.util.List; import java.util.Spliterators; import java.util.stream.Stream; import java.util.stream.StreamSupport; +import io.codelaser.maddi.annotation.Independent; +import io.codelaser.maddi.annotation.NotModified; + public class ZipLists { public record Z(X x, Y y) { } diff --git a/maddi-util/src/test/java/io/codelaser/maddi/util/TestStringUtil.java b/maddi-util/src/test/java/io/codelaser/maddi/util/TestStringUtil.java index 42db59fc3c..05da6bfe04 100644 --- a/maddi-util/src/test/java/io/codelaser/maddi/util/TestStringUtil.java +++ b/maddi-util/src/test/java/io/codelaser/maddi/util/TestStringUtil.java @@ -17,11 +17,11 @@ package io.codelaser.maddi.util; -import org.junit.jupiter.api.Test; - import static io.codelaser.maddi.util.StringUtil.replaceSlashDollar; import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + public class TestStringUtil { @Test public void testReplaceSlashDollar() { diff --git a/maddi-util/src/testFixtures/java/io/codelaser/maddi/util/corpus/Corpora.java b/maddi-util/src/testFixtures/java/io/codelaser/maddi/util/corpus/Corpora.java index 3f11465b62..7b91afc46f 100644 --- a/maddi-util/src/testFixtures/java/io/codelaser/maddi/util/corpus/Corpora.java +++ b/maddi-util/src/testFixtures/java/io/codelaser/maddi/util/corpus/Corpora.java @@ -16,8 +16,6 @@ */ package io.codelaser.maddi.util.corpus; -import org.junit.jupiter.api.Assumptions; - import java.io.IOException; import java.io.UncheckedIOException; import java.net.URI; @@ -27,6 +25,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.junit.jupiter.api.Assumptions; + /** * Finds a test corpus on this machine: its checkout, and the {@code inputConfiguration.json} that was * generated from it.