typetools / checker-framework

Pluggable type-checking for Java
http://checkerframework.org/
Other
1.01k stars 350 forks source link

Unexpected Value Checker warnings on Comparable #3146

Open kelloggm opened 4 years ago

kelloggm commented 4 years ago

Consider the following program, which is derived from the Apache Ofbiz test suite's ComparableRangeTests.java:

public class ComparableRangeTest {

    private static <T extends Comparable<T>, B extends Comparable<B>> void comparableRangeTest(String label, B bad, T a, T b, T c, T d) {
    }

    public void testComparableRange() {
        comparableRangeTest("integer", 20L, 1, 2, 3, 4);
    }
}

I expect the Value Checker not to produce output on this program. However, what I get instead is:

> javac -processor org.checkerframework.common.value.ValueChecker ComparableRangeTest.java 
ComparableRangeTest.java:10: error: [type.argument.type.incompatible] incompatible types in type argument.
        comparableRangeTest("integer", 20L, 1, 2, 3, 4);
                           ^
  found   : @IntVal({1, 2, 3, 4}) Integer
  required: @UnknownVal Comparable<@IntVal({1, 2, 3, 4}) Integer>
ComparableRangeTest.java:10: error: [type.argument.type.incompatible] incompatible types in type argument.
        comparableRangeTest("integer", 20L, 1, 2, 3, 4);
                           ^
  found   : /*DECL*/ @IntVal(20) Long
  required: @UnknownVal Comparable<@IntVal(20) Long>
2 errors
exit 1

I'm especially unsure what to make of the second error.

Here's the output with -verbose -version -AprintAllQualifiers:

javac 11.0.6
[parsing started SimpleFileObject[/Users/kelloggm/jsr308/checker-framework/ComparableRangeTest.java]]
[parsing completed 24ms]
[loading /modules/jdk.naming.dns/module-info.class]
[loading /modules/jdk.internal.vm.compiler.management/module-info.class]
[loading /modules/java.se/module-info.class]
[loading /modules/jdk.security.auth/module-info.class]
[loading /modules/jdk.jartool/module-info.class]
[loading /modules/jdk.dynalink/module-info.class]
[loading /modules/jdk.crypto.ec/module-info.class]
[loading /modules/jdk.unsupported/module-info.class]
[loading /modules/jdk.internal.le/module-info.class]
[loading /modules/jdk.compiler/module-info.class]
[loading /modules/java.logging/module-info.class]
[loading /modules/jdk.jdwp.agent/module-info.class]
[loading /modules/jdk.attach/module-info.class]
[loading /modules/jdk.accessibility/module-info.class]
[loading /modules/jdk.pack/module-info.class]
[loading /modules/jdk.scripting.nashorn/module-info.class]
[loading /modules/jdk.internal.vm.compiler/module-info.class]
[loading /modules/java.prefs/module-info.class]
[loading /modules/java.security.jgss/module-info.class]
[loading /modules/jdk.internal.ed/module-info.class]
[loading /modules/jdk.httpserver/module-info.class]
[loading /modules/jdk.jsobject/module-info.class]
[loading /modules/jdk.jlink/module-info.class]
[loading /modules/jdk.management/module-info.class]
[loading /modules/jdk.jfr/module-info.class]
[loading /modules/java.security.sasl/module-info.class]
[loading /modules/java.compiler/module-info.class]
[loading /modules/java.base/module-info.class]
[loading /modules/java.desktop/module-info.class]
[loading /modules/jdk.sctp/module-info.class]
[loading /modules/java.xml/module-info.class]
[loading /modules/jdk.zipfs/module-info.class]
[loading /modules/jdk.jconsole/module-info.class]
[loading /modules/jdk.scripting.nashorn.shell/module-info.class]
[loading /modules/jdk.unsupported.desktop/module-info.class]
[loading /modules/jdk.hotspot.agent/module-info.class]
[loading /modules/jdk.javadoc/module-info.class]
[loading /modules/jdk.jshell/module-info.class]
[loading /modules/java.xml.crypto/module-info.class]
[loading /modules/java.instrument/module-info.class]
[loading /modules/java.smartcardio/module-info.class]
[loading /modules/jdk.xml.dom/module-info.class]
[loading /modules/java.management.rmi/module-info.class]
[loading /modules/java.sql.rowset/module-info.class]
[loading /modules/java.datatransfer/module-info.class]
[loading /modules/java.sql/module-info.class]
[loading /modules/java.naming/module-info.class]
[loading /modules/java.scripting/module-info.class]
[loading /modules/jdk.localedata/module-info.class]
[loading /modules/jdk.aot/module-info.class]
[loading /modules/jdk.rmic/module-info.class]
[loading /modules/jdk.charsets/module-info.class]
[loading /modules/jdk.jstatd/module-info.class]
[loading /modules/java.management/module-info.class]
[loading /modules/jdk.jcmd/module-info.class]
[loading /modules/jdk.internal.vm.ci/module-info.class]
[loading /modules/jdk.editpad/module-info.class]
[loading /modules/jdk.crypto.cryptoki/module-info.class]
[loading /modules/jdk.management.agent/module-info.class]
[loading /modules/jdk.jdeps/module-info.class]
[loading /modules/jdk.naming.rmi/module-info.class]
[loading /modules/java.rmi/module-info.class]
[loading /modules/java.transaction.xa/module-info.class]
[loading /modules/java.net.http/module-info.class]
[loading /modules/jdk.internal.jvmstat/module-info.class]
[loading /modules/jdk.jdi/module-info.class]
[loading /modules/jdk.management.jfr/module-info.class]
[loading /modules/jdk.net/module-info.class]
[loading /modules/jdk.security.jgss/module-info.class]
[loading /modules/jdk.internal.opt/module-info.class]
[search path for source files: /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../dataflow/build/classes/java/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../javacutil/build/classes/java/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/resources/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/resources/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../../stubparser/javaparser-core/stubparser.jar,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../../annotation-tools/scene-lib/bin,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../../annotation-tools/annotation-file-utilities/annotation-file-utilities-all.jar,null,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../dist/checker-qual.jar,.]
[search path for class files: /Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home/lib/modules,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../dataflow/build/classes/java/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../javacutil/build/classes/java/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/resources/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/resources/main,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../../stubparser/javaparser-core/stubparser.jar,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../../annotation-tools/scene-lib/bin,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../../annotation-tools/annotation-file-utilities/annotation-file-utilities-all.jar,null,/Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../dist/checker-qual.jar,.]
[loading /modules/java.base/java/lang/Object.class]
[loading /modules/java.base/java/lang/Comparable.class]
[loading /modules/java.base/java/lang/String.class]
[loading /modules/java.base/java/lang/Deprecated.class]
[loading /modules/java.base/java/lang/annotation/Retention.class]
[loading /modules/java.base/java/lang/annotation/RetentionPolicy.class]
[loading /modules/java.base/java/lang/annotation/Target.class]
[loading /modules/java.base/java/lang/annotation/ElementType.class]
Round 1:
    input files: {ComparableRangeTest}
    annotations: []
    last round: false
Processor org.checkerframework.common.value.ValueChecker matches [] and returns false.
Round 2:
    input files: {}
    annotations: []
    last round: true
[checking ComparableRangeTest]
[loading /modules/java.base/java/io/Serializable.class]
[loading /modules/java.base/java/lang/AutoCloseable.class]
[loading /modules/java.base/java/lang/Long.class]
[loading /modules/java.base/java/lang/Integer.class]
[loading /modules/java.base/java/lang/Number.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/UnknownVal.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/SubtypeOf.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/BottomVal.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/TargetLocations.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/TypeUseLocation.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/PolyValue.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/PolymorphicQualifier.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/IntRangeFromPositive.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/IntRangeFromNonNegative.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/IntRangeFromGTENegativeOne.class]
[loading /modules/java.base/java/lang/String$CaseInsensitiveComparator.class]
[loading /modules/java.base/java/lang/Math.class]
[loading /modules/java.base/java/lang/Math$RandomNumberGeneratorHolder.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/ArrayLen.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/StringVal.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/DoubleVal.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/IntVal.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/BoolVal.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/IntRange.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/ArrayLenRange.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../dataflow/build/classes/java/main/org/checkerframework/dataflow/qual/Pure.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../dataflow/build/classes/java/main/org/checkerframework/dataflow/qual/Pure$Kind.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../dataflow/build/classes/java/main/org/checkerframework/dataflow/qual/SideEffectFree.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../dataflow/build/classes/java/main/org/checkerframework/dataflow/qual/Deterministic.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../dataflow/build/classes/java/main/org/checkerframework/dataflow/qual/TerminatesExecution.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/FromStubFile.class]
[loading /modules/java.base/java/lang/WeakPairMap.class]
[loading /modules/java.base/java/lang/WeakPairMap$Pair.class]
[loading /modules/java.base/java/lang/WeakPairMap$Pair$Weak.class]
[loading /modules/java.base/java/lang/WeakPairMap$Pair$Weak$1.class]
[loading /modules/java.base/java/lang/WeakPairMap$WeakRefPeer.class]
[loading /modules/java.base/java/lang/Void.class]
[loading /modules/java.base/java/lang/VirtualMachineError.class]
[loading /modules/java.base/java/lang/VersionProps.class]
[loading /modules/java.base/java/lang/VerifyError.class]
[loading /modules/java.base/java/lang/UnsupportedOperationException.class]
[loading /modules/java.base/java/lang/UnsupportedClassVersionError.class]
[loading /modules/java.base/java/lang/UnsatisfiedLinkError.class]
[loading /modules/java.base/java/lang/UnknownError.class]
[loading /modules/java.base/java/lang/TypeNotPresentException.class]
[loading /modules/java.base/java/lang/Throwable.class]
[loading /modules/java.base/java/lang/Throwable$WrappedPrintStream.class]
[loading /modules/java.base/java/lang/Throwable$SentinelHolder.class]
[loading /modules/java.base/java/lang/ThreadLocal.class]
[loading /modules/java.base/java/lang/ThreadLocal$ThreadLocalMap.class]
[loading /modules/java.base/java/lang/ThreadLocal$ThreadLocalMap$Entry.class]
[loading /modules/java.base/java/lang/ThreadGroup.class]
[loading /modules/java.base/java/lang/ThreadDeath.class]
[loading /modules/java.base/java/lang/Thread.class]
[loading /modules/java.base/jdk/internal/vm/annotation/Contended.class]
[loading /modules/java.base/java/lang/Thread$State.class]
[loading /modules/java.base/java/lang/Thread$Caches.class]
[loading /modules/java.base/java/lang/Thread$1.class]
[loading /modules/java.base/java/lang/Terminator.class]
[loading /modules/java.base/java/lang/Terminator$1.class]
[loading /modules/java.base/java/lang/System.class]
[loading /modules/java.base/java/lang/System$Logger.class]
[loading /modules/java.base/java/lang/System$Logger$Level.class]
[loading /modules/java.base/java/lang/System$2.class]
[loading /modules/java.base/java/lang/System$1.class]
[loading /modules/java.base/java/lang/SuppressWarnings.class]
[loading /modules/java.base/java/lang/StringUTF16.class]
[loading /modules/java.base/java/lang/StringLatin1.class]
[loading /modules/java.base/java/lang/StringIndexOutOfBoundsException.class]
[loading /modules/java.base/java/lang/StringConcatHelper.class]
[loading /modules/java.base/java/lang/StringCoding.class]
[loading /modules/java.base/java/lang/StringCoding$StringDecoder.class]
[loading /modules/java.base/java/lang/StringCoding$1.class]
[loading /modules/java.base/java/lang/StringBuilder.class]
[loading /modules/java.base/java/lang/StringBuffer.class]
[loading /modules/java.base/java/lang/StrictMath.class]
[loading /modules/java.base/java/lang/StackWalker.class]
[loading /modules/java.base/java/lang/StackTraceElement.class]
[loading /modules/java.base/java/lang/StackStreamFactory.class]
[loading /modules/java.base/java/lang/StackStreamFactory$StackFrameTraverser.class]
[loading /modules/java.base/java/lang/StackStreamFactory$StackFrameTraverser$StackFrameBuffer.class]
[loading /modules/java.base/java/lang/StackStreamFactory$1.class]
[loading /modules/java.base/java/lang/StackOverflowError.class]
[loading /modules/java.base/java/lang/StackFrameInfo.class]
[loading /modules/java.base/java/lang/Shutdown.class]
[loading /modules/java.base/java/lang/Short.class]
[loading /modules/java.base/java/lang/SecurityManager.class]
[loading /modules/java.base/java/lang/SecurityManager$2.class]
[loading /modules/java.base/java/lang/SecurityManager$1.class]
[loading /modules/java.base/java/lang/SecurityException.class]
[loading /modules/java.base/java/lang/SafeVarargs.class]
[loading /modules/java.base/java/lang/RuntimePermission.class]
[loading /modules/java.base/java/lang/RuntimeException.class]
[loading /modules/java.base/java/lang/Runtime.class]
[loading /modules/java.base/java/lang/Runtime$Version.class]
[loading /modules/java.base/java/lang/Runnable.class]
[loading /modules/java.base/java/lang/ReflectiveOperationException.class]
[loading /modules/java.base/java/lang/Readable.class]
[loading /modules/java.base/java/lang/PublicMethods.class]
[loading /modules/java.base/java/lang/PublicMethods$Key.class]
[loading /modules/java.base/java/lang/ProcessImpl.class]
[loading /modules/java.base/java/lang/ProcessImpl$ProcessPipeInputStream.class]
[loading /modules/java.base/java/lang/ProcessImpl$LaunchMechanism.class]
[loading /modules/java.base/java/lang/ProcessImpl$1.class]
[loading /modules/java.base/java/lang/ProcessHandleImpl.class]
[loading /modules/java.base/java/lang/ProcessHandleImpl$ExitCompletion.class]
[loading /modules/java.base/java/lang/ProcessHandleImpl$1.class]
[loading /modules/java.base/java/lang/ProcessHandle.class]
[loading /modules/java.base/java/lang/ProcessEnvironment.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringValues.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringValues$1.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringKeySet.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringKeySet$1.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringEntrySet.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringEntrySet$2.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringEntrySet$1.class]
[loading /modules/java.base/java/lang/ProcessBuilder.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$6.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$5.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$4.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$3.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$2.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$1.class]
[loading /modules/java.base/java/lang/Process.class]
[loading /modules/java.base/java/lang/Process$1.class]
[loading /modules/java.base/java/lang/Package.class]
[loading /modules/java.base/java/lang/Package$1PackageInfoProxy.class]
[loading /modules/java.base/java/lang/Override.class]
[loading /modules/java.base/java/lang/OutOfMemoryError.class]
[loading /modules/java.base/java/lang/NumberFormatException.class]
[loading /modules/java.base/java/lang/NullPointerException.class]
[loading /modules/java.base/java/lang/NoSuchMethodException.class]
[loading /modules/java.base/java/lang/NoSuchMethodError.class]
[loading /modules/java.base/java/lang/NoSuchFieldException.class]
[loading /modules/java.base/java/lang/NoSuchFieldError.class]
[loading /modules/java.base/java/lang/NoClassDefFoundError.class]
[loading /modules/java.base/java/lang/NegativeArraySizeException.class]
[loading /modules/java.base/java/lang/NamedPackage.class]
[loading /modules/java.base/java/lang/ModuleLayer.class]
[loading /modules/java.base/java/lang/Module.class]
[loading /modules/java.base/java/lang/Module$2.class]
[loading /modules/java.base/java/lang/Module$1DummyModuleInfo.class]
[loading /modules/java.base/java/lang/Module$1.class]
[loading /modules/java.base/java/lang/LiveStackFrameInfo.class]
[loading /modules/java.base/java/lang/LiveStackFrameInfo$PrimitiveSlot32.class]
[loading /modules/java.base/java/lang/LiveStackFrame.class]
[loading /modules/java.base/java/lang/LinkageError.class]
[loading /modules/java.base/java/lang/LayerInstantiationException.class]
[loading /modules/java.base/java/lang/Iterable.class]
[loading /modules/java.base/java/lang/InterruptedException.class]
[loading /modules/java.base/java/lang/InternalError.class]
[loading /modules/java.base/java/lang/InstantiationException.class]
[loading /modules/java.base/java/lang/InstantiationError.class]
[loading /modules/java.base/java/lang/InheritableThreadLocal.class]
[loading /modules/java.base/java/lang/IndexOutOfBoundsException.class]
[loading /modules/java.base/java/lang/IncompatibleClassChangeError.class]
[loading /modules/java.base/java/lang/IllegalThreadStateException.class]
[loading /modules/java.base/java/lang/IllegalStateException.class]
[loading /modules/java.base/java/lang/IllegalMonitorStateException.class]
[loading /modules/java.base/java/lang/IllegalCallerException.class]
[loading /modules/java.base/java/lang/IllegalArgumentException.class]
[loading /modules/java.base/java/lang/IllegalAccessException.class]
[loading /modules/java.base/java/lang/IllegalAccessError.class]
[loading /modules/java.base/java/lang/FunctionalInterface.class]
[loading /modules/java.base/java/lang/Float.class]
[loading /modules/java.base/java/lang/FdLibm.class]
[loading /modules/java.base/java/lang/ExceptionInInitializerError.class]
[loading /modules/java.base/java/lang/Exception.class]
[loading /modules/java.base/java/lang/Error.class]
[loading /modules/java.base/java/lang/EnumConstantNotPresentException.class]
[loading /modules/java.base/java/lang/Enum.class]
[loading /modules/java.base/java/lang/Double.class]
[loading /modules/java.base/java/lang/ConditionalSpecialCasing.class]
[loading /modules/java.base/java/lang/CompoundEnumeration.class]
[loading /modules/java.base/java/lang/Compiler.class]
[loading /modules/java.base/java/lang/Cloneable.class]
[loading /modules/java.base/java/lang/CloneNotSupportedException.class]
[loading /modules/java.base/java/lang/ClassValue.class]
[loading /modules/java.base/java/lang/ClassValue$Identity.class]
[loading /modules/java.base/java/lang/ClassNotFoundException.class]
[loading /modules/java.base/java/lang/ClassLoaderHelper.class]
[loading /modules/java.base/java/lang/ClassLoader.class]
[loading /modules/java.base/java/lang/ClassLoader$NativeLibrary.class]
[loading /modules/java.base/java/lang/ClassLoader$NativeLibrary$Unloader.class]
[loading /modules/java.base/java/lang/ClassLoader$2.class]
[loading /modules/java.base/java/lang/ClassLoader$1.class]
[loading /modules/java.base/java/lang/ClassFormatError.class]
[loading /modules/java.base/java/lang/ClassCircularityError.class]
[loading /modules/java.base/java/lang/ClassCastException.class]
[loading /modules/java.base/java/lang/Class.class]
[loading /modules/java.base/java/lang/Class$EnclosingMethodInfo.class]
[loading /modules/java.base/java/lang/Class$3.class]
[loading /modules/java.base/java/lang/Class$2.class]
[loading /modules/java.base/java/lang/Class$1.class]
[loading /modules/java.base/java/lang/CharacterName.class]
[loading /modules/java.base/java/lang/CharacterName$1.class]
[loading /modules/java.base/java/lang/CharacterDataUndefined.class]
[loading /modules/java.base/java/lang/CharacterDataPrivateUse.class]
[loading /modules/java.base/java/lang/CharacterDataLatin1.class]
[loading /modules/java.base/java/lang/CharacterData0E.class]
[loading /modules/java.base/java/lang/CharacterData02.class]
[loading /modules/java.base/java/lang/CharacterData01.class]
[loading /modules/java.base/java/lang/CharacterData00.class]
[loading /modules/java.base/java/lang/CharacterData.class]
[loading /modules/java.base/java/lang/Character.class]
[loading /modules/java.base/java/lang/Character$UnicodeBlock.class]
[loading /modules/java.base/java/lang/Character$Subset.class]
[loading /modules/java.base/java/lang/CharSequence.class]
[loading /modules/java.base/java/lang/CharSequence$1CodePointIterator.class]
[loading /modules/java.base/java/lang/CharSequence$1CharIterator.class]
[loading /modules/java.base/java/lang/Byte.class]
[loading /modules/java.base/java/lang/BootstrapMethodError.class]
[loading /modules/java.base/java/lang/Boolean.class]
[loading /modules/java.base/java/lang/AssertionStatusDirectives.class]
[loading /modules/java.base/java/lang/AssertionError.class]
[loading /modules/java.base/java/lang/ArrayStoreException.class]
[loading /modules/java.base/java/lang/ArrayIndexOutOfBoundsException.class]
[loading /modules/java.base/java/lang/ArithmeticException.class]
[loading /modules/java.base/java/lang/ApplicationShutdownHooks.class]
[loading /modules/java.base/java/lang/ApplicationShutdownHooks$1.class]
[loading /modules/java.base/java/lang/Appendable.class]
[loading /modules/java.base/java/lang/AbstractStringBuilder.class]
[loading /modules/java.base/java/lang/AbstractMethodError.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/DefaultQualifier.class]
[loading /modules/java.base/java/lang/annotation/Repeatable.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/nullness/qual/KeyForBottom.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/AnnotatedFor.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/guieffect/qual/UIPackage.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/StaticallyExecutable.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/MinLen.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/EnsuresMinLenIf.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/ConditionalPostconditionAnnotation.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/QualifierArgument.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/common/value/qual/MinLenFieldInvariant.class]
[loading /modules/java.base/java/lang/Byte$ByteCache.class]
[loading /modules/java.base/java/lang/Character$UnicodeScript.class]
[loading /modules/java.base/java/lang/Character$CharacterCache.class]
[loading /modules/java.base/java/lang/Integer$IntegerCache.class]
[loading /modules/java.base/java/lang/Long$LongCache.class]
[loading /modules/java.base/java/lang/Short$ShortCache.class]
[loading /modules/java.base/java/util/Locale.class]
[loading /modules/java.base/java/nio/charset/Charset.class]
[loading /modules/java.base/java/io/UnsupportedEncodingException.class]
[loading /modules/java.base/java/math/BigInteger.class]
[loading /modules/java.base/java/math/BigInteger$UnsafeHolder.class]
[loading /modules/java.base/java/util/regex/Pattern.class]
[loading /modules/java.base/java/util/regex/Pattern$TreeInfo.class]
[loading /modules/java.base/java/util/regex/Pattern$Qtype.class]
[loading /modules/java.base/java/util/regex/Pattern$BitClass.class]
[loading /modules/java.base/java/util/regex/Pattern$Node.class]
[loading /modules/java.base/java/util/regex/Pattern$LastNode.class]
[loading /modules/java.base/java/util/regex/Pattern$Start.class]
[loading /modules/java.base/java/util/regex/Pattern$StartS.class]
[loading /modules/java.base/java/util/regex/Pattern$Begin.class]
[loading /modules/java.base/java/util/regex/Pattern$End.class]
[loading /modules/java.base/java/util/regex/Pattern$Caret.class]
[loading /modules/java.base/java/util/regex/Pattern$UnixCaret.class]
[loading /modules/java.base/java/util/regex/Pattern$LastMatch.class]
[loading /modules/java.base/java/util/regex/Pattern$Dollar.class]
[loading /modules/java.base/java/util/regex/Pattern$UnixDollar.class]
[loading /modules/java.base/java/util/regex/Pattern$LineEnding.class]
[loading /modules/java.base/java/util/regex/Pattern$CharProperty.class]
[loading /modules/java.base/java/util/regex/Pattern$BmpCharProperty.class]
[loading /modules/java.base/java/util/regex/Pattern$NFCCharProperty.class]
[loading /modules/java.base/java/util/regex/Pattern$XGrapheme.class]
[loading /modules/java.base/java/util/regex/Pattern$GraphemeBound.class]
[loading /modules/java.base/java/util/regex/Pattern$SliceNode.class]
[loading /modules/java.base/java/util/regex/Pattern$Slice.class]
[loading /modules/java.base/java/util/regex/Pattern$SliceI.class]
[loading /modules/java.base/java/util/regex/Pattern$SliceU.class]
[loading /modules/java.base/java/util/regex/Pattern$SliceS.class]
[loading /modules/java.base/java/util/regex/Pattern$SliceIS.class]
[loading /modules/java.base/java/util/regex/Pattern$SliceUS.class]
[loading /modules/java.base/java/util/regex/Pattern$Ques.class]
[loading /modules/java.base/java/util/regex/Pattern$CharPropertyGreedy.class]
[loading /modules/java.base/java/util/regex/Pattern$BmpCharPropertyGreedy.class]
[loading /modules/java.base/java/util/regex/Pattern$Curly.class]
[loading /modules/java.base/java/util/regex/Pattern$GroupCurly.class]
[loading /modules/java.base/java/util/regex/Pattern$BranchConn.class]
[loading /modules/java.base/java/util/regex/Pattern$Branch.class]
[loading /modules/java.base/java/util/regex/Pattern$GroupHead.class]
[loading /modules/java.base/java/util/regex/Pattern$GroupRef.class]
[loading /modules/java.base/java/util/regex/Pattern$GroupTail.class]
[loading /modules/java.base/java/util/regex/Pattern$Prolog.class]
[loading /modules/java.base/java/util/regex/Pattern$Loop.class]
[loading /modules/java.base/java/util/regex/Pattern$LazyLoop.class]
[loading /modules/java.base/java/util/regex/Pattern$BackRef.class]
[loading /modules/java.base/java/util/regex/Pattern$CIBackRef.class]
[loading /modules/java.base/java/util/regex/Pattern$First.class]
[loading /modules/java.base/java/util/regex/Pattern$Conditional.class]
[loading /modules/java.base/java/util/regex/Pattern$Pos.class]
[loading /modules/java.base/java/util/regex/Pattern$Neg.class]
[loading /modules/java.base/java/util/regex/Pattern$Behind.class]
[loading /modules/java.base/java/util/regex/Pattern$BehindS.class]
[loading /modules/java.base/java/util/regex/Pattern$NotBehind.class]
[loading /modules/java.base/java/util/regex/Pattern$NotBehindS.class]
[loading /modules/java.base/java/util/regex/Pattern$Bound.class]
[loading /modules/java.base/java/util/regex/Pattern$BnM.class]
[loading /modules/java.base/java/util/regex/Pattern$BnMS.class]
[loading /modules/java.base/java/util/regex/Pattern$CharPredicate.class]
[loading /modules/java.base/java/util/regex/Pattern$BmpCharPredicate.class]
[loading /modules/java.base/java/util/StringTokenizer.class]
[loading /modules/java.base/java/util/Arrays.class]
[loading /modules/java.base/java/util/Arrays$NaturalOrder.class]
[loading /modules/java.base/java/util/Arrays$LegacyMergeSort.class]
[loading /modules/java.base/java/util/Arrays$ArrayList.class]
[loading /modules/java.base/java/util/Arrays$ArrayItr.class]
[loading /modules/java.base/java/util/Calendar.class]
[loading /modules/java.base/java/util/Calendar$Builder.class]
[loading /modules/java.base/java/util/Calendar$AvailableCalendarTypes.class]
[loading /modules/java.base/java/util/Calendar$CalendarAccessControlContext.class]
[loading /modules/java.desktop/java/awt/image/ColorModel.class]
[loading /modules/java.base/java/text/DateFormatSymbols.class]
[loading /modules/java.base/java/util/Vector.class]
[loading /modules/java.base/java/util/Vector$Itr.class]
[loading /modules/java.base/java/util/Vector$ListItr.class]
[loading /modules/java.base/java/util/Vector$VectorSpliterator.class]
[loading /modules/java.base/java/util/function/Function.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/GTENegativeOne.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/NonNegative.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/lock/qual/GuardSatisfied.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/nullness/qual/Nullable.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/QualifierForLiterals.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/LiteralKind.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/DefaultFor.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/nullness/qual/PolyNull.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/CFComment.class]
[loading /modules/java.base/java/io/IOException.class]
[loading /modules/java.base/java/io/ObjectInputStream.class]
[loading /modules/java.base/java/io/StreamCorruptedException.class]
[loading /modules/java.base/java/util/function/Consumer.class]
[loading /modules/java.base/java/util/function/Predicate.class]
[loading /modules/java.base/java/util/function/UnaryOperator.class]
[loading /modules/java.base/java/util/AbstractList.class]
[loading /modules/java.base/java/util/List.class]
[loading /modules/java.base/java/util/RandomAccess.class]
[loading /modules/java.base/java/util/AbstractCollection.class]
[loading /modules/java.base/java/util/Collection.class]
[loading /modules/java.base/java/util/AbstractList$Itr.class]
[loading /modules/java.base/java/util/AbstractList$ListItr.class]
[loading /modules/java.base/java/util/AbstractList$RandomAccessSpliterator.class]
[loading /modules/java.base/java/util/AbstractList$SubList.class]
[loading /modules/java.base/java/util/AbstractList$RandomAccessSubList.class]
[loading /modules/java.base/java/util/Comparator.class]
[loading /modules/java.base/java/util/Enumeration.class]
[loading /modules/java.base/java/util/ListIterator.class]
[loading /modules/java.base/java/util/Iterator.class]
[loading /modules/java.base/java/util/Spliterator.class]
[loading /modules/java.base/java/util/Spliterator$OfPrimitive.class]
[loading /modules/java.base/java/util/Spliterator$OfInt.class]
[loading /modules/java.base/java/util/Spliterator$OfLong.class]
[loading /modules/java.base/java/util/Spliterator$OfDouble.class]
[loading /modules/java.base/jdk/internal/HotSpotIntrinsicCandidate.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/guieffect/qual/PolyUI.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/guieffect/qual/PolyUIType.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/guieffect/qual/SafeEffect.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/initialization/qual/UnknownInitialization.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/nullness/qual/EnsuresNonNullIf.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/formatter/qual/FormatMethod.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/IndexFor.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/IndexOrHigh.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/IndexOrLow.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/LTEqLengthOf.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/LTLengthOf.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/LengthOf.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/Positive.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/SameLen.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/SubstringIndexFor.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/interning/qual/Interned.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/TypeKind.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/regex/qual/PolyRegex.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/regex/qual/Regex.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/signature/qual/PolySignature.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/signedness/qual/PolySigned.class]
[loading /modules/java.base/java/io/ObjectStreamField.class]
[loading /modules/java.base/java/lang/annotation/Native.class]
[loading /modules/java.base/java/util/ArrayList.class]
[loading /modules/java.base/java/util/Formatter.class]
[loading /modules/java.base/java/util/Objects.class]
[loading /modules/java.base/java/util/StringJoiner.class]
[loading /modules/java.base/java/util/regex/Matcher.class]
[loading /modules/java.base/java/util/regex/PatternSyntaxException.class]
[loading /modules/java.base/java/util/stream/IntStream.class]
[loading /modules/java.base/java/util/stream/Stream.class]
[loading /modules/java.base/java/util/stream/StreamSupport.class]
[loading /modules/java.base/jdk/internal/vm/annotation/Stable.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/nullness/qual/NonNull.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../framework/build/classes/java/main/org/checkerframework/framework/qual/UpperBoundFor.class]
[loading /modules/java.base/java/util/WeakHashMap.class]
[loading /modules/java.base/java/util/WeakHashMap$Values.class]
[loading /modules/java.base/java/util/WeakHashMap$ValueIterator.class]
[loading /modules/java.base/java/util/WeakHashMap$HashIterator.class]
[loading /modules/java.base/java/util/WeakHashMap$Entry.class]
[loading /modules/java.base/java/util/Vector$1.class]
[loading /modules/java.base/java/util/UnknownFormatFlagsException.class]
[loading /modules/java.base/java/util/UnknownFormatConversionException.class]
[loading /modules/java.base/java/util/UUID.class]
[loading /modules/java.base/java/util/Tripwire.class]
[loading /modules/java.base/java/util/TreeSet.class]
[loading /modules/java.base/java/util/TreeMap.class]
[loading /modules/java.base/java/util/TreeMap$NavigableSubMap.class]
[loading /modules/java.base/java/util/TreeMap$NavigableSubMap$SubMapKeyIterator.class]
[loading /modules/java.base/java/util/TreeMap$NavigableSubMap$SubMapIterator.class]
[loading /modules/java.base/java/util/TreeMap$NavigableSubMap$EntrySetView.class]
[loading /modules/java.base/java/util/TooManyListenersException.class]
[loading /modules/java.base/java/util/TimerThread.class]
[loading /modules/java.base/java/util/TimerTask.class]
[loading /modules/java.base/java/util/Timer.class]
[loading /modules/java.base/java/util/Timer$1.class]
[loading /modules/java.base/java/util/TimeZone.class]
[loading /modules/java.base/java/util/TimSort.class]
[loading /modules/java.base/java/util/TaskQueue.class]
[loading /modules/java.base/java/util/Stack.class]
[loading /modules/java.base/java/util/SplittableRandom.class]
[loading /modules/java.base/java/util/SplittableRandom$RandomIntsSpliterator.class]
[loading /modules/java.base/java/util/SplittableRandom$1.class]
[loading /modules/java.base/java/util/Spliterators.class]
[loading /modules/java.base/java/util/Spliterators$LongArraySpliterator.class]
[loading /modules/java.base/java/util/Spliterators$IntArraySpliterator.class]
[loading /modules/java.base/java/util/Spliterators$EmptySpliterator.class]
[loading /modules/java.base/java/util/Spliterators$EmptySpliterator$OfRef.class]
[loading /modules/java.base/java/util/Spliterators$EmptySpliterator$OfLong.class]
[loading /modules/java.base/java/util/Spliterators$EmptySpliterator$OfDouble.class]
[loading /modules/java.base/java/util/Spliterators$AbstractSpliterator.class]
[loading /modules/java.base/java/util/Spliterators$AbstractSpliterator$HoldingConsumer.class]
[loading /modules/java.base/java/util/Spliterators$4Adapter.class]
[loading /modules/java.base/java/util/Spliterators$3Adapter.class]
[loading /modules/java.base/java/util/Spliterators$2Adapter.class]
[loading /modules/java.base/java/util/Spliterators$1Adapter.class]
[loading /modules/java.base/java/util/SortedSet.class]
[loading /modules/java.base/java/util/SortedSet$1.class]
[loading /modules/java.base/java/util/Spliterators$IteratorSpliterator.class]
[loading /modules/java.base/java/util/SortedMap.class]
[loading /modules/java.base/java/util/SimpleTimeZone.class]
[loading /modules/java.base/java/util/Set.class]
[loading /modules/java.base/java/util/ServiceLoader.class]
[loading /modules/java.base/java/util/ServiceLoader$ProviderImpl.class]
[loading /modules/java.base/java/util/ServiceLoader$ProviderImpl$2.class]
[loading /modules/java.base/java/security/PrivilegedExceptionAction.class]
[loading /modules/java.base/java/util/ServiceLoader$ProviderImpl$1.class]
[loading /modules/java.base/java/util/ServiceLoader$LazyClassPathLookupIterator.class]
[loading /modules/java.base/java/util/ServiceLoader$LazyClassPathLookupIterator$2.class]
[loading /modules/java.base/java/security/PrivilegedAction.class]
[loading /modules/java.base/java/util/ServiceLoader$Provider.class]
[loading /modules/java.base/java/util/ServiceLoader$LazyClassPathLookupIterator$1.class]
[loading /modules/java.base/java/util/ServiceLoader$3.class]
[loading /modules/java.base/java/util/ServiceLoader$2.class]
[loading /modules/java.base/java/util/ServiceLoader$1.class]
[loading /modules/java.base/java/util/ServiceConfigurationError.class]
[loading /modules/java.base/java/util/Scanner.class]
[loading /modules/java.base/java/util/ResourceBundle.class]
[loading /modules/java.base/java/util/ResourceBundle$ResourceBundleControlProviderHolder.class]
[loading /modules/java.base/java/util/ResourceBundle$KeyElementReference.class]
[loading /modules/java.base/java/util/ResourceBundle$Control.class]
[loading /modules/java.base/java/util/ResourceBundle$Control$CandidateListCache.class]
[loading /modules/java.base/java/util/ResourceBundle$Control$1.class]
[loading /modules/java.base/java/util/ResourceBundle$4.class]
[loading /modules/java.base/java/util/ResourceBundle$3.class]
[loading /modules/java.base/java/util/ResourceBundle$2.class]
[loading /modules/java.base/java/util/ResourceBundle$1.class]
[loading /modules/java.base/java/util/RegularEnumSet.class]
[loading /modules/java.base/java/util/Random.class]
[loading /modules/java.base/java/util/Random$RandomIntsSpliterator.class]
[loading /modules/java.base/java/util/Queue.class]
[loading /modules/java.base/java/util/PropertyResourceBundle.class]
[loading /modules/java.base/java/util/PropertyPermissionCollection.class]
[loading /modules/java.base/java/util/PropertyPermissionCollection$1.class]
[loading /modules/java.base/java/util/PropertyPermission.class]
[loading /modules/java.base/java/util/Properties.class]
[loading /modules/java.base/java/util/PriorityQueue.class]
[loading /modules/java.base/java/util/PriorityQueue$Itr.class]
[loading /modules/java.base/java/util/PrimitiveIterator.class]
[loading /modules/java.base/java/util/OptionalLong.class]
[loading /modules/java.base/java/util/OptionalInt.class]
[loading /modules/java.base/java/util/OptionalDouble.class]
[loading /modules/java.base/java/util/Optional.class]
[loading /modules/java.base/java/util/Observer.class]
[loading /modules/java.base/java/util/Observable.class]
[loading /modules/java.base/java/util/NoSuchElementException.class]
[loading /modules/java.base/java/util/NavigableSet.class]
[loading /modules/java.base/java/util/NavigableMap.class]
[loading /modules/java.base/java/util/MissingResourceException.class]
[loading /modules/java.base/java/util/MissingFormatWidthException.class]
[loading /modules/java.base/java/util/MissingFormatArgumentException.class]
[loading /modules/java.base/java/util/Map.class]
[loading /modules/java.base/java/util/LongSummaryStatistics.class]
[loading /modules/java.base/java/util/LocaleISOData.class]
[loading /modules/java.base/java/util/Locale$IsoCountryCode.class]
[loading /modules/java.base/java/util/Locale$IsoCountryCode$3.class]
[loading /modules/java.base/java/util/Locale$IsoCountryCode$2.class]
[loading /modules/java.base/java/util/Locale$IsoCountryCode$1.class]
[loading /modules/java.base/java/util/Locale$1.class]
[loading /modules/java.base/java/util/ListResourceBundle.class]
[loading /modules/java.base/java/util/LinkedList.class]
[loading /modules/java.base/java/util/LinkedList$ListItr.class]
[loading /modules/java.base/java/util/LinkedHashSet.class]
[loading /modules/java.base/java/util/LinkedHashMap.class]
[loading /modules/java.base/java/util/LinkedHashMap$LinkedKeySet.class]
[loading /modules/java.base/java/util/LinkedHashMap$Entry.class]
[loading /modules/java.base/java/util/KeyValueHolder.class]
[loading /modules/java.base/java/util/JumboEnumSet.class]
[loading /modules/java.base/java/util/JapaneseImperialCalendar.class]
[loading /modules/java.base/java/util/InvalidPropertiesFormatException.class]
[loading /modules/java.base/java/util/IntSummaryStatistics.class]
[loading /modules/java.base/java/util/InputMismatchException.class]
[loading /modules/java.base/java/util/ImmutableCollections.class]
[loading /modules/java.base/java/util/ImmutableCollections$SetN.class]
[loading /modules/java.base/java/util/ImmutableCollections$SetN$SetNIterator.class]
[loading /modules/java.base/java/util/ImmutableCollections$Set12.class]
[loading /modules/java.base/java/util/ImmutableCollections$Set12$1.class]
[loading /modules/java.base/java/util/ImmutableCollections$MapN.class]
[loading /modules/java.base/java/util/ImmutableCollections$MapN$1.class]
[loading /modules/java.base/java/util/AbstractSet.class]
[loading /modules/java.base/java/util/Map$Entry.class]
[loading /modules/java.base/java/util/IllformedLocaleException.class]
[loading /modules/java.base/java/util/IllegalFormatWidthException.class]
[loading /modules/java.base/java/util/IllegalFormatPrecisionException.class]
[loading /modules/java.base/java/util/IllegalFormatFlagsException.class]
[loading /modules/java.base/java/util/IllegalFormatException.class]
[loading /modules/java.base/java/util/IllegalFormatConversionException.class]
[loading /modules/java.base/java/util/IllegalFormatCodePointException.class]
[loading /modules/java.base/java/util/IdentityHashMap.class]
[loading /modules/java.base/java/util/IdentityHashMap$ValueIterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$KeyIterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$IdentityHashMapIterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$EntryIterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$EntryIterator$Entry.class]
[loading /modules/java.base/java/util/Hashtable.class]
[loading /modules/java.base/java/util/Hashtable$KeySet.class]
[loading /modules/java.base/java/util/HashSet.class]
[loading /modules/java.base/java/util/HashMap.class]
[loading /modules/java.base/java/util/HashMap$KeySet.class]
[loading /modules/java.base/java/util/GregorianCalendar.class]
[loading /modules/java.base/java/util/FormatterClosedException.class]
[loading /modules/java.base/java/util/FormattableFlags.class]
[loading /modules/java.base/java/util/Formattable.class]
[loading /modules/java.base/java/util/FormatFlagsConversionMismatchException.class]
[loading /modules/java.base/java/util/EventObject.class]
[loading /modules/java.base/java/util/EventListenerProxy.class]
[loading /modules/java.base/java/util/EventListener.class]
[loading /modules/java.base/java/util/Enumeration$1.class]
[loading /modules/java.base/java/util/EnumSet.class]
[loading /modules/java.base/java/util/EnumMap.class]
[loading /modules/java.base/java/util/EnumMap$KeySet.class]
[loading /modules/java.base/java/util/EnumMap$EntryIterator.class]
[loading /modules/java.base/java/util/EnumMap$EntryIterator$Entry.class]
[loading /modules/java.base/java/util/EnumMap$1.class]
[loading /modules/java.base/java/util/EmptyStackException.class]
[loading /modules/java.base/java/util/DuplicateFormatFlagsException.class]
[loading /modules/java.base/java/util/DualPivotQuicksort.class]
[loading /modules/java.base/java/util/DoubleSummaryStatistics.class]
[loading /modules/java.base/java/util/Dictionary.class]
[loading /modules/java.base/java/util/Deque.class]
[loading /modules/java.base/java/util/Date.class]
[loading /modules/java.base/java/util/Currency.class]
[loading /modules/java.base/java/util/Currency$CurrencyNameGetter.class]
[loading /modules/java.base/java/util/Currency$1.class]
[loading /modules/java.base/java/util/ConcurrentModificationException.class]
[loading /modules/java.base/java/util/Comparators.class]
[loading /modules/java.base/java/util/ComparableTimSort.class]
[loading /modules/java.base/java/util/Collections.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableSet.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableNavigableSet.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableNavigableSet$EmptyNavigableSet.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableMap.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableList.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableList$1.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableCollection.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableCollection$1.class]
[loading /modules/java.base/java/util/Collections$CheckedMap.class]
[loading /modules/java.base/java/util/Collections$CheckedMap$CheckedEntrySet.class]
[loading /modules/java.base/java/util/Collections$CheckedMap$CheckedEntrySet$1.class]
[loading /modules/java.base/java/util/Collections$CheckedList.class]
[loading /modules/java.base/java/util/Collections$CheckedList$1.class]
[loading /modules/java.base/java/util/Collections$CheckedCollection.class]
[loading /modules/java.base/java/util/Collections$CheckedCollection$1.class]
[loading /modules/java.base/java/util/Collections$3.class]
[loading /modules/java.base/java/util/Collections$2.class]
[loading /modules/java.base/java/util/Collections$1.class]
[loading /modules/java.base/java/util/CollSer.class]
[loading /modules/java.base/java/util/Calendar$1.class]
[loading /modules/java.base/java/util/BitSet.class]
[loading /modules/java.base/java/util/BitSet$1BitSetSpliterator.class]
[loading /modules/java.base/java/util/Base64.class]
[loading /modules/java.base/java/util/ArraysParallelSortHelpers.class]
[loading /modules/java.base/java/util/ArraysParallelSortHelpers$FJShort.class]
[loading /modules/java.base/java/util/ArraysParallelSortHelpers$FJShort$Merger.class]
[loading /modules/java.base/java/util/ArraysParallelSortHelpers$FJObject.class]
[loading /modules/java.base/java/util/ArraysParallelSortHelpers$FJObject$Merger.class]
[loading /modules/java.base/java/util/ArrayPrefixHelpers.class]
[loading /modules/java.base/java/util/ArrayList$SubList.class]
[loading /modules/java.base/java/util/ArrayList$SubList$2.class]
[loading /modules/java.base/java/util/ArrayList$SubList$1.class]
[loading /modules/java.base/java/util/ArrayDeque.class]
[loading /modules/java.base/java/util/ArrayDeque$DeqIterator.class]
[loading /modules/java.base/java/util/AbstractSequentialList.class]
[loading /modules/java.base/java/util/AbstractQueue.class]
[loading /modules/java.base/java/util/AbstractMap.class]
[loading /modules/java.base/java/util/AbstractMap$2.class]
[loading /modules/java.base/java/util/AbstractMap$2$1.class]
[loading /modules/java.base/java/util/AbstractMap$1.class]
[loading /modules/java.base/java/util/AbstractMap$1$1.class]
[loading /modules/java.base/java/util/AbstractList$SubList$1.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/index/qual/PolyIndex.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/signedness/qual/SignedPositive.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/signedness/qual/SignednessGlb.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/signedness/qual/UnknownSignedness.class]
[loading /Users/kelloggm/jsr308/checker-framework/checker/bin-devel/../../checker/build/classes/java/main/org/checkerframework/checker/signedness/qual/Unsigned.class]
[loading /modules/java.base/java/math/SignedMutableBigInteger.class]
[loading /modules/java.base/java/math/RoundingMode.class]
[loading /modules/java.base/java/math/MutableBigInteger.class]
[loading /modules/java.base/java/math/MathContext.class]
[loading /modules/java.base/java/math/BitSieve.class]
[loading /modules/java.base/java/math/BigDecimal.class]
[loading /modules/java.base/java/math/BigDecimal$StringBuilderHelper.class]
[loading /modules/java.base/java/math/BigDecimal$LongOverflow.class]
[loading /modules/java.base/java/math/BigDecimal$2.class]
[loading /modules/java.base/java/math/BigDecimal$1.class]
[loading /modules/java.base/jdk/internal/misc/VM.class]
ComparableRangeTest.java:10: error: [type.argument.type.incompatible] incompatible types in type argument.
        comparableRangeTest("integer", 20L, 1, 2, 3, 4);
                           ^
  found   : @IntVal({1, 2, 3, 4}) Integer
  required: @UnknownVal Comparable<@IntVal({1, 2, 3, 4}) Integer>
ComparableRangeTest.java:10: error: [type.argument.type.incompatible] incompatible types in type argument.
        comparableRangeTest("integer", 20L, 1, 2, 3, 4);
                           ^
  found   : /*DECL*/ @IntVal(20) Long
  required: @UnknownVal Comparable<@IntVal(20) Long>
[total 2731ms]
2 errors
smillst commented 4 years ago

Integer implements Comparable<@UnknownVal Integer> so @IntVal(1) is not a subtype of Comparable<@IntVal Integer> We don't have a mechanism to express that the annotation on the type argument to Comparable should be the same as the annotation on Integer.