diff --git a/checker/jtreg/multipleexecutions/Main.java b/checker/jtreg/multipleexecutions/Main.java index a4aa9dac6f5..2b303018c09 100644 --- a/checker/jtreg/multipleexecutions/Main.java +++ b/checker/jtreg/multipleexecutions/Main.java @@ -11,14 +11,12 @@ * https://groups.google.com/d/msg/checker-framework-dev/FvWmCxB8OpE/Cgp1DsPwnWwJ */ -import org.checkerframework.checker.regex.RegexChecker; - import java.io.File; import java.util.Arrays; - import javax.tools.JavaCompiler; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; +import org.checkerframework.checker.regex.RegexChecker; public class Main { diff --git a/checker/jtreg/nullness/PersistUtil.java b/checker/jtreg/nullness/PersistUtil.java index 0351f3bc97d..8fa8884f621 100644 --- a/checker/jtreg/nullness/PersistUtil.java +++ b/checker/jtreg/nullness/PersistUtil.java @@ -7,7 +7,6 @@ * defaultPersists/Driver and inheritDeclAnnoPersist/Driver. */ import com.sun.tools.classfile.ClassFile; - import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; diff --git a/checker/jtreg/nullness/defaultsPersist/Driver.java b/checker/jtreg/nullness/defaultsPersist/Driver.java index 0ea6d68ddcf..663555f2ff9 100644 --- a/checker/jtreg/nullness/defaultsPersist/Driver.java +++ b/checker/jtreg/nullness/defaultsPersist/Driver.java @@ -8,9 +8,6 @@ import com.sun.tools.classfile.ClassFile; import com.sun.tools.classfile.TypeAnnotation; import com.sun.tools.classfile.TypeAnnotation.TargetType; - -import org.checkerframework.javacutil.Pair; - import java.io.PrintStream; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -19,6 +16,7 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import org.checkerframework.javacutil.Pair; public class Driver { diff --git a/checker/jtreg/nullness/defaultsPersist/ReferenceInfoUtil.java b/checker/jtreg/nullness/defaultsPersist/ReferenceInfoUtil.java index 004051046ce..1743208fbc7 100644 --- a/checker/jtreg/nullness/defaultsPersist/ReferenceInfoUtil.java +++ b/checker/jtreg/nullness/defaultsPersist/ReferenceInfoUtil.java @@ -11,13 +11,11 @@ import com.sun.tools.classfile.Method; import com.sun.tools.classfile.RuntimeTypeAnnotations_attribute; import com.sun.tools.classfile.TypeAnnotation; - -import org.checkerframework.javacutil.Pair; -import org.checkerframework.javacutil.PluginUtil; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.checkerframework.javacutil.Pair; +import org.checkerframework.javacutil.PluginUtil; public class ReferenceInfoUtil { diff --git a/checker/jtreg/nullness/inheritDeclAnnoPersist/Driver.java b/checker/jtreg/nullness/inheritDeclAnnoPersist/Driver.java index f6611ce5141..f8e2f0d8dba 100644 --- a/checker/jtreg/nullness/inheritDeclAnnoPersist/Driver.java +++ b/checker/jtreg/nullness/inheritDeclAnnoPersist/Driver.java @@ -3,7 +3,6 @@ import com.sun.tools.classfile.Annotation; import com.sun.tools.classfile.ClassFile; - import java.io.PrintStream; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/checker/jtreg/nullness/inheritDeclAnnoPersist/ReferenceInfoUtil.java b/checker/jtreg/nullness/inheritDeclAnnoPersist/ReferenceInfoUtil.java index 36a0b051c63..02c9c8256e0 100644 --- a/checker/jtreg/nullness/inheritDeclAnnoPersist/ReferenceInfoUtil.java +++ b/checker/jtreg/nullness/inheritDeclAnnoPersist/ReferenceInfoUtil.java @@ -9,12 +9,10 @@ import com.sun.tools.classfile.ConstantPool.UnexpectedEntry; import com.sun.tools.classfile.Method; import com.sun.tools.classfile.RuntimeAnnotations_attribute; - -import org.checkerframework.javacutil.PluginUtil; - import java.util.ArrayList; import java.util.List; import java.util.StringJoiner; +import org.checkerframework.javacutil.PluginUtil; public class ReferenceInfoUtil { diff --git a/checker/jtreg/nullness/issue1929/Issue1929.java b/checker/jtreg/nullness/issue1929/Issue1929.java index 8060e564fca..06c0bcab655 100644 --- a/checker/jtreg/nullness/issue1929/Issue1929.java +++ b/checker/jtreg/nullness/issue1929/Issue1929.java @@ -6,9 +6,8 @@ * @compile/fail/ref=Issue1929-trust.out -XDrawDiagnostics -processor org.checkerframework.checker.nullness.NullnessChecker -Alint=trustArrayLenZero Issue1929.java */ -import org.checkerframework.common.value.qual.ArrayLen; - import java.util.Collection; +import org.checkerframework.common.value.qual.ArrayLen; public class Issue1929 { diff --git a/checker/jtreg/nullness/issue1958/SupplierDefs.java b/checker/jtreg/nullness/issue1958/SupplierDefs.java index 4a15a8e5421..475366cb872 100644 --- a/checker/jtreg/nullness/issue1958/SupplierDefs.java +++ b/checker/jtreg/nullness/issue1958/SupplierDefs.java @@ -6,9 +6,8 @@ * @compile/fail/ref=NPE2Test.out -XDrawDiagnostics -processor org.checkerframework.checker.nullness.NullnessChecker NPE2Test.java -Anomsgtext */ -import org.checkerframework.checker.nullness.qual.*; - import java.util.function.Supplier; +import org.checkerframework.checker.nullness.qual.*; public class SupplierDefs { public abstract static class Supplier { diff --git a/checker/jtreg/nullness/stub-warnings/Binary.java b/checker/jtreg/nullness/stub-warnings/Binary.java index 94b7c232e32..0b1d01071e1 100644 --- a/checker/jtreg/nullness/stub-warnings/Binary.java +++ b/checker/jtreg/nullness/stub-warnings/Binary.java @@ -1,9 +1,8 @@ // This class is not compiled with the Nullness Checker, // so that only explicit annotations are stored in bytecode. -import org.checkerframework.checker.nullness.qual.NonNull; - import javax.annotation.Nullable; +import org.checkerframework.checker.nullness.qual.NonNull; class Binary { @Nullable Object foo() { diff --git a/checker/jtreg/stubs/issue1456/Main.java b/checker/jtreg/stubs/issue1456/Main.java index 61efa5775f9..ec7c9cfc310 100644 --- a/checker/jtreg/stubs/issue1456/Main.java +++ b/checker/jtreg/stubs/issue1456/Main.java @@ -8,7 +8,6 @@ package issue1456; import issue1456lib.Lib; - import org.checkerframework.checker.tainting.qual.Untainted; public class Main { diff --git a/checker/jtreg/tainting/classes/Issue919.java b/checker/jtreg/tainting/classes/Issue919.java index daf340fad46..8f30fa89cf3 100644 --- a/checker/jtreg/tainting/classes/Issue919.java +++ b/checker/jtreg/tainting/classes/Issue919.java @@ -1,7 +1,6 @@ package classes; import classes.Issue919B.InnerClass; - import java.util.Set; public class Issue919 { diff --git a/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/CompilerMessageKey.java b/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/CompilerMessageKey.java index c842d05f1f6..cd9f177bf83 100644 --- a/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/CompilerMessageKey.java +++ b/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/CompilerMessageKey.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.compilermsgs.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * A string that is definitely a compiler message key. diff --git a/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/CompilerMessageKeyBottom.java b/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/CompilerMessageKeyBottom.java index b1dc0b2350c..911db2ca01b 100644 --- a/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/CompilerMessageKeyBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/CompilerMessageKeyBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.compilermsgs.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Compiler Message Key type system. Programmers should rarely write this diff --git a/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/UnknownCompilerMessageKey.java b/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/UnknownCompilerMessageKey.java index 8de3589889b..1e8916ee106 100644 --- a/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/UnknownCompilerMessageKey.java +++ b/checker/src/main/java/org/checkerframework/checker/compilermsgs/qual/UnknownCompilerMessageKey.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.compilermsgs.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * A {@code String} that might or might not be a compiler message key. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/FenumAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/fenum/FenumAnnotatedTypeFactory.java index 99bc9963e75..b79e50b2908 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/FenumAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/FenumAnnotatedTypeFactory.java @@ -1,5 +1,8 @@ package org.checkerframework.checker.fenum; +import java.lang.annotation.Annotation; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.fenum.qual.Fenum; import org.checkerframework.checker.fenum.qual.FenumBottom; import org.checkerframework.checker.fenum.qual.FenumTop; @@ -15,11 +18,6 @@ import org.checkerframework.javacutil.UserError; import org.plumelib.reflection.Signatures; -import java.lang.annotation.Annotation; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** The type factory for the Fenum Checker. */ public class FenumAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/FenumChecker.java b/checker/src/main/java/org/checkerframework/checker/fenum/FenumChecker.java index db1641c1865..350fc96648e 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/FenumChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/FenumChecker.java @@ -1,13 +1,11 @@ package org.checkerframework.checker.fenum; +import java.util.SortedSet; +import javax.annotation.processing.SupportedOptions; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.subtyping.SubtypingChecker; import org.checkerframework.framework.qual.StubFiles; -import java.util.SortedSet; - -import javax.annotation.processing.SupportedOptions; - /** * The main checker class for the Fake Enum Checker. * diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/FenumVisitor.java b/checker/src/main/java/org/checkerframework/checker/fenum/FenumVisitor.java index 78dd3e9654a..6b8a38d5afa 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/FenumVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/FenumVisitor.java @@ -6,7 +6,10 @@ import com.sun.source.tree.NewClassTree; import com.sun.source.tree.SwitchTree; import com.sun.source.tree.Tree; - +import java.util.Collections; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.framework.type.AnnotatedTypeMirror; @@ -15,12 +18,6 @@ import org.checkerframework.framework.type.QualifierHierarchy; import org.checkerframework.javacutil.TreeUtils; -import java.util.Collections; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; - public class FenumVisitor extends BaseTypeVisitor { public FenumVisitor(BaseTypeChecker checker) { super(checker); diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtAlphaCompositingRule.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtAlphaCompositingRule.java index 273f3678414..c6f28499e24 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtAlphaCompositingRule.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtAlphaCompositingRule.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Basic alpha compositing rules for combining source and destination colors to achieve blending and diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtColorSpace.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtColorSpace.java index 5488f870892..0dbe2718055 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtColorSpace.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtColorSpace.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Color space tags to identify the specific color space of a Color object or, via a ColorModel diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtCursorType.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtCursorType.java index 7cfeb7681f5..7e78009279e 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtCursorType.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtCursorType.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * AwtCursorType. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtFlowLayout.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtFlowLayout.java index 838cf66f6fc..a5bc81f1a5d 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtFlowLayout.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/AwtFlowLayout.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Line alignments in a flow layout (see {@link java.awt.FlowLayout} for more details). diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/Fenum.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/Fenum.java index 25fc822b757..6ad5cc97218 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/Fenum.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/Fenum.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * A generic fake enumeration qualifier that is parameterized by a name. It is written in source diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumBottom.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumBottom.java index 4385d9492c3..5607bd08156 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Fenum type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumTop.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumTop.java index 0123d2518a5..764b7f3e632 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumTop.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumTop.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The top of the fake enumeration type hierarchy. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumUnqualified.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumUnqualified.java index d516e69de09..4eeaf969214 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumUnqualified.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/FenumUnqualified.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; /** * An unqualified type. Such a type is incomparable to (that is, neither a subtype nor a supertype diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/PolyFenum.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/PolyFenum.java index 47757d9b486..d203d9a861a 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/PolyFenum.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/PolyFenum.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the fake enum type system. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingBoxOrientation.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingBoxOrientation.java index 03bbf87590a..1c079d5d7fa 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingBoxOrientation.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingBoxOrientation.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * SwingBoxOrientation. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingCompassDirection.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingCompassDirection.java index 1e4dc12e68a..f89cd2dbd29 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingCompassDirection.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingCompassDirection.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * SwingCompassDirection. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingElementOrientation.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingElementOrientation.java index e76c992d386..8935db1e0d2 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingElementOrientation.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingElementOrientation.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * SwingElementOrientation. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingHorizontalOrientation.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingHorizontalOrientation.java index 1b50e42af0f..569f8604fc2 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingHorizontalOrientation.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingHorizontalOrientation.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * SwingHorizontalOrientation. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingSplitPaneOrientation.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingSplitPaneOrientation.java index a35095755c3..d555bf175e3 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingSplitPaneOrientation.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingSplitPaneOrientation.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * SwingSplitPaneOrientation. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTextOrientation.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTextOrientation.java index eac953203d6..84833e6103d 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTextOrientation.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTextOrientation.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * SwingTextOrientation. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTitleJustification.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTitleJustification.java index cf1cad13892..ac51e16cc98 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTitleJustification.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTitleJustification.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Vertical orientations for the title text of a {@link javax.swing.border.TitledBorder}. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTitlePosition.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTitlePosition.java index bfed072887e..e3ca36f90b1 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTitlePosition.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingTitlePosition.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Justifications for the title text of a {@link javax.swing.border.TitledBorder}. diff --git a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingVerticalOrientation.java b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingVerticalOrientation.java index f1318741fcb..7a70857ddc8 100644 --- a/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingVerticalOrientation.java +++ b/checker/src/main/java/org/checkerframework/checker/fenum/qual/SwingVerticalOrientation.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.fenum.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * SwingVerticalOrientation. diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/FormatUtil.java b/checker/src/main/java/org/checkerframework/checker/formatter/FormatUtil.java index 64d3dbb2d45..0205c852ef6 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/FormatUtil.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/FormatUtil.java @@ -1,8 +1,5 @@ package org.checkerframework.checker.formatter; -import org.checkerframework.checker.formatter.qual.ConversionCategory; -import org.checkerframework.checker.formatter.qual.ReturnsFormat; - import java.util.ArrayList; import java.util.HashMap; import java.util.IllegalFormatConversionException; @@ -11,6 +8,8 @@ import java.util.MissingFormatArgumentException; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.checkerframework.checker.formatter.qual.ConversionCategory; +import org.checkerframework.checker.formatter.qual.ReturnsFormat; /** This class provides a collection of utilities to ease working with format strings. */ public class FormatUtil { diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/FormatterAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/formatter/FormatterAnnotatedTypeFactory.java index 04e1e1f014c..15a7169ea9e 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/FormatterAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/FormatterAnnotatedTypeFactory.java @@ -2,7 +2,8 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - +import java.util.IllegalFormatException; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.formatter.qual.ConversionCategory; import org.checkerframework.checker.formatter.qual.Format; import org.checkerframework.checker.formatter.qual.FormatBottom; @@ -20,10 +21,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.util.IllegalFormatException; - -import javax.lang.model.element.AnnotationMirror; - /** * Adds {@link Format} to the type of tree, if it is a {@code String} or {@code char} literal that * represents a satisfiable format. The annotation's value is set to be a list of appropriate {@link diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/FormatterTransfer.java b/checker/src/main/java/org/checkerframework/checker/formatter/FormatterTransfer.java index 7c12ab2baa8..8c49feba27a 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/FormatterTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/FormatterTransfer.java @@ -1,5 +1,6 @@ package org.checkerframework.checker.formatter; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.formatter.FormatterTreeUtil.Result; import org.checkerframework.checker.formatter.qual.ConversionCategory; import org.checkerframework.dataflow.analysis.RegularTransferResult; @@ -11,8 +12,6 @@ import org.checkerframework.framework.flow.CFTransfer; import org.checkerframework.framework.flow.CFValue; -import javax.lang.model.element.AnnotationMirror; - public class FormatterTransfer extends CFTransfer { public FormatterTransfer(CFAnalysis analysis) { diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/FormatterTreeUtil.java b/checker/src/main/java/org/checkerframework/checker/formatter/FormatterTreeUtil.java index 0e0188d554b..fe6b1da3084 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/FormatterTreeUtil.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/FormatterTreeUtil.java @@ -5,7 +5,21 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.TypeCastTree; import com.sun.source.util.SimpleTreeVisitor; - +import java.util.IllegalFormatException; +import java.util.List; +import java.util.Locale; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.NullType; +import javax.lang.model.type.PrimitiveType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.SimpleElementVisitor7; +import javax.lang.model.util.SimpleTypeVisitor7; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.formatter.qual.ConversionCategory; import org.checkerframework.checker.formatter.qual.Format; @@ -24,23 +38,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.TreeUtils; -import java.util.IllegalFormatException; -import java.util.List; -import java.util.Locale; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.ArrayType; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.NullType; -import javax.lang.model.type.PrimitiveType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.SimpleElementVisitor7; -import javax.lang.model.util.SimpleTypeVisitor7; - /** * This class provides a collection of utilities to ease working with syntax trees that have * something to do with Formatters. diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/FormatterVisitor.java b/checker/src/main/java/org/checkerframework/checker/formatter/FormatterVisitor.java index e31739e7f43..47d31c067b5 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/FormatterVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/FormatterVisitor.java @@ -6,7 +6,11 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; - +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.formatter.FormatterTreeUtil.FormatCall; import org.checkerframework.checker.formatter.FormatterTreeUtil.InvocationType; @@ -20,13 +24,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeMirror; - /** * Whenever a format method invocation is found in the syntax tree, checks are performed as * specified in the Format String Checker manual. diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/qual/ConversionCategory.java b/checker/src/main/java/org/checkerframework/checker/formatter/qual/ConversionCategory.java index 0bdbdfa3235..5c0871a6e02 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/qual/ConversionCategory.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/qual/ConversionCategory.java @@ -1,7 +1,5 @@ package org.checkerframework.checker.formatter.qual; -import org.checkerframework.dataflow.qual.Pure; - import java.math.BigDecimal; import java.math.BigInteger; import java.util.Arrays; @@ -9,6 +7,7 @@ import java.util.Date; import java.util.HashSet; import java.util.Set; +import org.checkerframework.dataflow.qual.Pure; /** * Elements of this enumeration are used in a {@link Format Format} annotation to indicate the valid diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/qual/Format.java b/checker/src/main/java/org/checkerframework/checker/formatter/qual/Format.java index 6dbf884a3c1..b513d84cfc3 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/qual/Format.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/qual/Format.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.formatter.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This annotation, attached to a String type, indicates that the String may be passed to {@link diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/qual/FormatBottom.java b/checker/src/main/java/org/checkerframework/checker/formatter/qual/FormatBottom.java index 9d6aa8186cc..9ce0ec040f5 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/qual/FormatBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/qual/FormatBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.formatter.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Format String type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/qual/InvalidFormat.java b/checker/src/main/java/org/checkerframework/checker/formatter/qual/InvalidFormat.java index 22c2ace3992..cce2d155627 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/qual/InvalidFormat.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/qual/InvalidFormat.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.formatter.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This annotation, attached to a {@link java.lang.String String} type, indicates that the string is diff --git a/checker/src/main/java/org/checkerframework/checker/formatter/qual/UnknownFormat.java b/checker/src/main/java/org/checkerframework/checker/formatter/qual/UnknownFormat.java index a110ce19bc9..e4da196ae42 100644 --- a/checker/src/main/java/org/checkerframework/checker/formatter/qual/UnknownFormat.java +++ b/checker/src/main/java/org/checkerframework/checker/formatter/qual/UnknownFormat.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.formatter.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The top qualifier. diff --git a/checker/src/main/java/org/checkerframework/checker/guieffect/Effect.java b/checker/src/main/java/org/checkerframework/checker/guieffect/Effect.java index 464b49ad321..629a6012e2d 100644 --- a/checker/src/main/java/org/checkerframework/checker/guieffect/Effect.java +++ b/checker/src/main/java/org/checkerframework/checker/guieffect/Effect.java @@ -1,5 +1,6 @@ package org.checkerframework.checker.guieffect; +import java.lang.annotation.Annotation; import org.checkerframework.checker.guieffect.qual.PolyUIEffect; import org.checkerframework.checker.guieffect.qual.SafeEffect; import org.checkerframework.checker.guieffect.qual.UIEffect; @@ -7,8 +8,6 @@ import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.SideEffectFree; -import java.lang.annotation.Annotation; - /** An effect -- either UIEffect, PolyUIEffect, or SafeEffect. */ public final class Effect { // Colin hates Java's comparable interface, so he's not using it diff --git a/checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectTypeFactory.java index eeac8a45afd..d086350b308 100644 --- a/checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectTypeFactory.java @@ -8,7 +8,16 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.ParenthesizedTree; import com.sun.source.tree.Tree; - +import java.util.HashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.guieffect.qual.AlwaysSafe; import org.checkerframework.checker.guieffect.qual.PolyUI; import org.checkerframework.checker.guieffect.qual.PolyUIEffect; @@ -30,18 +39,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.HashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** Annotated type factory for the GUI Effect Checker. */ public class GuiEffectTypeFactory extends BaseAnnotatedTypeFactory { diff --git a/checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectVisitor.java b/checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectVisitor.java index 33223855753..0da2b746852 100644 --- a/checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectVisitor.java @@ -11,7 +11,15 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.util.ArrayDeque; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.DeclaredType; import org.checkerframework.checker.guieffect.qual.AlwaysSafe; import org.checkerframework.checker.guieffect.qual.PolyUI; import org.checkerframework.checker.guieffect.qual.PolyUIEffect; @@ -30,17 +38,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayDeque; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.DeclaredType; - /** Require that only UI code invokes code with the UI effect. */ public class GuiEffectVisitor extends BaseTypeVisitor { diff --git a/checker/src/main/java/org/checkerframework/checker/guieffect/qual/AlwaysSafe.java b/checker/src/main/java/org/checkerframework/checker/guieffect/qual/AlwaysSafe.java index d768a5bf921..07308112f71 100644 --- a/checker/src/main/java/org/checkerframework/checker/guieffect/qual/AlwaysSafe.java +++ b/checker/src/main/java/org/checkerframework/checker/guieffect/qual/AlwaysSafe.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.guieffect.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * Annotation to override the UI effect on a class, and make a field or method safe for non-UI code diff --git a/checker/src/main/java/org/checkerframework/checker/guieffect/qual/PolyUI.java b/checker/src/main/java/org/checkerframework/checker/guieffect/qual/PolyUI.java index 9ad0b5878c7..7586919ef90 100644 --- a/checker/src/main/java/org/checkerframework/checker/guieffect/qual/PolyUI.java +++ b/checker/src/main/java/org/checkerframework/checker/guieffect/qual/PolyUI.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.guieffect.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * Annotation for the polymorphic-UI effect. diff --git a/checker/src/main/java/org/checkerframework/checker/guieffect/qual/UI.java b/checker/src/main/java/org/checkerframework/checker/guieffect/qual/UI.java index fcf5682c66a..615b4daa42e 100644 --- a/checker/src/main/java/org/checkerframework/checker/guieffect/qual/UI.java +++ b/checker/src/main/java/org/checkerframework/checker/guieffect/qual/UI.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.guieffect.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Annotation for the UI effect. diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/I18nAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/i18n/I18nAnnotatedTypeFactory.java index 35b69165614..717667cc2a4 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/I18nAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/I18nAnnotatedTypeFactory.java @@ -4,7 +4,11 @@ import com.sun.source.tree.CompoundAssignmentTree; import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.i18n.qual.Localized; import org.checkerframework.checker.i18n.qual.UnknownLocalized; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; @@ -15,13 +19,6 @@ import org.checkerframework.framework.type.treeannotator.TreeAnnotator; import org.checkerframework.javacutil.AnnotationBuilder; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - public class I18nAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { public I18nAnnotatedTypeFactory(BaseTypeChecker checker) { diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/I18nChecker.java b/checker/src/main/java/org/checkerframework/checker/i18n/I18nChecker.java index 47217ffc53a..0683079bc44 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/I18nChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/I18nChecker.java @@ -1,10 +1,9 @@ package org.checkerframework.checker.i18n; -import org.checkerframework.framework.source.AggregateChecker; -import org.checkerframework.framework.source.SourceChecker; - import java.util.ArrayList; import java.util.Collection; +import org.checkerframework.framework.source.AggregateChecker; +import org.checkerframework.framework.source.SourceChecker; /** * A type-checker that enforces (and finds the violations of) two properties: diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/LocalizableKeyAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/i18n/LocalizableKeyAnnotatedTypeFactory.java index 1cf79a45706..1abeecd6b9a 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/LocalizableKeyAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/LocalizableKeyAnnotatedTypeFactory.java @@ -1,5 +1,9 @@ package org.checkerframework.checker.i18n; +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Set; import org.checkerframework.checker.i18n.qual.LocalizableKey; import org.checkerframework.checker.i18n.qual.LocalizableKeyBottom; import org.checkerframework.checker.i18n.qual.UnknownLocalizableKey; @@ -8,11 +12,6 @@ import org.checkerframework.framework.type.treeannotator.ListTreeAnnotator; import org.checkerframework.framework.type.treeannotator.TreeAnnotator; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.Set; - /** A PropertyKeyATF that uses LocalizableKey to annotate the keys. */ public class LocalizableKeyAnnotatedTypeFactory extends PropertyKeyAnnotatedTypeFactory { diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/LocalizableKeyChecker.java b/checker/src/main/java/org/checkerframework/checker/i18n/LocalizableKeyChecker.java index 371b2c53c75..7e932e54cf5 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/LocalizableKeyChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/LocalizableKeyChecker.java @@ -1,11 +1,9 @@ package org.checkerframework.checker.i18n; -import org.checkerframework.checker.propkey.PropertyKeyChecker; - import java.util.Locale; import java.util.ResourceBundle; - import javax.annotation.processing.SupportedOptions; +import org.checkerframework.checker.propkey.PropertyKeyChecker; /** * A type-checker that checks that only valid localizable keys are used when using localizing diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/qual/LocalizableKey.java b/checker/src/main/java/org/checkerframework/checker/i18n/qual/LocalizableKey.java index da2d8c06b48..ce74615098a 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/qual/LocalizableKey.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/qual/LocalizableKey.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.i18n.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that the {@code String} is a key into a property file or resource bundle containing diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/qual/LocalizableKeyBottom.java b/checker/src/main/java/org/checkerframework/checker/i18n/qual/LocalizableKeyBottom.java index 36e7b6f7e81..712244a65c8 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/qual/LocalizableKeyBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/qual/LocalizableKeyBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.i18n.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Internationalization type system. Programmers should rarely write this diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/qual/Localized.java b/checker/src/main/java/org/checkerframework/checker/i18n/qual/Localized.java index 6d24a80559f..32a937aa35a 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/qual/Localized.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/qual/Localized.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.i18n.qual; -import org.checkerframework.framework.qual.LiteralKind; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.LiteralKind; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that the {@code String} type has been localized and formatted for the target output diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/qual/UnknownLocalizableKey.java b/checker/src/main/java/org/checkerframework/checker/i18n/qual/UnknownLocalizableKey.java index 1188f3aeac2..71a8448dccf 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/qual/UnknownLocalizableKey.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/qual/UnknownLocalizableKey.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.i18n.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that the {@code String} type has an unknown localizable key property. diff --git a/checker/src/main/java/org/checkerframework/checker/i18n/qual/UnknownLocalized.java b/checker/src/main/java/org/checkerframework/checker/i18n/qual/UnknownLocalized.java index daccba594d7..2bb09803885 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18n/qual/UnknownLocalized.java +++ b/checker/src/main/java/org/checkerframework/checker/i18n/qual/UnknownLocalized.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.i18n.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that the {@code String} type has unknown localization properties. diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatUtil.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatUtil.java index d90db0b0e82..05d80036c81 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatUtil.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatUtil.java @@ -1,9 +1,5 @@ package org.checkerframework.checker.i18nformatter; -import org.checkerframework.checker.i18nformatter.qual.I18nChecksFormat; -import org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory; -import org.checkerframework.checker.i18nformatter.qual.I18nValidFormat; - import java.text.ChoiceFormat; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; @@ -15,6 +11,9 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import org.checkerframework.checker.i18nformatter.qual.I18nChecksFormat; +import org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory; +import org.checkerframework.checker.i18nformatter.qual.I18nValidFormat; /** * This class provides a collection of utilities to ease working with i18n format strings. diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterAnnotatedTypeFactory.java index 8e33dc3ddb7..d48a034b044 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterAnnotatedTypeFactory.java @@ -2,7 +2,16 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.Collections; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Properties; +import java.util.ResourceBundle; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory; import org.checkerframework.checker.i18nformatter.qual.I18nFormat; import org.checkerframework.checker.i18nformatter.qual.I18nFormatBottom; @@ -22,18 +31,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.plumelib.reflection.Signatures; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; -import java.util.Collections; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import java.util.Properties; -import java.util.ResourceBundle; - -import javax.lang.model.element.AnnotationMirror; - /** * Adds {@link I18nFormat} to the type of tree, if it is a {@code String} or {@code char} literal * that represents a satisfiable format. The annotation's value is set to be a list of appropriate diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterChecker.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterChecker.java index 01749e614ec..af8910612f3 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterChecker.java @@ -1,10 +1,9 @@ package org.checkerframework.checker.i18nformatter; +import javax.annotation.processing.SupportedOptions; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.qual.RelevantJavaTypes; -import javax.annotation.processing.SupportedOptions; - /** * A type-checker plug-in for the qualifier that finds syntactically invalid i18n-formatter calls * (MessageFormat.format()). diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterTransfer.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterTransfer.java index 8d08eab1e65..5dd84f10192 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterTransfer.java @@ -1,5 +1,6 @@ package org.checkerframework.checker.i18nformatter; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.formatter.FormatterTreeUtil.Result; import org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory; import org.checkerframework.checker.i18nformatter.qual.I18nInvalidFormat; @@ -16,8 +17,6 @@ import org.checkerframework.framework.flow.CFValue; import org.checkerframework.javacutil.AnnotationBuilder; -import javax.lang.model.element.AnnotationMirror; - /** * The transfer function for the Internationalization Format String Checker. * diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterTreeUtil.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterTreeUtil.java index 259c004f7e9..38d156f455c 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterTreeUtil.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterTreeUtil.java @@ -5,7 +5,21 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.TypeCastTree; import com.sun.source.util.SimpleTreeVisitor; - +import java.util.List; +import java.util.Map; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.NullType; +import javax.lang.model.type.PrimitiveType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.SimpleElementVisitor7; +import javax.lang.model.util.SimpleTypeVisitor7; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.formatter.FormatterTreeUtil.InvocationType; import org.checkerframework.checker.formatter.FormatterTreeUtil.Result; @@ -34,23 +48,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; -import java.util.Map; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.ArrayType; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.NullType; -import javax.lang.model.type.PrimitiveType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.SimpleElementVisitor7; -import javax.lang.model.util.SimpleTypeVisitor7; - /** * This class provides a collection of utilities to ease working with syntax trees that have * something to do with I18nFormatters. diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterVisitor.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterVisitor.java index 5e3e589d131..125cfb266b8 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/I18nFormatterVisitor.java @@ -2,7 +2,8 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; - +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.formatter.FormatterTreeUtil.InvocationType; import org.checkerframework.checker.formatter.FormatterTreeUtil.Result; @@ -16,9 +17,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.javacutil.AnnotationUtils; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeMirror; - /** * Whenever a method with {@link I18nFormatFor} annotation is invoked, it will perform the format * string verification. diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormat.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormat.java index 1ea6a1e89e1..63968bc7fa5 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormat.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormat.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.i18nformatter.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This annotation, attached to a String type, indicates that the String may be passed to {@link diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormatBottom.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormatBottom.java index d05041e49cf..44637a30b81 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormatBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormatBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.i18nformatter.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Internationalization Format String type system. Programmers should rarely diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormatFor.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormatFor.java index a43359a3fc2..1dc4899c5e7 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormatFor.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nFormatFor.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.i18nformatter.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This annotation indicates that when a string of the annotated type is passed as the first diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nInvalidFormat.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nInvalidFormat.java index 4515d25e127..c750d3267c7 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nInvalidFormat.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nInvalidFormat.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.i18nformatter.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This annotation, attached to a {@link java.lang.String String} type, indicates that if the String diff --git a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nUnknownFormat.java b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nUnknownFormat.java index c0f9466c425..f8dbc7d0552 100644 --- a/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nUnknownFormat.java +++ b/checker/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nUnknownFormat.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.i18nformatter.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The top qualifier. diff --git a/checker/src/main/java/org/checkerframework/checker/index/IndexAbstractTransfer.java b/checker/src/main/java/org/checkerframework/checker/index/IndexAbstractTransfer.java index 2ce0f5a0403..50db72d695e 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/IndexAbstractTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/index/IndexAbstractTransfer.java @@ -1,5 +1,6 @@ package org.checkerframework.checker.index; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.dataflow.analysis.TransferInput; import org.checkerframework.dataflow.analysis.TransferResult; import org.checkerframework.dataflow.cfg.node.GreaterThanNode; @@ -12,8 +13,6 @@ import org.checkerframework.framework.flow.CFTransfer; import org.checkerframework.framework.flow.CFValue; -import javax.lang.model.element.AnnotationMirror; - /** * This class provides methods shared by the Index Checker's internal checkers in their transfer * functions. In particular, it provides a common framework for visiting comparison operators. diff --git a/checker/src/main/java/org/checkerframework/checker/index/IndexMethodIdentifier.java b/checker/src/main/java/org/checkerframework/checker/index/IndexMethodIdentifier.java index 2001eca0b91..2adf239cd35 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/IndexMethodIdentifier.java +++ b/checker/src/main/java/org/checkerframework/checker/index/IndexMethodIdentifier.java @@ -3,7 +3,10 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - +import java.util.List; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.checker.index.qual.LengthOf; import org.checkerframework.dataflow.cfg.node.MethodAccessNode; import org.checkerframework.dataflow.cfg.node.MethodInvocationNode; @@ -12,12 +15,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; - /** * This class stores information about interesting methods and allows its clients to query it to * determine if a method belongs to a particular class. diff --git a/checker/src/main/java/org/checkerframework/checker/index/IndexRefinementInfo.java b/checker/src/main/java/org/checkerframework/checker/index/IndexRefinementInfo.java index 07f77b9b90d..7e4ac3fa569 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/IndexRefinementInfo.java +++ b/checker/src/main/java/org/checkerframework/checker/index/IndexRefinementInfo.java @@ -1,5 +1,7 @@ package org.checkerframework.checker.index; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.dataflow.analysis.ConditionalTransferResult; import org.checkerframework.dataflow.analysis.TransferResult; import org.checkerframework.dataflow.cfg.node.BinaryOperationNode; @@ -10,10 +12,6 @@ import org.checkerframework.framework.type.QualifierHierarchy; import org.checkerframework.javacutil.BugInCF; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** * This struct contains all of the information that the refinement functions need. It's called by * each node function (i.e. greater than node, less than node, etc.) and then the results are passed diff --git a/checker/src/main/java/org/checkerframework/checker/index/IndexUtil.java b/checker/src/main/java/org/checkerframework/checker/index/IndexUtil.java index 09a3b0d9c74..62c63ddcad8 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/IndexUtil.java +++ b/checker/src/main/java/org/checkerframework/checker/index/IndexUtil.java @@ -4,13 +4,11 @@ import com.sun.source.tree.MemberSelectTree; import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; - -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.TypesUtils; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.TypesUtils; /** A collection of utility functions used by several Index Checker subcheckers. */ public class IndexUtil { diff --git a/checker/src/main/java/org/checkerframework/checker/index/OffsetDependentTypesHelper.java b/checker/src/main/java/org/checkerframework/checker/index/OffsetDependentTypesHelper.java index d09808ecb55..2fa6bd1e3ba 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/OffsetDependentTypesHelper.java +++ b/checker/src/main/java/org/checkerframework/checker/index/OffsetDependentTypesHelper.java @@ -2,7 +2,6 @@ import com.sun.source.tree.MemberSelectTree; import com.sun.source.util.TreePath; - import org.checkerframework.checker.index.upperbound.OffsetEquation; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.framework.type.AnnotatedTypeFactory; diff --git a/checker/src/main/java/org/checkerframework/checker/index/Subsequence.java b/checker/src/main/java/org/checkerframework/checker/index/Subsequence.java index b3bc49846a2..632550c761a 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/Subsequence.java +++ b/checker/src/main/java/org/checkerframework/checker/index/Subsequence.java @@ -2,7 +2,8 @@ import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; - +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; import org.checkerframework.checker.index.qual.HasSubsequence; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.FieldAccess; @@ -15,9 +16,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.TreeUtils; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; - /** Holds information from {@link HasSubsequence} annotations. */ public class Subsequence { diff --git a/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanAnnotatedTypeFactory.java index 4b7ba196342..9c41b21608b 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanAnnotatedTypeFactory.java @@ -3,7 +3,15 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; import org.checkerframework.checker.index.OffsetDependentTypesHelper; import org.checkerframework.checker.index.qual.LessThan; import org.checkerframework.checker.index.qual.LessThanBottom; @@ -29,17 +37,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; - public class LessThanAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { private final AnnotationMirror BOTTOM = AnnotationBuilder.fromClass(elements, LessThanBottom.class); diff --git a/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanChecker.java b/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanChecker.java index 05d7518bdef..26a5abf83d0 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanChecker.java @@ -1,11 +1,10 @@ package org.checkerframework.checker.index.inequality; +import java.util.LinkedHashSet; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.source.SuppressWarningsPrefix; -import java.util.LinkedHashSet; - /** * An internal checker that estimates which expression's values are less than other expressions' * values. diff --git a/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanTransfer.java b/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanTransfer.java index f2b63a42ea6..b4e6e7b8b53 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanTransfer.java @@ -1,5 +1,11 @@ package org.checkerframework.checker.index.inequality; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; import org.checkerframework.checker.index.IndexAbstractTransfer; import org.checkerframework.common.value.ValueAnnotatedTypeFactory; import org.checkerframework.common.value.ValueCheckerUtils; @@ -16,14 +22,6 @@ import org.checkerframework.framework.flow.CFValue; import org.checkerframework.framework.util.FlowExpressionParseUtil; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; - /** * Implements 3 refinement rules: * diff --git a/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanVisitor.java b/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanVisitor.java index 3d965165f03..0d608e56895 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/index/inequality/LessThanVisitor.java @@ -3,7 +3,9 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.Tree; - +import java.util.ArrayList; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.index.Subsequence; import org.checkerframework.checker.index.upperbound.OffsetEquation; @@ -12,11 +14,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.util.FlowExpressionParseUtil; -import java.util.ArrayList; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; - public class LessThanVisitor extends BaseTypeVisitor { private static final @CompilerMessageKey String FROM_GT_TO = "from.gt.to"; diff --git a/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundAnnotatedTypeFactory.java index 2c35289ff23..dbcb799e312 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundAnnotatedTypeFactory.java @@ -6,7 +6,12 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; import com.sun.source.tree.UnaryTree; - +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; import org.checkerframework.checker.index.IndexMethodIdentifier; import org.checkerframework.checker.index.inequality.LessThanAnnotatedTypeFactory; import org.checkerframework.checker.index.inequality.LessThanChecker; @@ -40,14 +45,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; - /** * Implements the introduction rules for the Lower Bound Checker. * diff --git a/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundChecker.java b/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundChecker.java index 6b84061c951..ea51e54a2fc 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundChecker.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.index.lowerbound; +import java.util.HashSet; +import java.util.LinkedHashSet; import org.checkerframework.checker.index.inequality.LessThanChecker; import org.checkerframework.checker.index.searchindex.SearchIndexChecker; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.source.SuppressWarningsPrefix; -import java.util.HashSet; -import java.util.LinkedHashSet; - /** * A type-checker for preventing fixed-length sequences such as arrays or strings from being * accessed with values that are too low. Normally bundled as part of the Index Checker. diff --git a/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundTransfer.java b/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundTransfer.java index 13772349c89..07557c1599b 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundTransfer.java @@ -5,7 +5,10 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; - +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeKind; import org.checkerframework.checker.index.IndexAbstractTransfer; import org.checkerframework.checker.index.IndexRefinementInfo; import org.checkerframework.checker.index.qual.GTENegativeOne; @@ -38,12 +41,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeKind; - /** * Implements dataflow refinement rules based on tests: <, >, ==, and their derivatives. * diff --git a/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundVisitor.java b/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundVisitor.java index 705abec7803..df3e84591d0 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/index/lowerbound/LowerBoundVisitor.java @@ -4,7 +4,7 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.NewArrayTree; import com.sun.source.tree.Tree; - +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.index.Subsequence; import org.checkerframework.checker.index.qual.NonNegative; @@ -14,8 +14,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.util.FlowExpressionParseUtil; -import javax.lang.model.element.AnnotationMirror; - /** * Implements the actual checks to make sure that array accesses aren't too low. Will issue a * warning if a variable that can't be proved to be either "NonNegative" (i.e. ≥ 0) or "Positive" diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/EnsuresLTLengthOf.java b/checker/src/main/java/org/checkerframework/checker/index/qual/EnsuresLTLengthOf.java index 18bbddb0d8f..6db1d09de60 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/EnsuresLTLengthOf.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/EnsuresLTLengthOf.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.InheritedAnnotation; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.PostconditionAnnotation; -import org.checkerframework.framework.qual.QualifierArgument; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InheritedAnnotation; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.PostconditionAnnotation; +import org.checkerframework.framework.qual.QualifierArgument; /** * Indicates that the value expressions evaluate to an integer whose value is less than the lengths diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/EnsuresLTLengthOfIf.java b/checker/src/main/java/org/checkerframework/checker/index/qual/EnsuresLTLengthOfIf.java index 37f230e78df..56b27f70198 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/EnsuresLTLengthOfIf.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/EnsuresLTLengthOfIf.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; -import org.checkerframework.framework.qual.InheritedAnnotation; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.QualifierArgument; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; +import org.checkerframework.framework.qual.InheritedAnnotation; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.QualifierArgument; /** * Indicates that the given expressions evaluate to an integer whose value is less than the lengths diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/GTENegativeOne.java b/checker/src/main/java/org/checkerframework/checker/index/qual/GTENegativeOne.java index 1d7ead64650..034dc325d92 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/GTENegativeOne.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/GTENegativeOne.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to an integer greater than or equal to -1. ("GTE" stands for diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/HasSubsequence.java b/checker/src/main/java/org/checkerframework/checker/index/qual/HasSubsequence.java index d45dabf78fa..4c8c22c4848 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/HasSubsequence.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/HasSubsequence.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; /** * The annotated sequence contains a subsequence that is equal to the value of some other diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/LTEqLengthOf.java b/checker/src/main/java/org/checkerframework/checker/index/qual/LTEqLengthOf.java index 41b0c92a7dc..f64e0b4b18e 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/LTEqLengthOf.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/LTEqLengthOf.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to an integer whose value is less than or equal to the lengths diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/LTLengthOf.java b/checker/src/main/java/org/checkerframework/checker/index/qual/LTLengthOf.java index d022ccd4938..2e9acb6e818 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/LTLengthOf.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/LTLengthOf.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to an integer whose value is less than the lengths of all the diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/LTOMLengthOf.java b/checker/src/main/java/org/checkerframework/checker/index/qual/LTOMLengthOf.java index d962a0e6593..0754c4f91a0 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/LTOMLengthOf.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/LTOMLengthOf.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to an integer whose value is at least 2 less than the lengths diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/LessThan.java b/checker/src/main/java/org/checkerframework/checker/index/qual/LessThan.java index 6e0c544402c..54ca4a7bafc 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/LessThan.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/LessThan.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * An annotation indicating the relationship between values with a byte, short, char, int, or long diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/LessThanBottom.java b/checker/src/main/java/org/checkerframework/checker/index/qual/LessThanBottom.java index 65c7829d2ad..422f87e6806 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/LessThanBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/LessThanBottom.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * The bottom type in the LessThan type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/LessThanUnknown.java b/checker/src/main/java/org/checkerframework/checker/index/qual/LessThanUnknown.java index 8121d3dae54..3b456c3469d 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/LessThanUnknown.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/LessThanUnknown.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * The top qualifier for the LessThan type hierarchy. It indicates that no other expression is known diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/LowerBoundBottom.java b/checker/src/main/java/org/checkerframework/checker/index/qual/LowerBoundBottom.java index e0b937a427c..3cfe92bdd59 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/LowerBoundBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/LowerBoundBottom.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type of the lower bound type system. A variable annotated with this value cannot take diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/LowerBoundUnknown.java b/checker/src/main/java/org/checkerframework/checker/index/qual/LowerBoundUnknown.java index f612a28a180..f9c9031d5e8 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/LowerBoundUnknown.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/LowerBoundUnknown.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to value that might be -2 or lower. This is the top type for diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/NegativeIndexFor.java b/checker/src/main/java/org/checkerframework/checker/index/qual/NegativeIndexFor.java index 254c3281f33..310ff971e19 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/NegativeIndexFor.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/NegativeIndexFor.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression is between {@code -1} and {@code -a.length - 1}, inclusive, for each diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/NonNegative.java b/checker/src/main/java/org/checkerframework/checker/index/qual/NonNegative.java index 95d4af7435a..40806f19a32 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/NonNegative.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/NonNegative.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to an integer greater than or equal to 0. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/PolyIndex.java b/checker/src/main/java/org/checkerframework/checker/index/qual/PolyIndex.java index fc121728825..fa5c811ee6c 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/PolyIndex.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/PolyIndex.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Lower Bound and Upper Bound type systems. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/PolyLength.java b/checker/src/main/java/org/checkerframework/checker/index/qual/PolyLength.java index 6f266072203..4d5123723a7 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/PolyLength.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/PolyLength.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * Syntactic sugar for both @PolyValue and @PolySameLen. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/PolyLowerBound.java b/checker/src/main/java/org/checkerframework/checker/index/qual/PolyLowerBound.java index 4548013e210..824609a8f5e 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/PolyLowerBound.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/PolyLowerBound.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Lower Bound type system. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/PolySameLen.java b/checker/src/main/java/org/checkerframework/checker/index/qual/PolySameLen.java index 43c2518779c..89e7fc431af 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/PolySameLen.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/PolySameLen.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the SameLen type system. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/PolyUpperBound.java b/checker/src/main/java/org/checkerframework/checker/index/qual/PolyUpperBound.java index 54d55085599..c8eaa92a5d2 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/PolyUpperBound.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/PolyUpperBound.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Upper Bound type system. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/Positive.java b/checker/src/main/java/org/checkerframework/checker/index/qual/Positive.java index 14b40101de4..7321a024340 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/Positive.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/Positive.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to an integer greater than or equal to 1. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SameLen.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SameLen.java index a4ab7d9bb73..ab5d54c8800 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SameLen.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SameLen.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * An expression whose type has this annotation evaluates to a value that is a sequence, and that diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SameLenBottom.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SameLenBottom.java index b1ce427d00a..df9b82b2a19 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SameLenBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SameLenBottom.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the SameLen type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SameLenUnknown.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SameLenUnknown.java index 5a82c234c70..f090c956e1b 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SameLenUnknown.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SameLenUnknown.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * This type represents any variable that isn't known to have the same length as another sequence. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexBottom.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexBottom.java index 66cea84cad9..54ac9ebcb4d 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexBottom.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Search Index type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexFor.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexFor.java index fb6ebfb07ef..227922e0211 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexFor.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexFor.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to an integer whose length is between {@code -a.length - 1} diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexUnknown.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexUnknown.java index bc9a7fc860a..75bc3432bf3 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexUnknown.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SearchIndexUnknown.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * The top type for the SearchIndex type system. This indicates that the Index checker does not know diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexBottom.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexBottom.java index afd093a4a4f..797aea403e6 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexBottom.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Substring Index type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexFor.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexFor.java index 2ce25597311..21dcfd9b17d 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexFor.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexFor.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * The annotated expression evaluates to either -1 or a non-negative integer less than the lengths diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexUnknown.java b/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexUnknown.java index 6ea12de245b..94c4480d38a 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexUnknown.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/SubstringIndexUnknown.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * The top type for the Substring Index type system. This indicates that the Index Checker does not diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/UpperBoundBottom.java b/checker/src/main/java/org/checkerframework/checker/index/qual/UpperBoundBottom.java index 8f009719a8d..3b6bb74880f 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/UpperBoundBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/UpperBoundBottom.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Upper Bound type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/index/qual/UpperBoundUnknown.java b/checker/src/main/java/org/checkerframework/checker/index/qual/UpperBoundUnknown.java index d3ea99bdd56..8548028b56e 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/qual/UpperBoundUnknown.java +++ b/checker/src/main/java/org/checkerframework/checker/index/qual/UpperBoundUnknown.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.index.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * A variable not known to have a relation to any sequence length. This is the top type of the Upper diff --git a/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenAnnotatedTypeFactory.java index eec9f40f6ac..b824ed06975 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenAnnotatedTypeFactory.java @@ -5,7 +5,16 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.index.IndexMethodIdentifier; import org.checkerframework.checker.index.IndexUtil; import org.checkerframework.checker.index.qual.PolyLength; @@ -29,18 +38,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; - -import javax.lang.model.element.AnnotationMirror; - /** * The SameLen Checker is used to determine whether there are multiple fixed-length sequences (such * as arrays or strings) in a program that share the same length. It is part of the Index Checker, diff --git a/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenTransfer.java b/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenTransfer.java index 0a7269d719e..cadeb9ca968 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenTransfer.java @@ -3,7 +3,12 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeKind; import org.checkerframework.checker.index.IndexUtil; import org.checkerframework.checker.index.qual.SameLen; import org.checkerframework.common.value.ValueCheckerUtils; @@ -26,14 +31,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.util.FlowExpressionParseUtil; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeKind; - /** * The transfer function for the SameLen checker. Contains three cases: * diff --git a/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenVisitor.java b/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenVisitor.java index ecb5523a632..613c17fd584 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/index/samelen/SameLenVisitor.java @@ -2,7 +2,10 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.Tree; - +import java.util.Collection; +import java.util.Collections; +import java.util.TreeSet; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.index.IndexUtil; import org.checkerframework.checker.index.qual.PolySameLen; @@ -15,12 +18,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.javacutil.TreeUtils; -import java.util.Collection; -import java.util.Collections; -import java.util.TreeSet; - -import javax.lang.model.element.AnnotationMirror; - public class SameLenVisitor extends BaseTypeVisitor { public SameLenVisitor(BaseTypeChecker checker) { super(checker); diff --git a/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexAnnotatedTypeFactory.java index b506e065d32..6ed76e75100 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexAnnotatedTypeFactory.java @@ -1,5 +1,14 @@ package org.checkerframework.checker.index.searchindex; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.index.qual.NegativeIndexFor; import org.checkerframework.checker.index.qual.SearchIndexBottom; import org.checkerframework.checker.index.qual.SearchIndexFor; @@ -14,17 +23,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** * The Search Index Checker is used to help type the results of calls to the JDK's binary search * methods. It is part of the Index Checker. diff --git a/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexChecker.java b/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexChecker.java index 8c6ab345446..da017829cac 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexChecker.java @@ -1,11 +1,10 @@ package org.checkerframework.checker.index.searchindex; +import java.util.LinkedHashSet; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.source.SuppressWarningsPrefix; -import java.util.LinkedHashSet; - /** * An internal checker that assists the Index Checker in typing the results of calls to the JDK's * {@link java.util.Arrays#binarySearch(Object[],Object) Arrays.binarySearch} routine. diff --git a/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexTransfer.java b/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexTransfer.java index 5b1f3a658ba..7d73c968584 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexTransfer.java @@ -1,5 +1,7 @@ package org.checkerframework.checker.index.searchindex; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.index.IndexAbstractTransfer; import org.checkerframework.checker.index.qual.NegativeIndexFor; import org.checkerframework.checker.index.qual.SearchIndexFor; @@ -11,10 +13,6 @@ import org.checkerframework.framework.flow.CFStore; import org.checkerframework.framework.flow.CFValue; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; - /** * The transfer function for the SearchIndexFor checker. Allows {@link SearchIndexFor} to be refined * to {@link NegativeIndexFor}. diff --git a/checker/src/main/java/org/checkerframework/checker/index/substringindex/SubstringIndexAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/index/substringindex/SubstringIndexAnnotatedTypeFactory.java index 0e1649ed65e..d97a029678a 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/substringindex/SubstringIndexAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/index/substringindex/SubstringIndexAnnotatedTypeFactory.java @@ -1,5 +1,10 @@ package org.checkerframework.checker.index.substringindex; +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.index.OffsetDependentTypesHelper; import org.checkerframework.checker.index.qual.SubstringIndexBottom; import org.checkerframework.checker.index.qual.SubstringIndexFor; @@ -14,13 +19,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** * Builds types with annotations from the Substring Index checker hierarchy, which contains * the @{@link SubstringIndexFor} annotation. diff --git a/checker/src/main/java/org/checkerframework/checker/index/upperbound/OffsetEquation.java b/checker/src/main/java/org/checkerframework/checker/index/upperbound/OffsetEquation.java index 452b37009a5..652e1055245 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/upperbound/OffsetEquation.java +++ b/checker/src/main/java/org/checkerframework/checker/index/upperbound/OffsetEquation.java @@ -1,7 +1,12 @@ package org.checkerframework.checker.index.upperbound; import com.sun.source.util.TreePath; - +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import javax.lang.model.element.Element; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.value.ValueAnnotatedTypeFactory; @@ -21,14 +26,6 @@ import org.checkerframework.javacutil.AnnotationProvider; import org.checkerframework.javacutil.TreeUtils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Set; - -import javax.lang.model.element.Element; - /** * An offset equation is 2 sets of Java expression strings, one set of added terms and one set of * subtracted terms, and a single integer constant. The Java expression strings have been diff --git a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UBQualifier.java b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UBQualifier.java index b1e0d1821b2..37a101f20a4 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UBQualifier.java +++ b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UBQualifier.java @@ -1,5 +1,14 @@ package org.checkerframework.checker.index.upperbound; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.index.qual.LTEqLengthOf; import org.checkerframework.checker.index.qual.LTLengthOf; import org.checkerframework.checker.index.qual.LTOMLengthOf; @@ -14,17 +23,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.Pair; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; - /** * Abstraction for Upper Bound annotations. * diff --git a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundAnnotatedTypeFactory.java index c30da998750..7e7eb39ec0d 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundAnnotatedTypeFactory.java @@ -8,7 +8,15 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.UnaryTree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; import org.checkerframework.checker.index.IndexMethodIdentifier; import org.checkerframework.checker.index.IndexUtil; import org.checkerframework.checker.index.OffsetDependentTypesHelper; @@ -66,17 +74,6 @@ import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; - /** * Implements the introduction rules for the Upper Bound Checker. * diff --git a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundChecker.java b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundChecker.java index b46784bb3c5..be40a56445e 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundChecker.java @@ -1,5 +1,7 @@ package org.checkerframework.checker.index.upperbound; +import java.util.HashSet; +import java.util.LinkedHashSet; import org.checkerframework.checker.index.inequality.LessThanChecker; import org.checkerframework.checker.index.lowerbound.LowerBoundChecker; import org.checkerframework.checker.index.samelen.SameLenChecker; @@ -9,9 +11,6 @@ import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.source.SuppressWarningsPrefix; -import java.util.HashSet; -import java.util.LinkedHashSet; - /** * A type-checker for preventing arrays from being accessed with values that are too high. * diff --git a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundTransfer.java b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundTransfer.java index 48a34460771..a9c0ebfe8e7 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundTransfer.java @@ -2,7 +2,10 @@ import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; - +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.index.IndexAbstractTransfer; import org.checkerframework.checker.index.IndexRefinementInfo; import org.checkerframework.checker.index.Subsequence; @@ -41,12 +44,6 @@ import org.checkerframework.framework.type.QualifierHierarchy; import org.checkerframework.framework.util.FlowExpressionParseUtil.FlowExpressionContext; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** * Contains the transfer functions for the upper bound type system, a part of the Index Checker. * This class implements the following refinement rules: diff --git a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundVisitor.java b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundVisitor.java index 2347fcd9b3e..35b0d8e8126 100644 --- a/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/index/upperbound/UpperBoundVisitor.java @@ -8,7 +8,10 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; import com.sun.source.util.TreePath; - +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.type.TypeKind; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.index.Subsequence; import org.checkerframework.checker.index.qual.HasSubsequence; @@ -36,12 +39,6 @@ import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.type.TypeKind; - /** Warns about array accesses that could be too high. */ public class UpperBoundVisitor extends BaseTypeVisitor { diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationAnnotatedTypeFactory.java index 869df764926..76fcda52282 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationAnnotatedTypeFactory.java @@ -11,7 +11,24 @@ import com.sun.source.util.TreePath; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.tree.JCTree; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.Name; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Types; import org.checkerframework.checker.initialization.qual.FBCBottom; import org.checkerframework.checker.initialization.qual.Initialized; import org.checkerframework.checker.initialization.qual.NotOnlyInitialized; @@ -40,26 +57,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.Name; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.Types; - /** * The annotated type factory for the freedom-before-commitment type-system. The * freedom-before-commitment type-system and this class are abstract and need to be combined with diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationChecker.java b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationChecker.java index c3b02369568..477ccba52b8 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationChecker.java @@ -3,12 +3,10 @@ import com.sun.source.tree.ClassTree; import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; - -import org.checkerframework.common.basetype.BaseTypeChecker; - import java.util.ArrayList; import java.util.List; import java.util.SortedSet; +import org.checkerframework.common.basetype.BaseTypeChecker; /** * Tracks whether a value is initialized (all its fields are set), and checks that values are diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationStore.java b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationStore.java index 684b8b05c19..d28e612bfa4 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationStore.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationStore.java @@ -1,5 +1,12 @@ package org.checkerframework.checker.initialization; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.VariableElement; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.ClassName; import org.checkerframework.dataflow.analysis.FlowExpressions.FieldAccess; @@ -14,15 +21,6 @@ import org.checkerframework.framework.type.QualifierHierarchy; import org.checkerframework.javacutil.AnnotationUtils; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.VariableElement; - /** * A store that extends {@code CFAbstractStore} and additionally tracks which fields of the 'self' * reference have been initialized. diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationTransfer.java b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationTransfer.java index 86f4193c5dc..b539d07bb12 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationTransfer.java @@ -4,7 +4,15 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.MethodTree; import com.sun.tools.javac.code.Symbol; - +import java.util.ArrayList; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; import org.checkerframework.dataflow.analysis.ConditionalTransferResult; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.FieldAccess; @@ -24,17 +32,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.javacutil.TreeUtils; -import java.util.ArrayList; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.ElementFilter; - /** * A transfer function that extends {@link CFAbstractTransfer} and tracks {@link * InitializationStore}s. In addition to the features of {@link CFAbstractTransfer}, this transfer diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationVisitor.java b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationVisitor.java index acdc2731022..44c370f48fd 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/InitializationVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/InitializationVisitor.java @@ -11,7 +11,17 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.TypeCastTree; import com.sun.source.tree.VariableTree; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.nullness.NullnessChecker; import org.checkerframework.common.basetype.BaseTypeChecker; @@ -33,19 +43,6 @@ import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; - /** * The visitor for the freedom-before-commitment type-system. The freedom-before-commitment * type-system and this class are abstract and need to be combined with another type-system whose diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/qual/FBCBottom.java b/checker/src/main/java/org/checkerframework/checker/initialization/qual/FBCBottom.java index af0f6b4aa97..23e2ff4a4cf 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/qual/FBCBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/qual/FBCBottom.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.initialization.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the initialization type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/qual/Initialized.java b/checker/src/main/java/org/checkerframework/checker/initialization/qual/Initialized.java index f13abf0f8c5..48c2bb426ab 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/qual/Initialized.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/qual/Initialized.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.initialization.qual; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; /** * This type qualifier belongs to the freedom-before-commitment initialization tracking type-system. diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/qual/UnderInitialization.java b/checker/src/main/java/org/checkerframework/checker/initialization/qual/UnderInitialization.java index cc9b92c5625..dc120906431 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/qual/UnderInitialization.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/qual/UnderInitialization.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.initialization.qual; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.framework.qual.SubtypeOf; /** * This type qualifier indicates that an object is (definitely) in the process of being diff --git a/checker/src/main/java/org/checkerframework/checker/initialization/qual/UnknownInitialization.java b/checker/src/main/java/org/checkerframework/checker/initialization/qual/UnknownInitialization.java index 35cdfae81b9..cf24af714f5 100644 --- a/checker/src/main/java/org/checkerframework/checker/initialization/qual/UnknownInitialization.java +++ b/checker/src/main/java/org/checkerframework/checker/initialization/qual/UnknownInitialization.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.initialization.qual; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; /** * This type qualifier indicates how much of an object has been fully initialized. An object is diff --git a/checker/src/main/java/org/checkerframework/checker/interning/InterningAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/interning/InterningAnnotatedTypeFactory.java index cf73664cadb..ffd7f193972 100644 --- a/checker/src/main/java/org/checkerframework/checker/interning/InterningAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/interning/InterningAnnotatedTypeFactory.java @@ -5,7 +5,13 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.TypeCastTree; import com.sun.tools.javac.code.Symbol.MethodSymbol; - +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.interning.qual.InternMethod; import org.checkerframework.checker.interning.qual.Interned; import org.checkerframework.checker.interning.qual.PolyInterned; @@ -28,15 +34,6 @@ import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.TreeUtils; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** * An {@link AnnotatedTypeFactory} that accounts for the properties of the Interned type system. * This type factory will add the {@link Interned} annotation to a type if the input: diff --git a/checker/src/main/java/org/checkerframework/checker/interning/InterningChecker.java b/checker/src/main/java/org/checkerframework/checker/interning/InterningChecker.java index 428fed8e423..063200c6a5f 100644 --- a/checker/src/main/java/org/checkerframework/checker/interning/InterningChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/interning/InterningChecker.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.interning; +import javax.annotation.processing.SupportedOptions; import org.checkerframework.checker.interning.qual.Interned; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.qual.StubFiles; import org.checkerframework.framework.source.SupportedLintOptions; -import javax.annotation.processing.SupportedOptions; - /** * A type-checker plug-in for the {@link Interned} qualifier that finds (and verifies the absence * of) equality-testing and interning errors. diff --git a/checker/src/main/java/org/checkerframework/checker/interning/InterningVisitor.java b/checker/src/main/java/org/checkerframework/checker/interning/InterningVisitor.java index 00e7ffa233f..eb6285e2001 100644 --- a/checker/src/main/java/org/checkerframework/checker/interning/InterningVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/interning/InterningVisitor.java @@ -17,7 +17,19 @@ import com.sun.source.tree.StatementTree; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; - +import java.util.Comparator; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; +import javax.tools.Diagnostic.Kind; import org.checkerframework.checker.interning.qual.InternMethod; import org.checkerframework.checker.interning.qual.Interned; import org.checkerframework.checker.interning.qual.InternedDistinct; @@ -33,21 +45,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.Comparator; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.ElementFilter; -import javax.tools.Diagnostic.Kind; - /** * Typechecks source code for interning violations. A type is considered interned if its primary * annotation is {@link Interned} or {@link InternedDistinct}. This visitor reports errors or diff --git a/checker/src/main/java/org/checkerframework/checker/interning/qual/Interned.java b/checker/src/main/java/org/checkerframework/checker/interning/qual/Interned.java index 648fee039a9..946fb68c0b9 100644 --- a/checker/src/main/java/org/checkerframework/checker/interning/qual/Interned.java +++ b/checker/src/main/java/org/checkerframework/checker/interning/qual/Interned.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.interning.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.LiteralKind; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeKind; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.LiteralKind; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeKind; /** * Indicates that a variable has been interned, i.e., that the variable refers to the canonical diff --git a/checker/src/main/java/org/checkerframework/checker/interning/qual/InternedDistinct.java b/checker/src/main/java/org/checkerframework/checker/interning/qual/InternedDistinct.java index 4289da15fbe..7c6aa725c29 100644 --- a/checker/src/main/java/org/checkerframework/checker/interning/qual/InternedDistinct.java +++ b/checker/src/main/java/org/checkerframework/checker/interning/qual/InternedDistinct.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.interning.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; /** * Indicates that no other value is {@code equals()} to the given value. Therefore, it is correct to diff --git a/checker/src/main/java/org/checkerframework/checker/interning/qual/PolyInterned.java b/checker/src/main/java/org/checkerframework/checker/interning/qual/PolyInterned.java index aaa1be3c2dd..fb657e40706 100644 --- a/checker/src/main/java/org/checkerframework/checker/interning/qual/PolyInterned.java +++ b/checker/src/main/java/org/checkerframework/checker/interning/qual/PolyInterned.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.interning.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Interning type system. diff --git a/checker/src/main/java/org/checkerframework/checker/interning/qual/UnknownInterned.java b/checker/src/main/java/org/checkerframework/checker/interning/qual/UnknownInterned.java index 7a854d3933f..e170645f2af 100644 --- a/checker/src/main/java/org/checkerframework/checker/interning/qual/UnknownInterned.java +++ b/checker/src/main/java/org/checkerframework/checker/interning/qual/UnknownInterned.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.interning.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * The top qualifier for the Interning Checker. It indicates lack of knowledge about whether values diff --git a/checker/src/main/java/org/checkerframework/checker/lock/LockAnalysis.java b/checker/src/main/java/org/checkerframework/checker/lock/LockAnalysis.java index 23712533224..8c0a7072862 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/LockAnalysis.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/LockAnalysis.java @@ -1,17 +1,15 @@ package org.checkerframework.checker.lock; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.framework.flow.CFAbstractAnalysis; -import org.checkerframework.framework.flow.CFStore; -import org.checkerframework.framework.flow.CFValue; -import org.checkerframework.javacutil.Pair; - import java.util.List; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.framework.flow.CFAbstractAnalysis; +import org.checkerframework.framework.flow.CFStore; +import org.checkerframework.framework.flow.CFValue; +import org.checkerframework.javacutil.Pair; /** * The analysis class for the lock type system. diff --git a/checker/src/main/java/org/checkerframework/checker/lock/LockAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/lock/LockAnnotatedTypeFactory.java index 6896fe00f9e..a3c43ba142b 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/LockAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/LockAnnotatedTypeFactory.java @@ -6,7 +6,20 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.checker.lock.qual.GuardSatisfied; import org.checkerframework.checker.lock.qual.GuardedBy; import org.checkerframework.checker.lock.qual.GuardedByBottom; @@ -49,22 +62,6 @@ import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.AnnotationValue; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; - /** * LockAnnotatedTypeFactory builds types with @LockHeld and @LockPossiblyHeld annotations. LockHeld * identifies that an object is being used as a lock and is being held when a given tree is diff --git a/checker/src/main/java/org/checkerframework/checker/lock/LockStore.java b/checker/src/main/java/org/checkerframework/checker/lock/LockStore.java index 997be56949f..552090dd0b0 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/LockStore.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/LockStore.java @@ -1,5 +1,9 @@ package org.checkerframework.checker.lock; +import java.util.ArrayList; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.checker.lock.LockAnnotatedTypeFactory.SideEffectAnnotation; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.FlowExpressions; @@ -16,12 +20,6 @@ import org.checkerframework.framework.type.QualifierHierarchy; import org.checkerframework.javacutil.AnnotationUtils; -import java.util.ArrayList; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; - /** * The Lock Store behaves like CFAbstractStore but requires the ability to insert exact annotations. * This is because we want to be able to insert @LockPossiblyHeld to replace @LockHeld, which diff --git a/checker/src/main/java/org/checkerframework/checker/lock/LockTransfer.java b/checker/src/main/java/org/checkerframework/checker/lock/LockTransfer.java index 13b53e6718e..0c43456a7fa 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/LockTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/LockTransfer.java @@ -2,7 +2,11 @@ import com.sun.source.tree.ClassTree; import com.sun.source.tree.MethodTree; - +import java.util.List; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.type.TypeMirror; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.Receiver; import org.checkerframework.dataflow.analysis.TransferInput; @@ -17,13 +21,6 @@ import org.checkerframework.framework.flow.CFValue; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; - -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Modifier; -import javax.lang.model.type.TypeMirror; - /** * LockTransfer handles constructors, initializers, synchronized methods, and synchronized blocks. */ diff --git a/checker/src/main/java/org/checkerframework/checker/lock/LockTreeAnnotator.java b/checker/src/main/java/org/checkerframework/checker/lock/LockTreeAnnotator.java index e13522a9803..1a829df9805 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/LockTreeAnnotator.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/LockTreeAnnotator.java @@ -3,7 +3,6 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.CompoundAssignmentTree; import com.sun.source.tree.Tree.Kind; - import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.treeannotator.TreeAnnotator; diff --git a/checker/src/main/java/org/checkerframework/checker/lock/LockVisitor.java b/checker/src/main/java/org/checkerframework/checker/lock/LockVisitor.java index ad58b7c7542..40f4e27dbdb 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/LockVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/LockVisitor.java @@ -15,7 +15,22 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.concurrent.locks.Lock; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.lock.LockAnnotatedTypeFactory.SideEffectAnnotation; import org.checkerframework.checker.lock.qual.EnsuresLockHeld; @@ -50,24 +65,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.concurrent.locks.Lock; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Modifier; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** * The LockVisitor enforces the special type-checking rules described in the Lock Checker manual * chapter. diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/EnsuresLockHeld.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/EnsuresLockHeld.java index f3baf33e3e0..f2186a1656e 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/EnsuresLockHeld.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/EnsuresLockHeld.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.framework.qual.InheritedAnnotation; -import org.checkerframework.framework.qual.PostconditionAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InheritedAnnotation; +import org.checkerframework.framework.qual.PostconditionAnnotation; /** * Indicates that the given expressions are held if the method terminates successfully. diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/EnsuresLockHeldIf.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/EnsuresLockHeldIf.java index b021f20640f..5b5c264edaa 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/EnsuresLockHeldIf.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/EnsuresLockHeldIf.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; -import org.checkerframework.framework.qual.InheritedAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; +import org.checkerframework.framework.qual.InheritedAnnotation; /** * Indicates that the given expressions are held if the method terminates successfully and returns diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardSatisfied.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardSatisfied.java index b691008ed03..0bed9f5750b 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardSatisfied.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardSatisfied.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * If a variable {@code x} has type {@code @GuardSatisfied}, then all lock expressions for {@code diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedBy.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedBy.java index c464eb1b166..31a8fc3330c 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedBy.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedBy.java @@ -1,5 +1,10 @@ package org.checkerframework.checker.lock.qual; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; import org.checkerframework.framework.qual.JavaExpression; @@ -7,12 +12,6 @@ import org.checkerframework.framework.qual.TypeKind; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - /** * Indicates that a thread may dereference the value referred to by the annotated variable only if * the thread holds all the given lock expressions. diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedByBottom.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedByBottom.java index b58b064766e..91a66e38316 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedByBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedByBottom.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the GuardedBy type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedByUnknown.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedByUnknown.java index e516921d9f6..08def367e70 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedByUnknown.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/GuardedByUnknown.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * It is unknown what locks guard the value referred to by the annotated variable. Therefore, the diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/Holding.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/Holding.java index a01e422e0a5..27bfc5786d2 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/Holding.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/Holding.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.framework.qual.PreconditionAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PreconditionAnnotation; /** * Indicates a method precondition: the specified expressions must be held when the annotated method diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/LockHeld.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/LockHeld.java index 4d8af9898f8..d77d8c0842f 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/LockHeld.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/LockHeld.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that an expression is used as a lock and the lock is known to be held on the current diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/LockPossiblyHeld.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/LockPossiblyHeld.java index 2fcad8da14f..f9216d78b8d 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/LockPossiblyHeld.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/LockPossiblyHeld.java @@ -1,5 +1,9 @@ package org.checkerframework.checker.lock.qual; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; import org.checkerframework.framework.qual.InvisibleQualifier; @@ -8,11 +12,6 @@ import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - /** * Indicates that an expression is not known to be {@link LockHeld}. * diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/LockingFree.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/LockingFree.java index 5c8043426de..e9737ea034e 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/LockingFree.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/LockingFree.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.dataflow.qual.Pure; -import org.checkerframework.dataflow.qual.SideEffectFree; -import org.checkerframework.framework.qual.InheritedAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.dataflow.qual.Pure; +import org.checkerframework.dataflow.qual.SideEffectFree; +import org.checkerframework.framework.qual.InheritedAnnotation; /** * The method neither acquires nor releases locks, nor do any of the methods that it calls. More diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/MayReleaseLocks.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/MayReleaseLocks.java index be2247b9aff..80742faa252 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/MayReleaseLocks.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/MayReleaseLocks.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.framework.qual.InheritedAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InheritedAnnotation; /** * The method, or one of the methods it calls, might release locks that were held prior to the diff --git a/checker/src/main/java/org/checkerframework/checker/lock/qual/ReleasesNoLocks.java b/checker/src/main/java/org/checkerframework/checker/lock/qual/ReleasesNoLocks.java index f595ff969b6..dc43239f906 100644 --- a/checker/src/main/java/org/checkerframework/checker/lock/qual/ReleasesNoLocks.java +++ b/checker/src/main/java/org/checkerframework/checker/lock/qual/ReleasesNoLocks.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.lock.qual; -import org.checkerframework.dataflow.qual.Pure; -import org.checkerframework.dataflow.qual.SideEffectFree; -import org.checkerframework.framework.qual.InheritedAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.dataflow.qual.Pure; +import org.checkerframework.dataflow.qual.SideEffectFree; +import org.checkerframework.framework.qual.InheritedAnnotation; /** * The method maintains a strictly nondecreasing lock held count on the current thread for any locks diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/CollectionToArrayHeuristics.java b/checker/src/main/java/org/checkerframework/checker/nullness/CollectionToArrayHeuristics.java index 962f09e4b40..ad0e46de384 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/CollectionToArrayHeuristics.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/CollectionToArrayHeuristics.java @@ -5,7 +5,14 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.NewArrayTree; import com.sun.source.tree.Tree; - +import java.util.Collection; +import java.util.List; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.value.qual.ArrayLen; import org.checkerframework.framework.type.AnnotatedTypeMirror; @@ -17,16 +24,6 @@ import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.TreeUtils; -import java.util.Collection; -import java.util.List; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** * Determines the nullness type of calls to {@link java.util.Collection#toArray()}. * diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForAnalysis.java b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForAnalysis.java index c877165fb49..7125cb110a0 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForAnalysis.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForAnalysis.java @@ -1,16 +1,14 @@ package org.checkerframework.checker.nullness; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.framework.flow.CFAbstractAnalysis; -import org.checkerframework.framework.flow.CFAbstractValue; -import org.checkerframework.javacutil.Pair; - import java.util.List; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.framework.flow.CFAbstractAnalysis; +import org.checkerframework.framework.flow.CFAbstractValue; +import org.checkerframework.javacutil.Pair; /** Boiler plate code to glue together all the parts the KeyFor dataflow classes. */ public class KeyForAnalysis extends CFAbstractAnalysis { diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForAnnotatedTypeFactory.java index 157d60d96a1..1f968444b1c 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForAnnotatedTypeFactory.java @@ -3,7 +3,19 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.NewClassTree; import com.sun.source.tree.Tree; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; import org.checkerframework.checker.nullness.qual.KeyFor; import org.checkerframework.checker.nullness.qual.KeyForBottom; import org.checkerframework.checker.nullness.qual.PolyKeyFor; @@ -26,21 +38,6 @@ import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.AnnotationValue; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeKind; - public class KeyForAnnotatedTypeFactory extends GenericAnnotatedTypeFactory< KeyForValue, KeyForStore, KeyForTransfer, KeyForAnalysis> { diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForPropagationTreeAnnotator.java b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForPropagationTreeAnnotator.java index 7a158dbb820..40a3ee93031 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForPropagationTreeAnnotator.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForPropagationTreeAnnotator.java @@ -3,7 +3,8 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.NewClassTree; import com.sun.source.tree.VariableTree; - +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeKind; import org.checkerframework.checker.nullness.KeyForPropagator.PropagationDirection; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; @@ -11,9 +12,6 @@ import org.checkerframework.framework.type.treeannotator.TreeAnnotator; import org.checkerframework.javacutil.TreeUtils; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeKind; - /** * For the following initializations we wish to propagate the annotations from the left-hand side to * the right-hand side or vice versa: diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForPropagator.java b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForPropagator.java index 44efd793807..f22bf7fd608 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForPropagator.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForPropagator.java @@ -3,7 +3,13 @@ import com.sun.source.tree.NewClassTree; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; - +import java.util.List; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.util.Types; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; @@ -14,15 +20,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.Pair; -import java.util.List; -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.util.Types; - /** * KeyForPropagator is used to move nested KeyFor annotations in type arguments from one side of a * pseudo-assignment to the other. The KeyForPropagationTreeAnnotator details the locations in which diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForTransfer.java b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForTransfer.java index 5d0febcbd38..23dd2bb5775 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForTransfer.java @@ -1,5 +1,8 @@ package org.checkerframework.checker.nullness; +import java.util.LinkedHashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.nullness.qual.KeyFor; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.Receiver; @@ -10,11 +13,6 @@ import org.checkerframework.framework.flow.CFAbstractTransfer; import org.checkerframework.javacutil.AnnotationUtils; -import java.util.LinkedHashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** * KeyForTransfer ensures that java.util.Map.put and containsKey cause the appropriate @KeyFor * annotation to be added to the key. diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForValue.java b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForValue.java index ceacef99e96..587b09ac541 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/KeyForValue.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/KeyForValue.java @@ -1,19 +1,16 @@ package org.checkerframework.checker.nullness; import com.sun.source.tree.ExpressionTree; - -import org.checkerframework.checker.nullness.qual.KeyFor; -import org.checkerframework.framework.flow.CFAbstractAnalysis; -import org.checkerframework.framework.flow.CFAbstractValue; -import org.checkerframework.javacutil.AnnotationUtils; - import java.util.LinkedHashSet; import java.util.List; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.KeyFor; +import org.checkerframework.framework.flow.CFAbstractAnalysis; +import org.checkerframework.framework.flow.CFAbstractValue; +import org.checkerframework.javacutil.AnnotationUtils; /** * KeyForValue holds additional information about which maps this value is a key for. This extra diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnalysis.java b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnalysis.java index e548fa90aaa..ce08388f053 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnalysis.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnalysis.java @@ -1,16 +1,14 @@ package org.checkerframework.checker.nullness; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.framework.flow.CFAbstractAnalysis; -import org.checkerframework.framework.flow.CFAbstractValue; -import org.checkerframework.javacutil.Pair; - import java.util.List; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.framework.flow.CFAbstractAnalysis; +import org.checkerframework.framework.flow.CFAbstractValue; +import org.checkerframework.javacutil.Pair; /** * The analysis class for the non-null type system (serves as factory for the transfer function, diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFactory.java index 69e293e2694..b1f91db5088 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFactory.java @@ -15,7 +15,19 @@ import com.sun.source.tree.UnaryTree; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.checker.initialization.InitializationAnnotatedTypeFactory; import org.checkerframework.checker.initialization.qual.FBCBottom; import org.checkerframework.checker.initialization.qual.Initialized; @@ -51,21 +63,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; - /** The annotated type factory for the nullness type-system. */ public class NullnessAnnotatedTypeFactory extends InitializationAnnotatedTypeFactory< diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFormatter.java b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFormatter.java index e72f5ebae69..a4b5bfd0323 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFormatter.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFormatter.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.nullness; +import java.util.Set; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedNullType; import org.checkerframework.framework.type.DefaultAnnotatedTypeFormatter; import org.checkerframework.framework.util.AnnotationFormatter; import org.checkerframework.framework.util.DefaultAnnotationFormatter; -import java.util.Set; - /** A DefaultAnnotatedTypeFormatter that prints null literals without their annotations. */ public class NullnessAnnotatedTypeFormatter extends DefaultAnnotatedTypeFormatter { public NullnessAnnotatedTypeFormatter( diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessChecker.java b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessChecker.java index 389d53b849f..b096be14fc0 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessChecker.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.nullness; +import java.util.LinkedHashSet; +import java.util.SortedSet; import org.checkerframework.checker.initialization.InitializationChecker; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.framework.source.SupportedLintOptions; -import java.util.LinkedHashSet; -import java.util.SortedSet; - /** * An implementation of the nullness type-system, parameterized by an initialization type-system for * safe initialization. It use freedom-before-commitment, augmented by type frames, as its diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessTransfer.java b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessTransfer.java index 6367e4f9709..9eb346e0885 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessTransfer.java @@ -2,7 +2,14 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.MethodInvocationTree; - +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Elements; import org.checkerframework.checker.initialization.InitializationTransfer; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -36,16 +43,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.Elements; - /** * Transfer function for the non-null type system. Performs the following refinements: * diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessValue.java b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessValue.java index 429e295a4ee..7432459047b 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessValue.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessValue.java @@ -1,16 +1,14 @@ package org.checkerframework.checker.nullness; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.PolyNull; import org.checkerframework.framework.flow.CFAbstractAnalysis; import org.checkerframework.framework.flow.CFAbstractValue; import org.checkerframework.framework.flow.CFValue; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeMirror; - /** * Behaves just like {@link CFValue}, but additionally tracks whether at this point {@link PolyNull} * is known to be {@link Nullable}. diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessVisitor.java b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessVisitor.java index 21086cef86f..e72a5392f39 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/NullnessVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/NullnessVisitor.java @@ -28,7 +28,14 @@ import com.sun.source.tree.UnaryTree; import com.sun.source.tree.VariableTree; import com.sun.source.tree.WhileLoopTree; - +import java.lang.annotation.Annotation; +import java.util.List; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.initialization.InitializationVisitor; import org.checkerframework.checker.nullness.qual.NonNull; @@ -44,16 +51,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.lang.annotation.Annotation; -import java.util.List; -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeMirror; - /** The visitor for the nullness type-system. */ public class NullnessVisitor extends InitializationVisitor { diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/Opt.java b/checker/src/main/java/org/checkerframework/checker/nullness/Opt.java index b1cb45900a1..149b9f4f9eb 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/Opt.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/Opt.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.nullness; -import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.NoSuchElementException; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; +import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; /** * Utility class for the Nullness Checker, providing every method in {@link java.util.Optional}, but diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/SystemGetPropertyHandler.java b/checker/src/main/java/org/checkerframework/checker/nullness/SystemGetPropertyHandler.java index 9f8a98cf789..dd104f95ec8 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/SystemGetPropertyHandler.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/SystemGetPropertyHandler.java @@ -1,17 +1,14 @@ package org.checkerframework.checker.nullness; import com.sun.source.tree.MethodInvocationTree; - -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Arrays; import java.util.Collection; import java.util.HashSet; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.ExecutableElement; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.javacutil.TreeUtils; /** * Utility class for handling {@link java.lang.System#getProperty(String)} and related invocations. diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresKeyFor.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresKeyFor.java index 91c066bde65..b9498fcd675 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresKeyFor.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresKeyFor.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.InheritedAnnotation; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.PostconditionAnnotation; -import org.checkerframework.framework.qual.QualifierArgument; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InheritedAnnotation; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.PostconditionAnnotation; +import org.checkerframework.framework.qual.QualifierArgument; /** * Indicates that the value expressions evaluate to a value that is a key in all the given maps, if diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresKeyForIf.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresKeyForIf.java index 6582a342424..82c184c7abd 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresKeyForIf.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresKeyForIf.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; -import org.checkerframework.framework.qual.InheritedAnnotation; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.QualifierArgument; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; +import org.checkerframework.framework.qual.InheritedAnnotation; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.QualifierArgument; /** * Indicates that the given expressions evaluate to a value that is a key in all the given maps, if diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresNonNull.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresNonNull.java index 7ce2b3e4d11..109f2ace91c 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresNonNull.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresNonNull.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.InheritedAnnotation; -import org.checkerframework.framework.qual.PostconditionAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InheritedAnnotation; +import org.checkerframework.framework.qual.PostconditionAnnotation; // TODO: In a fix for https://tinyurl.com/cfissue/1917, add the text: // Every prefix expression is also non-null; for example, {@code diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresNonNullIf.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresNonNullIf.java index 378c50ac63b..415e52a4f0b 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresNonNullIf.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/EnsuresNonNullIf.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; -import org.checkerframework.framework.qual.InheritedAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; +import org.checkerframework.framework.qual.InheritedAnnotation; // TODO: In a fix for https://tinyurl.com/cfissue/1917, add the text: // Every prefix expression is also non-null; for example, diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/KeyFor.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/KeyFor.java index cf0013289f9..c79d650e2e3 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/KeyFor.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/KeyFor.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that the value assigned to the annotated variable is a key for at least the given diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/KeyForBottom.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/KeyForBottom.java index 1d03442dbf8..c87995610ed 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/KeyForBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/KeyForBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Map Key type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/MonotonicNonNull.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/MonotonicNonNull.java index 24d9a6ff8f5..7eacf3f7677 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/MonotonicNonNull.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/MonotonicNonNull.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.MonotonicQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.MonotonicQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that once the field (or variable) becomes non-null, it never becomes null again. There diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/NonNull.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/NonNull.java index 5d2bd14b670..ae3b403665f 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/NonNull.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/NonNull.java @@ -1,5 +1,10 @@ package org.checkerframework.checker.nullness.qual; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; import org.checkerframework.framework.qual.LiteralKind; @@ -9,12 +14,6 @@ import org.checkerframework.framework.qual.TypeUseLocation; import org.checkerframework.framework.qual.UpperBoundFor; -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - /** * If an expression's type is qualified by {@code @NonNull}, then the expression never evaluates to * {@code null}. diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/Nullable.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/Nullable.java index 233e8e2024a..650d7b0e8f3 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/Nullable.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/Nullable.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.LiteralKind; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.LiteralKind; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; /** * {@link Nullable} is a type annotation that indicates that the value is not known to be non-null diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/PolyKeyFor.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/PolyKeyFor.java index c5dfc57550d..6a89836561b 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/PolyKeyFor.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/PolyKeyFor.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Map Key (@KeyFor) type system. diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/PolyNull.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/PolyNull.java index e1d5659115f..1ae6b204c80 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/PolyNull.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/PolyNull.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the non-null type system. diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/RequiresNonNull.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/RequiresNonNull.java index 1e272a621ef..cf60d43f3ea 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/RequiresNonNull.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/RequiresNonNull.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.nullness.qual; -import org.checkerframework.framework.qual.PreconditionAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PreconditionAnnotation; // TODO: In a fix for https://tinyurl.com/cfissue/1917, add the text: // Every prefix expression must also be non-null; for example, {@code diff --git a/checker/src/main/java/org/checkerframework/checker/nullness/qual/UnknownKeyFor.java b/checker/src/main/java/org/checkerframework/checker/nullness/qual/UnknownKeyFor.java index 72fbdf4f484..19e423ca910 100644 --- a/checker/src/main/java/org/checkerframework/checker/nullness/qual/UnknownKeyFor.java +++ b/checker/src/main/java/org/checkerframework/checker/nullness/qual/UnknownKeyFor.java @@ -1,5 +1,10 @@ package org.checkerframework.checker.nullness.qual; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; import org.checkerframework.framework.qual.InvisibleQualifier; @@ -8,12 +13,6 @@ import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - /** * Used internally by the type system; should never be written by a programmer. * diff --git a/checker/src/main/java/org/checkerframework/checker/optional/OptionalChecker.java b/checker/src/main/java/org/checkerframework/checker/optional/OptionalChecker.java index f804f943d73..da622fd2a2c 100644 --- a/checker/src/main/java/org/checkerframework/checker/optional/OptionalChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/optional/OptionalChecker.java @@ -1,10 +1,9 @@ package org.checkerframework.checker.optional; +import java.util.Optional; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.qual.RelevantJavaTypes; -import java.util.Optional; - /** * A type-checker that prevents misuse of the {@link java.util.Optional} class. * diff --git a/checker/src/main/java/org/checkerframework/checker/optional/OptionalVisitor.java b/checker/src/main/java/org/checkerframework/checker/optional/OptionalVisitor.java index fa70976215b..70730b41534 100644 --- a/checker/src/main/java/org/checkerframework/checker/optional/OptionalVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/optional/OptionalVisitor.java @@ -10,20 +10,8 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; - -import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.common.basetype.BaseTypeValidator; -import org.checkerframework.common.basetype.BaseTypeVisitor; -import org.checkerframework.dataflow.analysis.FlowExpressions; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.util.Collection; import java.util.List; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.ElementKind; import javax.lang.model.element.ExecutableElement; @@ -31,6 +19,15 @@ import javax.lang.model.type.DeclaredType; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.common.basetype.BaseTypeValidator; +import org.checkerframework.common.basetype.BaseTypeVisitor; +import org.checkerframework.dataflow.analysis.FlowExpressions; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.TypesUtils; /** * The OptionalVisitor enforces the Optional Checker rules. These rules are described in the Checker diff --git a/checker/src/main/java/org/checkerframework/checker/optional/qual/MaybePresent.java b/checker/src/main/java/org/checkerframework/checker/optional/qual/MaybePresent.java index 49455dbadf0..b37ac127ffd 100644 --- a/checker/src/main/java/org/checkerframework/checker/optional/qual/MaybePresent.java +++ b/checker/src/main/java/org/checkerframework/checker/optional/qual/MaybePresent.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.optional.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * The {@link java.util.Optional Optional} container may or may not contain a value. diff --git a/checker/src/main/java/org/checkerframework/checker/optional/qual/PolyPresent.java b/checker/src/main/java/org/checkerframework/checker/optional/qual/PolyPresent.java index d159dd3a6bb..e462ed7732a 100644 --- a/checker/src/main/java/org/checkerframework/checker/optional/qual/PolyPresent.java +++ b/checker/src/main/java/org/checkerframework/checker/optional/qual/PolyPresent.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.optional.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Optional type system. diff --git a/checker/src/main/java/org/checkerframework/checker/optional/qual/Present.java b/checker/src/main/java/org/checkerframework/checker/optional/qual/Present.java index 90261fe72e6..90c59e2c849 100644 --- a/checker/src/main/java/org/checkerframework/checker/optional/qual/Present.java +++ b/checker/src/main/java/org/checkerframework/checker/optional/qual/Present.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.optional.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * The {@link java.util.Optional Optional} container definitely contains a (non-null) value. diff --git a/checker/src/main/java/org/checkerframework/checker/propkey/PropertyKeyAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/propkey/PropertyKeyAnnotatedTypeFactory.java index acff638f5ce..5c7a6971330 100644 --- a/checker/src/main/java/org/checkerframework/checker/propkey/PropertyKeyAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/propkey/PropertyKeyAnnotatedTypeFactory.java @@ -4,16 +4,6 @@ import com.sun.source.tree.CompoundAssignmentTree; import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.propkey.qual.PropertyKey; -import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.treeannotator.ListTreeAnnotator; -import org.checkerframework.framework.type.treeannotator.TreeAnnotator; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.plumelib.reflection.Signatures; - import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; @@ -24,9 +14,16 @@ import java.util.Properties; import java.util.ResourceBundle; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.tools.Diagnostic.Kind; +import org.checkerframework.checker.propkey.qual.PropertyKey; +import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.treeannotator.ListTreeAnnotator; +import org.checkerframework.framework.type.treeannotator.TreeAnnotator; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.plumelib.reflection.Signatures; /** * This AnnotatedTypeFactory adds PropertyKey annotations to String literals that contain values diff --git a/checker/src/main/java/org/checkerframework/checker/propkey/PropertyKeyChecker.java b/checker/src/main/java/org/checkerframework/checker/propkey/PropertyKeyChecker.java index f9eac20e33e..f0a893c19b4 100644 --- a/checker/src/main/java/org/checkerframework/checker/propkey/PropertyKeyChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/propkey/PropertyKeyChecker.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.propkey; +import java.util.Locale; +import java.util.ResourceBundle; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.qual.RelevantJavaTypes; import org.checkerframework.framework.source.SupportedOptions; -import java.util.Locale; -import java.util.ResourceBundle; - /** * A type-checker that checks that only valid keys are used to access property files and resource * bundles. Subclasses can specialize this class for the different uses of property files, for diff --git a/checker/src/main/java/org/checkerframework/checker/propkey/qual/PropertyKey.java b/checker/src/main/java/org/checkerframework/checker/propkey/qual/PropertyKey.java index ecb47f99bcd..712fc8f4b27 100644 --- a/checker/src/main/java/org/checkerframework/checker/propkey/qual/PropertyKey.java +++ b/checker/src/main/java/org/checkerframework/checker/propkey/qual/PropertyKey.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.propkey.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that the {@code String} type can be used as key in a property file or resource bundle. diff --git a/checker/src/main/java/org/checkerframework/checker/propkey/qual/PropertyKeyBottom.java b/checker/src/main/java/org/checkerframework/checker/propkey/qual/PropertyKeyBottom.java index 8d0c0471948..e3b40a9c625 100644 --- a/checker/src/main/java/org/checkerframework/checker/propkey/qual/PropertyKeyBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/propkey/qual/PropertyKeyBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.propkey.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the PropertyKeyChecker (and associated checkers) qualifier hierarchy. diff --git a/checker/src/main/java/org/checkerframework/checker/propkey/qual/UnknownPropertyKey.java b/checker/src/main/java/org/checkerframework/checker/propkey/qual/UnknownPropertyKey.java index 65f9516faaf..89a55a0fb36 100644 --- a/checker/src/main/java/org/checkerframework/checker/propkey/qual/UnknownPropertyKey.java +++ b/checker/src/main/java/org/checkerframework/checker/propkey/qual/UnknownPropertyKey.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.propkey.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates that the {@code String} type has an unknown property key property. diff --git a/checker/src/main/java/org/checkerframework/checker/regex/RegexAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/regex/RegexAnnotatedTypeFactory.java index 543d41b9a0f..796d0614230 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/RegexAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/RegexAnnotatedTypeFactory.java @@ -6,7 +6,13 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; - +import java.lang.annotation.Annotation; +import java.util.Set; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.checker.regex.qual.PartialRegex; import org.checkerframework.checker.regex.qual.PolyRegex; import org.checkerframework.checker.regex.qual.Regex; @@ -36,15 +42,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.util.Set; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.AnnotationValue; -import javax.lang.model.element.ExecutableElement; - /** * Adds {@link Regex} to the type of tree, in the following cases: * diff --git a/checker/src/main/java/org/checkerframework/checker/regex/RegexTransfer.java b/checker/src/main/java/org/checkerframework/checker/regex/RegexTransfer.java index 4aeec83d1cd..66d8ade11fc 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/RegexTransfer.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/RegexTransfer.java @@ -1,5 +1,7 @@ package org.checkerframework.checker.regex; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.dataflow.analysis.ConditionalTransferResult; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.Receiver; @@ -23,9 +25,6 @@ import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.TreeUtils; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; - /** The transfer function for the Regex Checker. */ public class RegexTransfer extends CFTransfer { diff --git a/checker/src/main/java/org/checkerframework/checker/regex/RegexUtil.java b/checker/src/main/java/org/checkerframework/checker/regex/RegexUtil.java index 31b1b7a8162..2269bfa4b9b 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/RegexUtil.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/RegexUtil.java @@ -2,6 +2,8 @@ package org.checkerframework.checker.regex; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; import org.checkerframework.checker.index.qual.GTENegativeOne; import org.checkerframework.checker.lock.qual.GuardSatisfied; import org.checkerframework.checker.nullness.qual.Nullable; @@ -10,9 +12,6 @@ import org.checkerframework.dataflow.qual.SideEffectFree; import org.checkerframework.framework.qual.EnsuresQualifierIf; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - /** * Utility methods for regular expressions, most notably for testing whether a string is a regular * expression. diff --git a/checker/src/main/java/org/checkerframework/checker/regex/RegexVisitor.java b/checker/src/main/java/org/checkerframework/checker/regex/RegexVisitor.java index 902f4de7df1..1e5ce341b9f 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/RegexVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/RegexVisitor.java @@ -6,7 +6,9 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.checker.regex.qual.Regex; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; @@ -15,10 +17,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType; import org.checkerframework.javacutil.TreeUtils; -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; - /** * A type-checking visitor for the Regex type system. * diff --git a/checker/src/main/java/org/checkerframework/checker/regex/qual/PartialRegex.java b/checker/src/main/java/org/checkerframework/checker/regex/qual/PartialRegex.java index edfd6b591e2..168dc48e353 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/qual/PartialRegex.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/qual/PartialRegex.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.regex.qual; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * Indicates a String that is not a syntactically valid regular expression. The String itself can be diff --git a/checker/src/main/java/org/checkerframework/checker/regex/qual/PolyRegex.java b/checker/src/main/java/org/checkerframework/checker/regex/qual/PolyRegex.java index fb967246457..80e5bffdc56 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/qual/PolyRegex.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/qual/PolyRegex.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.regex.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Regex type system. diff --git a/checker/src/main/java/org/checkerframework/checker/regex/qual/Regex.java b/checker/src/main/java/org/checkerframework/checker/regex/qual/Regex.java index d7d253e0c1a..919a9c804f9 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/qual/Regex.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/qual/Regex.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.regex.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * If a type is annotated as {@code @Regex(n)}, then the run-time value is a regular expression with diff --git a/checker/src/main/java/org/checkerframework/checker/regex/qual/RegexBottom.java b/checker/src/main/java/org/checkerframework/checker/regex/qual/RegexBottom.java index 45c69bd0040..e0f226b752a 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/qual/RegexBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/qual/RegexBottom.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.regex.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Regex type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/regex/qual/UnknownRegex.java b/checker/src/main/java/org/checkerframework/checker/regex/qual/UnknownRegex.java index f85a8240191..ea1948b19ea 100644 --- a/checker/src/main/java/org/checkerframework/checker/regex/qual/UnknownRegex.java +++ b/checker/src/main/java/org/checkerframework/checker/regex/qual/UnknownRegex.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.regex.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * Represents the top of the Regex qualifier hierarchy. diff --git a/checker/src/main/java/org/checkerframework/checker/signature/SignatureAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/signature/SignatureAnnotatedTypeFactory.java index dcd1b9f0e2a..165468b2a89 100644 --- a/checker/src/main/java/org/checkerframework/checker/signature/SignatureAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/signature/SignatureAnnotatedTypeFactory.java @@ -6,7 +6,10 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; - +import java.lang.annotation.Annotation; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.checker.signature.qual.ArrayWithoutPackage; import org.checkerframework.checker.signature.qual.BinaryName; import org.checkerframework.checker.signature.qual.BinaryNameOrPrimitiveType; @@ -36,12 +39,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; - // TODO: Does not yet handle method signature annotations, such as // @MethodDescriptor. diff --git a/checker/src/main/java/org/checkerframework/checker/signature/SignatureChecker.java b/checker/src/main/java/org/checkerframework/checker/signature/SignatureChecker.java index 6b3bcfa4dfc..9c23743312d 100644 --- a/checker/src/main/java/org/checkerframework/checker/signature/SignatureChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/signature/SignatureChecker.java @@ -1,7 +1,6 @@ package org.checkerframework.checker.signature; import com.sun.source.tree.CompilationUnitTree; - import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.qual.StubFiles; diff --git a/checker/src/main/java/org/checkerframework/checker/signature/qual/ArrayWithoutPackage.java b/checker/src/main/java/org/checkerframework/checker/signature/qual/ArrayWithoutPackage.java index 3ec7a61428c..880dcc449ee 100644 --- a/checker/src/main/java/org/checkerframework/checker/signature/qual/ArrayWithoutPackage.java +++ b/checker/src/main/java/org/checkerframework/checker/signature/qual/ArrayWithoutPackage.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.signature.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An identifier or primitive type, followed by any number of array square brackets. diff --git a/checker/src/main/java/org/checkerframework/checker/signature/qual/BinaryName.java b/checker/src/main/java/org/checkerframework/checker/signature/qual/BinaryName.java index 2b176295005..c1a8acb3f1c 100644 --- a/checker/src/main/java/org/checkerframework/checker/signature/qual/BinaryName.java +++ b/checker/src/main/java/org/checkerframework/checker/signature/qual/BinaryName.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.signature.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Represents a binary name as defined in the { diff --git a/checker/src/main/java/org/checkerframework/checker/tainting/qual/PolyTainted.java b/checker/src/main/java/org/checkerframework/checker/tainting/qual/PolyTainted.java index 643903b8e73..0f481e6ab56 100644 --- a/checker/src/main/java/org/checkerframework/checker/tainting/qual/PolyTainted.java +++ b/checker/src/main/java/org/checkerframework/checker/tainting/qual/PolyTainted.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.tainting.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Tainting type system. diff --git a/checker/src/main/java/org/checkerframework/checker/tainting/qual/Tainted.java b/checker/src/main/java/org/checkerframework/checker/tainting/qual/Tainted.java index ec4cf0ddaf9..86187facd49 100644 --- a/checker/src/main/java/org/checkerframework/checker/tainting/qual/Tainted.java +++ b/checker/src/main/java/org/checkerframework/checker/tainting/qual/Tainted.java @@ -1,13 +1,12 @@ package org.checkerframework.checker.tainting.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * Denotes a possibly-tainted value: at run time, the value might be tainted or might be untainted. diff --git a/checker/src/main/java/org/checkerframework/checker/tainting/qual/Untainted.java b/checker/src/main/java/org/checkerframework/checker/tainting/qual/Untainted.java index f4850dcd5b3..83d48f5186b 100644 --- a/checker/src/main/java/org/checkerframework/checker/tainting/qual/Untainted.java +++ b/checker/src/main/java/org/checkerframework/checker/tainting/qual/Untainted.java @@ -1,16 +1,15 @@ package org.checkerframework.checker.tainting.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.LiteralKind; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.LiteralKind; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; /** * Denotes a reference that is untainted, i.e. can be trusted. diff --git a/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotatedTypeFactory.java b/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotatedTypeFactory.java index cec18cf63f3..505971176f5 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotatedTypeFactory.java +++ b/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotatedTypeFactory.java @@ -4,7 +4,13 @@ import com.sun.source.tree.CompoundAssignmentTree; import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.Tree; - +import java.lang.annotation.Annotation; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Name; +import javax.tools.Diagnostic.Kind; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.signature.qual.BinaryName; import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; @@ -33,15 +39,6 @@ import org.checkerframework.javacutil.UserError; import org.plumelib.reflection.Signatures; -import java.lang.annotation.Annotation; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Name; -import javax.tools.Diagnostic.Kind; - /** * Annotated type factory for the Units Checker. * diff --git a/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotatedTypeFormatter.java b/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotatedTypeFormatter.java index c2445bf3711..1eb1b153e46 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotatedTypeFormatter.java +++ b/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotatedTypeFormatter.java @@ -1,5 +1,10 @@ package org.checkerframework.checker.units; +import java.util.Collection; +import java.util.Collections; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.util.Elements; import org.checkerframework.checker.units.qual.Prefix; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.type.DefaultAnnotatedTypeFormatter; @@ -7,13 +12,6 @@ import org.checkerframework.framework.util.DefaultAnnotationFormatter; import org.checkerframework.javacutil.AnnotationUtils; -import java.util.Collection; -import java.util.Collections; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.util.Elements; - public class UnitsAnnotatedTypeFormatter extends DefaultAnnotatedTypeFormatter { protected final BaseTypeChecker checker; protected final Elements elements; diff --git a/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotationClassLoader.java b/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotationClassLoader.java index 3b87fa8a953..649decb3c6a 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotationClassLoader.java +++ b/checker/src/main/java/org/checkerframework/checker/units/UnitsAnnotationClassLoader.java @@ -1,15 +1,13 @@ package org.checkerframework.checker.units; +import java.lang.annotation.Annotation; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.units.qual.UnitsMultiple; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.type.AnnotationClassLoader; import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; - -import javax.lang.model.element.AnnotationMirror; - public class UnitsAnnotationClassLoader extends AnnotationClassLoader { public UnitsAnnotationClassLoader(BaseTypeChecker checker) { diff --git a/checker/src/main/java/org/checkerframework/checker/units/UnitsChecker.java b/checker/src/main/java/org/checkerframework/checker/units/UnitsChecker.java index 7a811e4cc42..4f40167b977 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/UnitsChecker.java +++ b/checker/src/main/java/org/checkerframework/checker/units/UnitsChecker.java @@ -1,11 +1,9 @@ package org.checkerframework.checker.units; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.common.subtyping.SubtypingChecker; - import java.util.SortedSet; - import javax.annotation.processing.SupportedOptions; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.common.subtyping.SubtypingChecker; /** * Units Checker main class. diff --git a/checker/src/main/java/org/checkerframework/checker/units/UnitsRelations.java b/checker/src/main/java/org/checkerframework/checker/units/UnitsRelations.java index 908784039f5..a761de516ff 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/UnitsRelations.java +++ b/checker/src/main/java/org/checkerframework/checker/units/UnitsRelations.java @@ -1,10 +1,9 @@ package org.checkerframework.checker.units; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.framework.type.AnnotatedTypeMirror; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.framework.type.AnnotatedTypeMirror; /** Interface that is used to specify the relation between units. */ public interface UnitsRelations { diff --git a/checker/src/main/java/org/checkerframework/checker/units/UnitsRelationsDefault.java b/checker/src/main/java/org/checkerframework/checker/units/UnitsRelationsDefault.java index 46b325bbfe2..2b480ee58e5 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/UnitsRelationsDefault.java +++ b/checker/src/main/java/org/checkerframework/checker/units/UnitsRelationsDefault.java @@ -1,5 +1,8 @@ package org.checkerframework.checker.units; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.util.Elements; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.units.qual.Prefix; import org.checkerframework.checker.units.qual.h; @@ -13,10 +16,6 @@ import org.checkerframework.checker.units.qual.s; import org.checkerframework.framework.type.AnnotatedTypeMirror; -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.util.Elements; - /** * Default relations between SI units. * diff --git a/checker/src/main/java/org/checkerframework/checker/units/UnitsRelationsTools.java b/checker/src/main/java/org/checkerframework/checker/units/UnitsRelationsTools.java index 00c04f101d3..f5e74986ede 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/UnitsRelationsTools.java +++ b/checker/src/main/java/org/checkerframework/checker/units/UnitsRelationsTools.java @@ -1,21 +1,19 @@ package org.checkerframework.checker.units; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.units.qual.Prefix; -import org.checkerframework.checker.units.qual.UnknownUnits; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.AnnotationUtils; - import java.lang.annotation.Annotation; import java.util.Map; import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.AnnotationValue; import javax.lang.model.element.ExecutableElement; import javax.lang.model.util.Elements; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.units.qual.Prefix; +import org.checkerframework.checker.units.qual.UnknownUnits; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.AnnotationUtils; /** * A helper class for UnitsRelations, providing numerous methods which help process Annotations and diff --git a/checker/src/main/java/org/checkerframework/checker/units/UnitsVisitor.java b/checker/src/main/java/org/checkerframework/checker/units/UnitsVisitor.java index a166bc0dc4c..bb84912aae1 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/UnitsVisitor.java +++ b/checker/src/main/java/org/checkerframework/checker/units/UnitsVisitor.java @@ -3,7 +3,6 @@ import com.sun.source.tree.CompoundAssignmentTree; import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.Tree.Kind; - import org.checkerframework.checker.units.qual.UnknownUnits; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/A.java b/checker/src/main/java/org/checkerframework/checker/units/qual/A.java index de91234f103..270ad8cd510 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/A.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/A.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Ampere. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Acceleration.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Acceleration.java index 52c7c72de28..fcd64b667de 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Acceleration.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Acceleration.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of acceleration. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Angle.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Angle.java index 71c9faf2bfc..bc764db07ad 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Angle.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Angle.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of measure for angles. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Area.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Area.java index 701248e0a8d..14dcf9388d2 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Area.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Area.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of areas. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/C.java b/checker/src/main/java/org/checkerframework/checker/units/qual/C.java index 86bd63c9bf2..bdda8f0e55d 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/C.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/C.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Degree Centigrade (Celsius). diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Current.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Current.java index a061c0c47bf..fc49e8c06e8 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Current.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Current.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Electric current. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/K.java b/checker/src/main/java/org/checkerframework/checker/units/qual/K.java index 1c0f8be3473..0a20c37766e 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/K.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/K.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Kelvin (unit of temperature). diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Length.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Length.java index 201a5335b87..994acf2651b 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Length.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Length.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of length. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Luminance.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Luminance.java index 5ec3a4a6dba..0d7dd66d366 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Luminance.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Luminance.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of luminance. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Mass.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Mass.java index 3badbaab126..b0337b2a90c 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Mass.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Mass.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of mass. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/MixedUnits.java b/checker/src/main/java/org/checkerframework/checker/units/qual/MixedUnits.java index e8f5993067a..08dcc379015 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/MixedUnits.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/MixedUnits.java @@ -1,11 +1,10 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * MixedUnits is the result of multiplying or dividing units, where no more specific unit is known diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/PolyUnit.java b/checker/src/main/java/org/checkerframework/checker/units/qual/PolyUnit.java index 9ec7269c08c..717616ec89e 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/PolyUnit.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/PolyUnit.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the units-of-measure type system implemented by the Units Checker. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Speed.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Speed.java index 088cd46b8ad..94fe348e037 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Speed.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Speed.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of speed. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Substance.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Substance.java index 799b25516df..214f981fefc 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Substance.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Substance.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of substance, such as mole (@{@link mol}). diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Temperature.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Temperature.java index 87d8f99fa1e..e251f8c2179 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Temperature.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Temperature.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of temperature. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/Time.java b/checker/src/main/java/org/checkerframework/checker/units/qual/Time.java index a3e09a7dff6..ecf7b9128d4 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/Time.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/Time.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Units of time. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/UnitsBottom.java b/checker/src/main/java/org/checkerframework/checker/units/qual/UnitsBottom.java index 72a10f6b0c6..8e1f45413ec 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/UnitsBottom.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/UnitsBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Units type system. Programmers should rarely write this type. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/UnknownUnits.java b/checker/src/main/java/org/checkerframework/checker/units/qual/UnknownUnits.java index 968115b2d30..70d98c07bc9 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/UnknownUnits.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/UnknownUnits.java @@ -1,14 +1,13 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * UnknownUnits is the top type of the type hierarchy. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/cd.java b/checker/src/main/java/org/checkerframework/checker/units/qual/cd.java index 91bc988a4cc..bf17fdb0e00 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/cd.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/cd.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Candela (unit of luminance). diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/degrees.java b/checker/src/main/java/org/checkerframework/checker/units/qual/degrees.java index 55bccafee67..a4d7ae62b67 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/degrees.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/degrees.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Degrees. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/g.java b/checker/src/main/java/org/checkerframework/checker/units/qual/g.java index 711f7439497..2b7f08c4057 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/g.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/g.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Gram. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/h.java b/checker/src/main/java/org/checkerframework/checker/units/qual/h.java index 9260815e0cf..6a568a9fd5a 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/h.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/h.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Hour. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/kg.java b/checker/src/main/java/org/checkerframework/checker/units/qual/kg.java index ab2160812ee..714cdfb2972 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/kg.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/kg.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Kilogram. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/km.java b/checker/src/main/java/org/checkerframework/checker/units/qual/km.java index 5f200d1f553..c2cb32d87dd 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/km.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/km.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Kilometer. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/km2.java b/checker/src/main/java/org/checkerframework/checker/units/qual/km2.java index 2e026b26ce0..590d0fe2584 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/km2.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/km2.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Square kilometer. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/kmPERh.java b/checker/src/main/java/org/checkerframework/checker/units/qual/kmPERh.java index 4fd6e24ec2e..28abf4bd1c0 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/kmPERh.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/kmPERh.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Kilometer per hour. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/m.java b/checker/src/main/java/org/checkerframework/checker/units/qual/m.java index 688f365dfd0..c3b94628ed7 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/m.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/m.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Meter. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/m2.java b/checker/src/main/java/org/checkerframework/checker/units/qual/m2.java index eb33c261ce7..4f7c29fe76c 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/m2.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/m2.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Square meter. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/mPERs.java b/checker/src/main/java/org/checkerframework/checker/units/qual/mPERs.java index 9c2c18dded5..ab97dfb9465 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/mPERs.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/mPERs.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Meter per second. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/mPERs2.java b/checker/src/main/java/org/checkerframework/checker/units/qual/mPERs2.java index 42cf3bba135..0af7169340f 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/mPERs2.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/mPERs2.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Meter per second squared. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/min.java b/checker/src/main/java/org/checkerframework/checker/units/qual/min.java index f1fa0c3e229..b729aa02c23 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/min.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/min.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Minute. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/mm.java b/checker/src/main/java/org/checkerframework/checker/units/qual/mm.java index 86f55d88976..dff99618b66 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/mm.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/mm.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Millimeter. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/mm2.java b/checker/src/main/java/org/checkerframework/checker/units/qual/mm2.java index f51200b7459..2e5569887cb 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/mm2.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/mm2.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Square millimeter. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/mol.java b/checker/src/main/java/org/checkerframework/checker/units/qual/mol.java index 06870b3b7d5..b02a1441e30 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/mol.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/mol.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Mole (unit of {@link Substance}). diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/radians.java b/checker/src/main/java/org/checkerframework/checker/units/qual/radians.java index 4af13288755..9cc186db201 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/radians.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/radians.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Radians. diff --git a/checker/src/main/java/org/checkerframework/checker/units/qual/s.java b/checker/src/main/java/org/checkerframework/checker/units/qual/s.java index bda43dda3ba..ed5d5234f9c 100644 --- a/checker/src/main/java/org/checkerframework/checker/units/qual/s.java +++ b/checker/src/main/java/org/checkerframework/checker/units/qual/s.java @@ -1,12 +1,11 @@ package org.checkerframework.checker.units.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * A second (1/60 of a minute). diff --git a/checker/src/test/java/testlib/NestedAggregateChecker.java b/checker/src/test/java/testlib/NestedAggregateChecker.java index a4eaaf9ded9..39eb6724420 100644 --- a/checker/src/test/java/testlib/NestedAggregateChecker.java +++ b/checker/src/test/java/testlib/NestedAggregateChecker.java @@ -3,6 +3,8 @@ // Test case for Issue 343 // https://github.com/typetools/checker-framework/issues/343 +import java.util.ArrayList; +import java.util.Collection; import org.checkerframework.checker.fenum.FenumChecker; import org.checkerframework.checker.i18n.I18nChecker; import org.checkerframework.checker.nullness.NullnessChecker; @@ -10,9 +12,6 @@ import org.checkerframework.framework.source.AggregateChecker; import org.checkerframework.framework.source.SourceChecker; -import java.util.ArrayList; -import java.util.Collection; - public class NestedAggregateChecker extends AggregateChecker { @Override protected Collection> getSupportedCheckers() { diff --git a/checker/src/test/java/testlib/lubglb/FormatterLubGlbChecker.java b/checker/src/test/java/testlib/lubglb/FormatterLubGlbChecker.java index f9d4d1b63b6..fe2d6910237 100644 --- a/checker/src/test/java/testlib/lubglb/FormatterLubGlbChecker.java +++ b/checker/src/test/java/testlib/lubglb/FormatterLubGlbChecker.java @@ -4,6 +4,12 @@ // https://github.com/typetools/checker-framework/issues/691 // https://github.com/typetools/checker-framework/issues/756 +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.util.Elements; import org.checkerframework.checker.formatter.FormatterAnnotatedTypeFactory; import org.checkerframework.checker.formatter.FormatterChecker; import org.checkerframework.checker.formatter.FormatterTreeUtil; @@ -19,14 +25,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.util.Elements; - /** * This class tests the implementation of GLB computation in the Formatter Checker, but it does not * test for the crash described in issue 691. That is done by tests/all-systems/Issue691.java. It diff --git a/checker/src/test/java/testlib/lubglb/I18nFormatterLubGlbChecker.java b/checker/src/test/java/testlib/lubglb/I18nFormatterLubGlbChecker.java index f27d25b6251..2fc30a2a511 100644 --- a/checker/src/test/java/testlib/lubglb/I18nFormatterLubGlbChecker.java +++ b/checker/src/test/java/testlib/lubglb/I18nFormatterLubGlbChecker.java @@ -4,6 +4,12 @@ // https://github.com/typetools/checker-framework/issues/723 // https://github.com/typetools/checker-framework/issues/756 +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.util.Elements; import org.checkerframework.checker.i18nformatter.I18nFormatterAnnotatedTypeFactory; import org.checkerframework.checker.i18nformatter.I18nFormatterChecker; import org.checkerframework.checker.i18nformatter.I18nFormatterTreeUtil; @@ -20,14 +26,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.util.Elements; - /** * This class tests the implementation of GLB computation in the I18n Format String Checker (see * issue 723), but it does not test for the crash that occurs if I18nFormatterAnnotatedTypeFactory diff --git a/checker/src/test/java/tests/CompilerMessagesTest.java b/checker/src/test/java/tests/CompilerMessagesTest.java index 062595dd3d8..1fb165936e9 100644 --- a/checker/src/test/java/tests/CompilerMessagesTest.java +++ b/checker/src/test/java/tests/CompilerMessagesTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Compiler Messages Checker. Depends on the compiler.properties file. */ public class CompilerMessagesTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/FenumSwingTest.java b/checker/src/test/java/tests/FenumSwingTest.java index d5595e9fbc6..4f9caa75d82 100644 --- a/checker/src/test/java/tests/FenumSwingTest.java +++ b/checker/src/test/java/tests/FenumSwingTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class FenumSwingTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/FenumTest.java b/checker/src/test/java/tests/FenumTest.java index f506ccb2f70..c8f6be5e1ef 100644 --- a/checker/src/test/java/tests/FenumTest.java +++ b/checker/src/test/java/tests/FenumTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class FenumTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/FormatterLubGlbCheckerTest.java b/checker/src/test/java/tests/FormatterLubGlbCheckerTest.java index e5c112a2ee5..e370ee837a8 100644 --- a/checker/src/test/java/tests/FormatterLubGlbCheckerTest.java +++ b/checker/src/test/java/tests/FormatterLubGlbCheckerTest.java @@ -4,14 +4,12 @@ // https://github.com/typetools/checker-framework/issues/691 // This exists to just run the FormatterLubGlbChecker +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.lubglb.FormatterLubGlbChecker; -import java.io.File; -import java.util.List; - public class FormatterLubGlbCheckerTest extends CheckerFrameworkPerDirectoryTest { /** diff --git a/checker/src/test/java/tests/FormatterTest.java b/checker/src/test/java/tests/FormatterTest.java index 49ca57982fb..ae7b79576ed 100644 --- a/checker/src/test/java/tests/FormatterTest.java +++ b/checker/src/test/java/tests/FormatterTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class FormatterTest extends CheckerFrameworkPerDirectoryTest { /** diff --git a/checker/src/test/java/tests/FormatterUncheckedDefaultsTest.java b/checker/src/test/java/tests/FormatterUncheckedDefaultsTest.java index fad9827c3d1..d0ecf7bc571 100644 --- a/checker/src/test/java/tests/FormatterUncheckedDefaultsTest.java +++ b/checker/src/test/java/tests/FormatterUncheckedDefaultsTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class FormatterUncheckedDefaultsTest extends CheckerFrameworkPerDirectoryTest { /** diff --git a/checker/src/test/java/tests/GuiEffectTest.java b/checker/src/test/java/tests/GuiEffectTest.java index 1fda99958b2..21a5ef5f378 100644 --- a/checker/src/test/java/tests/GuiEffectTest.java +++ b/checker/src/test/java/tests/GuiEffectTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class GuiEffectTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/I18nFormatterLubGlbCheckerTest.java b/checker/src/test/java/tests/I18nFormatterLubGlbCheckerTest.java index 9143b74b84a..ea2697f404a 100644 --- a/checker/src/test/java/tests/I18nFormatterLubGlbCheckerTest.java +++ b/checker/src/test/java/tests/I18nFormatterLubGlbCheckerTest.java @@ -4,14 +4,12 @@ // https://github.com/typetools/checker-framework/issues/723 // This exists to just run the I18nFormatterLubGlbChecker +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.lubglb.I18nFormatterLubGlbChecker; -import java.io.File; -import java.util.List; - public class I18nFormatterLubGlbCheckerTest extends CheckerFrameworkPerDirectoryTest { /** diff --git a/checker/src/test/java/tests/I18nFormatterTest.java b/checker/src/test/java/tests/I18nFormatterTest.java index 6c77644352a..9b6e450760c 100644 --- a/checker/src/test/java/tests/I18nFormatterTest.java +++ b/checker/src/test/java/tests/I18nFormatterTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class I18nFormatterTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/I18nFormatterUncheckedDefaultsTest.java b/checker/src/test/java/tests/I18nFormatterUncheckedDefaultsTest.java index f3ce4945d74..3ea1d6ee505 100644 --- a/checker/src/test/java/tests/I18nFormatterUncheckedDefaultsTest.java +++ b/checker/src/test/java/tests/I18nFormatterUncheckedDefaultsTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class I18nFormatterUncheckedDefaultsTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/I18nTest.java b/checker/src/test/java/tests/I18nTest.java index c1230da803f..83131990dde 100644 --- a/checker/src/test/java/tests/I18nTest.java +++ b/checker/src/test/java/tests/I18nTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class I18nTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/I18nUncheckedDefaultsTest.java b/checker/src/test/java/tests/I18nUncheckedDefaultsTest.java index afd2030d117..94cb6c6e301 100644 --- a/checker/src/test/java/tests/I18nUncheckedDefaultsTest.java +++ b/checker/src/test/java/tests/I18nUncheckedDefaultsTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class I18nUncheckedDefaultsTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/IndexTest.java b/checker/src/test/java/tests/IndexTest.java index 9290ca455e2..a48600c583d 100644 --- a/checker/src/test/java/tests/IndexTest.java +++ b/checker/src/test/java/tests/IndexTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Index Checker. */ public class IndexTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/InterningTest.java b/checker/src/test/java/tests/InterningTest.java index b554733f772..e3580b47070 100644 --- a/checker/src/test/java/tests/InterningTest.java +++ b/checker/src/test/java/tests/InterningTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Interning Checker, which tests the Interned annotation. */ public class InterningTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/LockSafeDefaultsTest.java b/checker/src/test/java/tests/LockSafeDefaultsTest.java index 33dc1946230..adfe10a91e7 100644 --- a/checker/src/test/java/tests/LockSafeDefaultsTest.java +++ b/checker/src/test/java/tests/LockSafeDefaultsTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Lock checker when using safe defaults for unchecked source code. */ public class LockSafeDefaultsTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/LockTest.java b/checker/src/test/java/tests/LockTest.java index b15381a7196..ca1ff35f9c1 100644 --- a/checker/src/test/java/tests/LockTest.java +++ b/checker/src/test/java/tests/LockTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class LockTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NestedAggregateCheckerTest.java b/checker/src/test/java/tests/NestedAggregateCheckerTest.java index c6926f1796d..dd1305aff4c 100644 --- a/checker/src/test/java/tests/NestedAggregateCheckerTest.java +++ b/checker/src/test/java/tests/NestedAggregateCheckerTest.java @@ -4,14 +4,12 @@ // https://github.com/typetools/checker-framework/issues/343 // This exists to just run the NestedAggregateChecker +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.NestedAggregateChecker; -import java.io.File; -import java.util.List; - public class NestedAggregateCheckerTest extends CheckerFrameworkPerDirectoryTest { /** diff --git a/checker/src/test/java/tests/NullnessAssertsTest.java b/checker/src/test/java/tests/NullnessAssertsTest.java index e247b38560b..82945629b65 100644 --- a/checker/src/test/java/tests/NullnessAssertsTest.java +++ b/checker/src/test/java/tests/NullnessAssertsTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.checker.nullness.NullnessChecker; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** JUnit tests for the Nullness checker. */ public class NullnessAssertsTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessAssumeAssertionsAreDisabledTest.java b/checker/src/test/java/tests/NullnessAssumeAssertionsAreDisabledTest.java index 00de7545332..90f542f35ab 100644 --- a/checker/src/test/java/tests/NullnessAssumeAssertionsAreDisabledTest.java +++ b/checker/src/test/java/tests/NullnessAssumeAssertionsAreDisabledTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness Checker. */ public class NullnessAssumeAssertionsAreDisabledTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessCheckCastElementTypeTest.java b/checker/src/test/java/tests/NullnessCheckCastElementTypeTest.java index 89fe02214b3..21ded74cd35 100644 --- a/checker/src/test/java/tests/NullnessCheckCastElementTypeTest.java +++ b/checker/src/test/java/tests/NullnessCheckCastElementTypeTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness checker when checkCastElementType is used. */ public class NullnessCheckCastElementTypeTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessConcurrentTest.java b/checker/src/test/java/tests/NullnessConcurrentTest.java index 639111802a8..414fe2f2597 100644 --- a/checker/src/test/java/tests/NullnessConcurrentTest.java +++ b/checker/src/test/java/tests/NullnessConcurrentTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness checker when running with concurrent semantics. */ public class NullnessConcurrentTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessFbcJavacErrorsTest.java b/checker/src/test/java/tests/NullnessFbcJavacErrorsTest.java index 760562653d8..2fb6aa78a18 100644 --- a/checker/src/test/java/tests/NullnessFbcJavacErrorsTest.java +++ b/checker/src/test/java/tests/NullnessFbcJavacErrorsTest.java @@ -1,11 +1,10 @@ package tests; +import java.io.File; import org.checkerframework.checker.nullness.NullnessChecker; import org.checkerframework.framework.test.CheckerFrameworkPerFileTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; - /** JUnit tests for the Nullness checker that issue javac errors. */ public class NullnessFbcJavacErrorsTest extends CheckerFrameworkPerFileTest { diff --git a/checker/src/test/java/tests/NullnessFbcTest.java b/checker/src/test/java/tests/NullnessFbcTest.java index cff2022f243..fa2e6f7427e 100644 --- a/checker/src/test/java/tests/NullnessFbcTest.java +++ b/checker/src/test/java/tests/NullnessFbcTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.checker.nullness.NullnessChecker; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** JUnit tests for the Nullness checker. */ public class NullnessFbcTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessGenericWildcardTest.java b/checker/src/test/java/tests/NullnessGenericWildcardTest.java index a8a4bb5037a..63d5e51a957 100644 --- a/checker/src/test/java/tests/NullnessGenericWildcardTest.java +++ b/checker/src/test/java/tests/NullnessGenericWildcardTest.java @@ -1,13 +1,12 @@ package tests; -import org.checkerframework.framework.test.*; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.Arrays; import java.util.Collections; import java.util.List; +import org.checkerframework.framework.test.*; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness checker for issue #511. */ public class NullnessGenericWildcardTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessInvariantArraysTest.java b/checker/src/test/java/tests/NullnessInvariantArraysTest.java index 397bd20301e..767a3a0078e 100644 --- a/checker/src/test/java/tests/NullnessInvariantArraysTest.java +++ b/checker/src/test/java/tests/NullnessInvariantArraysTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness checker when array subtyping is invariant. */ public class NullnessInvariantArraysTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessJavadocTest.java b/checker/src/test/java/tests/NullnessJavadocTest.java index a6a9abab17c..b1b0ae9a6d1 100644 --- a/checker/src/test/java/tests/NullnessJavadocTest.java +++ b/checker/src/test/java/tests/NullnessJavadocTest.java @@ -1,12 +1,11 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.checkerframework.javacutil.SystemUtil; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.Collections; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.checkerframework.javacutil.SystemUtil; +import org.junit.runners.Parameterized.Parameters; /** * JUnit tests for the Nullness Checker -- testing type-checking of code that uses Javadoc classes. diff --git a/checker/src/test/java/tests/NullnessPermitClearPropertyTest.java b/checker/src/test/java/tests/NullnessPermitClearPropertyTest.java index ff5afb5cbb9..5cb85b2b031 100644 --- a/checker/src/test/java/tests/NullnessPermitClearPropertyTest.java +++ b/checker/src/test/java/tests/NullnessPermitClearPropertyTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** * JUnit tests for the Nullness Checker -- testing {@code -Alint=permitClearProperty} command-line diff --git a/checker/src/test/java/tests/NullnessReflectionTest.java b/checker/src/test/java/tests/NullnessReflectionTest.java index dc77fcb9fbb..1a4a8583e2f 100644 --- a/checker/src/test/java/tests/NullnessReflectionTest.java +++ b/checker/src/test/java/tests/NullnessReflectionTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness checker when reflection resolution is enabled. */ public class NullnessReflectionTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessSafeDefaultsBytecodeTest.java b/checker/src/test/java/tests/NullnessSafeDefaultsBytecodeTest.java index 5e152e74017..cda4212c92a 100644 --- a/checker/src/test/java/tests/NullnessSafeDefaultsBytecodeTest.java +++ b/checker/src/test/java/tests/NullnessSafeDefaultsBytecodeTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness checker when using safe defaults for unannotated bytecode. */ public class NullnessSafeDefaultsBytecodeTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessSafeDefaultsSourceCodeTest.java b/checker/src/test/java/tests/NullnessSafeDefaultsSourceCodeTest.java index d15868ec0ec..813a4443230 100644 --- a/checker/src/test/java/tests/NullnessSafeDefaultsSourceCodeTest.java +++ b/checker/src/test/java/tests/NullnessSafeDefaultsSourceCodeTest.java @@ -1,13 +1,12 @@ package tests; -import org.checkerframework.framework.test.*; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.Arrays; import java.util.Collections; import java.util.List; +import org.checkerframework.framework.test.*; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness checker when using safe defaults for unannotated source code. */ public class NullnessSafeDefaultsSourceCodeTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessSkipDefsTest.java b/checker/src/test/java/tests/NullnessSkipDefsTest.java index fa2aa71a174..ebc4725124c 100644 --- a/checker/src/test/java/tests/NullnessSkipDefsTest.java +++ b/checker/src/test/java/tests/NullnessSkipDefsTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness Checker -- testing {@code -AskipDefs} command-line argument. */ public class NullnessSkipDefsTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessSkipUsesTest.java b/checker/src/test/java/tests/NullnessSkipUsesTest.java index 2a2ff7944ef..594a7eabd1a 100644 --- a/checker/src/test/java/tests/NullnessSkipUsesTest.java +++ b/checker/src/test/java/tests/NullnessSkipUsesTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Nullness Checker -- testing {@code -AskipUses} command-line argument. */ public class NullnessSkipUsesTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessStubfileTest.java b/checker/src/test/java/tests/NullnessStubfileTest.java index c49204e0500..33cc78353a3 100644 --- a/checker/src/test/java/tests/NullnessStubfileTest.java +++ b/checker/src/test/java/tests/NullnessStubfileTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class NullnessStubfileTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/NullnessTempTest.java b/checker/src/test/java/tests/NullnessTempTest.java index acc1ca3c650..5922964fc48 100644 --- a/checker/src/test/java/tests/NullnessTempTest.java +++ b/checker/src/test/java/tests/NullnessTempTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.checker.nullness.NullnessChecker; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** JUnit tests for the Nullness Checker. */ public class NullnessTempTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/OptionalTest.java b/checker/src/test/java/tests/OptionalTest.java index 002512c7c12..a20637a85dd 100644 --- a/checker/src/test/java/tests/OptionalTest.java +++ b/checker/src/test/java/tests/OptionalTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Optional Checker, which has the {@code @Present} annotation. */ public class OptionalTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/ParseAllJdkTest.java b/checker/src/test/java/tests/ParseAllJdkTest.java index a1632550414..8f753d740d0 100644 --- a/checker/src/test/java/tests/ParseAllJdkTest.java +++ b/checker/src/test/java/tests/ParseAllJdkTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.checker.nullness.NullnessChecker; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** Tests -AparseAllJdk option. */ public class ParseAllJdkTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/RegexTest.java b/checker/src/test/java/tests/RegexTest.java index fcf48b75e14..d7f2782b3bc 100644 --- a/checker/src/test/java/tests/RegexTest.java +++ b/checker/src/test/java/tests/RegexTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class RegexTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/SignatureTest.java b/checker/src/test/java/tests/SignatureTest.java index 95dc7d01606..bb20dead484 100644 --- a/checker/src/test/java/tests/SignatureTest.java +++ b/checker/src/test/java/tests/SignatureTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class SignatureTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/SignednessTest.java b/checker/src/test/java/tests/SignednessTest.java index ef332cc944d..93f2666221e 100644 --- a/checker/src/test/java/tests/SignednessTest.java +++ b/checker/src/test/java/tests/SignednessTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class SignednessTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/SignednessUncheckedDefaultsTest.java b/checker/src/test/java/tests/SignednessUncheckedDefaultsTest.java index ec18a48df31..4a1b6f1dac3 100644 --- a/checker/src/test/java/tests/SignednessUncheckedDefaultsTest.java +++ b/checker/src/test/java/tests/SignednessUncheckedDefaultsTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class SignednessUncheckedDefaultsTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/StubparserTest.java b/checker/src/test/java/tests/StubparserTest.java index acd0a7f036e..7ec03ee0aaf 100644 --- a/checker/src/test/java/tests/StubparserTest.java +++ b/checker/src/test/java/tests/StubparserTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized; public class StubparserTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/TaintingTest.java b/checker/src/test/java/tests/TaintingTest.java index b209487bc17..c137bb05373 100644 --- a/checker/src/test/java/tests/TaintingTest.java +++ b/checker/src/test/java/tests/TaintingTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.checker.tainting.TaintingChecker; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - public class TaintingTest extends CheckerFrameworkPerDirectoryTest { /** diff --git a/checker/src/test/java/tests/UnitsTest.java b/checker/src/test/java/tests/UnitsTest.java index ddd619f9bc9..9df2723e93f 100644 --- a/checker/src/test/java/tests/UnitsTest.java +++ b/checker/src/test/java/tests/UnitsTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class UnitsTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/test/java/tests/ValueIndexInteractionTest.java b/checker/src/test/java/tests/ValueIndexInteractionTest.java index a65bdc27c8b..84c41c37a9d 100644 --- a/checker/src/test/java/tests/ValueIndexInteractionTest.java +++ b/checker/src/test/java/tests/ValueIndexInteractionTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** JUnit tests for the Value Checker's interactions with the Index Checker. */ public class ValueIndexInteractionTest extends CheckerFrameworkPerDirectoryTest { diff --git a/checker/src/testannotations/java/javax/annotation/Nonnull.java b/checker/src/testannotations/java/javax/annotation/Nonnull.java index a6f2e3bc127..1b70811ca99 100644 --- a/checker/src/testannotations/java/javax/annotation/Nonnull.java +++ b/checker/src/testannotations/java/javax/annotation/Nonnull.java @@ -3,7 +3,6 @@ import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; - import javax.annotation.meta.When; @Documented diff --git a/checker/src/testannotations/java/javax/annotation/concurrent/GuardedBy.java b/checker/src/testannotations/java/javax/annotation/concurrent/GuardedBy.java index d52230dcf1e..26e5143bb44 100644 --- a/checker/src/testannotations/java/javax/annotation/concurrent/GuardedBy.java +++ b/checker/src/testannotations/java/javax/annotation/concurrent/GuardedBy.java @@ -1,13 +1,12 @@ package javax.annotation.concurrent; -import org.checkerframework.checker.lock.qual.LockHeld; -import org.checkerframework.framework.qual.PreconditionAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.checker.lock.qual.LockHeld; +import org.checkerframework.framework.qual.PreconditionAnnotation; // The JCIP annotation can be used on a field (in which case it corresponds // to the Lock Checker's @GuardedBy annotation) or on a method (in which case diff --git a/checker/src/testannotations/java/net/jcip/annotations/GuardedBy.java b/checker/src/testannotations/java/net/jcip/annotations/GuardedBy.java index 3bbd0fe77b6..27e097d0007 100644 --- a/checker/src/testannotations/java/net/jcip/annotations/GuardedBy.java +++ b/checker/src/testannotations/java/net/jcip/annotations/GuardedBy.java @@ -3,14 +3,13 @@ package net.jcip.annotations; -import org.checkerframework.checker.lock.qual.LockHeld; -import org.checkerframework.framework.qual.PreconditionAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.checker.lock.qual.LockHeld; +import org.checkerframework.framework.qual.PreconditionAnnotation; // The JCIP annotation can be used on a field (in which case it corresponds // to the Lock Checker's @GuardedBy annotation) or on a method (in which case diff --git a/checker/tests/compilermsg/Diamonds.java b/checker/tests/compilermsg/Diamonds.java index 836dd667d70..5d4df02f76f 100644 --- a/checker/tests/compilermsg/Diamonds.java +++ b/checker/tests/compilermsg/Diamonds.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.compilermsgs.qual.UnknownCompilerMessageKey; - import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; +import org.checkerframework.checker.compilermsgs.qual.UnknownCompilerMessageKey; public class Diamonds { diff --git a/checker/tests/fenum/UpperBoundsInByteCode.java b/checker/tests/fenum/UpperBoundsInByteCode.java index 28c4eff66c8..814e34591ea 100644 --- a/checker/tests/fenum/UpperBoundsInByteCode.java +++ b/checker/tests/fenum/UpperBoundsInByteCode.java @@ -1,5 +1,4 @@ import org.checkerframework.checker.fenum.qual.Fenum; - import testlib.lib.UncheckedByteCode; public class UpperBoundsInByteCode { diff --git a/checker/tests/fenumswing/IdentityArrayList.java b/checker/tests/fenumswing/IdentityArrayList.java index 9243436bd93..4212f8c3777 100644 --- a/checker/tests/fenumswing/IdentityArrayList.java +++ b/checker/tests/fenumswing/IdentityArrayList.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.fenum.qual.FenumTop; - import java.util.Arrays; +import org.checkerframework.checker.fenum.qual.FenumTop; /* * This test case violates an assertion in the compiler. diff --git a/checker/tests/formatter/ConversionBasic.java b/checker/tests/formatter/ConversionBasic.java index d1b4413052f..cf0d9d96398 100644 --- a/checker/tests/formatter/ConversionBasic.java +++ b/checker/tests/formatter/ConversionBasic.java @@ -1,12 +1,11 @@ -import org.checkerframework.checker.formatter.qual.ConversionCategory; -import org.checkerframework.checker.formatter.qual.Format; - import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Formatter; +import org.checkerframework.checker.formatter.qual.ConversionCategory; +import org.checkerframework.checker.formatter.qual.Format; public class ConversionBasic { public static void main(String... p) { diff --git a/checker/tests/formatter/ConversionNull2.java b/checker/tests/formatter/ConversionNull2.java index c50003f7fa5..064725bc8f6 100644 --- a/checker/tests/formatter/ConversionNull2.java +++ b/checker/tests/formatter/ConversionNull2.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.formatter.qual.FormatMethod; - import java.util.Formatter; +import org.checkerframework.checker.formatter.qual.FormatMethod; public class ConversionNull2 { void foo(Formatter f1, MyFormatter f2) { diff --git a/checker/tests/formatter/FlowFormatter.java b/checker/tests/formatter/FlowFormatter.java index cc6ad68a57e..ba28821b72f 100644 --- a/checker/tests/formatter/FlowFormatter.java +++ b/checker/tests/formatter/FlowFormatter.java @@ -1,11 +1,10 @@ +import java.util.Date; +import java.util.Formatter; import org.checkerframework.checker.formatter.FormatUtil; import org.checkerframework.checker.formatter.qual.ConversionCategory; import org.checkerframework.checker.formatter.qual.Format; import org.junit.Assert; -import java.util.Date; -import java.util.Formatter; - public class FlowFormatter { public static String callUnqual(String u) { return u; diff --git a/checker/tests/formatter/FormatIndexing.java b/checker/tests/formatter/FormatIndexing.java index 34eb801d2d4..048a9f4d789 100644 --- a/checker/tests/formatter/FormatIndexing.java +++ b/checker/tests/formatter/FormatIndexing.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.formatter.qual.ConversionCategory; -import org.checkerframework.checker.formatter.qual.Format; - import java.util.Date; import java.util.Formatter; +import org.checkerframework.checker.formatter.qual.ConversionCategory; +import org.checkerframework.checker.formatter.qual.Format; public class FormatIndexing { public static void main(String... p) { diff --git a/checker/tests/formatter/FormatMethodAnnotation.java b/checker/tests/formatter/FormatMethodAnnotation.java index f8b674e4cea..6bf9eb8eca6 100644 --- a/checker/tests/formatter/FormatMethodAnnotation.java +++ b/checker/tests/formatter/FormatMethodAnnotation.java @@ -1,10 +1,9 @@ // Test case for Issue 1507: // https://github.com/typetools/checker-framework/issues/1507 -import org.checkerframework.checker.formatter.qual.FormatMethod; - import java.io.PrintStream; import java.util.Locale; +import org.checkerframework.checker.formatter.qual.FormatMethod; public class FormatMethodAnnotation { diff --git a/checker/tests/guieffect/AnonInnerDefaults.java b/checker/tests/guieffect/AnonInnerDefaults.java index 72a3bf87727..9a30c57a675 100644 --- a/checker/tests/guieffect/AnonInnerDefaults.java +++ b/checker/tests/guieffect/AnonInnerDefaults.java @@ -1,3 +1,4 @@ +import java.util.Random; import org.checkerframework.checker.guieffect.qual.PolyUI; import org.checkerframework.checker.guieffect.qual.PolyUIEffect; import org.checkerframework.checker.guieffect.qual.PolyUIType; @@ -6,8 +7,6 @@ import org.checkerframework.checker.guieffect.qual.UIEffect; import org.checkerframework.checker.guieffect.qual.UIType; -import java.util.Random; - public class AnonInnerDefaults { private static Random random; diff --git a/checker/tests/guieffect/MouseTest.java b/checker/tests/guieffect/MouseTest.java index 9e2b686e4ee..04417d51eda 100644 --- a/checker/tests/guieffect/MouseTest.java +++ b/checker/tests/guieffect/MouseTest.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.guieffect.qual.UIType; - import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import org.checkerframework.checker.guieffect.qual.UIType; // Test the stub file handling @UIType diff --git a/checker/tests/guieffect/TestProgram.java b/checker/tests/guieffect/TestProgram.java index 1604681260d..473acf00893 100644 --- a/checker/tests/guieffect/TestProgram.java +++ b/checker/tests/guieffect/TestProgram.java @@ -1,7 +1,6 @@ import org.checkerframework.checker.guieffect.qual.AlwaysSafe; import org.checkerframework.checker.guieffect.qual.UI; import org.checkerframework.checker.guieffect.qual.UIEffect; - import packagetests.SafeByDecl; import packagetests.UIByPackageDecl; diff --git a/checker/tests/guieffect/ThrowCatchTest.java b/checker/tests/guieffect/ThrowCatchTest.java index 31ee62a3b6c..44edb081f3f 100644 --- a/checker/tests/guieffect/ThrowCatchTest.java +++ b/checker/tests/guieffect/ThrowCatchTest.java @@ -1,9 +1,8 @@ +import java.util.List; import org.checkerframework.checker.guieffect.qual.AlwaysSafe; import org.checkerframework.checker.guieffect.qual.PolyUIType; import org.checkerframework.checker.guieffect.qual.UI; -import java.util.List; - class ThrowCatchTest { // Default type of List's type parameter is below @UI so these // fields are type.argument.incompatible diff --git a/checker/tests/i18n-formatter/HasFormat.java b/checker/tests/i18n-formatter/HasFormat.java index fe0e4f9bc40..0404462ccf3 100644 --- a/checker/tests/i18n-formatter/HasFormat.java +++ b/checker/tests/i18n-formatter/HasFormat.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.i18nformatter.I18nFormatUtil; -import org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory; - import java.text.MessageFormat; import java.util.Date; +import org.checkerframework.checker.i18nformatter.I18nFormatUtil; +import org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory; public class HasFormat { diff --git a/checker/tests/i18n-formatter/I18nFormatForTest.java b/checker/tests/i18n-formatter/I18nFormatForTest.java index e97c53214e0..56472a866d7 100644 --- a/checker/tests/i18n-formatter/I18nFormatForTest.java +++ b/checker/tests/i18n-formatter/I18nFormatForTest.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.i18nformatter.qual.I18nFormatFor; - import java.text.MessageFormat; import java.util.Date; +import org.checkerframework.checker.i18nformatter.qual.I18nFormatFor; public class I18nFormatForTest { diff --git a/checker/tests/i18n-formatter/IsFormat.java b/checker/tests/i18n-formatter/IsFormat.java index ab7af55b6bb..50aefe47bb6 100644 --- a/checker/tests/i18n-formatter/IsFormat.java +++ b/checker/tests/i18n-formatter/IsFormat.java @@ -1,8 +1,7 @@ +import java.text.MessageFormat; import org.checkerframework.checker.i18nformatter.I18nFormatUtil; import org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory; -import java.text.MessageFormat; - public class IsFormat { public static void test1(String cc) { if (!I18nFormatUtil.isFormat(cc)) { diff --git a/checker/tests/i18n/Issue2186.java b/checker/tests/i18n/Issue2186.java index 5e76d9c6a81..24052339da3 100644 --- a/checker/tests/i18n/Issue2186.java +++ b/checker/tests/i18n/Issue2186.java @@ -1,9 +1,8 @@ // Test case for issue #2186 // https://github.com/typetools/checker-framework/issues/2186 -import org.checkerframework.checker.i18n.qual.*; - import java.util.ArrayList; +import org.checkerframework.checker.i18n.qual.*; @LocalizableKey class Issue2186 { // :: error: (super.invocation.invalid) :: warning: (inconsistent.constructor.type) diff --git a/checker/tests/index/ArrayAsList.java b/checker/tests/index/ArrayAsList.java index 5b143003bff..6a85da32578 100644 --- a/checker/tests/index/ArrayAsList.java +++ b/checker/tests/index/ArrayAsList.java @@ -1,7 +1,6 @@ -import org.checkerframework.common.value.qual.MinLen; - import java.util.Arrays; import java.util.List; +import org.checkerframework.common.value.qual.MinLen; // @skip-test until we bring list support back diff --git a/checker/tests/index/ArraysSort.java b/checker/tests/index/ArraysSort.java index 32f07ba99ad..3dba567e27d 100644 --- a/checker/tests/index/ArraysSort.java +++ b/checker/tests/index/ArraysSort.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.MinLen; - import java.util.Arrays; +import org.checkerframework.common.value.qual.MinLen; class ArraysSort { diff --git a/checker/tests/index/BinarySearchTest.java b/checker/tests/index/BinarySearchTest.java index 267901e5b60..6a79d823d5a 100644 --- a/checker/tests/index/BinarySearchTest.java +++ b/checker/tests/index/BinarySearchTest.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.index.qual.*; - import java.util.Arrays; +import org.checkerframework.checker.index.qual.*; public class BinarySearchTest { diff --git a/checker/tests/index/BitSetLowerBound.java b/checker/tests/index/BitSetLowerBound.java index c08e56fc58a..e5178478fcf 100644 --- a/checker/tests/index/BitSetLowerBound.java +++ b/checker/tests/index/BitSetLowerBound.java @@ -1,9 +1,8 @@ // Test case for Issue 185: // https://github.com/typetools/kelloggm/issues/185 -import org.checkerframework.checker.index.qual.GTENegativeOne; - import java.util.BitSet; +import org.checkerframework.checker.index.qual.GTENegativeOne; public class BitSetLowerBound { diff --git a/checker/tests/index/CharSequenceTest.java b/checker/tests/index/CharSequenceTest.java index bb350ebe102..aae089efe2b 100644 --- a/checker/tests/index/CharSequenceTest.java +++ b/checker/tests/index/CharSequenceTest.java @@ -1,13 +1,12 @@ // Tests suport for index annotations applied to CharSequence and related indices. +import java.io.IOException; +import java.io.StringWriter; import org.checkerframework.checker.index.qual.IndexFor; import org.checkerframework.checker.index.qual.IndexOrHigh; import org.checkerframework.common.value.qual.MinLen; import org.checkerframework.common.value.qual.StringVal; -import java.io.IOException; -import java.io.StringWriter; - public class CharSequenceTest { // Tests that minlen is correctly applied to CharSequence assigned from String, but not // StringBuilder diff --git a/checker/tests/index/DaikonCrash.java b/checker/tests/index/DaikonCrash.java index 45bf79754ea..7ffd5e67f11 100644 --- a/checker/tests/index/DaikonCrash.java +++ b/checker/tests/index/DaikonCrash.java @@ -1,6 +1,5 @@ -import org.checkerframework.dataflow.qual.Pure; - import java.util.Arrays; +import org.checkerframework.dataflow.qual.Pure; public class DaikonCrash { void method(Object[] a1) { diff --git a/checker/tests/index/GenericAssignment.java b/checker/tests/index/GenericAssignment.java index bfb406b3d37..18ee0f152c2 100644 --- a/checker/tests/index/GenericAssignment.java +++ b/checker/tests/index/GenericAssignment.java @@ -1,10 +1,9 @@ +import java.util.List; import org.checkerframework.checker.index.qual.GTENegativeOne; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.index.qual.Positive; import org.checkerframework.common.value.qual.IntRange; -import java.util.List; - public class GenericAssignment { public void assignNonNegativeList(List<@NonNegative Integer> l) { List<@NonNegative Integer> i = l; // line 10 diff --git a/checker/tests/index/GuavaPrimitives.java b/checker/tests/index/GuavaPrimitives.java index 4f4e9c75755..5890b286df4 100644 --- a/checker/tests/index/GuavaPrimitives.java +++ b/checker/tests/index/GuavaPrimitives.java @@ -1,3 +1,6 @@ +import java.util.AbstractList; +import java.util.Collections; +import java.util.List; import org.checkerframework.checker.index.qual.HasSubsequence; import org.checkerframework.checker.index.qual.IndexFor; import org.checkerframework.checker.index.qual.IndexOrHigh; @@ -8,10 +11,6 @@ import org.checkerframework.checker.index.qual.Positive; import org.checkerframework.common.value.qual.MinLen; -import java.util.AbstractList; -import java.util.Collections; -import java.util.List; - /** * A simplified version of the Guava primitives classes (such as Bytes, Longs, Shorts, etc.) with * all expected warnings suppressed. diff --git a/checker/tests/index/Issue2493.java b/checker/tests/index/Issue2493.java index 4fd0234a804..bbd5abb74ec 100644 --- a/checker/tests/index/Issue2493.java +++ b/checker/tests/index/Issue2493.java @@ -4,7 +4,6 @@ class Issue2493 { public static void test(int a[], int @SameLen("#1") [] b) { - for (@IndexOrHigh("b") int i = 0; i < a.length; i++) - ; + for (@IndexOrHigh("b") int i = 0; i < a.length; i++) ; } } diff --git a/checker/tests/index/LTLengthOfPostcondition.java b/checker/tests/index/LTLengthOfPostcondition.java index b95fa109cb6..b89289ea8aa 100644 --- a/checker/tests/index/LTLengthOfPostcondition.java +++ b/checker/tests/index/LTLengthOfPostcondition.java @@ -1,10 +1,9 @@ +import java.util.Arrays; import org.checkerframework.checker.index.qual.EnsuresLTLengthOf; import org.checkerframework.checker.index.qual.EnsuresLTLengthOfIf; import org.checkerframework.checker.index.qual.LTEqLengthOf; import org.checkerframework.checker.index.qual.NonNegative; -import java.util.Arrays; - class LTLengthOfPostcondition { Object[] array; diff --git a/checker/tests/index/ListLowerBound.java b/checker/tests/index/ListLowerBound.java index fef7cfeacfc..92641e5f60c 100644 --- a/checker/tests/index/ListLowerBound.java +++ b/checker/tests/index/ListLowerBound.java @@ -1,9 +1,8 @@ // @skip-test until we bring list support back -import org.checkerframework.checker.index.qual.GTENegativeOne; -import org.checkerframework.checker.index.qual.NonNegative; - import java.util.List; import java.util.ListIterator; +import org.checkerframework.checker.index.qual.GTENegativeOne; +import org.checkerframework.checker.index.qual.NonNegative; public class ListLowerBound { diff --git a/checker/tests/index/ListSupportLBC.java b/checker/tests/index/ListSupportLBC.java index 072c431b849..666b742cac8 100644 --- a/checker/tests/index/ListSupportLBC.java +++ b/checker/tests/index/ListSupportLBC.java @@ -1,9 +1,8 @@ +import java.util.ArrayList; import org.checkerframework.checker.index.qual.GTENegativeOne; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.index.qual.Positive; -import java.util.ArrayList; - // @skip-test until we bring list support back class ListSupportLBC { diff --git a/checker/tests/index/ListSupportML.java b/checker/tests/index/ListSupportML.java index 7dbddda0e3f..83fc71428f7 100644 --- a/checker/tests/index/ListSupportML.java +++ b/checker/tests/index/ListSupportML.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.MinLen; - import java.util.ArrayList; +import org.checkerframework.common.value.qual.MinLen; // @skip-test until we bring list support back diff --git a/checker/tests/index/NonnegativeChar.java b/checker/tests/index/NonnegativeChar.java index e9b5459c5eb..86cbfbeb311 100644 --- a/checker/tests/index/NonnegativeChar.java +++ b/checker/tests/index/NonnegativeChar.java @@ -1,12 +1,10 @@ +import java.util.ArrayList; import org.checkerframework.checker.index.qual.LowerBoundBottom; import org.checkerframework.checker.index.qual.PolyLowerBound; -import java.util.ArrayList; - public class NonnegativeChar { void foreach(char[] array) { - for (char value : array) - ; // line 7 + for (char value : array) ; // line 7 } char constant() { diff --git a/checker/tests/index/ObjectClone.java b/checker/tests/index/ObjectClone.java index d6afbd5aae4..64656257a21 100644 --- a/checker/tests/index/ObjectClone.java +++ b/checker/tests/index/ObjectClone.java @@ -1,8 +1,7 @@ // Test case for issue 146: https://github.com/kelloggm/checker-framework/issues/146 -import org.checkerframework.checker.index.qual.*; - import java.util.Arrays; +import org.checkerframework.checker.index.qual.*; class ObjectClone { diff --git a/checker/tests/index/OffsetExample.java b/checker/tests/index/OffsetExample.java index 39481908a9a..4f01562f99a 100644 --- a/checker/tests/index/OffsetExample.java +++ b/checker/tests/index/OffsetExample.java @@ -1,9 +1,8 @@ +import java.util.List; import org.checkerframework.checker.index.qual.IndexFor; import org.checkerframework.checker.index.qual.IndexOrHigh; import org.checkerframework.common.value.qual.MinLen; -import java.util.List; - @SuppressWarnings("lowerbound") public class OffsetExample { void example1(int @MinLen(2) [] a) { diff --git a/checker/tests/index/PlumeFail.java b/checker/tests/index/PlumeFail.java index 1ae9cd296cb..eaa4ee8344d 100644 --- a/checker/tests/index/PlumeFail.java +++ b/checker/tests/index/PlumeFail.java @@ -1,9 +1,8 @@ // Test case affected by eisop Issue 22: // https://github.com/eisop/checker-framework/issues/22 -import org.checkerframework.common.value.qual.MinLen; - import java.util.Arrays; +import org.checkerframework.common.value.qual.MinLen; public class PlumeFail { void method() { diff --git a/checker/tests/index/RandomTest.java b/checker/tests/index/RandomTest.java index 7f7ce4871ff..5c485fb3be8 100644 --- a/checker/tests/index/RandomTest.java +++ b/checker/tests/index/RandomTest.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.index.qual.LTLengthOf; - import java.util.Random; +import org.checkerframework.checker.index.qual.LTLengthOf; public class RandomTest { void test() { diff --git a/checker/tests/index/RandomTestLBC.java b/checker/tests/index/RandomTestLBC.java index 6e57d4232ce..4d569c14808 100644 --- a/checker/tests/index/RandomTestLBC.java +++ b/checker/tests/index/RandomTestLBC.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.index.qual.NonNegative; - import java.util.Random; +import org.checkerframework.checker.index.qual.NonNegative; public class RandomTestLBC { void test() { diff --git a/checker/tests/index/ReflectArray.java b/checker/tests/index/ReflectArray.java index 3278172df7e..b3d25c9ad69 100644 --- a/checker/tests/index/ReflectArray.java +++ b/checker/tests/index/ReflectArray.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.MinLen; - import java.lang.reflect.Array; +import org.checkerframework.common.value.qual.MinLen; class ReflectArray { diff --git a/checker/tests/index/RegexMatcher.java b/checker/tests/index/RegexMatcher.java index edb32da71f2..87999ce5cf1 100644 --- a/checker/tests/index/RegexMatcher.java +++ b/checker/tests/index/RegexMatcher.java @@ -1,10 +1,9 @@ // Test case for Issue panacekcz#8: // https://github.com/panacekcz/checker-framework/issues/8 -import org.checkerframework.checker.index.qual.NonNegative; - import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.checkerframework.checker.index.qual.NonNegative; public class RegexMatcher { static void m(String p, String s) { diff --git a/checker/tests/index/SearchIndexTests.java b/checker/tests/index/SearchIndexTests.java index b8c44fd689e..bba7cff5df3 100644 --- a/checker/tests/index/SearchIndexTests.java +++ b/checker/tests/index/SearchIndexTests.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.index.qual.*; - import java.util.Arrays; +import org.checkerframework.checker.index.qual.*; class SearchIndexTests { public void test(short[] a, short instant) { diff --git a/checker/tests/index/Split.java b/checker/tests/index/Split.java index 161feb8de48..46d31b59140 100644 --- a/checker/tests/index/Split.java +++ b/checker/tests/index/Split.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.MinLen; - import java.util.regex.Pattern; +import org.checkerframework.common.value.qual.MinLen; public class Split { Pattern p = Pattern.compile(".*"); diff --git a/checker/tests/index/Stopwatch.java b/checker/tests/index/Stopwatch.java index 6fa60d89d8b..3ccb6f36a9f 100644 --- a/checker/tests/index/Stopwatch.java +++ b/checker/tests/index/Stopwatch.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.index.qual.IndexFor; - import java.text.DecimalFormat; +import org.checkerframework.checker.index.qual.IndexFor; public final class Stopwatch { private static final DecimalFormat[] timeFormat = { diff --git a/checker/tests/index/StringLength.java b/checker/tests/index/StringLength.java index dcc4140adb3..b4f491475cf 100644 --- a/checker/tests/index/StringLength.java +++ b/checker/tests/index/StringLength.java @@ -1,5 +1,6 @@ // Tests that String.length() is supported in the same situations as array length +import java.util.Random; import org.checkerframework.checker.index.qual.IndexFor; import org.checkerframework.checker.index.qual.IndexOrHigh; import org.checkerframework.checker.index.qual.LTLengthOf; @@ -8,8 +9,6 @@ import org.checkerframework.checker.index.qual.SameLen; import org.checkerframework.common.value.qual.MinLen; -import java.util.Random; - class StringLength { void testMinLenSubtractPositive(@MinLen(10) String s) { @Positive int i1 = s.length() - 9; diff --git a/checker/tests/index/ToArrayIndex.java b/checker/tests/index/ToArrayIndex.java index 343d4ba16a8..7fe98f428b2 100644 --- a/checker/tests/index/ToArrayIndex.java +++ b/checker/tests/index/ToArrayIndex.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.MinLen; - import java.util.ArrayList; +import org.checkerframework.common.value.qual.MinLen; // @skip-test until we bring list support back diff --git a/checker/tests/initialization/fbc/TryFinally2.java b/checker/tests/initialization/fbc/TryFinally2.java index ce57f1d75b1..1a6672e8e3e 100644 --- a/checker/tests/initialization/fbc/TryFinally2.java +++ b/checker/tests/initialization/fbc/TryFinally2.java @@ -1,9 +1,8 @@ // Test case for Issue 1500: // https://github.com/typetools/checker-framework/issues/1500 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.io.InputStream; +import org.checkerframework.checker.nullness.qual.Nullable; public class TryFinally2 { diff --git a/checker/tests/interning/Arrays.java b/checker/tests/interning/Arrays.java index 83fa107f30a..d5a97748221 100644 --- a/checker/tests/interning/Arrays.java +++ b/checker/tests/interning/Arrays.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.interning.qual.Interned; -import org.checkerframework.checker.interning.qual.PolyInterned; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.interning.qual.Interned; +import org.checkerframework.checker.interning.qual.PolyInterned; public class Arrays { diff --git a/checker/tests/interning/ClassDefaults.java b/checker/tests/interning/ClassDefaults.java index 2af651f5d4f..41d9a091ae7 100644 --- a/checker/tests/interning/ClassDefaults.java +++ b/checker/tests/interning/ClassDefaults.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.interning.qual.Interned; - import java.util.List; +import org.checkerframework.checker.interning.qual.Interned; /* * This test case excercises the interaction between class annotations diff --git a/checker/tests/interning/ComplexComparison.java b/checker/tests/interning/ComplexComparison.java index cc29f2b9e8e..bcf00221252 100644 --- a/checker/tests/interning/ComplexComparison.java +++ b/checker/tests/interning/ComplexComparison.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.interning.qual.Interned; - import java.util.Comparator; +import org.checkerframework.checker.interning.qual.Interned; public class ComplexComparison { diff --git a/checker/tests/interning/DontCrash.java b/checker/tests/interning/DontCrash.java index 06576028674..f318e2721a2 100644 --- a/checker/tests/interning/DontCrash.java +++ b/checker/tests/interning/DontCrash.java @@ -3,10 +3,9 @@ // issues any errors?) // @skip-test -import org.checkerframework.checker.interning.qual.Interned; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.interning.qual.Interned; public class DontCrash { diff --git a/checker/tests/interning/FlowInterning.java b/checker/tests/interning/FlowInterning.java index 91dd11b3982..bdb762179cc 100644 --- a/checker/tests/interning/FlowInterning.java +++ b/checker/tests/interning/FlowInterning.java @@ -16,8 +16,7 @@ public void testAppendingChar() { arg += ' '; // Interning Checker should NOT suggest == here. - if (!arg.equals("")) - ; + if (!arg.equals("")) ; } public String[] parse(String args) { diff --git a/checker/tests/interning/Generics.java b/checker/tests/interning/Generics.java index 5f145af44de..07a461a9a44 100644 --- a/checker/tests/interning/Generics.java +++ b/checker/tests/interning/Generics.java @@ -1,5 +1,3 @@ -import org.checkerframework.checker.interning.qual.Interned; - import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -7,6 +5,7 @@ import java.util.List; import java.util.Map; import java.util.Vector; +import org.checkerframework.checker.interning.qual.Interned; public class Generics { diff --git a/checker/tests/interning/InternMethodTest.java b/checker/tests/interning/InternMethodTest.java index 20ad501590e..6878c87b75d 100644 --- a/checker/tests/interning/InternMethodTest.java +++ b/checker/tests/interning/InternMethodTest.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.interning.qual.Interned; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.interning.qual.Interned; public class InternMethodTest { diff --git a/checker/tests/interning/InternedClass.java b/checker/tests/interning/InternedClass.java index d3a3faff5f8..7a04b1e856f 100644 --- a/checker/tests/interning/InternedClass.java +++ b/checker/tests/interning/InternedClass.java @@ -1,11 +1,10 @@ -import org.checkerframework.checker.interning.qual.InternMethod; -import org.checkerframework.checker.interning.qual.Interned; -import org.checkerframework.checker.interning.qual.UnknownInterned; - import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Vector; +import org.checkerframework.checker.interning.qual.InternMethod; +import org.checkerframework.checker.interning.qual.Interned; +import org.checkerframework.checker.interning.qual.UnknownInterned; // The @Interned annotation indicates that much like an enum, all variables // declared of this type are interned (except the constructor return value). @@ -152,7 +151,6 @@ Class[] getSuperClasses(Class c) { void testCast(Object o) { Object i = (InternedClass) o; - if (i == this) - ; + if (i == this) ; } } diff --git a/checker/tests/interning/InternedClass2.java b/checker/tests/interning/InternedClass2.java index be29bd6ca2e..eefbe8afa51 100644 --- a/checker/tests/interning/InternedClass2.java +++ b/checker/tests/interning/InternedClass2.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.interning.qual.InternMethod; -import org.checkerframework.checker.interning.qual.Interned; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.interning.qual.InternMethod; +import org.checkerframework.checker.interning.qual.Interned; public @Interned class InternedClass2 { private final int i; diff --git a/checker/tests/interning/IterableGenerics.java b/checker/tests/interning/IterableGenerics.java index 80f8bf7bc5b..d2597e44acc 100644 --- a/checker/tests/interning/IterableGenerics.java +++ b/checker/tests/interning/IterableGenerics.java @@ -2,12 +2,10 @@ public class IterableGenerics { interface Data extends Iterable {} void typeParam(T t) { - for (String s : t) - ; + for (String s : t) ; } void wildcard(Iterable t) { - for (Object a : t.iterator().next()) - ; + for (Object a : t.iterator().next()) ; } } diff --git a/checker/tests/interning/NestedGenerics.java b/checker/tests/interning/NestedGenerics.java index 07ab9e8b979..a1f05532d0b 100644 --- a/checker/tests/interning/NestedGenerics.java +++ b/checker/tests/interning/NestedGenerics.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.interning.qual.Interned; - import java.util.List; +import org.checkerframework.checker.interning.qual.Interned; public class NestedGenerics { diff --git a/checker/tests/interning/Options.java b/checker/tests/interning/Options.java index 00fa502cc05..cef3f08fe71 100644 --- a/checker/tests/interning/Options.java +++ b/checker/tests/interning/Options.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.interning.qual.*; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.interning.qual.*; // Test case lifted from plume.Options class Options { diff --git a/checker/tests/interning/Polymorphism.java b/checker/tests/interning/Polymorphism.java index f55431a74ff..73d823dd2ff 100644 --- a/checker/tests/interning/Polymorphism.java +++ b/checker/tests/interning/Polymorphism.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.interning.qual.*; - import java.lang.ref.WeakReference; import java.util.Date; import java.util.List; import java.util.Map; +import org.checkerframework.checker.interning.qual.*; public class Polymorphism { // Test parameter diff --git a/checker/tests/interning/PrimitivesInterning.java b/checker/tests/interning/PrimitivesInterning.java index 6f7ab30d1ed..9cac07c1b32 100644 --- a/checker/tests/interning/PrimitivesInterning.java +++ b/checker/tests/interning/PrimitivesInterning.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.interning.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.interning.qual.*; public class PrimitivesInterning { diff --git a/checker/tests/interning/Raw3.java b/checker/tests/interning/Raw3.java index 093c3c415dd..076ee491ab6 100644 --- a/checker/tests/interning/Raw3.java +++ b/checker/tests/interning/Raw3.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.interning.qual.*; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.interning.qual.*; /* * TODO: Make diamond cleverer: diff --git a/checker/tests/interning/StaticInternMethod.java b/checker/tests/interning/StaticInternMethod.java index 07efcc538f6..a1c1a8625f0 100644 --- a/checker/tests/interning/StaticInternMethod.java +++ b/checker/tests/interning/StaticInternMethod.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.interning.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.interning.qual.*; public class StaticInternMethod { diff --git a/checker/tests/interning/StringIntern.java b/checker/tests/interning/StringIntern.java index dc460c5210a..bb503ba5e76 100644 --- a/checker/tests/interning/StringIntern.java +++ b/checker/tests/interning/StringIntern.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.interning.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.interning.qual.*; public class StringIntern { diff --git a/checker/tests/interning/UsesObjectEqualsTest.java b/checker/tests/interning/UsesObjectEqualsTest.java index 26e780c1417..883c6ef0d3f 100644 --- a/checker/tests/interning/UsesObjectEqualsTest.java +++ b/checker/tests/interning/UsesObjectEqualsTest.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.interning.qual.Interned; -import org.checkerframework.checker.interning.qual.UsesObjectEquals; - import java.util.LinkedList; import java.util.prefs.*; +import org.checkerframework.checker.interning.qual.Interned; +import org.checkerframework.checker.interning.qual.UsesObjectEquals; public class UsesObjectEqualsTest { diff --git a/checker/tests/lock-safedefaults/BasicLockTest.java b/checker/tests/lock-safedefaults/BasicLockTest.java index 54fd6607731..0346f1a8335 100644 --- a/checker/tests/lock-safedefaults/BasicLockTest.java +++ b/checker/tests/lock-safedefaults/BasicLockTest.java @@ -1,8 +1,7 @@ +import java.util.concurrent.locks.*; import org.checkerframework.checker.lock.qual.*; import org.checkerframework.framework.qual.AnnotatedFor; -import java.util.concurrent.locks.*; - public class BasicLockTest { class MyClass { public Object field; diff --git a/checker/tests/lock/ChapterExamples.java b/checker/tests/lock/ChapterExamples.java index 874be2e23c9..20305c020f8 100644 --- a/checker/tests/lock/ChapterExamples.java +++ b/checker/tests/lock/ChapterExamples.java @@ -3,6 +3,12 @@ // modified to fit testing instead of illustrative purposes, // and contains other miscellaneous Lock Checker testing. +import java.util.AbstractCollection; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.concurrent.locks.ReentrantLock; import org.checkerframework.checker.lock.qual.GuardSatisfied; import org.checkerframework.checker.lock.qual.GuardedBy; import org.checkerframework.checker.lock.qual.GuardedByBottom; @@ -13,13 +19,6 @@ import org.checkerframework.checker.lock.qual.ReleasesNoLocks; import org.checkerframework.checker.nullness.qual.NonNull; -import java.util.AbstractCollection; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; -import java.util.concurrent.locks.ReentrantLock; - class ChapterExamples { // This code crashed when there was a bug before issue 524 was fixed. // An attempt to take the LUB between 'val' in the store with type 'long' diff --git a/checker/tests/lock/FullyQualified.java b/checker/tests/lock/FullyQualified.java index 23308ea8950..50166892ad0 100644 --- a/checker/tests/lock/FullyQualified.java +++ b/checker/tests/lock/FullyQualified.java @@ -1,9 +1,8 @@ package com.example.mypackage; -import org.checkerframework.checker.lock.qual.GuardedBy; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.lock.qual.GuardedBy; public class FullyQualified { public static final @GuardedBy("") List all_classes = new ArrayList<>(); diff --git a/checker/tests/lock/GuardSatisfiedArray.java b/checker/tests/lock/GuardSatisfiedArray.java index 9d69fe5fa96..9f21f436f38 100644 --- a/checker/tests/lock/GuardSatisfiedArray.java +++ b/checker/tests/lock/GuardSatisfiedArray.java @@ -3,9 +3,8 @@ // Test case for Issue #917: // https://github.com/typetools/checker-framework/issues/917 -import org.checkerframework.checker.lock.qual.GuardSatisfied; - import java.util.List; +import org.checkerframework.checker.lock.qual.GuardSatisfied; public class GuardSatisfiedArray { diff --git a/checker/tests/lock/GuardSatisfiedTest.java b/checker/tests/lock/GuardSatisfiedTest.java index d237b778ee6..a983e1f7eb7 100644 --- a/checker/tests/lock/GuardSatisfiedTest.java +++ b/checker/tests/lock/GuardSatisfiedTest.java @@ -236,8 +236,7 @@ void testGuardSatisfiedOnArrayOfParameterizedType( void testGuardSatisfiedOnArrayComponentOfParameterizedType( // :: error: (guardsatisfied.location.disallowed) @GuardSatisfied MyParameterizedClass1[] array) {} - } - ; + }; void testGuardSatisfiedOnWildCardExtendsBound( // :: error: (guardsatisfied.location.disallowed) diff --git a/checker/tests/lock/GuardedByLocalVariable.java b/checker/tests/lock/GuardedByLocalVariable.java index 6fcf5292e2c..4775b71f39d 100644 --- a/checker/tests/lock/GuardedByLocalVariable.java +++ b/checker/tests/lock/GuardedByLocalVariable.java @@ -1,10 +1,9 @@ // Test for Checker Framework issue 795 // https://github.com/typetools/checker-framework/issues/795 -import org.checkerframework.checker.lock.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.lock.qual.*; class GuardedByLocalVariable { diff --git a/checker/tests/lock/Issue524.java b/checker/tests/lock/Issue524.java index 510b765ef25..c9f54bb13d9 100644 --- a/checker/tests/lock/Issue524.java +++ b/checker/tests/lock/Issue524.java @@ -1,9 +1,8 @@ // Test case for Issue 524: // https://github.com/typetools/checker-framework/issues/524 -import org.checkerframework.checker.lock.qual.GuardedBy; - import java.util.concurrent.locks.ReentrantLock; +import org.checkerframework.checker.lock.qual.GuardedBy; // WARNING: this test is nondeterministic, and has already been // minimized - if you modify it by removing what appears to be diff --git a/checker/tests/lock/Issue753.java b/checker/tests/lock/Issue753.java index 3a64bc53134..31a5e01d1e9 100644 --- a/checker/tests/lock/Issue753.java +++ b/checker/tests/lock/Issue753.java @@ -1,11 +1,10 @@ // Test case for Issue 753: // https://github.com/typetools/checker-framework/issues/753 +import java.util.concurrent.locks.ReentrantLock; import org.checkerframework.checker.lock.qual.*; import org.checkerframework.dataflow.qual.*; -import java.util.concurrent.locks.ReentrantLock; - @SuppressWarnings({ "purity", "contracts.precondition.not.satisfied", diff --git a/checker/tests/lock/Issue804.java b/checker/tests/lock/Issue804.java index 122b8a724af..18164cd73d8 100644 --- a/checker/tests/lock/Issue804.java +++ b/checker/tests/lock/Issue804.java @@ -1,9 +1,8 @@ // Test case for Issue 804: // https://github.com/typetools/checker-framework/issues/804 -import org.checkerframework.checker.lock.qual.*; - import java.util.concurrent.locks.*; +import org.checkerframework.checker.lock.qual.*; public class Issue804 extends ReentrantLock { @Holding("this") diff --git a/checker/tests/lock/JCIPAnnotations.java b/checker/tests/lock/JCIPAnnotations.java index b010abc2fc0..059cca54235 100644 --- a/checker/tests/lock/JCIPAnnotations.java +++ b/checker/tests/lock/JCIPAnnotations.java @@ -1,5 +1,4 @@ import net.jcip.annotations.GuardedBy; - import org.checkerframework.checker.lock.qual.GuardSatisfied; import org.checkerframework.checker.lock.qual.Holding; import org.checkerframework.checker.lock.qual.LockingFree; diff --git a/checker/tests/lock/LockEffectAnnotations.java b/checker/tests/lock/LockEffectAnnotations.java index f97f2dd3d81..aaff1ca97e6 100644 --- a/checker/tests/lock/LockEffectAnnotations.java +++ b/checker/tests/lock/LockEffectAnnotations.java @@ -1,5 +1,6 @@ package chapter; +import java.util.concurrent.locks.ReentrantLock; import org.checkerframework.checker.lock.qual.GuardSatisfied; import org.checkerframework.checker.lock.qual.GuardedBy; import org.checkerframework.checker.lock.qual.GuardedByBottom; @@ -10,8 +11,6 @@ import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.SideEffectFree; -import java.util.concurrent.locks.ReentrantLock; - public class LockEffectAnnotations { class MyClass { Object field = new Object(); diff --git a/checker/tests/lock/LockExpressionIsFinal.java b/checker/tests/lock/LockExpressionIsFinal.java index 38683ae1687..d1a1e369d89 100644 --- a/checker/tests/lock/LockExpressionIsFinal.java +++ b/checker/tests/lock/LockExpressionIsFinal.java @@ -1,13 +1,12 @@ package chapter; +import java.util.concurrent.locks.ReentrantLock; import org.checkerframework.checker.lock.qual.GuardedBy; import org.checkerframework.checker.lock.qual.GuardedByUnknown; import org.checkerframework.checker.lock.qual.MayReleaseLocks; import org.checkerframework.dataflow.qual.Deterministic; import org.checkerframework.dataflow.qual.Pure; -import java.util.concurrent.locks.ReentrantLock; - public class LockExpressionIsFinal { class MyClass { @@ -284,8 +283,7 @@ void testGuardedByExpressionIsFinal() { return t; } - class MyParameterizedClass1 {} - ; + class MyParameterizedClass1 {}; MyParameterizedClass1 m1; // :: error: (lock.expression.not.final) diff --git a/checker/tests/lock/LockInterfaceTest.java b/checker/tests/lock/LockInterfaceTest.java index df78a909e27..db5a3316988 100644 --- a/checker/tests/lock/LockInterfaceTest.java +++ b/checker/tests/lock/LockInterfaceTest.java @@ -1,12 +1,11 @@ // Test of use of Lock interface -import org.checkerframework.checker.lock.qual.Holding; -import org.checkerframework.checker.lock.qual.MayReleaseLocks; -import org.checkerframework.checker.lock.qual.ReleasesNoLocks; - import java.util.Date; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import org.checkerframework.checker.lock.qual.Holding; +import org.checkerframework.checker.lock.qual.MayReleaseLocks; +import org.checkerframework.checker.lock.qual.ReleasesNoLocks; class LockInterfaceTest { diff --git a/checker/tests/lock/TestConcurrentSemantics1.java b/checker/tests/lock/TestConcurrentSemantics1.java index d450e8ea4c3..6c1511cd654 100644 --- a/checker/tests/lock/TestConcurrentSemantics1.java +++ b/checker/tests/lock/TestConcurrentSemantics1.java @@ -1,10 +1,9 @@ package chapter; +import java.util.concurrent.locks.ReentrantLock; import org.checkerframework.checker.lock.qual.GuardedBy; import org.checkerframework.checker.lock.qual.GuardedByUnknown; -import java.util.concurrent.locks.ReentrantLock; - class TestConcurrentSemantics1 { /* This class tests the following critical scenario. * diff --git a/checker/tests/lock/TestTreeKinds.java b/checker/tests/lock/TestTreeKinds.java index dd25c0814ab..be5568f953f 100644 --- a/checker/tests/lock/TestTreeKinds.java +++ b/checker/tests/lock/TestTreeKinds.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.lock.qual.*; -import org.checkerframework.dataflow.qual.SideEffectFree; - import java.util.Random; import java.util.concurrent.locks.ReentrantLock; +import org.checkerframework.checker.lock.qual.*; +import org.checkerframework.dataflow.qual.SideEffectFree; public class TestTreeKinds { class MyClass { diff --git a/checker/tests/nullness-asserts/NonNullMapValue.java b/checker/tests/nullness-asserts/NonNullMapValue.java index d0a0af80c08..41721fb5a7b 100644 --- a/checker/tests/nullness-asserts/NonNullMapValue.java +++ b/checker/tests/nullness-asserts/NonNullMapValue.java @@ -1,8 +1,3 @@ -import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; -import org.checkerframework.checker.nullness.qual.KeyFor; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.io.PrintStream; import java.util.Date; import java.util.HashMap; @@ -11,6 +6,10 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; +import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; +import org.checkerframework.checker.nullness.qual.KeyFor; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; public class NonNullMapValue { diff --git a/checker/tests/nullness-extra/compat/CompatTest.java b/checker/tests/nullness-extra/compat/CompatTest.java index 2241d42030d..079c81b9bec 100644 --- a/checker/tests/nullness-extra/compat/CompatTest.java +++ b/checker/tests/nullness-extra/compat/CompatTest.java @@ -1,5 +1,4 @@ import lib.Lib; - import org.checkerframework.checker.nullness.qual.NonNull; public class CompatTest { diff --git a/checker/tests/nullness-javadoc/JavadocJdkAnnotations.java b/checker/tests/nullness-javadoc/JavadocJdkAnnotations.java index a97df0a68bb..e0e24665fb6 100644 --- a/checker/tests/nullness-javadoc/JavadocJdkAnnotations.java +++ b/checker/tests/nullness-javadoc/JavadocJdkAnnotations.java @@ -1,5 +1,4 @@ import com.sun.javadoc.Doc; - import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; diff --git a/checker/tests/nullness-permitClearProperty/PermitClearProperty.java b/checker/tests/nullness-permitClearProperty/PermitClearProperty.java index 487decaca71..48449344430 100644 --- a/checker/tests/nullness-permitClearProperty/PermitClearProperty.java +++ b/checker/tests/nullness-permitClearProperty/PermitClearProperty.java @@ -1,10 +1,9 @@ // Same code (but different expected errors) as test PreventClearProperty.java . +import java.util.Properties; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.common.value.qual.StringVal; -import java.util.Properties; - public class PermitClearProperty { static final @StringVal("line.separator") String LINE_SEPARATOR = "line.separator"; diff --git a/checker/tests/nullness-reflection/NullnessReflectionExampleTest.java b/checker/tests/nullness-reflection/NullnessReflectionExampleTest.java index 8bc38ade801..0c25b2fdc4f 100644 --- a/checker/tests/nullness-reflection/NullnessReflectionExampleTest.java +++ b/checker/tests/nullness-reflection/NullnessReflectionExampleTest.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.common.reflection.qual.MethodVal; - import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.common.reflection.qual.MethodVal; /** Example used in the reflection resolution section of the Checker Framework manual. */ public class NullnessReflectionExampleTest { diff --git a/checker/tests/nullness-reflection/NullnessReflectionResolutionTest.java b/checker/tests/nullness-reflection/NullnessReflectionResolutionTest.java index 34c011a5fe2..36cd1f882e1 100644 --- a/checker/tests/nullness-reflection/NullnessReflectionResolutionTest.java +++ b/checker/tests/nullness-reflection/NullnessReflectionResolutionTest.java @@ -1,9 +1,8 @@ +import java.lang.reflect.Method; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.reflection.qual.MethodVal; -import java.lang.reflect.Method; - /** Testing that reflection resolution uses more precise annotations for the Nullness Checker. */ public class NullnessReflectionResolutionTest { @NonNull Object returnNonNull() { diff --git a/checker/tests/nullness/AnnotatedJdkTest.java b/checker/tests/nullness/AnnotatedJdkTest.java index 5440c1c757a..d914f7a7722 100644 --- a/checker/tests/nullness/AnnotatedJdkTest.java +++ b/checker/tests/nullness/AnnotatedJdkTest.java @@ -1,9 +1,8 @@ // Test case for issue 370: https://github.com/typetools/checker-framework/issues/370 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Arrays; import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; class AnnotatedJdkTest { // This code should type-check because of the annotated JDK, which contains: diff --git a/checker/tests/nullness/ArrayNew.java b/checker/tests/nullness/ArrayNew.java index 848c0ab7f43..6a7232ebb5b 100644 --- a/checker/tests/nullness/ArrayNew.java +++ b/checker/tests/nullness/ArrayNew.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.Collection; +import org.checkerframework.checker.nullness.qual.*; class ArrayNew { void m(Collection seq1) { diff --git a/checker/tests/nullness/ArrayRefs.java b/checker/tests/nullness/ArrayRefs.java index 934c6ecc8be..c63a8d028f7 100644 --- a/checker/tests/nullness/ArrayRefs.java +++ b/checker/tests/nullness/ArrayRefs.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.Arrays; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public class ArrayRefs { diff --git a/checker/tests/nullness/AssertAfter2.java b/checker/tests/nullness/AssertAfter2.java index 1cdaebb9e99..469bf2905ae 100644 --- a/checker/tests/nullness/AssertAfter2.java +++ b/checker/tests/nullness/AssertAfter2.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.*; -import org.checkerframework.checker.nullness.qual.EnsuresNonNull; - import java.util.HashMap; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; +import org.checkerframework.checker.nullness.qual.EnsuresNonNull; public class AssertAfter2 { diff --git a/checker/tests/nullness/Asserts.java b/checker/tests/nullness/Asserts.java index db680149c78..fc05711d2a5 100644 --- a/checker/tests/nullness/Asserts.java +++ b/checker/tests/nullness/Asserts.java @@ -37,8 +37,7 @@ boolean pairwiseEqual(boolean @Nullable [] seq1, boolean @Nullable [] seq2) { if (!sameLength(seq1, seq2)) { return false; } - if (ne(seq1[0], seq2[0])) - ; + if (ne(seq1[0], seq2[0])) ; return true; } @@ -59,15 +58,13 @@ void testAssertBad(boolean @Nullable [] seq1, boolean @Nullable [] seq2) { assert sameLength(seq1, seq2); // the @EnsuresNonNullIf is not taken from the assert, as it doesn't contain "nullness" // :: error: (accessing.nullable) - if (seq1[0]) - ; + if (seq1[0]) ; } void testAssertGood(boolean @Nullable [] seq1, boolean @Nullable [] seq2) { assert sameLength(seq1, seq2) : "@AssumeAssertion(nullness)"; // The explanation contains "nullness" and we therefore take the additional assumption - if (seq1[0]) - ; + if (seq1[0]) ; } void testAssertAnd(@Nullable Object o) { diff --git a/checker/tests/nullness/CallSuper.java b/checker/tests/nullness/CallSuper.java index 6f3ecbb9789..25e5ab490ef 100644 --- a/checker/tests/nullness/CallSuper.java +++ b/checker/tests/nullness/CallSuper.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.io.*; +import org.checkerframework.checker.nullness.qual.*; class MyFilterInputStream { MyFilterInputStream(InputStream in) {} diff --git a/checker/tests/nullness/CopyOfArray.java b/checker/tests/nullness/CopyOfArray.java index 7662a03376d..22b3ca168ec 100644 --- a/checker/tests/nullness/CopyOfArray.java +++ b/checker/tests/nullness/CopyOfArray.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Arrays; +import org.checkerframework.checker.nullness.qual.Nullable; public class CopyOfArray { protected void makeCopy(Object[] args) { diff --git a/checker/tests/nullness/DefaultAnnotation.java b/checker/tests/nullness/DefaultAnnotation.java index c983c260110..a14f8a4d188 100644 --- a/checker/tests/nullness/DefaultAnnotation.java +++ b/checker/tests/nullness/DefaultAnnotation.java @@ -1,10 +1,9 @@ +import java.util.Iterator; +import java.util.List; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.framework.qual.DefaultQualifier; import org.checkerframework.framework.qual.TypeUseLocation; -import java.util.Iterator; -import java.util.List; - public class DefaultAnnotation { public void testNoDefault() { diff --git a/checker/tests/nullness/DefaultLoops.java b/checker/tests/nullness/DefaultLoops.java index 5eafbcc3986..6f8851badd2 100644 --- a/checker/tests/nullness/DefaultLoops.java +++ b/checker/tests/nullness/DefaultLoops.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.LinkedList; +import org.checkerframework.checker.nullness.qual.*; class MyTS extends LinkedList {} diff --git a/checker/tests/nullness/DotClass.java b/checker/tests/nullness/DotClass.java index 377487940e0..a1cac7b9f32 100644 --- a/checker/tests/nullness/DotClass.java +++ b/checker/tests/nullness/DotClass.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.NonNull; - import java.lang.annotation.Annotation; +import org.checkerframework.checker.nullness.qual.NonNull; class DotClass { diff --git a/checker/tests/nullness/ExpressionsNullness.java b/checker/tests/nullness/ExpressionsNullness.java index 824c42b7233..4076d5415be 100644 --- a/checker/tests/nullness/ExpressionsNullness.java +++ b/checker/tests/nullness/ExpressionsNullness.java @@ -1,6 +1,3 @@ -import org.checkerframework.checker.nullness.qual.*; -import org.checkerframework.framework.qual.DefaultQualifier; - import java.io.*; import java.util.Date; import java.util.HashMap; @@ -9,6 +6,8 @@ import java.util.List; import java.util.Set; import java.util.regex.*; +import org.checkerframework.checker.nullness.qual.*; +import org.checkerframework.framework.qual.DefaultQualifier; @DefaultQualifier(NonNull.class) public class ExpressionsNullness { diff --git a/checker/tests/nullness/FlowConditions.java b/checker/tests/nullness/FlowConditions.java index df999805339..d1ea8217add 100644 --- a/checker/tests/nullness/FlowConditions.java +++ b/checker/tests/nullness/FlowConditions.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; class FlowConditions { void m(@Nullable Object x, @Nullable Object y) { diff --git a/checker/tests/nullness/FlowExpressionParsingBug.java b/checker/tests/nullness/FlowExpressionParsingBug.java index 8f1f0f694b0..deee2bf3f0b 100644 --- a/checker/tests/nullness/FlowExpressionParsingBug.java +++ b/checker/tests/nullness/FlowExpressionParsingBug.java @@ -1,8 +1,7 @@ +import javax.swing.JMenuBar; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.RequiresNonNull; -import javax.swing.JMenuBar; - public abstract class FlowExpressionParsingBug { //// Check that flow expressions with explicit and implicit 'this' work diff --git a/checker/tests/nullness/FlowLoop.java b/checker/tests/nullness/FlowLoop.java index 078b5400638..1e25ba1b3a8 100644 --- a/checker/tests/nullness/FlowLoop.java +++ b/checker/tests/nullness/FlowLoop.java @@ -112,16 +112,14 @@ void testBreak(@Nullable Object o) { void testSimpleNull() { String r1 = null; - while (r1 != null) - ; + while (r1 != null) ; // :: error: (dereference.of.nullable) r1.toString(); // error } void testMulticheckNull() { String r1 = null; - while (r1 != null && r1.equals("m")) - ; + while (r1 != null && r1.equals("m")) ; // :: error: (dereference.of.nullable) r1.toString(); // error } diff --git a/checker/tests/nullness/FlowNonThis.java b/checker/tests/nullness/FlowNonThis.java index 22dbf3c145b..f438c8fee8f 100644 --- a/checker/tests/nullness/FlowNonThis.java +++ b/checker/tests/nullness/FlowNonThis.java @@ -1,8 +1,7 @@ +import java.io.*; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; -import java.io.*; - public class FlowNonThis { @Nullable String c; diff --git a/checker/tests/nullness/ForEachMin.java b/checker/tests/nullness/ForEachMin.java index a344d776ad4..fc7b2c3d6b8 100644 --- a/checker/tests/nullness/ForEachMin.java +++ b/checker/tests/nullness/ForEachMin.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.NonNull; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.NonNull; class MyTop { List children = new ArrayList<>(); @@ -15,8 +14,7 @@ void init_hierarchy_new() { @NonNull Object o1 = ppt.children; - for (String rel : ppt.children) - ; + for (String rel : ppt.children) ; @NonNull Object o2 = ppt.children; } diff --git a/checker/tests/nullness/GetProperty.java b/checker/tests/nullness/GetProperty.java index 9c27c55e40f..247638994be 100644 --- a/checker/tests/nullness/GetProperty.java +++ b/checker/tests/nullness/GetProperty.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.Properties; +import org.checkerframework.checker.nullness.qual.*; public class GetProperty { diff --git a/checker/tests/nullness/GetRefArg.java b/checker/tests/nullness/GetRefArg.java index 4200f670d93..95f6c418eda 100644 --- a/checker/tests/nullness/GetRefArg.java +++ b/checker/tests/nullness/GetRefArg.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.lang.reflect.*; +import org.checkerframework.checker.nullness.qual.*; public class GetRefArg { private void get_ref_arg(Constructor constructor) throws Exception { diff --git a/checker/tests/nullness/InitializedField.java b/checker/tests/nullness/InitializedField.java index 86976a6274b..658f4bbc639 100644 --- a/checker/tests/nullness/InitializedField.java +++ b/checker/tests/nullness/InitializedField.java @@ -1,9 +1,8 @@ +import java.util.Stack; import org.checkerframework.checker.initialization.qual.*; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.dataflow.qual.*; -import java.util.Stack; - public final class InitializedField { private Stack stack; diff --git a/checker/tests/nullness/IsEmptyPoll.java b/checker/tests/nullness/IsEmptyPoll.java index 30f618aca32..67ed4b6ca41 100644 --- a/checker/tests/nullness/IsEmptyPoll.java +++ b/checker/tests/nullness/IsEmptyPoll.java @@ -3,11 +3,10 @@ // @skip-test until the issue is fixed -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.ArrayList; import java.util.Queue; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; public final class IsEmptyPoll extends ArrayList { diff --git a/checker/tests/nullness/Issue1027.java b/checker/tests/nullness/Issue1027.java index 9a0c8f8704b..61f33482fd8 100644 --- a/checker/tests/nullness/Issue1027.java +++ b/checker/tests/nullness/Issue1027.java @@ -4,13 +4,12 @@ // Use -J-XX:MaxJavaStackTraceDepth=1000000 as parameter // to javac to see a longer stacktrace. -import org.checkerframework.checker.nullness.qual.KeyFor; - import java.util.Map; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.checkerframework.checker.nullness.qual.KeyFor; class Issue1027 { diff --git a/checker/tests/nullness/Issue1406.java b/checker/tests/nullness/Issue1406.java index 1f33f7bd2fc..c01e016c4a4 100644 --- a/checker/tests/nullness/Issue1406.java +++ b/checker/tests/nullness/Issue1406.java @@ -1,11 +1,10 @@ // Test case for Issue 1406 // https://github.com/typetools/checker-framework/issues/1406 -import org.checkerframework.checker.nullness.qual.EnsuresNonNull; -import org.checkerframework.dataflow.qual.Pure; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.EnsuresNonNull; +import org.checkerframework.dataflow.qual.Pure; @SuppressWarnings({"purity", "contracts.postcondition.not.satisfied"}) // Only test parsing public class Issue1406 { diff --git a/checker/tests/nullness/Issue1522.java b/checker/tests/nullness/Issue1522.java index c86d05e75fb..cf51eeb99d5 100644 --- a/checker/tests/nullness/Issue1522.java +++ b/checker/tests/nullness/Issue1522.java @@ -1,9 +1,8 @@ // Test case for Issue 1522 // https://github.com/typetools/checker-framework/issues/1522 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Vector; +import org.checkerframework.checker.nullness.qual.Nullable; class Issue1522 { void copyInto(String p) {} diff --git a/checker/tests/nullness/Issue1847.java b/checker/tests/nullness/Issue1847.java index f4ff9f85520..48aa880979d 100644 --- a/checker/tests/nullness/Issue1847.java +++ b/checker/tests/nullness/Issue1847.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.nullness.qual.KeyFor; - import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.function.Function; +import org.checkerframework.checker.nullness.qual.KeyFor; public class Issue1847 { final Map map = new HashMap<>(); diff --git a/checker/tests/nullness/Issue1847B.java b/checker/tests/nullness/Issue1847B.java index 5366b3e7277..20522e469e1 100644 --- a/checker/tests/nullness/Issue1847B.java +++ b/checker/tests/nullness/Issue1847B.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.function.Function; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue1847B { public void test1() { diff --git a/checker/tests/nullness/Issue1922.java b/checker/tests/nullness/Issue1922.java index 097d187b074..861aa8357cb 100644 --- a/checker/tests/nullness/Issue1922.java +++ b/checker/tests/nullness/Issue1922.java @@ -1,10 +1,9 @@ -import org.checkerframework.checker.nullness.qual.KeyFor; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.KeyFor; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue1922 { // A method to find a K in the collection and return it, or return null. diff --git a/checker/tests/nullness/Issue1949.java b/checker/tests/nullness/Issue1949.java index 6de4e8618d9..ab63801c9d3 100644 --- a/checker/tests/nullness/Issue1949.java +++ b/checker/tests/nullness/Issue1949.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public class Issue1949 { public interface Base {} diff --git a/checker/tests/nullness/Issue1983.java b/checker/tests/nullness/Issue1983.java index 1e5258762a1..20d963b4776 100644 --- a/checker/tests/nullness/Issue1983.java +++ b/checker/tests/nullness/Issue1983.java @@ -1,10 +1,9 @@ // Test case for Issue 1983: // https://github.com/typetools/checker-framework/issues/1983 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.List; import java.util.function.Function; +import org.checkerframework.checker.nullness.qual.Nullable; @SuppressWarnings("initialization.fields.uninitialized") class Issue1983 { diff --git a/checker/tests/nullness/Issue2031.java b/checker/tests/nullness/Issue2031.java index 09ad149c2a0..491825474fa 100644 --- a/checker/tests/nullness/Issue2031.java +++ b/checker/tests/nullness/Issue2031.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Map; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue2031 { public interface InterfaceA {} diff --git a/checker/tests/nullness/Issue2171.java b/checker/tests/nullness/Issue2171.java index bf93a890dab..6f6a4a70e59 100644 --- a/checker/tests/nullness/Issue2171.java +++ b/checker/tests/nullness/Issue2171.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public class Issue2171 { static void varArgsMethod(@PolyNull Object... args) {} diff --git a/checker/tests/nullness/Issue2247.java b/checker/tests/nullness/Issue2247.java index d83c12b6a5e..0244340067c 100644 --- a/checker/tests/nullness/Issue2247.java +++ b/checker/tests/nullness/Issue2247.java @@ -1,11 +1,10 @@ // This is a test case for issue 2247: // https://github.com/typetools/checker-framework/issues/2247 -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.List; import java.util.Map; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue2247 { diff --git a/checker/tests/nullness/Issue2432.java b/checker/tests/nullness/Issue2432.java index 1b8c3fe452b..35dca6e1c47 100644 --- a/checker/tests/nullness/Issue2432.java +++ b/checker/tests/nullness/Issue2432.java @@ -1,12 +1,11 @@ // Test case for issue 2432: // https://github.com/typetools/checker-framework/issues/2432 +import java.util.List; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.PolyNull; -import java.util.List; - class Issue2432 { void jdkAnnotation(List<@PolyNull Object> nl, @Nullable Object no, @PolyNull Object po) { diff --git a/checker/tests/nullness/Issue2432b.java b/checker/tests/nullness/Issue2432b.java index 9030f614ce6..49d132b0de9 100644 --- a/checker/tests/nullness/Issue2432b.java +++ b/checker/tests/nullness/Issue2432b.java @@ -1,10 +1,9 @@ // Ensure correct handling of type parameters and arrays. // https://github.com/typetools/checker-framework/issues/2432 -import org.checkerframework.checker.nullness.qual.PolyNull; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.PolyNull; class Issue2432b { void objectAsTypeArg() { diff --git a/checker/tests/nullness/Issue2564.java b/checker/tests/nullness/Issue2564.java index 460499a0272..558d5134422 100644 --- a/checker/tests/nullness/Issue2564.java +++ b/checker/tests/nullness/Issue2564.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.KeyFor; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.KeyFor; public abstract class Issue2564 { public enum EnumType { diff --git a/checker/tests/nullness/Issue2587.java b/checker/tests/nullness/Issue2587.java index 19ec9964323..08f80aa8b1e 100644 --- a/checker/tests/nullness/Issue2587.java +++ b/checker/tests/nullness/Issue2587.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.KeyFor; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.KeyFor; @SuppressWarnings("assignment.type.incompatible") // These warnings are not relevant public abstract class Issue2587 { diff --git a/checker/tests/nullness/Issue2619.java b/checker/tests/nullness/Issue2619.java index 6e01b52730c..01c030051e1 100644 --- a/checker/tests/nullness/Issue2619.java +++ b/checker/tests/nullness/Issue2619.java @@ -1,10 +1,9 @@ +import java.util.HashMap; +import java.util.Map; import org.checkerframework.checker.nullness.qual.EnsuresKeyForIf; import org.checkerframework.checker.nullness.qual.KeyFor; import org.checkerframework.dataflow.qual.Pure; -import java.util.HashMap; -import java.util.Map; - public class Issue2619 { public Map map = new HashMap<>(); diff --git a/checker/tests/nullness/Issue2619b.java b/checker/tests/nullness/Issue2619b.java index 18c9b2eff51..ae0777e2b39 100644 --- a/checker/tests/nullness/Issue2619b.java +++ b/checker/tests/nullness/Issue2619b.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.EnsuresKeyForIf; -import org.checkerframework.checker.nullness.qual.KeyFor; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.EnsuresKeyForIf; +import org.checkerframework.checker.nullness.qual.KeyFor; public class Issue2619b { public Map map = new HashMap<>(); diff --git a/checker/tests/nullness/Issue273.java b/checker/tests/nullness/Issue273.java index b583b75815b..c0210c00e3f 100644 --- a/checker/tests/nullness/Issue273.java +++ b/checker/tests/nullness/Issue273.java @@ -1,10 +1,9 @@ // Test case for issue #273: // https://github.com/typetools/checker-framework/issues/273 -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; class Issue273 { public static void main(String... p) { diff --git a/checker/tests/nullness/Issue289.java b/checker/tests/nullness/Issue289.java index ac4b7cd7371..3834cf99c0b 100644 --- a/checker/tests/nullness/Issue289.java +++ b/checker/tests/nullness/Issue289.java @@ -1,10 +1,9 @@ // Test for Issue 289: // https://github.com/typetools/checker-framework/issues/289 -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; class Issue289 { void simple() { diff --git a/checker/tests/nullness/Issue296.java b/checker/tests/nullness/Issue296.java index a7fd1954d60..507179c3c77 100644 --- a/checker/tests/nullness/Issue296.java +++ b/checker/tests/nullness/Issue296.java @@ -1,11 +1,10 @@ // Test case for Issue 296: // https://github.com/typetools/checker-framework/issues/296 +import java.util.Arrays; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.Arrays; - // Note that with -AinvariantArrays we would get additional errors. class Issue296 { public static void f1(T[] a) { diff --git a/checker/tests/nullness/Issue308.java b/checker/tests/nullness/Issue308.java index f98e6bd6d55..dc709375af6 100644 --- a/checker/tests/nullness/Issue308.java +++ b/checker/tests/nullness/Issue308.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import javax.validation.constraints.NotNull; +import org.checkerframework.checker.nullness.qual.*; class Issue308 { @NonNull Object nonnull = new Object(); diff --git a/checker/tests/nullness/Issue328.java b/checker/tests/nullness/Issue328.java index a4ef3690fa5..11bb3d31282 100644 --- a/checker/tests/nullness/Issue328.java +++ b/checker/tests/nullness/Issue328.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; class Issue328 { public static void m(Map a, Map b, Object ka, Object kb) { diff --git a/checker/tests/nullness/Issue355.java b/checker/tests/nullness/Issue355.java index e5a0ea04be5..83e40cd0d94 100644 --- a/checker/tests/nullness/Issue355.java +++ b/checker/tests/nullness/Issue355.java @@ -1,11 +1,10 @@ // Test case for Issue 355: // https://github.com/typetools/checker-framework/issues/355 +import java.util.List; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.List; - class Issue355 { static @NonNull T checkNotNull(@Nullable T sample) { throw new RuntimeException(); diff --git a/checker/tests/nullness/Issue372.java b/checker/tests/nullness/Issue372.java index 8fcdb417c66..43baac60a43 100644 --- a/checker/tests/nullness/Issue372.java +++ b/checker/tests/nullness/Issue372.java @@ -1,10 +1,9 @@ // Test case for Issue 372: // https://github.com/typetools/checker-framework/issues/372 -import org.checkerframework.checker.nullness.qual.EnsuresKeyFor; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.EnsuresKeyFor; public class Issue372 { private final Map labels = new HashMap<>(); diff --git a/checker/tests/nullness/Issue400.java b/checker/tests/nullness/Issue400.java index bd892ace55f..7ff5b1b1562 100644 --- a/checker/tests/nullness/Issue400.java +++ b/checker/tests/nullness/Issue400.java @@ -6,8 +6,7 @@ public class Issue400 { final class YYPair { T first; V second; - } - ; + }; class YY { public Collection> getX() { diff --git a/checker/tests/nullness/Issue414.java b/checker/tests/nullness/Issue414.java index b9877ee35ba..a1cc11e525d 100644 --- a/checker/tests/nullness/Issue414.java +++ b/checker/tests/nullness/Issue414.java @@ -1,12 +1,11 @@ // Test case for Issue 414. // https://github.com/typetools/checker-framework/issues/414 -import org.checkerframework.checker.nullness.qual.KeyFor; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.checkerframework.checker.nullness.qual.KeyFor; class Issue414 { diff --git a/checker/tests/nullness/Issue415.java b/checker/tests/nullness/Issue415.java index 39fa974a349..62d00d44307 100644 --- a/checker/tests/nullness/Issue415.java +++ b/checker/tests/nullness/Issue415.java @@ -1,13 +1,12 @@ // Test case for Issue 415 // https://github.com/typetools/checker-framework/issues/415 -import org.checkerframework.checker.nullness.qual.*; -import org.checkerframework.dataflow.qual.*; - import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; +import org.checkerframework.dataflow.qual.*; public final class Issue415 { diff --git a/checker/tests/nullness/Issue425.java b/checker/tests/nullness/Issue425.java index 4346cebabac..7622a03d3c2 100644 --- a/checker/tests/nullness/Issue425.java +++ b/checker/tests/nullness/Issue425.java @@ -3,10 +3,9 @@ // @skip-test until the issue is fixed -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.HashSet; import java.util.Set; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue425 { private @Nullable Set field = null; diff --git a/checker/tests/nullness/Issue427.java b/checker/tests/nullness/Issue427.java index 09c54640635..9b298e074c6 100644 --- a/checker/tests/nullness/Issue427.java +++ b/checker/tests/nullness/Issue427.java @@ -3,9 +3,8 @@ // We need to add a warning when an @AssumeAssertion is missing its @ symbol (as below). -import org.checkerframework.checker.nullness.qual.*; - import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; public class Issue427 { diff --git a/checker/tests/nullness/Issue500.java b/checker/tests/nullness/Issue500.java index 8b16994803f..b7b5e766114 100644 --- a/checker/tests/nullness/Issue500.java +++ b/checker/tests/nullness/Issue500.java @@ -1,11 +1,10 @@ // Test case for Issue 500: // https://github.com/typetools/checker-framework/issues/500 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.AbstractList; import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue500 { // Tests GLB diff --git a/checker/tests/nullness/Issue520.java b/checker/tests/nullness/Issue520.java index 517ed525f2b..19bbe462602 100644 --- a/checker/tests/nullness/Issue520.java +++ b/checker/tests/nullness/Issue520.java @@ -5,10 +5,9 @@ // compile with: $CHECKERFRAMEWORK/checker/bin-devel/javac -g Issue520.java -processor nullness // -AprintAllQualifiers -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public class Issue520 {} diff --git a/checker/tests/nullness/Issue868.java b/checker/tests/nullness/Issue868.java index 0f60ea0ab0d..34715a201ad 100644 --- a/checker/tests/nullness/Issue868.java +++ b/checker/tests/nullness/Issue868.java @@ -2,9 +2,8 @@ // https://github.com/typetools/checker-framework/issues/868 // @skip-test -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue868 { void test2(E e) { diff --git a/checker/tests/nullness/Issue961.java b/checker/tests/nullness/Issue961.java index e9f5e621e92..0d3b3d5ff0e 100644 --- a/checker/tests/nullness/Issue961.java +++ b/checker/tests/nullness/Issue961.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.NonNull; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.NonNull; // Test case for Issue 961 // https://github.com/typetools/checker-framework/issues/961 diff --git a/checker/tests/nullness/Issue989.java b/checker/tests/nullness/Issue989.java index 5f96a498a54..4bb501c7230 100644 --- a/checker/tests/nullness/Issue989.java +++ b/checker/tests/nullness/Issue989.java @@ -1,11 +1,10 @@ // Test case for Issue 989: // https://github.com/typetools/checker-framework/issues/989 -import org.checkerframework.checker.nullness.qual.NonNull; - import java.io.Serializable; import java.util.Collection; import java.util.List; +import org.checkerframework.checker.nullness.qual.NonNull; interface ListWrapper989a extends List<@NonNull E> {} diff --git a/checker/tests/nullness/IteratorEarlyExit.java b/checker/tests/nullness/IteratorEarlyExit.java index 41f134027b9..77e7c04c105 100644 --- a/checker/tests/nullness/IteratorEarlyExit.java +++ b/checker/tests/nullness/IteratorEarlyExit.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.io.*; import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public class IteratorEarlyExit { public static void m1() { diff --git a/checker/tests/nullness/JavaCopExplosion.java b/checker/tests/nullness/JavaCopExplosion.java index cef4d42fc67..293b6d7306c 100644 --- a/checker/tests/nullness/JavaCopExplosion.java +++ b/checker/tests/nullness/JavaCopExplosion.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.List; +import org.checkerframework.checker.nullness.qual.*; @org.checkerframework.framework.qual.DefaultQualifier(Nullable.class) class Explosion { diff --git a/checker/tests/nullness/JavaExprContext.java b/checker/tests/nullness/JavaExprContext.java index bedd9bf581f..46a9393d8e6 100644 --- a/checker/tests/nullness/JavaExprContext.java +++ b/checker/tests/nullness/JavaExprContext.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; // See issue 241: https://github.com/typetools/checker-framework/issues/241 diff --git a/checker/tests/nullness/KeyForChecked.java b/checker/tests/nullness/KeyForChecked.java index ebfe724c751..affa74b3125 100644 --- a/checker/tests/nullness/KeyForChecked.java +++ b/checker/tests/nullness/KeyForChecked.java @@ -1,3 +1,9 @@ +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; import org.checkerframework.checker.nullness.qual.KeyFor; import org.checkerframework.checker.nullness.qual.KeyForBottom; import org.checkerframework.checker.nullness.qual.NonNull; @@ -7,13 +13,6 @@ import org.checkerframework.framework.qual.DefaultQualifier; import org.checkerframework.framework.qual.TypeUseLocation; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - @DefaultQualifier(value = NonNull.class, locations = TypeUseLocation.IMPLICIT_UPPER_BOUND) public class KeyForChecked { diff --git a/checker/tests/nullness/KeyForDiamond.java b/checker/tests/nullness/KeyForDiamond.java index 15a3a6de8c0..453a88f4463 100644 --- a/checker/tests/nullness/KeyForDiamond.java +++ b/checker/tests/nullness/KeyForDiamond.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.KeyFor; - import java.util.*; +import org.checkerframework.checker.nullness.qual.KeyFor; public class KeyForDiamond { private final Map map = new HashMap<>(); diff --git a/checker/tests/nullness/KeyForFlow.java b/checker/tests/nullness/KeyForFlow.java index 6e3117dece2..225cff9f26b 100644 --- a/checker/tests/nullness/KeyForFlow.java +++ b/checker/tests/nullness/KeyForFlow.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Vector; +import org.checkerframework.checker.nullness.qual.*; public class KeyForFlow extends HashMap { diff --git a/checker/tests/nullness/KeyForIssue328.java b/checker/tests/nullness/KeyForIssue328.java index eb26a07359c..0bbcfe1b9db 100644 --- a/checker/tests/nullness/KeyForIssue328.java +++ b/checker/tests/nullness/KeyForIssue328.java @@ -1,9 +1,8 @@ // Test case for Issue 328: // https://github.com/typetools/checker-framework/issues/328 -import org.checkerframework.checker.nullness.qual.*; - import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; class KeyForIssue328 { public static void m(Map a, Map b, Object ka, Object kb) { diff --git a/checker/tests/nullness/KeyForLocalVariable.java b/checker/tests/nullness/KeyForLocalVariable.java index e20be561184..038324fc814 100644 --- a/checker/tests/nullness/KeyForLocalVariable.java +++ b/checker/tests/nullness/KeyForLocalVariable.java @@ -1,10 +1,9 @@ // Test for Checker Framework issue 795 // https://github.com/typetools/checker-framework/issues/795 -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; class KeyForLocalVariable { diff --git a/checker/tests/nullness/KeyForLub.java b/checker/tests/nullness/KeyForLub.java index 03159a611d4..47af01e2600 100644 --- a/checker/tests/nullness/KeyForLub.java +++ b/checker/tests/nullness/KeyForLub.java @@ -1,13 +1,12 @@ package keyfor; +import java.util.HashMap; +import java.util.Map; import org.checkerframework.checker.nullness.qual.KeyFor; import org.checkerframework.checker.nullness.qual.KeyForBottom; import org.checkerframework.checker.nullness.qual.PolyKeyFor; import org.checkerframework.checker.nullness.qual.UnknownKeyFor; -import java.util.HashMap; -import java.util.Map; - public class KeyForLub { public static boolean flag; Map map1 = new HashMap<>(); diff --git a/checker/tests/nullness/KeyForMultiple.java b/checker/tests/nullness/KeyForMultiple.java index c22be7d16cd..7c2e1c91111 100644 --- a/checker/tests/nullness/KeyForMultiple.java +++ b/checker/tests/nullness/KeyForMultiple.java @@ -2,11 +2,10 @@ // @skip-test until the bug is fixed. -import org.checkerframework.checker.nullness.qual.KeyFor; - import java.util.HashMap; import java.util.Map; import java.util.Set; +import org.checkerframework.checker.nullness.qual.KeyFor; public class KeyForMultiple { diff --git a/checker/tests/nullness/KeyForPolymorphism.java b/checker/tests/nullness/KeyForPolymorphism.java index 5ea78429a24..7a6bd52dcde 100644 --- a/checker/tests/nullness/KeyForPolymorphism.java +++ b/checker/tests/nullness/KeyForPolymorphism.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; // test related to issue 429: https://github.com/typetools/checker-framework/issues/429 class KeyForPolymorphism { diff --git a/checker/tests/nullness/KeyForPostcondition.java b/checker/tests/nullness/KeyForPostcondition.java index 731a23b924f..3e39b9f0911 100644 --- a/checker/tests/nullness/KeyForPostcondition.java +++ b/checker/tests/nullness/KeyForPostcondition.java @@ -1,10 +1,9 @@ +import java.util.HashMap; +import java.util.Map; import org.checkerframework.checker.nullness.qual.EnsuresKeyFor; import org.checkerframework.checker.nullness.qual.EnsuresKeyForIf; import org.checkerframework.checker.nullness.qual.KeyFor; -import java.util.HashMap; -import java.util.Map; - class KeyForPostcondition { public static Map m = new HashMap<>(); diff --git a/checker/tests/nullness/KeyForPropagation.java b/checker/tests/nullness/KeyForPropagation.java index ede4a40c947..0c97ab5cc8a 100644 --- a/checker/tests/nullness/KeyForPropagation.java +++ b/checker/tests/nullness/KeyForPropagation.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; // interface Dest { // } diff --git a/checker/tests/nullness/KeyForShadowing.java b/checker/tests/nullness/KeyForShadowing.java index 0895f0d3c09..4850970f428 100644 --- a/checker/tests/nullness/KeyForShadowing.java +++ b/checker/tests/nullness/KeyForShadowing.java @@ -1,10 +1,9 @@ // Test for Checker Framework issue 273: // https://github.com/typetools/checker-framework/issues/273 -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; class KeyForShadowing { public static void main(String... p) { diff --git a/checker/tests/nullness/KeyForStaticField.java b/checker/tests/nullness/KeyForStaticField.java index 9f3a3c59fd2..e72fddb0707 100644 --- a/checker/tests/nullness/KeyForStaticField.java +++ b/checker/tests/nullness/KeyForStaticField.java @@ -2,10 +2,9 @@ // https://github.com/typetools/checker-framework/issues/877 // @skip-test until the issue is fixed. -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; class KeyForStaticField { @SuppressWarnings("keyfor") diff --git a/checker/tests/nullness/KeyForSubst.java b/checker/tests/nullness/KeyForSubst.java index a5c38ef908e..5a7a5245497 100644 --- a/checker/tests/nullness/KeyForSubst.java +++ b/checker/tests/nullness/KeyForSubst.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public class KeyForSubst { /* diff --git a/checker/tests/nullness/KeyForSubtyping.java b/checker/tests/nullness/KeyForSubtyping.java index 4e58a8292e2..a5cfd67201d 100644 --- a/checker/tests/nullness/KeyForSubtyping.java +++ b/checker/tests/nullness/KeyForSubtyping.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; +import org.checkerframework.checker.nullness.qual.*; public class KeyForSubtyping { HashMap mapA = new HashMap<>(); diff --git a/checker/tests/nullness/KeyForValidation.java b/checker/tests/nullness/KeyForValidation.java index 11d092bb75c..b533f3f2ef6 100644 --- a/checker/tests/nullness/KeyForValidation.java +++ b/checker/tests/nullness/KeyForValidation.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; @SuppressWarnings("fields.uninitialized") public class KeyForValidation { diff --git a/checker/tests/nullness/KeyFor_DirectionsFinder.java b/checker/tests/nullness/KeyFor_DirectionsFinder.java index 9762b45cd20..64beaa83803 100644 --- a/checker/tests/nullness/KeyFor_DirectionsFinder.java +++ b/checker/tests/nullness/KeyFor_DirectionsFinder.java @@ -1,12 +1,11 @@ // @skip-test -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; public class KeyFor_DirectionsFinder { diff --git a/checker/tests/nullness/KeyFors.java b/checker/tests/nullness/KeyFors.java index d90caf6c5ac..a20840544fd 100644 --- a/checker/tests/nullness/KeyFors.java +++ b/checker/tests/nullness/KeyFors.java @@ -1,5 +1,3 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -8,6 +6,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; public class KeyFors { diff --git a/checker/tests/nullness/MapGetNullable.java b/checker/tests/nullness/MapGetNullable.java index 306098ce470..26f8ad6e802 100644 --- a/checker/tests/nullness/MapGetNullable.java +++ b/checker/tests/nullness/MapGetNullable.java @@ -1,10 +1,9 @@ +import java.util.HashMap; +import java.util.Map; import org.checkerframework.checker.nullness.qual.KeyFor; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.HashMap; -import java.util.Map; - public class MapGetNullable { void foo0(Map m, @KeyFor("#1") String key) { diff --git a/checker/tests/nullness/MethodTypeVars4.java b/checker/tests/nullness/MethodTypeVars4.java index 174de210bbd..1278cf28097 100644 --- a/checker/tests/nullness/MethodTypeVars4.java +++ b/checker/tests/nullness/MethodTypeVars4.java @@ -1,9 +1,8 @@ +import java.util.List; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.framework.qual.DefaultQualifier; import org.checkerframework.framework.qual.TypeUseLocation; -import java.util.List; - class MethodTypeVars4 { @DefaultQualifier(value = NonNull.class, locations = TypeUseLocation.IMPLICIT_UPPER_BOUND) interface I { diff --git a/checker/tests/nullness/MissingBoundAnnotations.java b/checker/tests/nullness/MissingBoundAnnotations.java index 096ca97ea12..c698d781761 100644 --- a/checker/tests/nullness/MissingBoundAnnotations.java +++ b/checker/tests/nullness/MissingBoundAnnotations.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; public final class MissingBoundAnnotations { diff --git a/checker/tests/nullness/MisuseProperties.java b/checker/tests/nullness/MisuseProperties.java index 554fe823b48..0fbcc358dec 100644 --- a/checker/tests/nullness/MisuseProperties.java +++ b/checker/tests/nullness/MisuseProperties.java @@ -1,5 +1,3 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.Collection; import java.util.Collections; import java.util.Dictionary; @@ -7,6 +5,7 @@ import java.util.Map; import java.util.Properties; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; public class MisuseProperties { diff --git a/checker/tests/nullness/NNOEStaticFields.java b/checker/tests/nullness/NNOEStaticFields.java index b95cfa4a955..f6625d5d30b 100644 --- a/checker/tests/nullness/NNOEStaticFields.java +++ b/checker/tests/nullness/NNOEStaticFields.java @@ -1,10 +1,9 @@ +import java.util.Collections; +import java.util.Set; import org.checkerframework.checker.initialization.qual.*; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.checker.nullness.qual.RequiresNonNull; -import java.util.Collections; -import java.util.Set; - class NNOEStaticFields { static @Nullable String nullable = null; static @Nullable String otherNullable = null; diff --git a/checker/tests/nullness/NegatingConditionalNullness.java b/checker/tests/nullness/NegatingConditionalNullness.java index eaeea1ccd39..a9450ec184f 100644 --- a/checker/tests/nullness/NegatingConditionalNullness.java +++ b/checker/tests/nullness/NegatingConditionalNullness.java @@ -1,8 +1,7 @@ +import java.util.List; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; -import java.util.List; - class PptTopLevel { /** List of all of the splitters for this ppt. */ public @MonotonicNonNull List splitters = null; diff --git a/checker/tests/nullness/NonEmptyCollection.java b/checker/tests/nullness/NonEmptyCollection.java index 80edd7fb450..eb5fdb89298 100644 --- a/checker/tests/nullness/NonEmptyCollection.java +++ b/checker/tests/nullness/NonEmptyCollection.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.*; -import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; - import java.io.*; import java.util.SortedMap; +import org.checkerframework.checker.nullness.qual.*; +import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; public class NonEmptyCollection { diff --git a/checker/tests/nullness/ObjectsRequireNonNull.java b/checker/tests/nullness/ObjectsRequireNonNull.java index 77dbc440f08..3d84d4b04d3 100644 --- a/checker/tests/nullness/ObjectsRequireNonNull.java +++ b/checker/tests/nullness/ObjectsRequireNonNull.java @@ -1,10 +1,9 @@ // Test case for https://tinyurl.com/cfissue/3149 . +import java.util.Objects; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.Objects; - class ObjectsRequireNonNull { void foo(@Nullable Object nble, @NonNull Object nn) { // :: error: (argument.type.incompatible) diff --git a/checker/tests/nullness/ParameterExpression.java b/checker/tests/nullness/ParameterExpression.java index 7cc526d5f44..97d2304dc40 100644 --- a/checker/tests/nullness/ParameterExpression.java +++ b/checker/tests/nullness/ParameterExpression.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; public class ParameterExpression { public void m1( diff --git a/checker/tests/nullness/PreventClearProperty.java b/checker/tests/nullness/PreventClearProperty.java index 64fa8700d2c..54b6e95b1eb 100644 --- a/checker/tests/nullness/PreventClearProperty.java +++ b/checker/tests/nullness/PreventClearProperty.java @@ -1,10 +1,9 @@ // Same code (but different expected errors) as test PermitClearProperty.java . +import java.util.Properties; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.common.value.qual.StringVal; -import java.util.Properties; - public class PreventClearProperty { static final @StringVal("line.separator") String LINE_SEPARATOR = "line.separator"; diff --git a/checker/tests/nullness/RawTypesAssignment.java b/checker/tests/nullness/RawTypesAssignment.java index 481fbcf1069..cdc95044ab2 100644 --- a/checker/tests/nullness/RawTypesAssignment.java +++ b/checker/tests/nullness/RawTypesAssignment.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.HashMap; import java.util.List; import java.util.Map; +import org.checkerframework.checker.nullness.qual.Nullable; public class RawTypesAssignment { Map rawMap = new HashMap(); diff --git a/checker/tests/nullness/RepeatEnsuresKeyFor.java b/checker/tests/nullness/RepeatEnsuresKeyFor.java index 7bc85529c78..d06b1e0b192 100644 --- a/checker/tests/nullness/RepeatEnsuresKeyFor.java +++ b/checker/tests/nullness/RepeatEnsuresKeyFor.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.EnsuresKeyFor; -import org.checkerframework.checker.nullness.qual.EnsuresKeyForIf; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.EnsuresKeyFor; +import org.checkerframework.checker.nullness.qual.EnsuresKeyForIf; public class RepeatEnsuresKeyFor { diff --git a/checker/tests/nullness/RepeatEnsuresKeyForWithError.java b/checker/tests/nullness/RepeatEnsuresKeyForWithError.java index 8a2e77b8ed0..6af1bdceae0 100644 --- a/checker/tests/nullness/RepeatEnsuresKeyForWithError.java +++ b/checker/tests/nullness/RepeatEnsuresKeyForWithError.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.EnsuresKeyFor; -import org.checkerframework.checker.nullness.qual.EnsuresKeyForIf; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.EnsuresKeyFor; +import org.checkerframework.checker.nullness.qual.EnsuresKeyForIf; public class RepeatEnsuresKeyForWithError { diff --git a/checker/tests/nullness/Stats.java b/checker/tests/nullness/Stats.java index 63cf1782e71..12146312e47 100644 --- a/checker/tests/nullness/Stats.java +++ b/checker/tests/nullness/Stats.java @@ -1,8 +1,7 @@ // @skip-tests Failing, but commented out to avoid breaking the build -import org.checkerframework.checker.nullness.qual.*; - import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; public class Stats { diff --git a/checker/tests/nullness/TernaryNested.java b/checker/tests/nullness/TernaryNested.java index d89592b045b..330a8601e93 100644 --- a/checker/tests/nullness/TernaryNested.java +++ b/checker/tests/nullness/TernaryNested.java @@ -1,11 +1,10 @@ // Test case for Issue 331: // https://github.com/typetools/checker-framework/issues/331 +import java.util.List; import org.checkerframework.checker.initialization.qual.*; import org.checkerframework.checker.nullness.qual.*; -import java.util.List; - class TernaryNested { Object foo(boolean b) { Object o = b ? "" : (b ? "" : ""); diff --git a/checker/tests/nullness/TestFromPullRequest880.java b/checker/tests/nullness/TestFromPullRequest880.java index 3f8624f00ef..454b81c185f 100644 --- a/checker/tests/nullness/TestFromPullRequest880.java +++ b/checker/tests/nullness/TestFromPullRequest880.java @@ -5,10 +5,9 @@ // Also note a test that uses multiple compilation units at: // checker/jtreg/nullness/annotationsOnExtends/ -import org.checkerframework.checker.nullness.qual.NonNull; - import java.io.Serializable; import java.util.List; +import org.checkerframework.checker.nullness.qual.NonNull; class TFPR880Test implements Serializable {} diff --git a/checker/tests/nullness/TestInfer.java b/checker/tests/nullness/TestInfer.java index 0d4519b7805..edbc9fb214b 100644 --- a/checker/tests/nullness/TestInfer.java +++ b/checker/tests/nullness/TestInfer.java @@ -1,9 +1,8 @@ // Test case for issue #238: https://github.com/typetools/checker-framework/issues/238 -import org.checkerframework.checker.nullness.qual.UnknownKeyFor; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.UnknownKeyFor; class TestInfer { T getValue(List l) { diff --git a/checker/tests/nullness/ToArrayNullness.java b/checker/tests/nullness/ToArrayNullness.java index 287b48a966d..5f17d107df6 100644 --- a/checker/tests/nullness/ToArrayNullness.java +++ b/checker/tests/nullness/ToArrayNullness.java @@ -1,146 +1,107 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.Collection; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public class ToArrayNullness { private List<@Nullable String> nullableList = new ArrayList<>(); private List<@NonNull String> nonnullList = new ArrayList<>(); void listToArrayObject() { - for (@Nullable Object o : nullableList.toArray()) - ; + for (@Nullable Object o : nullableList.toArray()) ; // :: error: (enhancedfor.type.incompatible) - for (@NonNull Object o : nullableList.toArray()) - ; // error + for (@NonNull Object o : nullableList.toArray()) ; // error - for (@Nullable Object o : nonnullList.toArray()) - ; - for (@NonNull Object o : nonnullList.toArray()) - ; + for (@Nullable Object o : nonnullList.toArray()) ; + for (@NonNull Object o : nonnullList.toArray()) ; } void listToArrayE() { - for (@Nullable String o : nullableList.toArray(new @Nullable String[0])) - ; + for (@Nullable String o : nullableList.toArray(new @Nullable String[0])) ; // :: error: (enhancedfor.type.incompatible) - for (@NonNull String o : nullableList.toArray(new @Nullable String[0])) - ; // error + for (@NonNull String o : nullableList.toArray(new @Nullable String[0])) ; // error // TODOINVARR:: error: (argument.type.incompatible) - for (@Nullable String o : nullableList.toArray(new @NonNull String[0])) - ; + for (@Nullable String o : nullableList.toArray(new @NonNull String[0])) ; // TODOINVARR:: error: (argument.type.incompatible) // :: error: (enhancedfor.type.incompatible) - for (@NonNull String o : nullableList.toArray(new @NonNull String[0])) - ; + for (@NonNull String o : nullableList.toArray(new @NonNull String[0])) ; - for (@Nullable String o : nonnullList.toArray(new String[0])) - ; + for (@Nullable String o : nonnullList.toArray(new String[0])) ; // No error expected here. Note that the heuristics determine that the given array // is not used and that a new one will be created. - for (@NonNull String o : nonnullList.toArray(new @Nullable String[0])) - ; - for (@Nullable String o : nonnullList.toArray(new @NonNull String[0])) - ; - for (@NonNull String o : nonnullList.toArray(new @NonNull String[0])) - ; + for (@NonNull String o : nonnullList.toArray(new @Nullable String[0])) ; + for (@Nullable String o : nonnullList.toArray(new @NonNull String[0])) ; + for (@NonNull String o : nonnullList.toArray(new @NonNull String[0])) ; } private Collection<@Nullable String> nullableCol = new ArrayList<@Nullable String>(); private Collection<@NonNull String> nonnullCol = new ArrayList<@NonNull String>(); void colToArrayObject() { - for (@Nullable Object o : nullableCol.toArray()) - ; + for (@Nullable Object o : nullableCol.toArray()) ; // :: error: (enhancedfor.type.incompatible) - for (@NonNull Object o : nullableCol.toArray()) - ; // error + for (@NonNull Object o : nullableCol.toArray()) ; // error - for (@Nullable Object o : nonnullCol.toArray()) - ; - for (@NonNull Object o : nonnullCol.toArray()) - ; + for (@Nullable Object o : nonnullCol.toArray()) ; + for (@NonNull Object o : nonnullCol.toArray()) ; } void colToArrayE() { - for (@Nullable String o : nullableCol.toArray(new @Nullable String[0])) - ; + for (@Nullable String o : nullableCol.toArray(new @Nullable String[0])) ; // :: error: (enhancedfor.type.incompatible) - for (@NonNull String o : nullableCol.toArray(new @Nullable String[0])) - ; // error + for (@NonNull String o : nullableCol.toArray(new @Nullable String[0])) ; // error // TODOINVARR:: error: (argument.type.incompatible) - for (@Nullable String o : nullableCol.toArray(new @NonNull String[0])) - ; + for (@Nullable String o : nullableCol.toArray(new @NonNull String[0])) ; // TODOINVARR:: error: (argument.type.incompatible) // :: error: (enhancedfor.type.incompatible) - for (@NonNull String o : nullableCol.toArray(new @NonNull String[0])) - ; // error + for (@NonNull String o : nullableCol.toArray(new @NonNull String[0])) ; // error - for (@Nullable String o : nonnullCol.toArray(new String[0])) - ; + for (@Nullable String o : nonnullCol.toArray(new String[0])) ; // No error expected here. Note that the heuristics determine that the given array // is not used and that a new one will be created. - for (@NonNull String o : nonnullCol.toArray(new @Nullable String[0])) - ; - for (@Nullable String o : nonnullCol.toArray(new @NonNull String[0])) - ; - for (@NonNull String o : nonnullCol.toArray(new @NonNull String[0])) - ; + for (@NonNull String o : nonnullCol.toArray(new @Nullable String[0])) ; + for (@Nullable String o : nonnullCol.toArray(new @NonNull String[0])) ; + for (@NonNull String o : nonnullCol.toArray(new @NonNull String[0])) ; } void testHearusitics() { - for (@Nullable String o : nonnullCol.toArray(new String[] {})) - ; - for (@NonNull String o : nonnullCol.toArray(new String[] {})) - ; - for (@Nullable String o : nonnullCol.toArray(new String[0])) - ; - for (@NonNull String o : nonnullCol.toArray(new String[0])) - ; - for (@Nullable String o : nonnullCol.toArray(new String[nonnullCol.size()])) - ; - for (@NonNull String o : nonnullCol.toArray(new String[nonnullCol.size()])) - ; + for (@Nullable String o : nonnullCol.toArray(new String[] {})) ; + for (@NonNull String o : nonnullCol.toArray(new String[] {})) ; + for (@Nullable String o : nonnullCol.toArray(new String[0])) ; + for (@NonNull String o : nonnullCol.toArray(new String[0])) ; + for (@Nullable String o : nonnullCol.toArray(new String[nonnullCol.size()])) ; + for (@NonNull String o : nonnullCol.toArray(new String[nonnullCol.size()])) ; // :: warning: (toArray.nullable.elements.mismatched.size) - for (@Nullable String o : nonnullCol.toArray(new @Nullable String[] {null})) - ; + for (@Nullable String o : nonnullCol.toArray(new @Nullable String[] {null})) ; // :: error: (enhancedfor.type.incompatible) :: warning: // (toArray.nullable.elements.mismatched.size) - for (@NonNull String o : nonnullCol.toArray(new @Nullable String[] {null})) - ; // error + for (@NonNull String o : nonnullCol.toArray(new @Nullable String[] {null})) ; // error // Size 1 is too big for an empty array. Complain. TODO: Could allow as result is Nullable. // :: error: (new.array.type.invalid) :: warning: // (toArray.nullable.elements.mismatched.size) - for (@Nullable String o : nonnullCol.toArray(new String[1])) - ; + for (@Nullable String o : nonnullCol.toArray(new String[1])) ; // :: error: (enhancedfor.type.incompatible) :: error: (new.array.type.invalid) :: warning: // (toArray.nullable.elements.mismatched.size) - for (@NonNull String o : nonnullCol.toArray(new String[1])) - ; // error + for (@NonNull String o : nonnullCol.toArray(new String[1])) ; // error // Array too big -> complain. TODO: Could allow as result is Nullable. // :: error: (new.array.type.invalid) :: warning: // (toArray.nullable.elements.mismatched.size) - for (@Nullable String o : nonnullCol.toArray(new String[nonnullCol.size() + 1])) - ; + for (@Nullable String o : nonnullCol.toArray(new String[nonnullCol.size() + 1])) ; // Array too big -> complain. // :: error: (enhancedfor.type.incompatible) :: error: (new.array.type.invalid) :: warning: // (toArray.nullable.elements.mismatched.size) - for (@NonNull String o : nonnullCol.toArray(new String[nonnullCol.size() + 1])) - ; // error + for (@NonNull String o : nonnullCol.toArray(new String[nonnullCol.size() + 1])) ; // error // cannot handle the following cases for now // new array not size 0 or .size -> complain about cration. TODO: Could allow as result is // Nullable. // :: error: (new.array.type.invalid) :: warning: // (toArray.nullable.elements.mismatched.size) - for (@Nullable String o : nonnullCol.toArray(new String[nonnullCol.size() - 1])) - ; + for (@Nullable String o : nonnullCol.toArray(new String[nonnullCol.size() - 1])) ; // New array not size 0 or .size -> complain about creation. // :: error: (enhancedfor.type.incompatible) :: error: (new.array.type.invalid) :: warning: // (toArray.nullable.elements.mismatched.size) - for (@NonNull String o : nonnullCol.toArray(new String[nonnullCol.size() - 1])) - ; // error + for (@NonNull String o : nonnullCol.toArray(new String[nonnullCol.size() - 1])) ; // error } } diff --git a/checker/tests/nullness/TryCatch.java b/checker/tests/nullness/TryCatch.java index 5732f75077b..d76765033e4 100644 --- a/checker/tests/nullness/TryCatch.java +++ b/checker/tests/nullness/TryCatch.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.io.*; import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; class EntryReader { public EntryReader() throws IOException {} diff --git a/checker/tests/nullness/UnboxConditions.java b/checker/tests/nullness/UnboxConditions.java index 2c3409169f0..f9619f49fb8 100644 --- a/checker/tests/nullness/UnboxConditions.java +++ b/checker/tests/nullness/UnboxConditions.java @@ -6,22 +6,18 @@ public static void main(String[] args) { Boolean b3 = null; Boolean b4 = null; // :: error: (condition.nullable) - if (b) { - ; + if (b) {; } // :: error: (condition.nullable) b = b1 ? b : b; // :: error: (condition.nullable) - while (b2) { - ; + while (b2) {; } - do { - ; + do {; // :: error: (condition.nullable) } while (b3); // :: error: (condition.nullable) - for (; b4; ) { - ; + for (; b4; ) {; } // legal! for (; ; ) { diff --git a/checker/tests/nullness/UnusedNullness.java b/checker/tests/nullness/UnusedNullness.java index 9f51516cdc6..105b41ab7de 100644 --- a/checker/tests/nullness/UnusedNullness.java +++ b/checker/tests/nullness/UnusedNullness.java @@ -1,10 +1,9 @@ +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.Unused; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - // TODO: feature request: the Nullness Checker should be aware of // the @Unused annotation. // This is difficult to implement: one needs to determine the correct diff --git a/checker/tests/nullness/UnusedOnClass.java b/checker/tests/nullness/UnusedOnClass.java index 26b554089df..becd658ea3e 100644 --- a/checker/tests/nullness/UnusedOnClass.java +++ b/checker/tests/nullness/UnusedOnClass.java @@ -1,10 +1,9 @@ +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.Unused; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - public final class UnusedOnClass { public static void read_serialized_pptmap2(@MyNonPrototype MyInvariant2 inv) { inv.ppt.toString(); diff --git a/checker/tests/nullness/WeakHasherMapNonNull.java b/checker/tests/nullness/WeakHasherMapNonNull.java index 94d60baf251..6c2daa0643e 100644 --- a/checker/tests/nullness/WeakHasherMapNonNull.java +++ b/checker/tests/nullness/WeakHasherMapNonNull.java @@ -1,10 +1,9 @@ +import java.util.AbstractMap; +import java.util.Map; import org.checkerframework.checker.initialization.qual.*; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.checker.regex.qual.*; -import java.util.AbstractMap; -import java.util.Map; - // :: error: (initialization.fields.uninitialized) public abstract class WeakHasherMapNonNull extends AbstractMap implements Map { private Map hash; diff --git a/checker/tests/nullness/WeakHasherMapNullable.java b/checker/tests/nullness/WeakHasherMapNullable.java index 3ea5a75677f..0d8a6c67c12 100644 --- a/checker/tests/nullness/WeakHasherMapNullable.java +++ b/checker/tests/nullness/WeakHasherMapNullable.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.qual.Pure; - import java.util.AbstractMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.qual.Pure; // :: error: (initialization.fields.uninitialized) public abstract class WeakHasherMapNullable extends AbstractMap implements Map { diff --git a/checker/tests/nullness/WeakIdentityPair.java b/checker/tests/nullness/WeakIdentityPair.java index d2b608e0c49..c6b14d11ba6 100644 --- a/checker/tests/nullness/WeakIdentityPair.java +++ b/checker/tests/nullness/WeakIdentityPair.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.lang.ref.WeakReference; +import org.checkerframework.checker.nullness.qual.*; public class WeakIdentityPair { diff --git a/checker/tests/nullness/WeakRef.java b/checker/tests/nullness/WeakRef.java index a2e06908fe6..67bf000317c 100644 --- a/checker/tests/nullness/WeakRef.java +++ b/checker/tests/nullness/WeakRef.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.lang.ref.WeakReference; +import org.checkerframework.checker.nullness.qual.*; class WeakRef { @PolyNull Object @Nullable [] foo(WeakReference<@PolyNull Object[]> lookup) { diff --git a/checker/tests/nullness/WhileTest.java b/checker/tests/nullness/WhileTest.java index d33af305ba8..906e3170566 100644 --- a/checker/tests/nullness/WhileTest.java +++ b/checker/tests/nullness/WhileTest.java @@ -24,8 +24,7 @@ public void testwhile1() { public void testwhile2() { z = null; - while (z == null) { - ; + while (z == null) {; } nnz = z; } @@ -41,8 +40,7 @@ public void testdo1() { public void testdo2() { z = null; - do { - ; + do {; } while (z == null); nnz = z; } @@ -58,8 +56,7 @@ public void testfor1() { public void testfor2() { z = null; - for (; z == null; ) { - ; + for (; z == null; ) {; } nnz = z; } diff --git a/checker/tests/nullness/Wildcards.java b/checker/tests/nullness/Wildcards.java index 54dd0cef5d9..d33ad2896bf 100644 --- a/checker/tests/nullness/Wildcards.java +++ b/checker/tests/nullness/Wildcards.java @@ -1,9 +1,8 @@ // Test case for issue #234. -import org.checkerframework.checker.nullness.qual.*; - import java.util.Iterator; import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public class Wildcards { diff --git a/checker/tests/nullness/flow/Issue1345.java b/checker/tests/nullness/flow/Issue1345.java index 17906a4e60f..0ba39878e00 100644 --- a/checker/tests/nullness/flow/Issue1345.java +++ b/checker/tests/nullness/flow/Issue1345.java @@ -3,11 +3,10 @@ // @skip-test until the issue is resolved -import org.checkerframework.checker.nullness.Opt; -import org.checkerframework.checker.nullness.qual.*; - import java.math.BigDecimal; import java.util.stream.Stream; +import org.checkerframework.checker.nullness.Opt; +import org.checkerframework.checker.nullness.qual.*; public class Issue1345 { diff --git a/checker/tests/nullness/flow/MapGet.java b/checker/tests/nullness/flow/MapGet.java index 2b0cc34c7e0..6c691eda98f 100644 --- a/checker/tests/nullness/flow/MapGet.java +++ b/checker/tests/nullness/flow/MapGet.java @@ -3,11 +3,10 @@ // @skip-test until the issue is fixed -import org.checkerframework.checker.nullness.qual.EnsuresNonNull; -import org.checkerframework.checker.nullness.qual.NonNull; - import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.EnsuresNonNull; +import org.checkerframework.checker.nullness.qual.NonNull; class MapGet { private final Map labels = new HashMap<>(); diff --git a/checker/tests/nullness/generics/AnnotatedGenerics.java b/checker/tests/nullness/generics/AnnotatedGenerics.java index 3c9e3baa3e8..06ad4564775 100644 --- a/checker/tests/nullness/generics/AnnotatedGenerics.java +++ b/checker/tests/nullness/generics/AnnotatedGenerics.java @@ -13,8 +13,7 @@ class Test { } Test> l = new Test<>(); // :: error: (iterating.over.nullable) - for (String s : l.get()) - ; + for (String s : l.get()) ; } public static void testNonNullTypeVariable() { @@ -24,11 +23,9 @@ class Test { } } Test<@Nullable Iterable> l = new Test<>(); - for (String s : l.get()) - ; + for (String s : l.get()) ; Test> n = new Test<>(); - for (String s : n.get()) - ; + for (String s : n.get()) ; } static class MyClass implements MyIterator<@Nullable T> { diff --git a/checker/tests/nullness/generics/BoundedWildcardTest.java b/checker/tests/nullness/generics/BoundedWildcardTest.java index 5352c8246d8..51eee182bb3 100644 --- a/checker/tests/nullness/generics/BoundedWildcardTest.java +++ b/checker/tests/nullness/generics/BoundedWildcardTest.java @@ -1,9 +1,8 @@ // Test case from // http://stackoverflow.com/questions/38339332/in-a-bounded-wildcard-where-does-the-annotation-belong -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; class Styleable {} diff --git a/checker/tests/nullness/generics/GenericArgs.java b/checker/tests/nullness/generics/GenericArgs.java index eb2e5428151..8cb48437173 100644 --- a/checker/tests/nullness/generics/GenericArgs.java +++ b/checker/tests/nullness/generics/GenericArgs.java @@ -1,10 +1,9 @@ -import org.checkerframework.checker.nullness.qual.*; -import org.checkerframework.dataflow.qual.*; - import java.io.*; import java.util.Comparator; import java.util.HashSet; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; +import org.checkerframework.dataflow.qual.*; @org.checkerframework.framework.qual.DefaultQualifier(Nullable.class) public class GenericArgs { diff --git a/checker/tests/nullness/generics/GenericArgs2.java b/checker/tests/nullness/generics/GenericArgs2.java index 2bdf9b58f3a..3b7a6de8488 100644 --- a/checker/tests/nullness/generics/GenericArgs2.java +++ b/checker/tests/nullness/generics/GenericArgs2.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.io.*; import java.util.HashMap; import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; class Cell { void add(T arg) {} diff --git a/checker/tests/nullness/generics/GenericArgs3.java b/checker/tests/nullness/generics/GenericArgs3.java index 8d4f008df9c..7a25d02b5d3 100644 --- a/checker/tests/nullness/generics/GenericArgs3.java +++ b/checker/tests/nullness/generics/GenericArgs3.java @@ -1,10 +1,9 @@ -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.qual.Pure; - import java.util.Collection; import java.util.Enumeration; import java.util.Iterator; import java.util.Map; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.qual.Pure; class Other { public static final class StaticIterator implements Iterator { diff --git a/checker/tests/nullness/generics/Issue1838.java b/checker/tests/nullness/generics/Issue1838.java index e3ae05677fb..ef762e83687 100644 --- a/checker/tests/nullness/generics/Issue1838.java +++ b/checker/tests/nullness/generics/Issue1838.java @@ -1,10 +1,9 @@ // Test case for Issue 1838: // https://github.com/typetools/checker-framework/issues/1838 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; class Issue1838 { public static void main(String[] args) { diff --git a/checker/tests/nullness/generics/Issue1838Min.java b/checker/tests/nullness/generics/Issue1838Min.java index 052b36302d5..8111486d3f2 100644 --- a/checker/tests/nullness/generics/Issue1838Min.java +++ b/checker/tests/nullness/generics/Issue1838Min.java @@ -1,10 +1,9 @@ // Test case for Issue 1838: // https://github.com/typetools/checker-framework/issues/1838 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; class Issue1838Min { List> llno = new ArrayList<>(); diff --git a/checker/tests/nullness/generics/Issue282.java b/checker/tests/nullness/generics/Issue282.java index 268d7b60fbf..0a37fd93910 100644 --- a/checker/tests/nullness/generics/Issue282.java +++ b/checker/tests/nullness/generics/Issue282.java @@ -1,11 +1,10 @@ // Test case for Issue 282 // https://github.com/typetools/checker-framework/issues/282 -import org.checkerframework.checker.nullness.qual.*; - import java.util.Collection; import java.util.Comparator; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; @SuppressWarnings("nullness") abstract class ImmutableSortedSet implements Set { diff --git a/checker/tests/nullness/generics/Issue282Min.java b/checker/tests/nullness/generics/Issue282Min.java index 0527206db69..c82b790d727 100644 --- a/checker/tests/nullness/generics/Issue282Min.java +++ b/checker/tests/nullness/generics/Issue282Min.java @@ -1,11 +1,10 @@ // Test case for Issue 282 (minimized) // https://github.com/typetools/checker-framework/issues/282 -import org.checkerframework.checker.nullness.qual.*; - import java.util.Collection; import java.util.Comparator; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; class Issue282Min { static Set copyOf(Comparator comparator, Collection elements) { diff --git a/checker/tests/nullness/generics/Issue314.java b/checker/tests/nullness/generics/Issue314.java index 2c9b5a3ec45..71c3a5b15d3 100644 --- a/checker/tests/nullness/generics/Issue314.java +++ b/checker/tests/nullness/generics/Issue314.java @@ -1,11 +1,10 @@ // Test case for Issue 314: // https://github.com/typetools/checker-framework/issues/314 +import java.util.List; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.List; - class Issue314 { List m1(List<@NonNull T> l1) { return l1; diff --git a/checker/tests/nullness/generics/Issue326.java b/checker/tests/nullness/generics/Issue326.java index 5a3c9927099..97e0a802c2d 100644 --- a/checker/tests/nullness/generics/Issue326.java +++ b/checker/tests/nullness/generics/Issue326.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.HashSet; import java.util.Set; +import org.checkerframework.checker.nullness.qual.Nullable; class Issue326 { { diff --git a/checker/tests/nullness/generics/KeyForPolyKeyFor.java b/checker/tests/nullness/generics/KeyForPolyKeyFor.java index 09c853fcd4d..b347d990b6a 100644 --- a/checker/tests/nullness/generics/KeyForPolyKeyFor.java +++ b/checker/tests/nullness/generics/KeyForPolyKeyFor.java @@ -1,10 +1,9 @@ package nullness.generics; -import org.checkerframework.checker.nullness.qual.*; - import java.util.HashMap; import java.util.Map; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; // test related to issue 429: https://github.com/typetools/checker-framework/issues/429 class KeyForPolyKeyFor { diff --git a/checker/tests/nullness/generics/MapLoop.java b/checker/tests/nullness/generics/MapLoop.java index 1a12758f61b..2fa775a8d7b 100644 --- a/checker/tests/nullness/generics/MapLoop.java +++ b/checker/tests/nullness/generics/MapLoop.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.Map; +import org.checkerframework.checker.nullness.qual.*; class MapLoop { void test1(Map map) { diff --git a/checker/tests/nullness/generics/MethodTypeVars3.java b/checker/tests/nullness/generics/MethodTypeVars3.java index 1a07feda852..fc801d4caab 100644 --- a/checker/tests/nullness/generics/MethodTypeVars3.java +++ b/checker/tests/nullness/generics/MethodTypeVars3.java @@ -1,11 +1,10 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import org.checkerframework.checker.nullness.qual.*; class MethodTypeVars3 { public static <@KeyFor("#1") T extends @KeyFor("#1") Object> Map> dominators( diff --git a/checker/tests/nullness/generics/MyMap.java b/checker/tests/nullness/generics/MyMap.java index f81f38ba34a..27f246da957 100644 --- a/checker/tests/nullness/generics/MyMap.java +++ b/checker/tests/nullness/generics/MyMap.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Map; +import org.checkerframework.checker.nullness.qual.Nullable; // Test case for Issue 173 // https://github.com/typetools/checker-framework/issues/173 diff --git a/checker/tests/nullness/generics/WildcardAnnos.java b/checker/tests/nullness/generics/WildcardAnnos.java index b0aa310ad77..81a42ba2921 100644 --- a/checker/tests/nullness/generics/WildcardAnnos.java +++ b/checker/tests/nullness/generics/WildcardAnnos.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.List; +import org.checkerframework.checker.nullness.qual.*; class WildcardAnnos { // :: error: (bound.type.incompatible) diff --git a/checker/tests/nullness/generics/WildcardOverride.java b/checker/tests/nullness/generics/WildcardOverride.java index 2aa1d08e103..a21cf4cd8f7 100644 --- a/checker/tests/nullness/generics/WildcardOverride.java +++ b/checker/tests/nullness/generics/WildcardOverride.java @@ -2,9 +2,8 @@ // see also framework/tests/all-systems/WildcardSuper2 -import org.checkerframework.checker.nullness.qual.NonNull; - import java.util.List; +import org.checkerframework.checker.nullness.qual.NonNull; interface ToOverride { // For nullness this should default to type @NonNull List { void test(List list) { test2(list.get(0)); } - void test2(A x) {} - ; + void test2(A x) {}; } diff --git a/checker/tests/nullness/init/Uninit11.java b/checker/tests/nullness/init/Uninit11.java index d4e83fcbb8f..2bee9da2538 100644 --- a/checker/tests/nullness/init/Uninit11.java +++ b/checker/tests/nullness/init/Uninit11.java @@ -1,10 +1,9 @@ +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.Unused; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - @SubtypeOf({}) @Target(ElementType.TYPE_USE) @interface DoesNotUseF {} diff --git a/checker/tests/nullness/java8/Issue1000.java b/checker/tests/nullness/java8/Issue1000.java index c8facb52127..d1674c5bed1 100644 --- a/checker/tests/nullness/java8/Issue1000.java +++ b/checker/tests/nullness/java8/Issue1000.java @@ -1,9 +1,8 @@ // Test case for issue #1000: // https://github.com/typetools/checker-framework/issues/1000 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Optional; +import org.checkerframework.checker.nullness.qual.Nullable; class Issue1000 { void illegalInstantiation(Optional<@Nullable String> arg) {} diff --git a/checker/tests/nullness/java8/Issue1046Java8.java b/checker/tests/nullness/java8/Issue1046Java8.java index b1a3a970cbe..d81060ca54e 100644 --- a/checker/tests/nullness/java8/Issue1046Java8.java +++ b/checker/tests/nullness/java8/Issue1046Java8.java @@ -2,10 +2,9 @@ // https://github.com/typetools/checker-framework/issues/1046 // Additonal test case: checker/tests/nullness/Issue1046.java -import org.checkerframework.checker.nullness.qual.UnknownKeyFor; - import java.util.List; import java.util.function.Function; +import org.checkerframework.checker.nullness.qual.UnknownKeyFor; class Issue1046Java8 { interface EnumMarker {} diff --git a/checker/tests/nullness/java8/Issue1633.java b/checker/tests/nullness/java8/Issue1633.java index 8b75804f4e4..14bf178aa36 100644 --- a/checker/tests/nullness/java8/Issue1633.java +++ b/checker/tests/nullness/java8/Issue1633.java @@ -1,13 +1,12 @@ // Test case for Issue 1633: // https://github.com/typetools/checker-framework/issues/1633 +import java.util.function.Supplier; import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.framework.qual.Covariant; -import java.util.function.Supplier; - class Issue1633 { // supplyNullable is a supplier that may return null. diff --git a/checker/tests/nullness/java8/Issue366.java b/checker/tests/nullness/java8/Issue366.java index a05c4b56fdc..60eb7ec39e5 100644 --- a/checker/tests/nullness/java8/Issue366.java +++ b/checker/tests/nullness/java8/Issue366.java @@ -3,11 +3,10 @@ // but amended for Issue 1098: // https://github.com/typetools/checker-framework/issues/1098 +import java.util.Optional; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.Optional; - class Issue366 { static Optional<@NonNull String> getPossiblyEmptyString() { return Optional.ofNullable(null); diff --git a/checker/tests/nullness/java8/Issue557.java b/checker/tests/nullness/java8/Issue557.java index 706f2ddffb6..9f55e47e387 100644 --- a/checker/tests/nullness/java8/Issue557.java +++ b/checker/tests/nullness/java8/Issue557.java @@ -1,9 +1,8 @@ // Test case for issue 557: // https://github.com/typetools/checker-framework/issues/557 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Optional; +import org.checkerframework.checker.nullness.qual.Nullable; @SuppressWarnings("nullness") class MyOpt { diff --git a/checker/tests/nullness/java8/Issue596.java b/checker/tests/nullness/java8/Issue596.java index 06610d741d5..7b6062641d1 100644 --- a/checker/tests/nullness/java8/Issue596.java +++ b/checker/tests/nullness/java8/Issue596.java @@ -1,9 +1,8 @@ // Test case for Issue 596: // https://github.com/typetools/checker-framework/issues/596 -import org.checkerframework.checker.nullness.qual.*; - import java.util.concurrent.atomic.AtomicReference; +import org.checkerframework.checker.nullness.qual.*; class Issue596 { diff --git a/checker/tests/nullness/java8/lambda/Issue3217.java b/checker/tests/nullness/java8/lambda/Issue3217.java index b1540e06687..1b92467642e 100644 --- a/checker/tests/nullness/java8/lambda/Issue3217.java +++ b/checker/tests/nullness/java8/lambda/Issue3217.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.function.Function; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue3217 { private final Function, Function> diff --git a/checker/tests/nullness/java8/lambda/Issue572.java b/checker/tests/nullness/java8/lambda/Issue572.java index 15e1a751fb1..06c91520b01 100644 --- a/checker/tests/nullness/java8/lambda/Issue572.java +++ b/checker/tests/nullness/java8/lambda/Issue572.java @@ -1,10 +1,9 @@ // Test case for issue #572: https://github.com/typetools/checker-framework/issues/572 +import java.util.function.BiFunction; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.function.BiFunction; - class ParenthesizedLambda { static C biApply(BiFunction f, A a, B b) { return f.apply(a, b); diff --git a/checker/tests/nullness/java8/lambda/Issue953bLambda.java b/checker/tests/nullness/java8/lambda/Issue953bLambda.java index 8c9031e6f65..1c331c62f66 100644 --- a/checker/tests/nullness/java8/lambda/Issue953bLambda.java +++ b/checker/tests/nullness/java8/lambda/Issue953bLambda.java @@ -1,11 +1,10 @@ // Test case for #953 // https://github.com/typetools/checker-framework/issues/953 -import org.checkerframework.checker.nullness.qual.NonNull; - import java.util.ArrayList; import java.util.List; import java.util.function.Function; +import org.checkerframework.checker.nullness.qual.NonNull; @SuppressWarnings("all") class Issue953bLambda { diff --git a/checker/tests/nullness/java8/lambda/ParametersInBodyGenerics.java b/checker/tests/nullness/java8/lambda/ParametersInBodyGenerics.java index b40a5975622..6cd3b3b659b 100644 --- a/checker/tests/nullness/java8/lambda/ParametersInBodyGenerics.java +++ b/checker/tests/nullness/java8/lambda/ParametersInBodyGenerics.java @@ -1,8 +1,7 @@ // Test that parameter annotations are correct in the body of a lambda -import org.checkerframework.checker.nullness.qual.*; - import java.util.List; +import org.checkerframework.checker.nullness.qual.*; class ParametersInBodyGenerics { interface NullableConsumer { diff --git a/checker/tests/nullness/java8/lambda/RefinedLocalInLambda.java b/checker/tests/nullness/java8/lambda/RefinedLocalInLambda.java index f723d6dc61f..4dec563592c 100644 --- a/checker/tests/nullness/java8/lambda/RefinedLocalInLambda.java +++ b/checker/tests/nullness/java8/lambda/RefinedLocalInLambda.java @@ -1,11 +1,10 @@ // Test case for issue #1248: // https://github.com/typetools/checker-framework/issues/1248 +import java.util.function.Predicate; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.function.Predicate; - public class RefinedLocalInLambda { public static void main(String[] args) { diff --git a/checker/tests/nullness/java8inference/Issue1032.java b/checker/tests/nullness/java8inference/Issue1032.java index a5c3f67e3b3..17573cfba8d 100644 --- a/checker/tests/nullness/java8inference/Issue1032.java +++ b/checker/tests/nullness/java8inference/Issue1032.java @@ -1,9 +1,8 @@ // Test case for issue #1032: // https://github.com/typetools/checker-framework/issues/1032 -import org.checkerframework.checker.nullness.qual.*; - import java.util.stream.Stream; +import org.checkerframework.checker.nullness.qual.*; class Issue1032 { diff --git a/checker/tests/nullness/java8inference/Issue1630.java b/checker/tests/nullness/java8inference/Issue1630.java index eafad10b2b9..838dc7e4c90 100644 --- a/checker/tests/nullness/java8inference/Issue1630.java +++ b/checker/tests/nullness/java8inference/Issue1630.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +import org.checkerframework.checker.nullness.qual.Nullable; class Issue1630 { static @Nullable String toString(Object o) { diff --git a/checker/tests/nullness/java8inference/Issue1818.java b/checker/tests/nullness/java8inference/Issue1818.java index d5a02c112aa..e1dfa574991 100644 --- a/checker/tests/nullness/java8inference/Issue1818.java +++ b/checker/tests/nullness/java8inference/Issue1818.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.List; import java.util.function.Consumer; +import org.checkerframework.checker.nullness.qual.Nullable; class Issue1818 { void f() { diff --git a/checker/tests/nullness/java8inference/Issue1954.java b/checker/tests/nullness/java8inference/Issue1954.java index 85129b1e55d..edc7e8123b5 100644 --- a/checker/tests/nullness/java8inference/Issue1954.java +++ b/checker/tests/nullness/java8inference/Issue1954.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.nullness.qual.*; - import java.util.function.*; import java.util.stream.*; +import org.checkerframework.checker.nullness.qual.*; // @skip-test public class Issue1954 { diff --git a/checker/tests/nullness/java8inference/Issue2719.java b/checker/tests/nullness/java8inference/Issue2719.java index 1562e63207d..1f3555ddcf3 100644 --- a/checker/tests/nullness/java8inference/Issue2719.java +++ b/checker/tests/nullness/java8inference/Issue2719.java @@ -1,8 +1,7 @@ import static java.util.Arrays.asList; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue2719 { public static void main(String[] args) { diff --git a/checker/tests/nullness/java8inference/Issue402.java b/checker/tests/nullness/java8inference/Issue402.java index 63e0e0ef797..ae30148d5b5 100644 --- a/checker/tests/nullness/java8inference/Issue402.java +++ b/checker/tests/nullness/java8inference/Issue402.java @@ -2,7 +2,6 @@ // https://github.com/typetools/checker-framework/issues/979 import java.util.Comparator; - import javax.annotation.CheckForNull; import javax.annotation.Nullable; diff --git a/checker/tests/nullness/java8inference/Issue887.java b/checker/tests/nullness/java8inference/Issue887.java index 6bd83931ea6..86783e8170b 100644 --- a/checker/tests/nullness/java8inference/Issue887.java +++ b/checker/tests/nullness/java8inference/Issue887.java @@ -2,9 +2,8 @@ // https://github.com/typetools/checker-framework/issues/887 // Additional test case in framework/tests/all-systems/Issue887.java -import org.checkerframework.checker.nullness.qual.*; - import java.util.List; +import org.checkerframework.checker.nullness.qual.*; public abstract class Issue887 { void test() { diff --git a/checker/tests/nullness/java8inference/Issue953bInference.java b/checker/tests/nullness/java8inference/Issue953bInference.java index e9081a9b140..f7a15391729 100644 --- a/checker/tests/nullness/java8inference/Issue953bInference.java +++ b/checker/tests/nullness/java8inference/Issue953bInference.java @@ -1,10 +1,9 @@ // Test case that was submitted in Issue 953, but was combined with Issue 979 // https://github.com/typetools/checker-framework/issues/979 -import org.checkerframework.checker.nullness.qual.NonNull; - import java.util.*; import java.util.function.Function; +import org.checkerframework.checker.nullness.qual.NonNull; public class Issue953bInference { private static List> strs = new ArrayList<>(); diff --git a/checker/tests/nullness/java8inference/Issue980.java b/checker/tests/nullness/java8inference/Issue980.java index f3919a6e3b3..498332f184c 100644 --- a/checker/tests/nullness/java8inference/Issue980.java +++ b/checker/tests/nullness/java8inference/Issue980.java @@ -1,11 +1,10 @@ // Test case that was submitted in Issue 402, but was combined with Issue 979 // https://github.com/typetools/checker-framework/issues/979 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.checkerframework.checker.nullness.qual.Nullable; public class Issue980 { diff --git a/checker/tests/nullness/java8inference/SimpleLambda.java b/checker/tests/nullness/java8inference/SimpleLambda.java index 7bae745c3b1..ebb05f0a9ca 100644 --- a/checker/tests/nullness/java8inference/SimpleLambda.java +++ b/checker/tests/nullness/java8inference/SimpleLambda.java @@ -1,10 +1,9 @@ // @skip-test until Issue 979 is fixed. +import java.util.function.Supplier; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.function.Supplier; - public class SimpleLambda { T perform(Supplier p) { return p.get(); diff --git a/checker/tests/nullness/jdkannotations/HashtableTest.java b/checker/tests/nullness/jdkannotations/HashtableTest.java index 6f045c23d98..30416b563db 100644 --- a/checker/tests/nullness/jdkannotations/HashtableTest.java +++ b/checker/tests/nullness/jdkannotations/HashtableTest.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Hashtable; +import org.checkerframework.checker.nullness.qual.Nullable; class HashtableTest { diff --git a/checker/tests/nullness/jdkannotations/Issue1142.java b/checker/tests/nullness/jdkannotations/Issue1142.java index 74589af0627..fce9a401d14 100644 --- a/checker/tests/nullness/jdkannotations/Issue1142.java +++ b/checker/tests/nullness/jdkannotations/Issue1142.java @@ -1,8 +1,7 @@ // Issue 1142 https://github.com/typetools/checker-framework/issues/1142 -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.concurrent.ConcurrentHashMap; +import org.checkerframework.checker.nullness.qual.Nullable; class Issue1142 { diff --git a/checker/tests/nullness/jdkannotations/TreeSetTest.java b/checker/tests/nullness/jdkannotations/TreeSetTest.java index 5c7d3ba8ec5..7134c829b38 100644 --- a/checker/tests/nullness/jdkannotations/TreeSetTest.java +++ b/checker/tests/nullness/jdkannotations/TreeSetTest.java @@ -3,9 +3,8 @@ // @skip-test until we fix the issue -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.TreeSet; +import org.checkerframework.checker.nullness.qual.Nullable; class TreeSetTest { diff --git a/checker/tests/optional/JdkCheck.java b/checker/tests/optional/JdkCheck.java index 61c0aeff340..aff34b11077 100644 --- a/checker/tests/optional/JdkCheck.java +++ b/checker/tests/optional/JdkCheck.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.optional.qual.Present; - import java.util.Optional; import java.util.function.Supplier; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.optional.qual.Present; /** Test JDK annotations. */ @SuppressWarnings("optional.parameter") diff --git a/checker/tests/optional/Marks5.java b/checker/tests/optional/Marks5.java index e50ba2e13f6..a1b70902eaf 100644 --- a/checker/tests/optional/Marks5.java +++ b/checker/tests/optional/Marks5.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.optional.qual.Present; - import java.math.BigDecimal; import java.util.Optional; import java.util.stream.Stream; +import org.checkerframework.checker.optional.qual.Present; /** * Test case for rule #5: "If an Optional chain has a nested Optional chain, or has an intermediate diff --git a/checker/tests/regex/AnnotatedTypeParams3.java b/checker/tests/regex/AnnotatedTypeParams3.java index 96cb70cc4e4..1a81942ae93 100644 --- a/checker/tests/regex/AnnotatedTypeParams3.java +++ b/checker/tests/regex/AnnotatedTypeParams3.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.regex.qual.Regex; - import java.lang.annotation.Annotation; import java.lang.reflect.*; +import org.checkerframework.checker.regex.qual.Regex; class AnnotatedTypeParams3 { private T safeGetAnnotation(Field f, Class annotationClass) { diff --git a/checker/tests/regex/Continue.java b/checker/tests/regex/Continue.java index 7096fb83b1d..db9201036a0 100644 --- a/checker/tests/regex/Continue.java +++ b/checker/tests/regex/Continue.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.regex.RegexUtil; - import java.util.regex.Pattern; +import org.checkerframework.checker.regex.RegexUtil; class Continue { diff --git a/checker/tests/regex/GenericsBoundsRange.java b/checker/tests/regex/GenericsBoundsRange.java index 01ec959e19f..af044be70fb 100644 --- a/checker/tests/regex/GenericsBoundsRange.java +++ b/checker/tests/regex/GenericsBoundsRange.java @@ -1,9 +1,8 @@ package regex; -import org.checkerframework.checker.regex.qual.Regex; - import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.checkerframework.checker.regex.qual.Regex; /** Designed to test whether or not a bounds range of generics actually works. */ public class GenericsBoundsRange<@Regex(3) T extends @Regex(1) String> { diff --git a/checker/tests/regex/GroupCounts.java b/checker/tests/regex/GroupCounts.java index e1f37699e00..2c62cf41a1d 100644 --- a/checker/tests/regex/GroupCounts.java +++ b/checker/tests/regex/GroupCounts.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.regex.RegexUtil; -import org.checkerframework.checker.regex.qual.Regex; - import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.checkerframework.checker.regex.RegexUtil; +import org.checkerframework.checker.regex.qual.Regex; public class GroupCounts { void testGroupCount() { diff --git a/checker/tests/regex/InvariantTypes.java b/checker/tests/regex/InvariantTypes.java index 1b8c80b20d2..87517eaf844 100644 --- a/checker/tests/regex/InvariantTypes.java +++ b/checker/tests/regex/InvariantTypes.java @@ -1,11 +1,10 @@ -import org.checkerframework.checker.regex.qual.*; -import org.checkerframework.framework.type.AnnotatedTypeMirror; - import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; +import org.checkerframework.checker.regex.qual.*; +import org.checkerframework.framework.type.AnnotatedTypeMirror; public class InvariantTypes { String[] sa = {"a"}; diff --git a/checker/tests/regex/Issue3267.java b/checker/tests/regex/Issue3267.java index 8b968d59e5a..cb754a5fec3 100644 --- a/checker/tests/regex/Issue3267.java +++ b/checker/tests/regex/Issue3267.java @@ -1,9 +1,8 @@ // Test case for issue #3267: // https://github.com/typetools/checker-framework/issues/3267 -import org.checkerframework.checker.regex.RegexUtil; - import java.util.regex.Pattern; +import org.checkerframework.checker.regex.RegexUtil; class Issue3267 { void foo(String s) { diff --git a/checker/tests/regex/MatcherGroupCount.java b/checker/tests/regex/MatcherGroupCount.java index 12397fe588d..c5ecb64e606 100644 --- a/checker/tests/regex/MatcherGroupCount.java +++ b/checker/tests/regex/MatcherGroupCount.java @@ -1,9 +1,8 @@ // Test case for Issue 291 // https://github.com/typetools/checker-framework/issues/291 -import org.checkerframework.checker.regex.RegexUtil; - import java.util.regex.*; +import org.checkerframework.checker.regex.RegexUtil; public class MatcherGroupCount { public static void main(String[] args) { diff --git a/checker/tests/regex/RawTypeTest.java b/checker/tests/regex/RawTypeTest.java index db40b21dc07..8f628cb7363 100644 --- a/checker/tests/regex/RawTypeTest.java +++ b/checker/tests/regex/RawTypeTest.java @@ -1,9 +1,8 @@ -import org.checkerframework.checker.regex.qual.*; - import java.lang.ref.WeakReference; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.List; +import org.checkerframework.checker.regex.qual.*; class RawTypeTest { diff --git a/checker/tests/regex/SimpleRegex.java b/checker/tests/regex/SimpleRegex.java index 982d63cbe06..f480da1018c 100644 --- a/checker/tests/regex/SimpleRegex.java +++ b/checker/tests/regex/SimpleRegex.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.regex.qual.Regex; - import java.util.regex.Pattern; +import org.checkerframework.checker.regex.qual.Regex; public class SimpleRegex { diff --git a/checker/tests/regex/TestIsRegex.java b/checker/tests/regex/TestIsRegex.java index 90676a287ed..457bb2df25a 100644 --- a/checker/tests/regex/TestIsRegex.java +++ b/checker/tests/regex/TestIsRegex.java @@ -1,8 +1,7 @@ -import org.checkerframework.checker.regex.RegexUtil; -import org.checkerframework.checker.regex.qual.*; - import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.checkerframework.checker.regex.RegexUtil; +import org.checkerframework.checker.regex.qual.*; class TestIsRegex { void test1(String str1) throws Exception { diff --git a/checker/tests/regex/TypeParamSubtype.java b/checker/tests/regex/TypeParamSubtype.java index 91a48195df1..35ab3af6b2e 100644 --- a/checker/tests/regex/TypeParamSubtype.java +++ b/checker/tests/regex/TypeParamSubtype.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.regex.qual.Regex; - import java.util.Collection; +import org.checkerframework.checker.regex.qual.Regex; class TypeParamSubtype { // These are legal because null has type @Regex String diff --git a/checker/tests/signature/ArraysAsList.java b/checker/tests/signature/ArraysAsList.java index cd20e5d5cfa..6a0e829c2bc 100644 --- a/checker/tests/signature/ArraysAsList.java +++ b/checker/tests/signature/ArraysAsList.java @@ -1,7 +1,6 @@ -import org.checkerframework.checker.signature.qual.*; - import java.util.Arrays; import java.util.List; +import org.checkerframework.checker.signature.qual.*; public class ArraysAsList { diff --git a/checker/tests/signature/DiamondTest.java b/checker/tests/signature/DiamondTest.java index 04402b728fd..8f9fbe60a9e 100644 --- a/checker/tests/signature/DiamondTest.java +++ b/checker/tests/signature/DiamondTest.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.signature.qual.*; - import java.util.ArrayList; +import org.checkerframework.checker.signature.qual.*; public class DiamondTest { diff --git a/checker/tests/signature/PolySignatureTest2.java b/checker/tests/signature/PolySignatureTest2.java index 19a6a906779..3b0ff886c48 100644 --- a/checker/tests/signature/PolySignatureTest2.java +++ b/checker/tests/signature/PolySignatureTest2.java @@ -1,10 +1,9 @@ // Test for stub files and https://tinyurl.com/cfissue/658 . // Commented in part because that issue is not yet fixed. -import org.checkerframework.checker.signature.qual.*; - import javax.lang.model.element.Name; import javax.lang.model.element.TypeElement; +import org.checkerframework.checker.signature.qual.*; public class PolySignatureTest2 { diff --git a/checker/tests/signedness/Utils.java b/checker/tests/signedness/Utils.java index 6e9bb2a5942..15b47c8b51d 100644 --- a/checker/tests/signedness/Utils.java +++ b/checker/tests/signedness/Utils.java @@ -1,8 +1,7 @@ +import java.nio.ByteBuffer; import org.checkerframework.checker.signedness.SignednessUtil; import org.checkerframework.checker.signedness.qual.*; -import java.nio.ByteBuffer; - public class Utils { public void getTests( diff --git a/checker/tests/stubparser-tests/MultidimentionalArrayAnnotationTest.java b/checker/tests/stubparser-tests/MultidimentionalArrayAnnotationTest.java index f28ebeaed3d..9060c534fb7 100644 --- a/checker/tests/stubparser-tests/MultidimentionalArrayAnnotationTest.java +++ b/checker/tests/stubparser-tests/MultidimentionalArrayAnnotationTest.java @@ -185,41 +185,33 @@ void callTomethod8() { Object[][][] method1() { return new Object[numb][numb][numb]; - } - ; + }; Object @Nullable [][][] method2() { return new Object[numb][numb][numb]; - } - ; + }; Object[] @Nullable [][] method3() { return new Object[numb][numb][numb]; - } - ; + }; Object[][] @Nullable [] method4() { return new Object[numb][numb][numb]; - } - ; + }; Object @Nullable [] @Nullable [][] method5() { return new Object[numb][numb][numb]; - } - ; + }; Object @Nullable [][] @Nullable [] method6() { return new Object[numb][numb][numb]; - } - ; + }; Object[] @Nullable [] @Nullable [] method7() { return new Object[numb][numb][numb]; - } - ; + }; Object @Nullable [] @Nullable [] @Nullable [] method8() { return new Object[numb][numb][numb]; - } - ; + }; } diff --git a/checker/tests/tainting/Buffer.java b/checker/tests/tainting/Buffer.java index c3d2b1bc534..c30c560a22c 100644 --- a/checker/tests/tainting/Buffer.java +++ b/checker/tests/tainting/Buffer.java @@ -1,11 +1,10 @@ +import java.util.ArrayList; +import java.util.List; import org.checkerframework.checker.tainting.qual.PolyTainted; import org.checkerframework.checker.tainting.qual.Tainted; import org.checkerframework.checker.tainting.qual.Untainted; import org.checkerframework.framework.qual.HasQualifierParameter; -import java.util.ArrayList; -import java.util.List; - @HasQualifierParameter(Tainted.class) public class Buffer { final List<@PolyTainted String> list = new ArrayList<>(); diff --git a/checker/tests/tainting/HasQualParamDefaults.java b/checker/tests/tainting/HasQualParamDefaults.java index 6595cc3129f..e568139cac5 100644 --- a/checker/tests/tainting/HasQualParamDefaults.java +++ b/checker/tests/tainting/HasQualParamDefaults.java @@ -1,11 +1,10 @@ +import java.util.ArrayList; +import java.util.List; import org.checkerframework.checker.tainting.qual.PolyTainted; import org.checkerframework.checker.tainting.qual.Tainted; import org.checkerframework.checker.tainting.qual.Untainted; import org.checkerframework.framework.qual.HasQualifierParameter; -import java.util.ArrayList; -import java.util.List; - public class HasQualParamDefaults { @HasQualifierParameter(Tainted.class) public class Buffer { diff --git a/checker/tests/tainting/Issue1111.java b/checker/tests/tainting/Issue1111.java index 71dc6011259..a665026d6c0 100644 --- a/checker/tests/tainting/Issue1111.java +++ b/checker/tests/tainting/Issue1111.java @@ -2,9 +2,8 @@ // https://github.com/typetools/checker-framework/issues/1111 // Additional test case in framework/tests/all-systems/Issue1111.java -import org.checkerframework.checker.tainting.qual.Untainted; - import java.util.List; +import org.checkerframework.checker.tainting.qual.Untainted; public class Issue1111 { void foo(Box box, List list) { diff --git a/checker/tests/tainting/Issue1705.java b/checker/tests/tainting/Issue1705.java index 871b788feb6..4ca7a017961 100644 --- a/checker/tests/tainting/Issue1705.java +++ b/checker/tests/tainting/Issue1705.java @@ -1,11 +1,10 @@ // Test case for Issue 1705 // https://github.com/typetools/checker-framework/issues/1705 +import java.util.function.Function; import org.checkerframework.checker.tainting.qual.PolyTainted; import org.checkerframework.checker.tainting.qual.Untainted; -import java.util.function.Function; - public class Issue1705 { static class MySecondClass { @PolyTainted MySecondClass doOnComplete(@PolyTainted MySecondClass this) { diff --git a/checker/tests/tainting/Issue1942.java b/checker/tests/tainting/Issue1942.java index b9087f418f5..ff6b70d8aff 100644 --- a/checker/tests/tainting/Issue1942.java +++ b/checker/tests/tainting/Issue1942.java @@ -1,6 +1,5 @@ -import org.checkerframework.checker.tainting.qual.Untainted; - import java.util.List; +import org.checkerframework.checker.tainting.qual.Untainted; public class Issue1942 { public interface LoadableExpression {} diff --git a/checker/tests/tainting/TaintingDiamondInference.java b/checker/tests/tainting/TaintingDiamondInference.java index 59ece7471a2..fba1401d45c 100644 --- a/checker/tests/tainting/TaintingDiamondInference.java +++ b/checker/tests/tainting/TaintingDiamondInference.java @@ -1,9 +1,8 @@ // Test case for issue #660: https://github.com/typetools/checker-framework/issues/660 -import org.checkerframework.checker.tainting.qual.Untainted; - import java.util.Set; import java.util.TreeSet; +import org.checkerframework.checker.tainting.qual.Untainted; public class TaintingDiamondInference { diff --git a/checker/tests/tainting/TaintingPolyFields.java b/checker/tests/tainting/TaintingPolyFields.java index 52fd672239f..75e09fda022 100644 --- a/checker/tests/tainting/TaintingPolyFields.java +++ b/checker/tests/tainting/TaintingPolyFields.java @@ -1,9 +1,8 @@ +import java.util.List; import org.checkerframework.checker.tainting.qual.PolyTainted; import org.checkerframework.checker.tainting.qual.Tainted; import org.checkerframework.checker.tainting.qual.Untainted; -import java.util.List; - public class TaintingPolyFields { // :: error: (invalid.polymorphic.qualifier.use) @PolyTainted Integer x; diff --git a/checker/tests/value-index-interaction/MethodOverrides3.java b/checker/tests/value-index-interaction/MethodOverrides3.java index f0a8ecfd5bb..e45653984fb 100644 --- a/checker/tests/value-index-interaction/MethodOverrides3.java +++ b/checker/tests/value-index-interaction/MethodOverrides3.java @@ -1,12 +1,11 @@ // This class should not issues any errors, since these annotations are identical to the ones // on java.io.PrintWriter in the Index JDK. -import org.checkerframework.checker.index.qual.IndexFor; -import org.checkerframework.checker.index.qual.IndexOrHigh; - import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; +import org.checkerframework.checker.index.qual.IndexFor; +import org.checkerframework.checker.index.qual.IndexOrHigh; public class MethodOverrides3 extends PrintWriter { public MethodOverrides3(File file) throws FileNotFoundException { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/AbstractAnalysis.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/AbstractAnalysis.java index 92c34754433..ddf78c0bfd7 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/AbstractAnalysis.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/AbstractAnalysis.java @@ -3,7 +3,14 @@ import com.sun.source.tree.ClassTree; import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; - +import java.util.Comparator; +import java.util.HashMap; +import java.util.IdentityHashMap; +import java.util.Map; +import java.util.Objects; +import java.util.PriorityQueue; +import java.util.Set; +import javax.lang.model.element.Element; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -18,16 +25,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.ElementUtils; -import java.util.Comparator; -import java.util.HashMap; -import java.util.IdentityHashMap; -import java.util.Map; -import java.util.Objects; -import java.util.PriorityQueue; -import java.util.Set; - -import javax.lang.model.element.Element; - /** * Implementation of common features for {@link BackwardAnalysisImpl} and {@link * ForwardAnalysisImpl}. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/Analysis.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/Analysis.java index ab3b956e0d6..476c61a75cd 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/Analysis.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/Analysis.java @@ -1,13 +1,12 @@ package org.checkerframework.dataflow.analysis; +import java.util.IdentityHashMap; +import java.util.Map; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.ControlFlowGraph; import org.checkerframework.dataflow.cfg.block.Block; import org.checkerframework.dataflow.cfg.node.Node; -import java.util.IdentityHashMap; -import java.util.Map; - /** * This interface defines a dataflow analysis, given a control flow graph and a transfer function. A * dataflow analysis has a direction, either forward or backward. The direction of corresponding diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/AnalysisResult.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/AnalysisResult.java index c367d1f2ee2..e809776792b 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/AnalysisResult.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/AnalysisResult.java @@ -2,7 +2,12 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.UnaryTree; - +import java.util.HashMap; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.Element; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.block.Block; import org.checkerframework.dataflow.cfg.block.ExceptionBlock; @@ -11,14 +16,6 @@ import org.checkerframework.dataflow.cfg.node.Node; import org.checkerframework.javacutil.BugInCF; -import java.util.HashMap; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.Element; - /** * An {@link AnalysisResult} represents the result of a org.checkerframework.dataflow analysis by * providing the abstract values given a node or a tree. Note that it does not keep track of custom diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/BackwardAnalysisImpl.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/BackwardAnalysisImpl.java index 807dcb57d42..79726a390fb 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/BackwardAnalysisImpl.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/BackwardAnalysisImpl.java @@ -1,5 +1,9 @@ package org.checkerframework.dataflow.analysis; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.RequiresNonNull; import org.checkerframework.dataflow.analysis.Store.FlowRule; @@ -16,11 +20,6 @@ import org.checkerframework.dataflow.cfg.node.ReturnNode; import org.checkerframework.javacutil.BugInCF; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; - /** * An implementation of a backward analysis to solve a org.checkerframework.dataflow problem given a * control flow graph and a backward transfer function. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/BackwardTransferFunction.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/BackwardTransferFunction.java index 1ff47514369..118fcc01606 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/BackwardTransferFunction.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/BackwardTransferFunction.java @@ -1,11 +1,10 @@ package org.checkerframework.dataflow.analysis; +import java.util.List; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.UnderlyingAST; import org.checkerframework.dataflow.cfg.node.ReturnNode; -import java.util.List; - /** * Interface of a backward transfer function for the abstract interpretation used for the backward * flow analysis. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ConditionalTransferResult.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ConditionalTransferResult.java index 2b152f77ecd..ffc60bfc769 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ConditionalTransferResult.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ConditionalTransferResult.java @@ -1,11 +1,9 @@ package org.checkerframework.dataflow.analysis; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Map; import java.util.StringJoiner; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** * Implementation of a {@link TransferResult} with two non-exceptional store; one for the 'then' diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/FlowExpressions.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/FlowExpressions.java index 88adfd4152d..6fcfc44abc2 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/FlowExpressions.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/FlowExpressions.java @@ -15,7 +15,17 @@ import com.sun.tools.javac.code.Symbol.VarSymbol; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.Pretty; - +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.node.ArrayAccessNode; import org.checkerframework.dataflow.cfg.node.ArrayCreationNode; @@ -40,19 +50,6 @@ import org.checkerframework.javacutil.TypeAnnotationUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; - -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** * Collection of classes and helper functions to represent Java expressions about which the * org.checkerframework.dataflow analysis can possibly infer facts. Expressions include: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardAnalysis.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardAnalysis.java index 2859eac19b2..362e3e37e15 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardAnalysis.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardAnalysis.java @@ -1,11 +1,10 @@ package org.checkerframework.dataflow.analysis; +import java.util.List; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.node.ReturnNode; import org.checkerframework.javacutil.Pair; -import java.util.List; - /** * This interface defines a forward analysis, given a control flow graph and a forward transfer * function. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardAnalysisImpl.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardAnalysisImpl.java index 3fe932d575e..ba7abd924dc 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardAnalysisImpl.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardAnalysisImpl.java @@ -3,7 +3,12 @@ import com.sun.source.tree.LambdaExpressionTree; import com.sun.source.tree.MethodTree; import com.sun.source.tree.VariableTree; - +import java.util.ArrayList; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.RequiresNonNull; import org.checkerframework.dataflow.cfg.ControlFlowGraph; @@ -22,14 +27,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.Pair; -import java.util.ArrayList; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.type.TypeMirror; - /** * An implementation of a forward analysis to solve a org.checkerframework.dataflow problem given a * control flow graph and a forward transfer function. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardTransferFunction.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardTransferFunction.java index 2e300e79f7d..da48b0b2242 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardTransferFunction.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/ForwardTransferFunction.java @@ -1,11 +1,10 @@ package org.checkerframework.dataflow.analysis; +import java.util.List; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.UnderlyingAST; import org.checkerframework.dataflow.cfg.node.LocalVariableNode; -import java.util.List; - /** * Interface of a forward transfer function for the abstract interpretation used for the forward * flow analysis. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/RegularTransferResult.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/RegularTransferResult.java index 7082d5d84f4..b281b4b31a5 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/RegularTransferResult.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/RegularTransferResult.java @@ -1,11 +1,9 @@ package org.checkerframework.dataflow.analysis; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Map; import java.util.StringJoiner; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** * Implementation of a {@link TransferResult} with just one non-exceptional store. The result of diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/TransferInput.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/TransferInput.java index e260ac0fc6c..6682873967d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/TransferInput.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/TransferInput.java @@ -1,10 +1,9 @@ package org.checkerframework.dataflow.analysis; +import java.util.Objects; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.node.Node; -import java.util.Objects; - /** * {@code TransferInput} is used as the input type of the individual transfer functions of a {@link * ForwardTransferFunction} or a {@link BackwardTransferFunction}. It also contains a reference to diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/TransferResult.java b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/TransferResult.java index bce6497bc78..ba88e4aac22 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/analysis/TransferResult.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/analysis/TransferResult.java @@ -1,10 +1,8 @@ package org.checkerframework.dataflow.analysis; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Map; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** * {@code TransferResult} is used as the result type of the individual transfer functions of a diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/AbstractCFGVisualizer.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/AbstractCFGVisualizer.java index 42c6c228f70..e10175c3600 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/AbstractCFGVisualizer.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/AbstractCFGVisualizer.java @@ -1,5 +1,16 @@ package org.checkerframework.dataflow.cfg; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import java.util.StringJoiner; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.AbstractValue; @@ -17,19 +28,6 @@ import org.checkerframework.dataflow.cfg.node.Node; import org.checkerframework.javacutil.BugInCF; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collections; -import java.util.IdentityHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Queue; -import java.util.Set; -import java.util.StringJoiner; - -import javax.lang.model.type.TypeMirror; - /** * This abstract class makes implementing a {@link CFGVisualizer} easier. Some of the methods in * {@link CFGVisualizer} are already implemented in this abstract class, but can be overridden if diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGBuilder.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGBuilder.java index f5a2acce554..f42d5a1d463 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGBuilder.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGBuilder.java @@ -63,7 +63,34 @@ import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.tree.TreeInfo; import com.sun.tools.javac.util.Context; - +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Arrays; +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 java.util.StringJoiner; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Name; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.PrimitiveType; +import javax.lang.model.type.ReferenceType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.TypeVariable; +import javax.lang.model.type.UnionType; +import javax.lang.model.util.Elements; +import javax.lang.model.util.Types; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.Store; import org.checkerframework.dataflow.cfg.CFGBuilder.ExtendedNode.ExtendedNodeType; @@ -160,36 +187,6 @@ import org.checkerframework.javacutil.TypesUtils; import org.checkerframework.javacutil.trees.TreeBuilder; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Arrays; -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 java.util.StringJoiner; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Name; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.ArrayType; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.PrimitiveType; -import javax.lang.model.type.ReferenceType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.type.TypeVariable; -import javax.lang.model.type.UnionType; -import javax.lang.model.util.Elements; -import javax.lang.model.util.Types; - /** * Builds the control flow graph of some Java code (either a method, or an arbitrary statement). * diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGProcessor.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGProcessor.java index 637455b65d3..a5a4ef35174 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGProcessor.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGProcessor.java @@ -5,18 +5,16 @@ import com.sun.source.tree.MethodTree; import com.sun.source.util.TreePathScanner; import com.sun.tools.javac.util.Log; - +import javax.annotation.processing.SupportedAnnotationTypes; +import javax.lang.model.SourceVersion; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.javacutil.BasicTypeProcessor; import org.checkerframework.javacutil.TreeUtils; -import javax.annotation.processing.SupportedAnnotationTypes; -import javax.lang.model.SourceVersion; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; - /** * Generate the control flow graph of a given method in a given class. See {@link * CFGVisualizeLauncher} for example usage. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGVisualizeLauncher.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGVisualizeLauncher.java index 06aa3fbbeb6..b0739dc9cfa 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGVisualizeLauncher.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGVisualizeLauncher.java @@ -5,23 +5,20 @@ import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.Options; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.analysis.AbstractValue; -import org.checkerframework.dataflow.analysis.Analysis; -import org.checkerframework.dataflow.analysis.Store; -import org.checkerframework.dataflow.analysis.TransferFunction; -import org.checkerframework.dataflow.cfg.CFGProcessor.CFGProcessResult; - import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.io.PrintStream; import java.util.HashMap; import java.util.Map; - import javax.tools.JavaFileManager; import javax.tools.JavaFileObject; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.analysis.AbstractValue; +import org.checkerframework.dataflow.analysis.Analysis; +import org.checkerframework.dataflow.analysis.Store; +import org.checkerframework.dataflow.analysis.TransferFunction; +import org.checkerframework.dataflow.cfg.CFGProcessor.CFGProcessResult; /** * Launcher to generate the DOT or String representation of the control flow graph of a given method diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java index 37afa4144c8..370254d1215 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java @@ -1,5 +1,6 @@ package org.checkerframework.dataflow.cfg; +import java.util.Map; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.AbstractValue; import org.checkerframework.dataflow.analysis.Analysis; @@ -11,8 +12,6 @@ import org.checkerframework.dataflow.cfg.block.SpecialBlock; import org.checkerframework.dataflow.cfg.node.Node; -import java.util.Map; - /** * Perform some visualization on a control flow graph. The particular operations depend on the * implementation. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/ControlFlowGraph.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/ControlFlowGraph.java index 267f443e23a..abff30922fa 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/ControlFlowGraph.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/ControlFlowGraph.java @@ -5,19 +5,6 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; import com.sun.source.tree.UnaryTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.cfg.block.Block; -import org.checkerframework.dataflow.cfg.block.Block.BlockType; -import org.checkerframework.dataflow.cfg.block.ConditionalBlock; -import org.checkerframework.dataflow.cfg.block.ExceptionBlock; -import org.checkerframework.dataflow.cfg.block.SingleSuccessorBlock; -import org.checkerframework.dataflow.cfg.block.SpecialBlock; -import org.checkerframework.dataflow.cfg.block.SpecialBlockImpl; -import org.checkerframework.dataflow.cfg.node.AssignmentNode; -import org.checkerframework.dataflow.cfg.node.Node; -import org.checkerframework.dataflow.cfg.node.ReturnNode; - import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections; @@ -29,6 +16,17 @@ import java.util.Map; import java.util.Queue; import java.util.Set; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.cfg.block.Block; +import org.checkerframework.dataflow.cfg.block.Block.BlockType; +import org.checkerframework.dataflow.cfg.block.ConditionalBlock; +import org.checkerframework.dataflow.cfg.block.ExceptionBlock; +import org.checkerframework.dataflow.cfg.block.SingleSuccessorBlock; +import org.checkerframework.dataflow.cfg.block.SpecialBlock; +import org.checkerframework.dataflow.cfg.block.SpecialBlockImpl; +import org.checkerframework.dataflow.cfg.node.AssignmentNode; +import org.checkerframework.dataflow.cfg.node.Node; +import org.checkerframework.dataflow.cfg.node.ReturnNode; /** A control flow graph (CFG for short) of a single method. */ public class ControlFlowGraph { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/DOTCFGVisualizer.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/DOTCFGVisualizer.java index f5a975e838e..0207495c78a 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/DOTCFGVisualizer.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/DOTCFGVisualizer.java @@ -1,7 +1,14 @@ package org.checkerframework.dataflow.cfg; import com.sun.tools.javac.tree.JCTree; - +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.util.HashMap; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; import org.checkerframework.checker.nullness.qual.KeyFor; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.AbstractValue; @@ -18,15 +25,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.UserError; -import java.io.BufferedWriter; -import java.io.FileWriter; -import java.io.IOException; -import java.util.HashMap; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** Generate a graph description in the DOT language of a control graph. */ @SuppressWarnings("initialization.fields.uninitialized") // uses init method public class DOTCFGVisualizer< diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/StringCFGVisualizer.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/StringCFGVisualizer.java index c3b832eb4bd..f257c4dde77 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/StringCFGVisualizer.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/StringCFGVisualizer.java @@ -1,5 +1,11 @@ package org.checkerframework.dataflow.cfg; +import java.util.HashMap; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringJoiner; import org.checkerframework.checker.nullness.qual.KeyFor; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.AbstractValue; @@ -11,13 +17,6 @@ import org.checkerframework.dataflow.cfg.block.ConditionalBlock; import org.checkerframework.dataflow.cfg.block.SpecialBlock; -import java.util.HashMap; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.StringJoiner; - /** Generate the String representation of a control flow graph. */ public class StringCFGVisualizer< V extends AbstractValue, S extends Store, T extends TransferFunction> diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/UnderlyingAST.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/UnderlyingAST.java index dca2917cd65..73150bc4666 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/UnderlyingAST.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/UnderlyingAST.java @@ -4,7 +4,6 @@ import com.sun.source.tree.LambdaExpressionTree; import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; - import org.checkerframework.javacutil.SystemUtil; /** diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/ExceptionBlock.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/ExceptionBlock.java index 83b028db751..7d9c8b1da42 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/ExceptionBlock.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/ExceptionBlock.java @@ -1,12 +1,10 @@ package org.checkerframework.dataflow.cfg.block; -import org.checkerframework.dataflow.cfg.node.Node; -import org.checkerframework.dataflow.qual.Pure; - import java.util.Map; import java.util.Set; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.dataflow.cfg.node.Node; +import org.checkerframework.dataflow.qual.Pure; /** * Represents a basic block that contains exactly one {@link Node} which can throw an exception. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/ExceptionBlockImpl.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/ExceptionBlockImpl.java index 10517e1fb34..6b871d380b4 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/ExceptionBlockImpl.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/ExceptionBlockImpl.java @@ -1,16 +1,14 @@ package org.checkerframework.dataflow.cfg.block; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.cfg.node.Node; -import org.checkerframework.javacutil.BugInCF; - import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.cfg.node.Node; +import org.checkerframework.javacutil.BugInCF; /** Base class of the {@link Block} implementation hierarchy. */ public class ExceptionBlockImpl extends SingleSuccessorBlockImpl implements ExceptionBlock { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/RegularBlock.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/RegularBlock.java index a9c57285898..46a0da69a14 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/RegularBlock.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/RegularBlock.java @@ -1,11 +1,10 @@ package org.checkerframework.dataflow.cfg.block; +import java.util.List; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.node.Node; import org.checkerframework.dataflow.qual.Pure; -import java.util.List; - /** * A regular basic block that contains a sequence of {@link Node}s. * diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/RegularBlockImpl.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/RegularBlockImpl.java index 47dde279ac3..366404d2391 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/RegularBlockImpl.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/block/RegularBlockImpl.java @@ -1,11 +1,10 @@ package org.checkerframework.dataflow.cfg.block; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.cfg.node.Node; - import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.cfg.node.Node; /** Implementation of a regular basic block. */ public class RegularBlockImpl extends SingleSuccessorBlockImpl implements RegularBlock { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayAccessNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayAccessNode.java index 1c321196a34..4a28f8cbaad 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayAccessNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayAccessNode.java @@ -2,13 +2,11 @@ import com.sun.source.tree.ArrayAccessTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayList; import java.util.Collection; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for an array access: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayCreationNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayCreationNode.java index 4da0d3e5295..7b1802b53de 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayCreationNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayCreationNode.java @@ -2,15 +2,12 @@ import com.sun.source.tree.NewArrayTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Objects; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for new array creation. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayTypeNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayTypeNode.java index fc94b5dddcc..b7a7f17fcaf 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayTypeNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ArrayTypeNode.java @@ -2,15 +2,12 @@ import com.sun.source.tree.ArrayTypeTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node representing a array type used in an expression such as a field access. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssertionErrorNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssertionErrorNode.java index 8acd6199ea7..ba9b194b23a 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssertionErrorNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssertionErrorNode.java @@ -2,14 +2,11 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.ArrayList; import java.util.Collection; import java.util.Objects; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the {@link AssertionError} when an assertion fails. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssignmentContext.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssignmentContext.java index 1942e955323..25478270521 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssignmentContext.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssignmentContext.java @@ -4,12 +4,10 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * An assignment context for a node, which represents the place to which the node with this context diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssignmentNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssignmentNode.java index f3b9d3e4c04..02d73ea4825 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssignmentNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/AssignmentNode.java @@ -5,14 +5,12 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.UnaryTree; import com.sun.source.tree.VariableTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.cfg.node.AssignmentContext.AssignmentLhsContext; -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayList; import java.util.Collection; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.cfg.node.AssignmentContext.AssignmentLhsContext; +import org.checkerframework.javacutil.TreeUtils; /** * A node for an assignment: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BinaryOperationNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BinaryOperationNode.java index d7b1a952f11..db045509ca3 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BinaryOperationNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BinaryOperationNode.java @@ -1,11 +1,9 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.BinaryTree; - -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayList; import java.util.Collection; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a binary expression. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseAndNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseAndNode.java index 2f8163afd03..ca00aa2c66b 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseAndNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseAndNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the bitwise or logical (single bit) and operation: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseComplementNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseComplementNode.java index 280e957db25..43bbe3776b0 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseComplementNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseComplementNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.UnaryTree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the bitwise complement operation: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseOrNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseOrNode.java index a586ca98317..e117e1323fb 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseOrNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseOrNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the bitwise or logical (single bit) or operation: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseXorNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseXorNode.java index 1ad58bb43ff..547fc5d8a5a 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseXorNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BitwiseXorNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the bitwise or logical (single bit) xor operation: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BooleanLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BooleanLiteralNode.java index d881810980c..0749eeff12d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BooleanLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/BooleanLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a boolean literal: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/CaseNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/CaseNode.java index f75cd3db470..0ee2ac94dac 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/CaseNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/CaseNode.java @@ -2,15 +2,12 @@ import com.sun.source.tree.CaseTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.ArrayList; import java.util.Collection; import java.util.Objects; - import javax.lang.model.type.TypeKind; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a case in a switch statement. Although a case has no abstract value, it can imply diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/CharacterLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/CharacterLiteralNode.java index 29740cf6fe3..8b0fa194d08 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/CharacterLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/CharacterLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a character literal. For example: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ClassDeclarationNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ClassDeclarationNode.java index e61ebb75aa2..4a12044dadc 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ClassDeclarationNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ClassDeclarationNode.java @@ -1,13 +1,11 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.ClassTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node representing a class declaration that occurs within a method, for example, an anonymous diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ClassNameNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ClassNameNode.java index f201ae56541..03318bb4b55 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ClassNameNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ClassNameNode.java @@ -4,16 +4,13 @@ import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.MemberSelectTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.element.Element; import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node representing a class name used in an expression such as a static method invocation. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalAndNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalAndNode.java index 701da8f3685..89aeef01e4b 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalAndNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalAndNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a conditional and expression: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalNotNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalNotNode.java index 28c5838ff0f..d190d8aea33 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalNotNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalNotNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.UnaryTree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a conditional not expression: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalOrNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalOrNode.java index d25398591b8..d97870e2775 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalOrNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ConditionalOrNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a conditional or expression: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/DoubleLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/DoubleLiteralNode.java index f901d13d2a8..03f7c7238b6 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/DoubleLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/DoubleLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a double literal. For example: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/EqualToNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/EqualToNode.java index bb7ea749b28..22d524b8361 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/EqualToNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/EqualToNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for an equality check: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ExplicitThisLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ExplicitThisLiteralNode.java index 54437f6d5da..6beb50d43b6 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ExplicitThisLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ExplicitThisLiteralNode.java @@ -2,7 +2,6 @@ import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.Tree; - import org.checkerframework.javacutil.TreeUtils; /** diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FieldAccessNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FieldAccessNode.java index 38ecaeb2538..e2a98165228 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FieldAccessNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FieldAccessNode.java @@ -3,16 +3,13 @@ import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.MemberSelectTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.element.VariableElement; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a field access, including a method accesses: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatLiteralNode.java index 8a3afa6b169..3dd7a7d70f6 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a float literal. For example: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatingDivisionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatingDivisionNode.java index 9e15933700f..6bebc7c2dce 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatingDivisionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatingDivisionNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the floating-point division: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatingRemainderNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatingRemainderNode.java index d57bed93c16..42a4dfd8486 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatingRemainderNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FloatingRemainderNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the floating-point remainder: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FunctionalInterfaceNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FunctionalInterfaceNode.java index 3a9cceaf000..9448233af88 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FunctionalInterfaceNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/FunctionalInterfaceNode.java @@ -3,14 +3,12 @@ import com.sun.source.tree.LambdaExpressionTree; import com.sun.source.tree.MemberReferenceTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.TreeUtils; /** * A node for member references and lambdas. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/GreaterThanNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/GreaterThanNode.java index 7cf444117b8..ccf036e93db 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/GreaterThanNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/GreaterThanNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the greater than comparison: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/GreaterThanOrEqualNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/GreaterThanOrEqualNode.java index 083803a2c94..df71eedb3a2 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/GreaterThanOrEqualNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/GreaterThanOrEqualNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the greater than or equal comparison: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ImplicitThisLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ImplicitThisLiteralNode.java index 62816799555..9f984fb5b4c 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ImplicitThisLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ImplicitThisLiteralNode.java @@ -1,10 +1,8 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** A node to model the implicit {@code this}, e.g., in a field access. */ public class ImplicitThisLiteralNode extends ThisLiteralNode { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/InstanceOfNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/InstanceOfNode.java index 49787d8abc0..461139bad6e 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/InstanceOfNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/InstanceOfNode.java @@ -2,16 +2,13 @@ import com.sun.source.tree.InstanceOfTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the instanceof operator: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerDivisionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerDivisionNode.java index f37138a258e..7e425ed497d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerDivisionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerDivisionNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the integer division: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerLiteralNode.java index f7f12192061..6296df040bc 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for an integer literal. For example: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerRemainderNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerRemainderNode.java index 3ed25ab4518..b428441cc2e 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerRemainderNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/IntegerRemainderNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the integer remainder: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LambdaResultExpressionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LambdaResultExpressionNode.java index d7e7b031ec5..12281b5bdb0 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LambdaResultExpressionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LambdaResultExpressionNode.java @@ -1,15 +1,12 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.ExpressionTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** A node for the single expression body of a single expression lambda. */ public class LambdaResultExpressionNode extends Node { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LeftShiftNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LeftShiftNode.java index 02298f87ee3..84cb3231a16 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LeftShiftNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LeftShiftNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for bitwise left shift operations: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LessThanNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LessThanNode.java index 64c18912cb9..ad972486e51 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LessThanNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LessThanNode.java @@ -3,10 +3,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the less than comparison: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LessThanOrEqualNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LessThanOrEqualNode.java index 2bb8ff869f4..8fa56eedb33 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LessThanOrEqualNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LessThanOrEqualNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the less than or equal comparison: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LocalVariableNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LocalVariableNode.java index 8796c8817ea..bc40ac6cdb9 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LocalVariableNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LocalVariableNode.java @@ -3,15 +3,12 @@ import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.element.Element; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a local variable or a parameter: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LongLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LongLiteralNode.java index 8dc3fc2cf84..33a1433d573 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LongLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/LongLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a long literal. For example: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MarkerNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MarkerNode.java index 214e698c921..1d67f6c9288 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MarkerNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MarkerNode.java @@ -1,15 +1,12 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeKind; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; /** * MarkerNodes are no-op Nodes used for debugging information. They can hold a Tree and a message, diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MethodAccessNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MethodAccessNode.java index 93734de2c56..6a698f08f14 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MethodAccessNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MethodAccessNode.java @@ -2,15 +2,12 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.element.ExecutableElement; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a method access, including a method accesses: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MethodInvocationNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MethodInvocationNode.java index 30a8ac32eac..28f08b8f91a 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MethodInvocationNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/MethodInvocationNode.java @@ -3,15 +3,13 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.cfg.node.AssignmentContext.MethodParameterContext; -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.cfg.node.AssignmentContext.MethodParameterContext; +import org.checkerframework.javacutil.TreeUtils; /** * A node for method invocation. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NarrowingConversionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NarrowingConversionNode.java index c3ee17ea455..76c00ea7a1a 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NarrowingConversionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NarrowingConversionNode.java @@ -1,15 +1,12 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TypesUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TypesUtils; /** * A node for the narrowing primitive conversion operation. See JLS 5.1.3 for the definition of diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/Node.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/Node.java index aff6985aff0..8d310aa7719 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/Node.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/Node.java @@ -1,17 +1,14 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.Tree; - +import java.util.ArrayDeque; +import java.util.Collection; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.cfg.CFGBuilder; import org.checkerframework.dataflow.cfg.block.Block; import org.checkerframework.dataflow.qual.Pure; -import java.util.ArrayDeque; -import java.util.Collection; - -import javax.lang.model.type.TypeMirror; - /** * A node in the abstract representation used for Java code inside a basic block. * diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NotEqualNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NotEqualNode.java index ba5767dd037..a17d264879e 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NotEqualNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NotEqualNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the not equal comparison: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NullChkNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NullChkNode.java index 4338fb30f0a..51384b05b3d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NullChkNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NullChkNode.java @@ -2,13 +2,11 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for the unary 'nullchk' operation (generated by the Java compiler): diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NullLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NullLiteralNode.java index cf68b845838..18206dde1a2 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NullLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NullLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the null literal. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalAdditionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalAdditionNode.java index de5f6957ee5..91e1287b158 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalAdditionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalAdditionNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the numerical addition: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalMinusNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalMinusNode.java index d8b8aa39764..a91c482cd1c 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalMinusNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalMinusNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.UnaryTree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the unary minus operation: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalMultiplicationNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalMultiplicationNode.java index cdd8569cad6..853ecbc4efe 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalMultiplicationNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalMultiplicationNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the numerical multiplication: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalPlusNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalPlusNode.java index 9a95c2b4080..4198b2f659e 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalPlusNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalPlusNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.UnaryTree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the unary plus operation: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalSubtractionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalSubtractionNode.java index 0550339554c..97d83debe94 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalSubtractionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/NumericalSubtractionNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the numerical subtraction: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ObjectCreationNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ObjectCreationNode.java index fd3673ab75e..69cd8c1c4b6 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ObjectCreationNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ObjectCreationNode.java @@ -1,14 +1,12 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.NewClassTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for new object creation. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/PackageNameNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/PackageNameNode.java index c2546cc34b4..17d1e369bde 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/PackageNameNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/PackageNameNode.java @@ -3,15 +3,12 @@ import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.MemberSelectTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.element.Element; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node representing a package name used in an expression such as a constructor invocation. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ParameterizedTypeNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ParameterizedTypeNode.java index 080aa360c2b..7af50e100cc 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ParameterizedTypeNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ParameterizedTypeNode.java @@ -2,13 +2,11 @@ import com.sun.source.tree.ParameterizedTypeTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a parameterized type occurring in an expression: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/PrimitiveTypeNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/PrimitiveTypeNode.java index 42faaae8c88..844251eeef1 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/PrimitiveTypeNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/PrimitiveTypeNode.java @@ -2,15 +2,12 @@ import com.sun.source.tree.PrimitiveTypeTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node representing a primitive type used in an expression such as a field access. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ReturnNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ReturnNode.java index 15870bf8cca..326136e9a8c 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ReturnNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ReturnNode.java @@ -4,17 +4,14 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.ReturnTree; import com.sun.tools.javac.code.Symbol.MethodSymbol; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.cfg.node.AssignmentContext.LambdaReturnContext; -import org.checkerframework.dataflow.cfg.node.AssignmentContext.MethodReturnContext; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeKind; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.cfg.node.AssignmentContext.LambdaReturnContext; +import org.checkerframework.dataflow.cfg.node.AssignmentContext.MethodReturnContext; /** * A node for a return statement: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ShortLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ShortLiteralNode.java index a9eaa665976..8506c4133f4 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ShortLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ShortLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a short literal. For example: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SignedRightShiftNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SignedRightShiftNode.java index c3b996dc917..e28fb5397a8 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SignedRightShiftNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SignedRightShiftNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for bitwise right shift operations with sign extension: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConcatenateAssignmentNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConcatenateAssignmentNode.java index 5436046074b..c559f196d5d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConcatenateAssignmentNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConcatenateAssignmentNode.java @@ -2,13 +2,11 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayList; import java.util.Collection; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for the string concatenation compound assignment: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConcatenateNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConcatenateNode.java index cb9dcdbcbea..50cfb411893 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConcatenateNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConcatenateNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for string concatenation: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConversionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConversionNode.java index 92e5c0ed5c6..edfee1eadf1 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConversionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringConversionNode.java @@ -1,14 +1,11 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the string conversion operation. See JLS 5.1.11 for the definition of string diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringLiteralNode.java index 99d2ef65856..c11f10c31df 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/StringLiteralNode.java @@ -2,11 +2,9 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for an string literal. For example: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SuperNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SuperNode.java index c21509c29f2..4d012c5ffda 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SuperNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SuperNode.java @@ -2,13 +2,11 @@ import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a reference to 'super'. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SynchronizedNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SynchronizedNode.java index f15c0ba2ead..d8493f9eaa2 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SynchronizedNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/SynchronizedNode.java @@ -1,15 +1,12 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeKind; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; /** * This represents the start and end of synchronized code block. If startOfBlock == true it is the diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/TernaryExpressionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/TernaryExpressionNode.java index ec811ad58d4..ee9786a8c3d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/TernaryExpressionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/TernaryExpressionNode.java @@ -2,13 +2,11 @@ import com.sun.source.tree.ConditionalExpressionTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayList; import java.util.Collection; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a conditional expression: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ThisLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ThisLiteralNode.java index d4305228442..a6fc55fcff0 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ThisLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ThisLiteralNode.java @@ -1,12 +1,10 @@ package org.checkerframework.dataflow.cfg.node; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for a reference to 'this', either implicit or explicit. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ThrowNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ThrowNode.java index 208054dd2f9..0a03bc57c7d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ThrowNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ThrowNode.java @@ -2,15 +2,12 @@ import com.sun.source.tree.ThrowTree; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeKind; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for exception throws: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/TypeCastNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/TypeCastNode.java index 2c02b97e3a0..b72ebcb3b9d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/TypeCastNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/TypeCastNode.java @@ -1,15 +1,12 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for the cast operator: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/UnaryOperationNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/UnaryOperationNode.java index 900b494a5fb..f3ad94472a9 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/UnaryOperationNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/UnaryOperationNode.java @@ -1,11 +1,9 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.UnaryTree; - -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a postfix or an unary expression. diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/UnsignedRightShiftNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/UnsignedRightShiftNode.java index 5e84fc28f85..505b66a580c 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/UnsignedRightShiftNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/UnsignedRightShiftNode.java @@ -2,10 +2,8 @@ import com.sun.source.tree.BinaryTree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** * A node for bitwise right shift operations with zero extension: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ValueLiteralNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ValueLiteralNode.java index 75b5b1f8b9a..c09ab3cb33e 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ValueLiteralNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/ValueLiteralNode.java @@ -1,13 +1,11 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.LiteralTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a literals that have some form of value: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/VariableDeclarationNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/VariableDeclarationNode.java index 637ba5231be..6c229a8dabe 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/VariableDeclarationNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/VariableDeclarationNode.java @@ -1,13 +1,11 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.VariableTree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TreeUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TreeUtils; /** * A node for a local variable declaration: diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/WideningConversionNode.java b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/WideningConversionNode.java index a6b13ee9d64..fad859cc392 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/WideningConversionNode.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/cfg/node/WideningConversionNode.java @@ -1,15 +1,12 @@ package org.checkerframework.dataflow.cfg.node; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.javacutil.TypesUtils; - import java.util.Collection; import java.util.Collections; import java.util.Objects; - import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.javacutil.TypesUtils; /** * A node for the widening primitive conversion operation. See JLS 5.1.2 for the definition of diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/Constant.java b/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/Constant.java index 66ee10b8add..6dceb06294d 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/Constant.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/Constant.java @@ -1,11 +1,10 @@ package org.checkerframework.dataflow.constantpropagation; +import java.util.Objects; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.AbstractValue; -import java.util.Objects; - public class Constant implements AbstractValue { /** What kind of abstract value is this? */ diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/ConstantPropagationStore.java b/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/ConstantPropagationStore.java index 39918b900c3..2bec0c692d5 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/ConstantPropagationStore.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/ConstantPropagationStore.java @@ -1,5 +1,7 @@ package org.checkerframework.dataflow.constantpropagation; +import java.util.HashMap; +import java.util.Map; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.Store; @@ -8,9 +10,6 @@ import org.checkerframework.dataflow.cfg.node.LocalVariableNode; import org.checkerframework.dataflow.cfg.node.Node; -import java.util.HashMap; -import java.util.Map; - public class ConstantPropagationStore implements Store { /** Information about variables gathered so far. */ diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/ConstantPropagationTransfer.java b/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/ConstantPropagationTransfer.java index 3abc9bfae75..5dc1ad85b90 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/ConstantPropagationTransfer.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/constantpropagation/ConstantPropagationTransfer.java @@ -1,5 +1,6 @@ package org.checkerframework.dataflow.constantpropagation; +import java.util.List; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.ConditionalTransferResult; import org.checkerframework.dataflow.analysis.ForwardTransferFunction; @@ -14,8 +15,6 @@ import org.checkerframework.dataflow.cfg.node.LocalVariableNode; import org.checkerframework.dataflow.cfg.node.Node; -import java.util.List; - public class ConstantPropagationTransfer extends AbstractNodeVisitor< TransferResult, diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarStore.java b/dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarStore.java index 2f53cf44a88..976ac38271c 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarStore.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarStore.java @@ -1,5 +1,8 @@ package org.checkerframework.dataflow.livevariable; +import java.util.HashSet; +import java.util.Set; +import java.util.StringJoiner; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.FlowExpressions.Receiver; import org.checkerframework.dataflow.analysis.Store; @@ -14,10 +17,6 @@ import org.checkerframework.dataflow.cfg.node.UnaryOperationNode; import org.checkerframework.javacutil.BugInCF; -import java.util.HashSet; -import java.util.Set; -import java.util.StringJoiner; - /** A live variable store contains a set of live variables represented by nodes. */ public class LiveVarStore implements Store { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarTransfer.java b/dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarTransfer.java index 8188e690f7f..a8051435851 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarTransfer.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarTransfer.java @@ -1,5 +1,6 @@ package org.checkerframework.dataflow.livevariable; +import java.util.List; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.BackwardTransferFunction; import org.checkerframework.dataflow.analysis.RegularTransferResult; @@ -14,8 +15,6 @@ import org.checkerframework.dataflow.cfg.node.ReturnNode; import org.checkerframework.dataflow.cfg.node.StringConcatenateAssignmentNode; -import java.util.List; - /** A live variable transfer function. */ public class LiveVarTransfer extends AbstractNodeVisitor< diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/util/AbstractMostlySingleton.java b/dataflow/src/main/java/org/checkerframework/dataflow/util/AbstractMostlySingleton.java index 77e89d946f7..6c689d1d50f 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/util/AbstractMostlySingleton.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/util/AbstractMostlySingleton.java @@ -1,14 +1,13 @@ package org.checkerframework.dataflow.util; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.nullness.qual.PolyNull; -import org.checkerframework.javacutil.BugInCF; - import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.NoSuchElementException; import java.util.Set; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.nullness.qual.PolyNull; +import org.checkerframework.javacutil.BugInCF; /** Base class for sets that are more efficient than HashSet for 0 and 1 elements. */ public abstract class AbstractMostlySingleton implements Set { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/util/IdentityMostlySingleton.java b/dataflow/src/main/java/org/checkerframework/dataflow/util/IdentityMostlySingleton.java index 3c8491fb60e..fa3734f4c29 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/util/IdentityMostlySingleton.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/util/IdentityMostlySingleton.java @@ -1,8 +1,7 @@ package org.checkerframework.dataflow.util; -import org.checkerframework.javacutil.BugInCF; - import java.util.ArrayList; +import org.checkerframework.javacutil.BugInCF; /** * A set that is more efficient than HashSet for 0 and 1 elements. Uses objects identity for object diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/util/MostlySingleton.java b/dataflow/src/main/java/org/checkerframework/dataflow/util/MostlySingleton.java index f0764934107..86e782a2a9a 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/util/MostlySingleton.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/util/MostlySingleton.java @@ -1,9 +1,8 @@ package org.checkerframework.dataflow.util; -import org.checkerframework.javacutil.BugInCF; - import java.util.HashSet; import java.util.Objects; +import org.checkerframework.javacutil.BugInCF; /** * A set that is more efficient than HashSet for 0 and 1 elements. Uses {@code Objects.equals} for diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/util/NodeUtils.java b/dataflow/src/main/java/org/checkerframework/dataflow/util/NodeUtils.java index 928bb6acd01..446f623e055 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/util/NodeUtils.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/util/NodeUtils.java @@ -3,7 +3,9 @@ import com.sun.source.tree.Tree; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.tree.JCTree; - +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeKind; import org.checkerframework.dataflow.cfg.node.ConditionalOrNode; import org.checkerframework.dataflow.cfg.node.FieldAccessNode; import org.checkerframework.dataflow.cfg.node.MethodInvocationNode; @@ -11,10 +13,6 @@ import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.TypesUtils; -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeKind; - /** A utility class to operate on a given {@link Node}. */ public class NodeUtils { diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/util/PurityChecker.java b/dataflow/src/main/java/org/checkerframework/dataflow/util/PurityChecker.java index 0712dfff993..bd756bb08a6 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/util/PurityChecker.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/util/PurityChecker.java @@ -11,7 +11,10 @@ import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; import com.sun.source.util.TreePathScanner; - +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.List; +import javax.lang.model.element.Element; import org.checkerframework.dataflow.qual.Deterministic; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.Pure.Kind; @@ -20,12 +23,6 @@ import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.TreeUtils; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.List; - -import javax.lang.model.element.Element; - /** * A visitor that determines the purity (as defined by {@link * org.checkerframework.dataflow.qual.SideEffectFree}, {@link diff --git a/dataflow/src/main/java/org/checkerframework/dataflow/util/PurityUtils.java b/dataflow/src/main/java/org/checkerframework/dataflow/util/PurityUtils.java index 4ab674a678d..782256af229 100644 --- a/dataflow/src/main/java/org/checkerframework/dataflow/util/PurityUtils.java +++ b/dataflow/src/main/java/org/checkerframework/dataflow/util/PurityUtils.java @@ -1,7 +1,9 @@ package org.checkerframework.dataflow.util; import com.sun.source.tree.MethodTree; - +import java.util.EnumSet; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; import org.checkerframework.dataflow.qual.Deterministic; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.Pure.Kind; @@ -10,11 +12,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.TreeUtils; -import java.util.EnumSet; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; - /** * A utility class for working with the {@link SideEffectFree}, {@link Deterministic}, and {@link * Pure} annotations. diff --git a/dataflow/src/test/java/livevar/LiveVariable.java b/dataflow/src/test/java/livevar/LiveVariable.java index 4fe151a4602..177b6bb5a03 100644 --- a/dataflow/src/test/java/livevar/LiveVariable.java +++ b/dataflow/src/test/java/livevar/LiveVariable.java @@ -1,5 +1,8 @@ package livevar; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Map; import org.checkerframework.dataflow.analysis.BackwardAnalysis; import org.checkerframework.dataflow.analysis.BackwardAnalysisImpl; import org.checkerframework.dataflow.cfg.CFGVisualizeLauncher; @@ -7,10 +10,6 @@ import org.checkerframework.dataflow.livevariable.LiveVarTransfer; import org.checkerframework.dataflow.livevariable.LiveVarValue; -import java.io.FileWriter; -import java.io.IOException; -import java.util.Map; - /** Used in liveVariableTest Gradle task to test the LiveVariable analysis. */ public class LiveVariable { diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/CheckerFrameworkPerDirectoryTest.java b/framework-test/src/main/java/org/checkerframework/framework/test/CheckerFrameworkPerDirectoryTest.java index b6d60215e21..8f63126d1df 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/CheckerFrameworkPerDirectoryTest.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/CheckerFrameworkPerDirectoryTest.java @@ -1,15 +1,13 @@ package org.checkerframework.framework.test; -import org.junit.Test; -import org.junit.runner.RunWith; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; - import javax.annotation.processing.AbstractProcessor; +import org.junit.Test; +import org.junit.runner.RunWith; /** * Compiles all test files in a test directory together. Use {@link CheckerFrameworkPerFileTest} to diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/CheckerFrameworkPerFileTest.java b/framework-test/src/main/java/org/checkerframework/framework/test/CheckerFrameworkPerFileTest.java index 61b507e1f6f..c3ae974548f 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/CheckerFrameworkPerFileTest.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/CheckerFrameworkPerFileTest.java @@ -1,15 +1,13 @@ package org.checkerframework.framework.test; -import org.junit.Test; -import org.junit.runner.RunWith; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; - import javax.annotation.processing.AbstractProcessor; +import org.junit.Test; +import org.junit.runner.RunWith; /** * Compiles all test files individually. Use {@link CheckerFrameworkPerDirectoryTest} to compile all diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/CompilationResult.java b/framework-test/src/main/java/org/checkerframework/framework/test/CompilationResult.java index b6048cecf54..ccb9738c258 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/CompilationResult.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/CompilationResult.java @@ -2,7 +2,6 @@ import java.util.Collections; import java.util.List; - import javax.tools.Diagnostic; import javax.tools.JavaFileObject; diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/FrameworkPerDirectoryTest.java b/framework-test/src/main/java/org/checkerframework/framework/test/FrameworkPerDirectoryTest.java index 135623cb941..bc6259a51e0 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/FrameworkPerDirectoryTest.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/FrameworkPerDirectoryTest.java @@ -2,7 +2,6 @@ import java.io.File; import java.util.List; - import javax.annotation.processing.AbstractProcessor; /** diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/FrameworkPerFileTest.java b/framework-test/src/main/java/org/checkerframework/framework/test/FrameworkPerFileTest.java index 41a7ebb1eab..777e2ec8ce1 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/FrameworkPerFileTest.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/FrameworkPerFileTest.java @@ -2,7 +2,6 @@ import java.io.File; import java.util.List; - import javax.annotation.processing.AbstractProcessor; /** diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/ImmutableTestConfiguration.java b/framework-test/src/main/java/org/checkerframework/framework/test/ImmutableTestConfiguration.java index 5b78c7f6386..09213aa7ff7 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/ImmutableTestConfiguration.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/ImmutableTestConfiguration.java @@ -1,13 +1,12 @@ package org.checkerframework.framework.test; -import org.checkerframework.javacutil.SystemUtil; - import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import org.checkerframework.javacutil.SystemUtil; /** * Represents all of the information needed to execute the Javac compiler for a given set of test diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/PerDirectorySuite.java b/framework-test/src/main/java/org/checkerframework/framework/test/PerDirectorySuite.java index f09558ae7b7..4132ca19056 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/PerDirectorySuite.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/PerDirectorySuite.java @@ -1,5 +1,14 @@ package org.checkerframework.framework.test; +import java.io.File; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import org.checkerframework.javacutil.BugInCF; import org.junit.runner.Runner; import org.junit.runner.notification.RunNotifier; @@ -11,16 +20,6 @@ import org.junit.runners.model.Statement; import org.junit.runners.model.TestClass; -import java.io.File; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - // TODO: large parts of this file are the same as PerFileSuite.java. // Reduce duplication by moving common parts to an abstract class. /** diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/PerFileSuite.java b/framework-test/src/main/java/org/checkerframework/framework/test/PerFileSuite.java index 0b32bdecc04..41e5961a0e3 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/PerFileSuite.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/PerFileSuite.java @@ -1,5 +1,14 @@ package org.checkerframework.framework.test; +import java.io.File; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import org.checkerframework.javacutil.BugInCF; import org.junit.runner.Runner; import org.junit.runner.notification.RunNotifier; @@ -11,16 +20,6 @@ import org.junit.runners.model.Statement; import org.junit.runners.model.TestClass; -import java.io.File; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - // TODO: large parts of this file are the same as PerDirectorySuite.java. // Reduce duplication by moving common parts to an abstract class. /** diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/TestConfigurationBuilder.java b/framework-test/src/main/java/org/checkerframework/framework/test/TestConfigurationBuilder.java index 01dc5431382..899251c3ce4 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/TestConfigurationBuilder.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/TestConfigurationBuilder.java @@ -1,8 +1,5 @@ package org.checkerframework.framework.test; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.SystemUtil; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -12,6 +9,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.SystemUtil; /** * Used to create an instance of TestConfiguration, TestConfigurationBuilder follows the standard diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/TestUtilities.java b/framework-test/src/main/java/org/checkerframework/framework/test/TestUtilities.java index ef5527efee2..ad88a0df44f 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/TestUtilities.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/TestUtilities.java @@ -1,8 +1,5 @@ package org.checkerframework.framework.test; -import org.checkerframework.javacutil.SystemUtil; -import org.junit.Assert; - import java.io.BufferedWriter; import java.io.ByteArrayOutputStream; import java.io.File; @@ -20,11 +17,12 @@ import java.util.Map; import java.util.Scanner; import java.util.Set; - import javax.tools.Diagnostic; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.ToolProvider; +import org.checkerframework.javacutil.SystemUtil; +import org.junit.Assert; public class TestUtilities { diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/TypecheckExecutor.java b/framework-test/src/main/java/org/checkerframework/framework/test/TypecheckExecutor.java index 8ddbc393f1a..69f515a14b1 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/TypecheckExecutor.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/TypecheckExecutor.java @@ -1,19 +1,17 @@ package org.checkerframework.framework.test; -import org.checkerframework.framework.test.diagnostics.JavaDiagnosticReader; -import org.checkerframework.framework.test.diagnostics.TestDiagnostic; -import org.checkerframework.javacutil.SystemUtil; - import java.io.File; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; - import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; +import org.checkerframework.framework.test.diagnostics.JavaDiagnosticReader; +import org.checkerframework.framework.test.diagnostics.TestDiagnostic; +import org.checkerframework.javacutil.SystemUtil; /** Used by the Checker Framework test suite to run the framework and generate a test result. */ public class TypecheckExecutor { diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/TypecheckResult.java b/framework-test/src/main/java/org/checkerframework/framework/test/TypecheckResult.java index 6083b4c168c..79d31d6e46c 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/TypecheckResult.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/TypecheckResult.java @@ -1,17 +1,15 @@ package org.checkerframework.framework.test; -import org.checkerframework.framework.test.diagnostics.TestDiagnostic; -import org.checkerframework.framework.test.diagnostics.TestDiagnosticUtils; -import org.checkerframework.javacutil.SystemUtil; - import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.StringJoiner; - import javax.tools.Diagnostic; import javax.tools.JavaFileObject; +import org.checkerframework.framework.test.diagnostics.TestDiagnostic; +import org.checkerframework.framework.test.diagnostics.TestDiagnosticUtils; +import org.checkerframework.javacutil.SystemUtil; /** * Represents the test results from typechecking one or more java files using the given diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/diagnostics/JavaDiagnosticReader.java b/framework-test/src/main/java/org/checkerframework/framework/test/diagnostics/JavaDiagnosticReader.java index fec6e0c2585..a673aea5eb4 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/diagnostics/JavaDiagnosticReader.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/diagnostics/JavaDiagnosticReader.java @@ -9,7 +9,6 @@ import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; - import javax.tools.JavaFileObject; /** diff --git a/framework-test/src/main/java/org/checkerframework/framework/test/diagnostics/TestDiagnosticUtils.java b/framework-test/src/main/java/org/checkerframework/framework/test/diagnostics/TestDiagnosticUtils.java index 8e1fee62361..9663f4dd0f5 100644 --- a/framework-test/src/main/java/org/checkerframework/framework/test/diagnostics/TestDiagnosticUtils.java +++ b/framework-test/src/main/java/org/checkerframework/framework/test/diagnostics/TestDiagnosticUtils.java @@ -1,7 +1,5 @@ package org.checkerframework.framework.test.diagnostics; -import org.checkerframework.javacutil.Pair; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -11,9 +9,9 @@ import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; - import javax.tools.Diagnostic; import javax.tools.JavaFileObject; +import org.checkerframework.javacutil.Pair; /** A set of utilities and factory methods useful for working with TestDiagnostics. */ public class TestDiagnosticUtils { diff --git a/framework-test/src/taglet/java/org/checkerframework/taglet/ManualTaglet.java b/framework-test/src/taglet/java/org/checkerframework/taglet/ManualTaglet.java index 620f6b6555b..01de5952e09 100644 --- a/framework-test/src/taglet/java/org/checkerframework/taglet/ManualTaglet.java +++ b/framework-test/src/taglet/java/org/checkerframework/taglet/ManualTaglet.java @@ -5,7 +5,6 @@ import com.sun.javadoc.Tag; import com.sun.tools.doclets.Taglet; - import java.util.Map; import java.util.StringJoiner; diff --git a/framework-test/src/tagletJdk11/java/org/checkerframework/taglet/ManualTaglet.java b/framework-test/src/tagletJdk11/java/org/checkerframework/taglet/ManualTaglet.java index f0557626163..ff8914116a2 100644 --- a/framework-test/src/tagletJdk11/java/org/checkerframework/taglet/ManualTaglet.java +++ b/framework-test/src/tagletJdk11/java/org/checkerframework/taglet/ManualTaglet.java @@ -8,15 +8,12 @@ import com.sun.source.doctree.UnknownBlockTagTree; import com.sun.source.doctree.UnknownInlineTagTree; import com.sun.source.util.SimpleDocTreeVisitor; - -import jdk.javadoc.doclet.Taglet; - import java.util.EnumSet; import java.util.List; import java.util.Set; import java.util.StringJoiner; - import javax.lang.model.element.Element; +import jdk.javadoc.doclet.Taglet; /** * A taglet for processing the {@code @checker_framework.manual} javadoc block tag, which inserts diff --git a/framework/jtreg/StubParserEnum/StubParserEnumTest.java b/framework/jtreg/StubParserEnum/StubParserEnumTest.java index a8f64773357..d98f8b624dd 100644 --- a/framework/jtreg/StubParserEnum/StubParserEnumTest.java +++ b/framework/jtreg/StubParserEnum/StubParserEnumTest.java @@ -9,9 +9,8 @@ import static java.util.concurrent.TimeUnit.*; -import org.checkerframework.common.util.report.qual.*; - import java.util.concurrent.TimeUnit; +import org.checkerframework.common.util.report.qual.*; class StubParserEnumTest { diff --git a/framework/jtreg/issue845/checker/qual/NotInPackageTop.java b/framework/jtreg/issue845/checker/qual/NotInPackageTop.java index 7b4f8a9eb0c..54254994a65 100644 --- a/framework/jtreg/issue845/checker/qual/NotInPackageTop.java +++ b/framework/jtreg/issue845/checker/qual/NotInPackageTop.java @@ -1,10 +1,9 @@ package qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @SubtypeOf({}) diff --git a/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationAnnotatedTypeFactory.java index b8977924a2c..481d6684f02 100644 --- a/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationAnnotatedTypeFactory.java @@ -2,7 +2,13 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.MethodInvocationTree; - +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.returnsreceiver.ReturnsReceiverAnnotatedTypeFactory; @@ -20,15 +26,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; - /** * An annotated type factory for an accumulation checker. * diff --git a/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationChecker.java b/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationChecker.java index 8c6be249901..c4134141abc 100644 --- a/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationChecker.java +++ b/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationChecker.java @@ -1,10 +1,9 @@ package org.checkerframework.common.accumulation; +import java.util.LinkedHashSet; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.returnsreceiver.ReturnsReceiverChecker; -import java.util.LinkedHashSet; - // TODO: This Javadoc comment should reference the Checker Framework manual, once the Accumulation // Checker chapter is uncommented in the manual's LaTeX source. /** diff --git a/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationTransfer.java b/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationTransfer.java index dbe2a8791e7..9ba36e587be 100644 --- a/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationTransfer.java +++ b/framework/src/main/java/org/checkerframework/common/accumulation/AccumulationTransfer.java @@ -3,7 +3,10 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.value.ValueCheckerUtils; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.Receiver; @@ -15,12 +18,6 @@ import org.checkerframework.framework.flow.CFTransfer; import org.checkerframework.framework.flow.CFValue; -import java.util.Arrays; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** * The default transfer function for an accumulation checker. * diff --git a/framework/src/main/java/org/checkerframework/common/aliasing/AliasingAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/common/aliasing/AliasingAnnotatedTypeFactory.java index f4c580d673a..629795528b5 100644 --- a/framework/src/main/java/org/checkerframework/common/aliasing/AliasingAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/common/aliasing/AliasingAnnotatedTypeFactory.java @@ -1,7 +1,10 @@ package org.checkerframework.common.aliasing; import com.sun.source.tree.NewArrayTree; - +import java.lang.annotation.Annotation; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.aliasing.qual.LeakedToResult; import org.checkerframework.common.aliasing.qual.MaybeAliased; import org.checkerframework.common.aliasing.qual.MaybeLeaked; @@ -22,12 +25,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** Annotated type factory for the Aliasing Checker. */ public class AliasingAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { diff --git a/framework/src/main/java/org/checkerframework/common/aliasing/AliasingTransfer.java b/framework/src/main/java/org/checkerframework/common/aliasing/AliasingTransfer.java index 61c7cf4c81a..6bc24a62ea9 100644 --- a/framework/src/main/java/org/checkerframework/common/aliasing/AliasingTransfer.java +++ b/framework/src/main/java/org/checkerframework/common/aliasing/AliasingTransfer.java @@ -2,7 +2,9 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - +import java.util.List; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.common.aliasing.qual.LeakedToResult; import org.checkerframework.common.aliasing.qual.NonLeaked; import org.checkerframework.common.aliasing.qual.Unique; @@ -25,11 +27,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; - -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; - /** * Type refinement is treated in the usual way, except that at (pseudo-)assignments the RHS may lose * its type refinement, before the LHS is type-refined. diff --git a/framework/src/main/java/org/checkerframework/common/aliasing/AliasingVisitor.java b/framework/src/main/java/org/checkerframework/common/aliasing/AliasingVisitor.java index 2e5abc259d2..63d7ba5678a 100644 --- a/framework/src/main/java/org/checkerframework/common/aliasing/AliasingVisitor.java +++ b/framework/src/main/java/org/checkerframework/common/aliasing/AliasingVisitor.java @@ -9,7 +9,9 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.util.List; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.common.aliasing.qual.LeakedToResult; import org.checkerframework.common.aliasing.qual.NonLeaked; @@ -22,11 +24,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; - -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; - /** * This visitor ensures that every constructor whose result is annotated as {@literal @}Unique does * not leak aliases. diff --git a/framework/src/main/java/org/checkerframework/common/aliasing/qual/LeakedToResult.java b/framework/src/main/java/org/checkerframework/common/aliasing/qual/LeakedToResult.java index 4e73c8a673d..5484eee29d7 100644 --- a/framework/src/main/java/org/checkerframework/common/aliasing/qual/LeakedToResult.java +++ b/framework/src/main/java/org/checkerframework/common/aliasing/qual/LeakedToResult.java @@ -1,12 +1,11 @@ package org.checkerframework.common.aliasing.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This annotation is used on a formal parameter to indicate that the parameter may be returned, but diff --git a/framework/src/main/java/org/checkerframework/common/aliasing/qual/MaybeAliased.java b/framework/src/main/java/org/checkerframework/common/aliasing/qual/MaybeAliased.java index 409382e15e3..d17d6b6e9e1 100644 --- a/framework/src/main/java/org/checkerframework/common/aliasing/qual/MaybeAliased.java +++ b/framework/src/main/java/org/checkerframework/common/aliasing/qual/MaybeAliased.java @@ -1,15 +1,14 @@ package org.checkerframework.common.aliasing.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; /** * An expression with this type might have an alias. In other words, some other expression, diff --git a/framework/src/main/java/org/checkerframework/common/aliasing/qual/MaybeLeaked.java b/framework/src/main/java/org/checkerframework/common/aliasing/qual/MaybeLeaked.java index 0d421fc3242..9038b6b75b0 100644 --- a/framework/src/main/java/org/checkerframework/common/aliasing/qual/MaybeLeaked.java +++ b/framework/src/main/java/org/checkerframework/common/aliasing/qual/MaybeLeaked.java @@ -1,13 +1,12 @@ package org.checkerframework.common.aliasing.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * Temporary type qualifier: diff --git a/framework/src/main/java/org/checkerframework/common/aliasing/qual/NonLeaked.java b/framework/src/main/java/org/checkerframework/common/aliasing/qual/NonLeaked.java index 65ce9383a00..2caa5c1c69f 100644 --- a/framework/src/main/java/org/checkerframework/common/aliasing/qual/NonLeaked.java +++ b/framework/src/main/java/org/checkerframework/common/aliasing/qual/NonLeaked.java @@ -1,12 +1,11 @@ package org.checkerframework.common.aliasing.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This annotation is used on a formal parameter to indicate that the parameter is not leaked diff --git a/framework/src/main/java/org/checkerframework/common/aliasing/qual/Unique.java b/framework/src/main/java/org/checkerframework/common/aliasing/qual/Unique.java index af66458ffa7..61945114567 100644 --- a/framework/src/main/java/org/checkerframework/common/aliasing/qual/Unique.java +++ b/framework/src/main/java/org/checkerframework/common/aliasing/qual/Unique.java @@ -1,12 +1,11 @@ package org.checkerframework.common.aliasing.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An expression with this type has no aliases. In other words, no other expression, evaluated at diff --git a/framework/src/main/java/org/checkerframework/common/basetype/BaseAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/common/basetype/BaseAnnotatedTypeFactory.java index 850717555d6..4fc5462d720 100644 --- a/framework/src/main/java/org/checkerframework/common/basetype/BaseAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/common/basetype/BaseAnnotatedTypeFactory.java @@ -1,5 +1,7 @@ package org.checkerframework.common.basetype; +import java.util.List; +import javax.lang.model.element.VariableElement; import org.checkerframework.framework.flow.CFAnalysis; import org.checkerframework.framework.flow.CFStore; import org.checkerframework.framework.flow.CFTransfer; @@ -7,10 +9,6 @@ import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; import org.checkerframework.javacutil.Pair; -import java.util.List; - -import javax.lang.model.element.VariableElement; - /** * A factory that extends {@link GenericAnnotatedTypeFactory} to use the default flow-sensitive * analysis as provided by {@link CFAnalysis}. diff --git a/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeChecker.java b/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeChecker.java index b9f7efbaf98..e2a1e6abb76 100644 --- a/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeChecker.java +++ b/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeChecker.java @@ -6,25 +6,6 @@ import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Log; - -import org.checkerframework.checker.nullness.qual.MonotonicNonNull; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.signature.qual.ClassGetName; -import org.checkerframework.common.reflection.MethodValChecker; -import org.checkerframework.dataflow.cfg.CFGVisualizer; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.source.SourceChecker; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; -import org.checkerframework.framework.type.QualifierHierarchy; -import org.checkerframework.framework.type.TypeHierarchy; -import org.checkerframework.framework.util.TreePathCacher; -import org.checkerframework.javacutil.AbstractTypeProcessor; -import org.checkerframework.javacutil.AnnotationProvider; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.InternalUtils; -import org.checkerframework.javacutil.UserError; - import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; @@ -40,11 +21,27 @@ import java.util.Objects; import java.util.Set; import java.util.TreeSet; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signature.qual.ClassGetName; +import org.checkerframework.common.reflection.MethodValChecker; +import org.checkerframework.dataflow.cfg.CFGVisualizer; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.source.SourceChecker; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; +import org.checkerframework.framework.type.QualifierHierarchy; +import org.checkerframework.framework.type.TypeHierarchy; +import org.checkerframework.framework.util.TreePathCacher; +import org.checkerframework.javacutil.AbstractTypeProcessor; +import org.checkerframework.javacutil.AnnotationProvider; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.InternalUtils; +import org.checkerframework.javacutil.UserError; /** * An abstract {@link SourceChecker} that provides a simple {@link diff --git a/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeValidator.java b/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeValidator.java index 1debe6e5969..f5a7e125d0c 100644 --- a/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeValidator.java +++ b/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeValidator.java @@ -7,7 +7,14 @@ import com.sun.source.tree.ParameterizedTypeTree; import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; - +import java.util.Collections; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.tools.Diagnostic.Kind; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.framework.source.DiagMessage; import org.checkerframework.framework.type.AnnotatedTypeFactory; @@ -28,16 +35,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypeAnnotationUtils; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.tools.Diagnostic.Kind; - /** A visitor to validate the types in a tree. */ public class BaseTypeValidator extends AnnotatedTypeScanner implements TypeValidator { /** Is the type valid? */ diff --git a/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeVisitor.java b/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeVisitor.java index 34cf81d7b42..e17317d93bc 100644 --- a/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeVisitor.java +++ b/framework/src/main/java/org/checkerframework/common/basetype/BaseTypeVisitor.java @@ -40,7 +40,33 @@ import com.sun.tools.javac.tree.JCTree.JCMemberReference; import com.sun.tools.javac.tree.JCTree.JCMemberReference.ReferenceKind; import com.sun.tools.javac.tree.TreeInfo; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.Name; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; +import javax.tools.Diagnostic.Kind; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.Receiver; @@ -94,35 +120,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.AnnotationValue; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.Name; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.ElementFilter; -import javax.tools.Diagnostic.Kind; - /** * A {@link SourceVisitor} that performs assignment and pseudo-assignment checking, method * invocation checking, and assignability checking. diff --git a/framework/src/main/java/org/checkerframework/common/basetype/TypeValidator.java b/framework/src/main/java/org/checkerframework/common/basetype/TypeValidator.java index 9c8404de2f6..a11e5cb29dd 100644 --- a/framework/src/main/java/org/checkerframework/common/basetype/TypeValidator.java +++ b/framework/src/main/java/org/checkerframework/common/basetype/TypeValidator.java @@ -1,7 +1,6 @@ package org.checkerframework.common.basetype; import com.sun.source.tree.Tree; - import org.checkerframework.framework.type.AnnotatedTypeMirror; /** diff --git a/framework/src/main/java/org/checkerframework/common/reflection/ClassValAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/common/reflection/ClassValAnnotatedTypeFactory.java index d63f349c6c8..fd457681af3 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/ClassValAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/ClassValAnnotatedTypeFactory.java @@ -7,7 +7,16 @@ import com.sun.tools.javac.code.Type; import com.sun.tools.javac.code.Type.ArrayType; import com.sun.tools.javac.code.Type.UnionClassType; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.reflection.qual.ClassBound; @@ -31,18 +40,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeKind; - public class ClassValAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { protected final AnnotationMirror CLASSVAL_TOP = diff --git a/framework/src/main/java/org/checkerframework/common/reflection/ClassValChecker.java b/framework/src/main/java/org/checkerframework/common/reflection/ClassValChecker.java index 5458deba876..52eaacaadc0 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/ClassValChecker.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/ClassValChecker.java @@ -1,12 +1,11 @@ package org.checkerframework.common.reflection; +import java.util.LinkedHashSet; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.qual.StubFiles; -import java.util.LinkedHashSet; - /** * The ClassVal Checker provides a sound estimate of the binary name of Class objects. * diff --git a/framework/src/main/java/org/checkerframework/common/reflection/ClassValVisitor.java b/framework/src/main/java/org/checkerframework/common/reflection/ClassValVisitor.java index 094ede6087c..378aea8f159 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/ClassValVisitor.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/ClassValVisitor.java @@ -1,7 +1,8 @@ package org.checkerframework.common.reflection; import com.sun.source.tree.Tree; - +import java.util.List; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeValidator; import org.checkerframework.common.basetype.BaseTypeVisitor; @@ -10,10 +11,6 @@ import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; - public class ClassValVisitor extends BaseTypeVisitor { public ClassValVisitor(BaseTypeChecker checker) { super(checker); diff --git a/framework/src/main/java/org/checkerframework/common/reflection/DefaultReflectionResolver.java b/framework/src/main/java/org/checkerframework/common/reflection/DefaultReflectionResolver.java index 7aad43c824d..d970370fec1 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/DefaultReflectionResolver.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/DefaultReflectionResolver.java @@ -24,21 +24,6 @@ import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Name; import com.sun.tools.javac.util.Names; - -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.common.reflection.qual.Invoke; -import org.checkerframework.common.reflection.qual.MethodVal; -import org.checkerframework.common.reflection.qual.NewInstance; -import org.checkerframework.common.reflection.qual.UnknownMethod; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeFactory.ParameterizedExecutableType; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.javacutil.AnnotationProvider; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.TreeUtils; - import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -46,7 +31,6 @@ import java.util.Collections; import java.util.List; import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.ElementKind; @@ -55,6 +39,19 @@ import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.util.ElementFilter; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.common.reflection.qual.Invoke; +import org.checkerframework.common.reflection.qual.MethodVal; +import org.checkerframework.common.reflection.qual.NewInstance; +import org.checkerframework.common.reflection.qual.UnknownMethod; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeFactory.ParameterizedExecutableType; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.javacutil.AnnotationProvider; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.TreeUtils; /** * Default implementation of {@link ReflectionResolver}. It resolves calls to: diff --git a/framework/src/main/java/org/checkerframework/common/reflection/MethodValAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/common/reflection/MethodValAnnotatedTypeFactory.java index 8d597d54f12..1807df3942d 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/MethodValAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/MethodValAnnotatedTypeFactory.java @@ -2,7 +2,15 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.MethodInvocationTree; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; @@ -28,17 +36,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - public class MethodValAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { private final AnnotationMirror METHODVAL_BOTTOM = AnnotationBuilder.fromClass(elements, MethodValBottom.class); diff --git a/framework/src/main/java/org/checkerframework/common/reflection/MethodValChecker.java b/framework/src/main/java/org/checkerframework/common/reflection/MethodValChecker.java index 83f7c3643de..e2285d362dd 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/MethodValChecker.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/MethodValChecker.java @@ -1,12 +1,11 @@ package org.checkerframework.common.reflection; +import java.util.LinkedHashSet; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.qual.StubFiles; -import java.util.LinkedHashSet; - /** * The MethodVal Checker provides a sound estimate of the signature of Method objects. * diff --git a/framework/src/main/java/org/checkerframework/common/reflection/MethodValVisitor.java b/framework/src/main/java/org/checkerframework/common/reflection/MethodValVisitor.java index df6d7ea48c9..73dc4618aa1 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/MethodValVisitor.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/MethodValVisitor.java @@ -1,7 +1,8 @@ package org.checkerframework.common.reflection; import com.sun.source.tree.Tree; - +import java.util.List; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeValidator; import org.checkerframework.common.basetype.BaseTypeVisitor; @@ -10,10 +11,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.javacutil.AnnotationUtils; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; - public class MethodValVisitor extends BaseTypeVisitor { public MethodValVisitor(BaseTypeChecker checker) { diff --git a/framework/src/main/java/org/checkerframework/common/reflection/ReflectionResolver.java b/framework/src/main/java/org/checkerframework/common/reflection/ReflectionResolver.java index 642022ddedf..982cbcbb28c 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/ReflectionResolver.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/ReflectionResolver.java @@ -1,12 +1,10 @@ package org.checkerframework.common.reflection; import com.sun.source.tree.MethodInvocationTree; - -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeFactory.ParameterizedExecutableType; - import java.lang.reflect.Constructor; import java.lang.reflect.Method; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeFactory.ParameterizedExecutableType; /** * Interface for reflection resolvers that handle reflective method calls such as {@link diff --git a/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassBound.java b/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassBound.java index 9209181e295..d8505f0aa51 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassBound.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassBound.java @@ -1,12 +1,11 @@ package org.checkerframework.common.reflection.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This represents a {@code Class} object whose run-time value is equal to or a subtype of one of diff --git a/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassVal.java b/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassVal.java index b121b999d55..ec489eba0f3 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassVal.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassVal.java @@ -1,12 +1,11 @@ package org.checkerframework.common.reflection.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This represents a {@link java.lang.Class Class<T>} object where the set of possible values diff --git a/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassValBottom.java b/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassValBottom.java index d143d19cc53..757845f4e03 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassValBottom.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/qual/ClassValBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.common.reflection.qual; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the ClassVal type system. Programmers should rarely write this type. diff --git a/framework/src/main/java/org/checkerframework/common/reflection/qual/MethodVal.java b/framework/src/main/java/org/checkerframework/common/reflection/qual/MethodVal.java index eb59a76a62b..7087e3ee2a6 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/qual/MethodVal.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/qual/MethodVal.java @@ -1,12 +1,11 @@ package org.checkerframework.common.reflection.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * This represents a set of {@link java.lang.reflect.Method Method} or {@link diff --git a/framework/src/main/java/org/checkerframework/common/reflection/qual/MethodValBottom.java b/framework/src/main/java/org/checkerframework/common/reflection/qual/MethodValBottom.java index 6c202c8e44d..c99f8740ccf 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/qual/MethodValBottom.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/qual/MethodValBottom.java @@ -1,15 +1,14 @@ package org.checkerframework.common.reflection.qual; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the MethodVal type system. Programmers should rarely write this type. diff --git a/framework/src/main/java/org/checkerframework/common/reflection/qual/UnknownClass.java b/framework/src/main/java/org/checkerframework/common/reflection/qual/UnknownClass.java index 57a6988f3cc..f89c5e9f2c5 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/qual/UnknownClass.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/qual/UnknownClass.java @@ -1,16 +1,15 @@ package org.checkerframework.common.reflection.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * Represents a Class object whose run-time value is not known at compile time. Also represents diff --git a/framework/src/main/java/org/checkerframework/common/reflection/qual/UnknownMethod.java b/framework/src/main/java/org/checkerframework/common/reflection/qual/UnknownMethod.java index 15ad2e035a3..34547759c13 100644 --- a/framework/src/main/java/org/checkerframework/common/reflection/qual/UnknownMethod.java +++ b/framework/src/main/java/org/checkerframework/common/reflection/qual/UnknownMethod.java @@ -1,16 +1,15 @@ package org.checkerframework.common.reflection.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * Represents a {@link java.lang.reflect.Method Method} or {@link java.lang.reflect.Constructor diff --git a/framework/src/main/java/org/checkerframework/common/returnsreceiver/FluentAPIGenerator.java b/framework/src/main/java/org/checkerframework/common/returnsreceiver/FluentAPIGenerator.java index 5e37bf9350d..d88b9b769b0 100644 --- a/framework/src/main/java/org/checkerframework/common/returnsreceiver/FluentAPIGenerator.java +++ b/framework/src/main/java/org/checkerframework/common/returnsreceiver/FluentAPIGenerator.java @@ -1,16 +1,15 @@ package org.checkerframework.common.returnsreceiver; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.TypesUtils; - import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.TypesUtils; /** * A utility class to support fluent API generators so the checker can add {@code @This} annotations diff --git a/framework/src/main/java/org/checkerframework/common/returnsreceiver/ReturnsReceiverAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/common/returnsreceiver/ReturnsReceiverAnnotatedTypeFactory.java index 912ae2bea16..92670a8780d 100644 --- a/framework/src/main/java/org/checkerframework/common/returnsreceiver/ReturnsReceiverAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/common/returnsreceiver/ReturnsReceiverAnnotatedTypeFactory.java @@ -1,5 +1,9 @@ package org.checkerframework.common.returnsreceiver; +import java.lang.annotation.Annotation; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ElementKind; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.returnsreceiver.qual.BottomThis; @@ -12,12 +16,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ElementKind; - /** The type factory for the Returns Receiver Checker. */ public class ReturnsReceiverAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { diff --git a/framework/src/main/java/org/checkerframework/common/returnsreceiver/ReturnsReceiverVisitor.java b/framework/src/main/java/org/checkerframework/common/returnsreceiver/ReturnsReceiverVisitor.java index 102498a5912..a76d23a2bd0 100644 --- a/framework/src/main/java/org/checkerframework/common/returnsreceiver/ReturnsReceiverVisitor.java +++ b/framework/src/main/java/org/checkerframework/common/returnsreceiver/ReturnsReceiverVisitor.java @@ -2,15 +2,13 @@ import com.sun.source.tree.*; import com.sun.source.util.TreePath; - +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.TreeUtils; -import javax.lang.model.element.AnnotationMirror; - /** The visitor for the Returns Receiver Checker. */ public class ReturnsReceiverVisitor extends BaseTypeVisitor { diff --git a/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/BottomThis.java b/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/BottomThis.java index 1147536e871..99dd4fcb56b 100644 --- a/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/BottomThis.java +++ b/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/BottomThis.java @@ -1,13 +1,12 @@ package org.checkerframework.common.returnsreceiver.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type for the Returns Receiver Checker's type system. Programmers should rarely write diff --git a/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/This.java b/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/This.java index 646aee27a90..4d30a59c72a 100644 --- a/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/This.java +++ b/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/This.java @@ -1,13 +1,12 @@ package org.checkerframework.common.returnsreceiver.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * Write {@code @This} on the return type of a method that always returns its receiver ({@code diff --git a/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/UnknownThis.java b/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/UnknownThis.java index 9d0d9301dda..107d5f837ed 100644 --- a/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/UnknownThis.java +++ b/framework/src/main/java/org/checkerframework/common/returnsreceiver/qual/UnknownThis.java @@ -1,11 +1,10 @@ package org.checkerframework.common.returnsreceiver.qual; -import org.checkerframework.framework.qual.*; - import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.*; /** * The top type for the Returns Receiver Checker's type system. Values of the annotated type might diff --git a/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingAnnotatedTypeFactory.java index bfde747e492..e486e37cf3e 100644 --- a/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingAnnotatedTypeFactory.java @@ -1,5 +1,10 @@ package org.checkerframework.common.subtyping; +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.subtyping.qual.Unqualified; @@ -13,13 +18,6 @@ import org.checkerframework.javacutil.UserError; import org.plumelib.reflection.Signatures; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** Defines {@link #createSupportedTypeQualifiers}. */ public class SubtypingAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { diff --git a/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingAnnotationClassLoader.java b/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingAnnotationClassLoader.java index f32e1ea3b32..b4c68895264 100644 --- a/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingAnnotationClassLoader.java +++ b/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingAnnotationClassLoader.java @@ -1,11 +1,10 @@ package org.checkerframework.common.subtyping; +import java.lang.annotation.Annotation; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.subtyping.qual.Unqualified; import org.checkerframework.framework.type.AnnotationClassLoader; -import java.lang.annotation.Annotation; - public class SubtypingAnnotationClassLoader extends AnnotationClassLoader { public SubtypingAnnotationClassLoader(BaseTypeChecker checker) { diff --git a/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingChecker.java b/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingChecker.java index 3c223038232..1ce0e373aac 100644 --- a/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingChecker.java +++ b/framework/src/main/java/org/checkerframework/common/subtyping/SubtypingChecker.java @@ -1,15 +1,13 @@ package org.checkerframework.common.subtyping; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.common.basetype.BaseTypeVisitor; -import org.checkerframework.framework.source.SourceVisitor; - import java.lang.annotation.Annotation; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; - import javax.annotation.processing.SupportedOptions; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.common.basetype.BaseTypeVisitor; +import org.checkerframework.framework.source.SourceVisitor; /** * A checker for type qualifier systems that only checks subtyping relationships. diff --git a/framework/src/main/java/org/checkerframework/common/subtyping/qual/Bottom.java b/framework/src/main/java/org/checkerframework/common/subtyping/qual/Bottom.java index bb08648f25b..b60bf2f570e 100644 --- a/framework/src/main/java/org/checkerframework/common/subtyping/qual/Bottom.java +++ b/framework/src/main/java/org/checkerframework/common/subtyping/qual/Bottom.java @@ -1,12 +1,11 @@ package org.checkerframework.common.subtyping.qual; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * A special annotation intended solely for representing the bottom type in the qualifier hierarchy. diff --git a/framework/src/main/java/org/checkerframework/common/subtyping/qual/Unqualified.java b/framework/src/main/java/org/checkerframework/common/subtyping/qual/Unqualified.java index c7d92ea9173..9dcd93a1df8 100644 --- a/framework/src/main/java/org/checkerframework/common/subtyping/qual/Unqualified.java +++ b/framework/src/main/java/org/checkerframework/common/subtyping/qual/Unqualified.java @@ -1,12 +1,11 @@ package org.checkerframework.common.subtyping.qual; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * A special annotation intended solely for representing an unqualified type in the qualifier diff --git a/framework/src/main/java/org/checkerframework/common/util/TypeVisualizer.java b/framework/src/main/java/org/checkerframework/common/util/TypeVisualizer.java index f117d8f563b..c4910d0556f 100644 --- a/framework/src/main/java/org/checkerframework/common/util/TypeVisualizer.java +++ b/framework/src/main/java/org/checkerframework/common/util/TypeVisualizer.java @@ -1,5 +1,17 @@ package org.checkerframework.common.util; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeParameterElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; @@ -18,20 +30,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.SystemUtil; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeParameterElement; -import javax.lang.model.element.VariableElement; - /** * TypeVisualizer prints AnnotatedTypeMirrors as a directed graph where each node is a type and an * arrow is a reference. Arrows are labeled with the relationship that reference represents (e.g. an diff --git a/framework/src/main/java/org/checkerframework/common/util/count/AnnotationStatistics.java b/framework/src/main/java/org/checkerframework/common/util/count/AnnotationStatistics.java index 5267c5d2b22..044b3b3a58d 100644 --- a/framework/src/main/java/org/checkerframework/common/util/count/AnnotationStatistics.java +++ b/framework/src/main/java/org/checkerframework/common/util/count/AnnotationStatistics.java @@ -17,19 +17,16 @@ import com.sun.source.util.TreePath; import com.sun.tools.javac.tree.JCTree.JCAnnotation; import com.sun.tools.javac.util.Log; - -import org.checkerframework.framework.source.SourceChecker; -import org.checkerframework.framework.source.SourceVisitor; -import org.checkerframework.framework.source.SupportedOptions; -import org.checkerframework.javacutil.AnnotationProvider; - import java.util.HashMap; import java.util.Map; import java.util.TreeSet; - import javax.annotation.processing.SupportedSourceVersion; import javax.lang.model.SourceVersion; import javax.lang.model.element.Name; +import org.checkerframework.framework.source.SourceChecker; +import org.checkerframework.framework.source.SourceVisitor; +import org.checkerframework.framework.source.SupportedOptions; +import org.checkerframework.javacutil.AnnotationProvider; /** * An annotation processor for listing the potential locations of annotations. To invoke it, use diff --git a/framework/src/main/java/org/checkerframework/common/util/count/JavaCodeStatistics.java b/framework/src/main/java/org/checkerframework/common/util/count/JavaCodeStatistics.java index b130c1ca93f..c3280051338 100644 --- a/framework/src/main/java/org/checkerframework/common/util/count/JavaCodeStatistics.java +++ b/framework/src/main/java/org/checkerframework/common/util/count/JavaCodeStatistics.java @@ -12,19 +12,16 @@ import com.sun.source.tree.ParameterizedTypeTree; import com.sun.source.tree.TypeCastTree; import com.sun.tools.javac.util.Log; - +import java.util.List; +import javax.annotation.processing.SupportedSourceVersion; +import javax.lang.model.SourceVersion; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.framework.source.SourceChecker; import org.checkerframework.framework.source.SourceVisitor; import org.checkerframework.javacutil.AnnotationProvider; import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; - -import javax.annotation.processing.SupportedSourceVersion; -import javax.lang.model.SourceVersion; -import javax.lang.model.element.AnnotationMirror; - /** * An annotation processor for counting the size of Java code: * diff --git a/framework/src/main/java/org/checkerframework/common/util/debug/EmptyProcessor.java b/framework/src/main/java/org/checkerframework/common/util/debug/EmptyProcessor.java index d552054eedb..bd743000cbf 100644 --- a/framework/src/main/java/org/checkerframework/common/util/debug/EmptyProcessor.java +++ b/framework/src/main/java/org/checkerframework/common/util/debug/EmptyProcessor.java @@ -1,7 +1,6 @@ package org.checkerframework.common.util.debug; import java.util.Set; - import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.SupportedAnnotationTypes; diff --git a/framework/src/main/java/org/checkerframework/common/util/debug/SignaturePrinter.java b/framework/src/main/java/org/checkerframework/common/util/debug/SignaturePrinter.java index af536fb58e9..7179af3a114 100644 --- a/framework/src/main/java/org/checkerframework/common/util/debug/SignaturePrinter.java +++ b/framework/src/main/java/org/checkerframework/common/util/debug/SignaturePrinter.java @@ -3,25 +3,9 @@ import com.sun.source.util.TreePath; import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.signature.qual.BinaryName; -import org.checkerframework.framework.source.SourceChecker; -import org.checkerframework.framework.source.SourceVisitor; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.javacutil.AbstractTypeProcessor; -import org.checkerframework.javacutil.AnnotationProvider; -import org.checkerframework.javacutil.UserError; -import org.plumelib.reflection.Signatures; - import java.io.PrintStream; import java.lang.reflect.Constructor; import java.util.List; - import javax.annotation.processing.ProcessingEnvironment; import javax.annotation.processing.SupportedAnnotationTypes; import javax.annotation.processing.SupportedOptions; @@ -36,6 +20,19 @@ import javax.lang.model.element.TypeParameterElement; import javax.lang.model.element.VariableElement; import javax.lang.model.util.AbstractElementVisitor7; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signature.qual.BinaryName; +import org.checkerframework.framework.source.SourceChecker; +import org.checkerframework.framework.source.SourceVisitor; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.javacutil.AbstractTypeProcessor; +import org.checkerframework.javacutil.AnnotationProvider; +import org.checkerframework.javacutil.UserError; +import org.plumelib.reflection.Signatures; /** * Outputs the method signatures of a class with fully annotated types. diff --git a/framework/src/main/java/org/checkerframework/common/util/debug/TreeDebug.java b/framework/src/main/java/org/checkerframework/common/util/debug/TreeDebug.java index c5fb7b33d7f..0a65e8842b5 100644 --- a/framework/src/main/java/org/checkerframework/common/util/debug/TreeDebug.java +++ b/framework/src/main/java/org/checkerframework/common/util/debug/TreeDebug.java @@ -11,9 +11,7 @@ import com.sun.source.util.TreePathScanner; import com.sun.source.util.Trees; import com.sun.tools.javac.tree.JCTree.JCNewArray; - import java.util.Set; - import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.SupportedAnnotationTypes; diff --git a/framework/src/main/java/org/checkerframework/common/util/debug/TreePrinter.java b/framework/src/main/java/org/checkerframework/common/util/debug/TreePrinter.java index 5631cd7741a..d414120ee07 100644 --- a/framework/src/main/java/org/checkerframework/common/util/debug/TreePrinter.java +++ b/framework/src/main/java/org/checkerframework/common/util/debug/TreePrinter.java @@ -3,16 +3,13 @@ import com.sun.source.util.TreePath; import com.sun.tools.javac.tree.JCTree.JCCompilationUnit; import com.sun.tools.javac.tree.Pretty; - -import org.checkerframework.javacutil.AbstractTypeProcessor; - import java.io.IOException; import java.io.StringWriter; - import javax.annotation.processing.SupportedAnnotationTypes; import javax.annotation.processing.SupportedSourceVersion; import javax.lang.model.SourceVersion; import javax.lang.model.element.TypeElement; +import org.checkerframework.javacutil.AbstractTypeProcessor; /** * A utility class for pretty-printing the AST of a program. diff --git a/framework/src/main/java/org/checkerframework/common/util/debug/TypeOutputtingChecker.java b/framework/src/main/java/org/checkerframework/common/util/debug/TypeOutputtingChecker.java index d55df807ca9..fafc72ba039 100644 --- a/framework/src/main/java/org/checkerframework/common/util/debug/TypeOutputtingChecker.java +++ b/framework/src/main/java/org/checkerframework/common/util/debug/TypeOutputtingChecker.java @@ -5,7 +5,15 @@ import com.sun.source.tree.VariableTree; import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; - +import java.util.Collection; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.util.Elements; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.framework.type.AnnotatedTypeFactory; @@ -19,17 +27,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.TreeUtils; -import java.util.Collection; -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.util.Elements; - /** * A testing class that can be used to test {@link TypeElement}. In particular it tests that the * types read from classfiles are the same to the ones from java files. diff --git a/framework/src/main/java/org/checkerframework/common/util/report/ReportChecker.java b/framework/src/main/java/org/checkerframework/common/util/report/ReportChecker.java index 11bd6f50c3f..4dac57623cf 100644 --- a/framework/src/main/java/org/checkerframework/common/util/report/ReportChecker.java +++ b/framework/src/main/java/org/checkerframework/common/util/report/ReportChecker.java @@ -1,8 +1,7 @@ package org.checkerframework.common.util.report; -import org.checkerframework.common.basetype.BaseTypeChecker; - import javax.annotation.processing.SupportedOptions; +import org.checkerframework.common.basetype.BaseTypeChecker; /** * The Report Checker for semantic searches. diff --git a/framework/src/main/java/org/checkerframework/common/util/report/ReportVisitor.java b/framework/src/main/java/org/checkerframework/common/util/report/ReportVisitor.java index ea943b623db..bcdb9f1eb57 100644 --- a/framework/src/main/java/org/checkerframework/common/util/report/ReportVisitor.java +++ b/framework/src/main/java/org/checkerframework/common/util/report/ReportVisitor.java @@ -13,7 +13,15 @@ import com.sun.source.tree.NewClassTree; import com.sun.source.tree.Tree; import com.sun.source.tree.TypeCastTree; - +import java.util.EnumSet; +import java.util.List; +import java.util.Map; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.PackageElement; +import javax.lang.model.element.TypeElement; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeValidator; @@ -31,17 +39,6 @@ import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.TreeUtils; -import java.util.EnumSet; -import java.util.List; -import java.util.Map; - -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.PackageElement; -import javax.lang.model.element.TypeElement; - public class ReportVisitor extends BaseTypeVisitor { /** The tree kinds that should be reported; may be null. */ diff --git a/framework/src/main/java/org/checkerframework/common/util/report/qual/ReportUnqualified.java b/framework/src/main/java/org/checkerframework/common/util/report/qual/ReportUnqualified.java index 3eb8d1ae0b5..2354ceffe07 100644 --- a/framework/src/main/java/org/checkerframework/common/util/report/qual/ReportUnqualified.java +++ b/framework/src/main/java/org/checkerframework/common/util/report/qual/ReportUnqualified.java @@ -1,14 +1,13 @@ package org.checkerframework.common.util.report.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * An annotation intended solely for representing an unqualified type in the qualifier hierarchy for diff --git a/framework/src/main/java/org/checkerframework/common/value/PropertyFileHandler.java b/framework/src/main/java/org/checkerframework/common/value/PropertyFileHandler.java new file mode 100644 index 00000000000..30bdba93f85 --- /dev/null +++ b/framework/src/main/java/org/checkerframework/common/value/PropertyFileHandler.java @@ -0,0 +1,378 @@ +package org.checkerframework.common.value; + +import static org.checkerframework.common.value.ValueAnnotatedTypeFactory.getStringValues; + +import com.sun.source.tree.ExpressionTree; +import com.sun.source.tree.MethodInvocationTree; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.Arrays; +import java.util.List; +import java.util.Properties; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.tools.Diagnostic.Kind; +import org.checkerframework.common.value.qual.PropertyFile; +import org.checkerframework.common.value.qual.PropertyFileBottom; +import org.checkerframework.common.value.qual.PropertyFileUnknown; +import org.checkerframework.common.value.qual.StringVal; +import org.checkerframework.dataflow.analysis.FlowExpressions; +import org.checkerframework.dataflow.analysis.FlowExpressions.Receiver; +import org.checkerframework.dataflow.analysis.TransferInput; +import org.checkerframework.dataflow.analysis.TransferResult; +import org.checkerframework.dataflow.cfg.node.MethodInvocationNode; +import org.checkerframework.dataflow.cfg.node.Node; +import org.checkerframework.framework.flow.CFStore; +import org.checkerframework.framework.flow.CFValue; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.Pair; +import org.checkerframework.javacutil.TreeUtils; + +/** + * Utility class for handling {@link java.util.Properties#getProperty(String)} and {@link + * java.util.Properties#getProperty(String, String)} invocations. + */ +public class PropertyFileHandler { + + /** The processing environment. */ + protected final ProcessingEnvironment env; + + /** The factory for constructing and looking up types. */ + protected final ValueAnnotatedTypeFactory factory; + + /** The checker, used for issuing diagnostic messages. */ + protected final ValueChecker checker; + + /** The ClassLoader.getResourceAsStream(String) method. */ + protected final ExecutableElement getResourceAsStream; + + /** The Properties.getProperty(String) method. */ + protected final ExecutableElement getProperty; + + /** The Properties.getProperty(String, String) method. */ + protected final ExecutableElement getPropertyWithDefaultValue; + + /** The Properties.load(String) method. */ + protected final ExecutableElement propertiesLoad; + + /** + * Create a new PropertyFileHandler. + * + * @param env the processing environment + * @param factory the annotated type factory + * @param checker the checker to use + */ + public PropertyFileHandler( + ProcessingEnvironment env, ValueAnnotatedTypeFactory factory, ValueChecker checker) { + this.env = env; + this.factory = factory; + this.checker = checker; + + getResourceAsStream = + TreeUtils.getMethod( + java.lang.ClassLoader.class.getName(), "getResourceAsStream", 1, env); + getProperty = + TreeUtils.getMethod(java.util.Properties.class.getName(), "getProperty", 1, env); + getPropertyWithDefaultValue = + TreeUtils.getMethod(java.util.Properties.class.getName(), "getProperty", 2, env); + propertiesLoad = + TreeUtils.getMethod( + java.util.Properties.class.getName(), "load", env, "java.io.InputStream"); + } + + /** + * Return true if the target annotation is in the property file qualifier hierarchy. + * + * @param anno the annotation to check + * @return true if the target annotation is in the property file qualifier hierarchy. + */ + public static boolean inPropertyFileQualifierHierarchy(AnnotationMirror anno) { + return AnnotationUtils.areSameByClass(anno, PropertyFile.class) + || AnnotationUtils.areSameByClass(anno, PropertyFileUnknown.class) + || AnnotationUtils.areSameByClass(anno, PropertyFileBottom.class); + } + + /** + * Handle the property file. Refine the return type of {@link + * java.lang.ClassLoader#getResourceAsStream(String)}, {@link + * java.util.Properties#getProperty(String)}, and {@link + * java.util.Properties#getProperty(String, String)}: + * + *
    + *
  • Refine the return type of {@code getResourceAsStream(propFile)} to + * {@literal @}PropertyFile(propFile), + *
  • refine the return type of {@code property.getProperty("URL")} from + * {@literal @}UnknownVal to {@literal @}StringVal("the value of key 'URL' in the property + * file") if {@code property} has type {@literal @}PropertyFile(), and + *
  • refine the return type of {@code property.getProperty("URL", "default value")} to + * {@literal @}StringVal() if {@code property} has type {@literal @}PropertyFile(). + * Default value will be applied when the target key does not exist. + *
+ * + *

Used in {@link + * org.checkerframework.common.value.ValueTreeAnnotator#visitMethodInvocation(MethodInvocationTree, + * AnnotatedTypeMirror)}. + * + * @param node the method invocation tree + * @param annotatedTypeMirror the annotated type mirror + */ + public void handle(MethodInvocationTree node, AnnotatedTypeMirror annotatedTypeMirror) { + if (TreeUtils.isMethodInvocation(node, getResourceAsStream, env)) { + AnnotationMirror stringVal = getStringValFromArgument(node, 0); + if (stringVal == null) { + return; + } + String propFile = getValueFromStringVal(stringVal); + if (propFile == null) { + return; + } + annotatedTypeMirror.replaceAnnotation(createPropertyFileAnnotation(propFile)); + } else if (TreeUtils.isMethodInvocation(node, getProperty, env)) { + AnnotationMirror propertyFile = + factory.getReceiverType(node).getAnnotation(PropertyFile.class); + AnnotationMirror stringAnnotation = getStringValFromArgument(node, 0); + if (propertyFile == null || stringAnnotation == null) { + return; + } + String propFile = getValueFromPropFileAnnotation(propertyFile); + if (propFile == null) { + return; + } + String propKey = getValueFromStringVal(stringAnnotation); + Pair propValues = + readValueFromPropertyFile(propFile, propKey, null, node); + if (propValues == null) { + return; + } + annotatedTypeMirror.replaceAnnotation(createStringAnnotation(propValues.first)); + } else if (TreeUtils.isMethodInvocation(node, getPropertyWithDefaultValue, env)) { + AnnotationMirror propFileAnnotation = + factory.getReceiverType(node).getAnnotation(PropertyFile.class); + AnnotationMirror stringAnnotationArg0 = getStringValFromArgument(node, 0); + AnnotationMirror stringAnnotationArg1 = getStringValFromArgument(node, 1); + if (propFileAnnotation == null || stringAnnotationArg0 == null) { + return; + } + String propFile = getValueFromPropFileAnnotation(propFileAnnotation); + if (propFile == null) { + return; + } + String propKey = getValueFromStringVal(stringAnnotationArg0); + String defaultValue; + if (stringAnnotationArg1 != null) { + defaultValue = getValueFromStringVal(stringAnnotationArg1); + } else { + defaultValue = null; + } + Pair propValues = + readValueFromPropertyFile(propFile, propKey, defaultValue, node); + if (propValues == null) { + return; + } + if (propValues.first.equals(propValues.second)) { + annotatedTypeMirror.replaceAnnotation(createStringAnnotation(propValues.first)); + } else { + annotatedTypeMirror.replaceAnnotation( + createStringAnnotation(propValues.first, propValues.second)); + } + } + } + + /** + * Handle the property file. Refine the receiver type of {@link + * java.util.Properties#load(InputStream)}. Used in {@link + * ValueTransfer#visitMethodInvocation(MethodInvocationNode, TransferInput)}. When {@code + * property.load(inputStream)} is called, try to propagate {@code inputstream}'s type to {@code + * property}. + * + * @param node the method invocation tree + * @param result the transfer result + */ + public void handle(MethodInvocationNode node, TransferResult result) { + MethodInvocationTree methodInvocationTree = node.getTree(); + if (TreeUtils.isMethodInvocation(methodInvocationTree, propertiesLoad, env)) { + ExpressionTree arg0 = methodInvocationTree.getArguments().get(0); + AnnotationMirror propFileAnnotation = + factory.getAnnotatedType(arg0).getAnnotation(PropertyFile.class); + if (propFileAnnotation == null) { + return; + } + String propFile = getValueFromPropFileAnnotation(propFileAnnotation); + if (propFile == null) { + return; + } + Node receiver = node.getTarget().getReceiver(); + Receiver receiverRec = FlowExpressions.internalReprOf(factory, receiver); + propFileAnnotation = createPropertyFileAnnotation(propFile); + if (result.containsTwoStores()) { + CFStore thenStore = result.getThenStore(); + CFStore elseStore = result.getElseStore(); + thenStore.insertValue(receiverRec, propFileAnnotation); + elseStore.insertValue(receiverRec, propFileAnnotation); + } else { + CFStore regularStore = result.getRegularStore(); + regularStore.insertValue(receiverRec, propFileAnnotation); + } + } + } + + /** + * Return true if two {@literal @}PropertyFile annotations' element values are the same, else + * false. + * + * @param subAnno the sub annotation + * @param superAnno the super annotation + * @return true if the two annotations' values are the same + */ + protected boolean propFileElementValueEquals( + AnnotationMirror subAnno, AnnotationMirror superAnno) { + String subAnnoElementValue = + AnnotationUtils.getElementValue(subAnno, "value", String.class, false); + String superAnnoElementValue = + AnnotationUtils.getElementValue(superAnno, "value", String.class, false); + return superAnnoElementValue.equals(subAnnoElementValue); + } + + /** + * Tests whether subAnno is subtype of superAnno in the property file type hierarchy. + * + * @param subAnno the sub qualifier + * @param superAnno the super qualifier + * @return true if subAnno is subtype of superAnno + */ + protected boolean isSubtype(AnnotationMirror subAnno, AnnotationMirror superAnno) { + if (AnnotationUtils.areSameByClass(subAnno, PropertyFileBottom.class) + || AnnotationUtils.areSameByClass(superAnno, PropertyFileUnknown.class)) { + return true; + } else if (AnnotationUtils.areSameByClass(subAnno, PropertyFileUnknown.class) + || AnnotationUtils.areSameByClass(superAnno, PropertyFileBottom.class)) { + return false; + } else if (AnnotationUtils.areSameByClass(subAnno, PropertyFile.class) + && AnnotationUtils.areSameByClass(superAnno, PropertyFile.class)) { + return propFileElementValueEquals(subAnno, superAnno); + } else { + throw new BugInCF("We should never reach here."); + } + } + + /** + * Try to read the value of the key in the provided property file. + * + * @param propFile the property file to open + * @param key the key to find in the property file + * @param defaultValue the default value of that key + * @param node the method invocation tree used for reporting warning + * @return the value of the key in the property file + */ + protected Pair readValueFromPropertyFile( + String propFile, String key, String defaultValue, MethodInvocationTree node) { + String res = null; + try { + Properties prop = new Properties(); + ClassLoader cl = this.getClass().getClassLoader(); + if (cl == null) { + // the class loader is null if the system class loader was + // used + cl = ClassLoader.getSystemClassLoader(); + } + InputStream in = cl.getResourceAsStream(propFile); + if (in == null) { + // if the classloader didn't manage to load the file, try + // whether a FileInputStream works. For absolute paths this + // might help. + try { + in = new FileInputStream(propFile); + } catch (FileNotFoundException e) { + // ignore + } + } + if (in == null) { + checker.message(Kind.WARNING, "Couldn't find the properties file: " + propFile); + return null; + } + prop.load(in); + Set keyNames = prop.stringPropertyNames(); + if (!keyNames.contains(key)) { + checker.reportWarning(node, "key.not.exist.in.properties.file", key, propFile); + if (defaultValue == null) { + return null; + } + } + if (defaultValue == null) { + res = prop.getProperty(key); + } else { + res = prop.getProperty(key, defaultValue); + } + } catch (Exception e) { + checker.message( + Kind.WARNING, "Exception in PropertyFileHandler.readPropertyFromFile: " + e); + } + return Pair.of(res, defaultValue); + } + + /** + * Create a {@literal @}PropertyFile(value) annotation. + * + * @param value the value to set in the created annotation + * @return the created annotation + */ + protected AnnotationMirror createPropertyFileAnnotation(String value) { + AnnotationBuilder builder = new AnnotationBuilder(env, PropertyFile.class); + builder.setValue("value", value); + return builder.build(); + } + + /** + * Create a {@literal @}StringVal(values) annotation. + * + * @param values the values to set in the created annotation + * @return the created annotation + */ + protected AnnotationMirror createStringAnnotation(String... values) { + return factory.createStringAnnotation(Arrays.asList(values)); + } + + /** + * Get the value of the {@literal @}StringVal() annotation. Return null when there are more than + * one values (otherwise the PropertyFileHandler may makes the Value Checker unsound). + * + * @param stringVal the {@literal @}StringVal() annotation + * @return the first value of the {@literal @}StringVal() annotation + */ + protected String getValueFromStringVal(AnnotationMirror stringVal) { + List values = getStringValues(stringVal); + if (values.size() == 1) { + return values.get(0); + } else { + return null; + } + } + + /** + * Get the value of the {@literal @}PropertyFile() annotation. + * + * @param propertyFile the {@literal @}PropertyFile() annotation + * @return the value of the {@literal @}PropertyFile() annotation + */ + protected static String getValueFromPropFileAnnotation(AnnotationMirror propertyFile) { + return AnnotationUtils.getElementValue(propertyFile, "value", String.class, false); + } + + /** + * Get the {@literal @}StringVal() annotation from the argument of the method invocation. + * + * @param node the method invocation tree + * @param position the position of the argument + * @return the target {@literal @}StringVal() annotation + */ + protected AnnotationMirror getStringValFromArgument(MethodInvocationTree node, int position) { + ExpressionTree arg = node.getArguments().get(position); + return factory.getAnnotatedType(arg).getAnnotation(StringVal.class); + } +} diff --git a/framework/src/main/java/org/checkerframework/common/value/RangeOrListOfValues.java b/framework/src/main/java/org/checkerframework/common/value/RangeOrListOfValues.java index f54145feb99..1ff85b93e40 100644 --- a/framework/src/main/java/org/checkerframework/common/value/RangeOrListOfValues.java +++ b/framework/src/main/java/org/checkerframework/common/value/RangeOrListOfValues.java @@ -1,5 +1,8 @@ package org.checkerframework.common.value; +import java.util.ArrayList; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.value.qual.ArrayLen; import org.checkerframework.common.value.qual.ArrayLenRange; import org.checkerframework.common.value.qual.IntVal; @@ -7,11 +10,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.javacutil.SystemUtil; -import java.util.ArrayList; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; - /** * An abstraction that can be either a range or a list of values that could come from an {@link * ArrayLen} or {@link IntVal}. This abstraction reduces the number of cases that {@link diff --git a/framework/src/main/java/org/checkerframework/common/value/ReflectiveEvaluator.java b/framework/src/main/java/org/checkerframework/common/value/ReflectiveEvaluator.java index 3aa6512389a..84d3219d27f 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ReflectiveEvaluator.java +++ b/framework/src/main/java/org/checkerframework/common/value/ReflectiveEvaluator.java @@ -3,15 +3,6 @@ import com.sun.source.tree.MemberSelectTree; import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.NewClassTree; - -import org.checkerframework.checker.signature.qual.ClassGetName; -import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.SystemUtil; -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; @@ -20,13 +11,19 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; - import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.Name; import javax.lang.model.element.VariableElement; import javax.lang.model.type.DeclaredType; import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.signature.qual.ClassGetName; +import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.SystemUtil; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.TypesUtils; /** * Evaluates expressions (such as method calls and field accesses) at compile time, to determine diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/common/value/ValueAnnotatedTypeFactory.java index 33006dba12b..2d4ccb218d4 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueAnnotatedTypeFactory.java @@ -4,7 +4,23 @@ import com.sun.source.tree.NewArrayTree; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.value.qual.ArrayLen; @@ -20,6 +36,9 @@ import org.checkerframework.common.value.qual.MinLen; import org.checkerframework.common.value.qual.MinLenFieldInvariant; import org.checkerframework.common.value.qual.PolyValue; +import org.checkerframework.common.value.qual.PropertyFile; +import org.checkerframework.common.value.qual.PropertyFileBottom; +import org.checkerframework.common.value.qual.PropertyFileUnknown; import org.checkerframework.common.value.qual.StringVal; import org.checkerframework.common.value.qual.UnknownVal; import org.checkerframework.common.value.util.NumberUtils; @@ -50,24 +69,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** AnnotatedTypeFactory for the Value type system. */ public class ValueAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { /** Fully-qualified class name of {@link UnknownVal} */ @@ -128,12 +129,44 @@ public class ValueAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { /** Helper class that holds references to special methods. */ private final ValueMethodIdentifier methods; + /** The property file handler. */ + public final @Nullable PropertyFileHandler propertyFileHandler; + + /** Set of supported type qualifiers in the original value hierarchy. */ + protected static final LinkedHashSet> supportedValueQualifiers = + new LinkedHashSet<>( + Arrays.asList( + ArrayLen.class, + ArrayLenRange.class, + IntVal.class, + IntRange.class, + BoolVal.class, + StringVal.class, + DoubleVal.class, + BottomVal.class, + UnknownVal.class, + IntRangeFromPositive.class, + IntRangeFromNonNegative.class, + IntRangeFromGTENegativeOne.class, + PolyValue.class)); + + /** + * Create a new ValueAnnotatedTypeFactory. + * + * @param checker the checker to use + */ @SuppressWarnings("StaticAssignmentInConstructor") // static Range.ignoreOverflow is gross public ValueAnnotatedTypeFactory(BaseTypeChecker checker) { super(checker); reportEvalWarnings = checker.hasOption(ValueChecker.REPORT_EVAL_WARNS); Range.ignoreOverflow = checker.hasOption(ValueChecker.IGNORE_RANGE_OVERFLOW); + if (checker.hasOption(ValueChecker.HANDLE_PROPERTY_FILES)) { + propertyFileHandler = + new PropertyFileHandler(getProcessingEnv(), this, (ValueChecker) checker); + } else { + propertyFileHandler = null; + } evaluator = new ReflectiveEvaluator(checker, this, reportEvalWarnings); addAliasedAnnotation("android.support.annotation.IntRange", IntRange.class, true); @@ -202,21 +235,16 @@ public AnnotationMirror canonicalAnnotation(AnnotationMirror anno) { protected Set> createSupportedTypeQualifiers() { // Because the Value Checker includes its own alias annotations, // the qualifiers have to be explicitly defined. - return new LinkedHashSet<>( - Arrays.asList( - ArrayLen.class, - ArrayLenRange.class, - IntVal.class, - IntRange.class, - BoolVal.class, - StringVal.class, - DoubleVal.class, - BottomVal.class, - UnknownVal.class, - IntRangeFromPositive.class, - IntRangeFromNonNegative.class, - IntRangeFromGTENegativeOne.class, - PolyValue.class)); + LinkedHashSet> supportedTypeQualifiers = + new LinkedHashSet<>(supportedValueQualifiers); + if (propertyFileHandler != null) { + Collections.addAll( + supportedTypeQualifiers, + PropertyFile.class, + PropertyFileUnknown.class, + PropertyFileBottom.class); + } + return supportedTypeQualifiers; } @Override diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueChecker.java b/framework/src/main/java/org/checkerframework/common/value/ValueChecker.java index fe615708215..5874dc23bbd 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueChecker.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueChecker.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value; +import java.util.LinkedHashSet; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.common.value.util.Range; import org.checkerframework.framework.source.SupportedOptions; -import java.util.LinkedHashSet; - /** * The Constant Value Checker is a constant propagation analysis: for each variable, it determines * whether that variable's value can be known at compile time. @@ -21,7 +20,8 @@ @SupportedOptions({ ValueChecker.REPORT_EVAL_WARNS, ValueChecker.IGNORE_RANGE_OVERFLOW, - ValueChecker.NON_NULL_STRINGS_CONCATENATION + ValueChecker.NON_NULL_STRINGS_CONCATENATION, + ValueChecker.HANDLE_PROPERTY_FILES }) public class ValueChecker extends BaseTypeChecker { /** @@ -33,6 +33,8 @@ public class ValueChecker extends BaseTypeChecker { public static final String IGNORE_RANGE_OVERFLOW = "ignoreRangeOverflow"; /** Command-line option that assumes most expressions in String concatenations can be null. */ public static final String NON_NULL_STRINGS_CONCATENATION = "nonNullStringsConcatenation"; + /** Command-line option to enable the property file handler. */ + public static final String HANDLE_PROPERTY_FILES = "handlePropertyFiles"; @Override protected BaseTypeVisitor createSourceVisitor() { diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueCheckerUtils.java b/framework/src/main/java/org/checkerframework/common/value/ValueCheckerUtils.java index 6f293090adf..738cdbbf676 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueCheckerUtils.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueCheckerUtils.java @@ -2,28 +2,25 @@ import com.google.common.collect.Comparators; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; -import org.checkerframework.common.value.qual.IntRange; -import org.checkerframework.common.value.qual.IntVal; -import org.checkerframework.common.value.qual.StringVal; -import org.checkerframework.common.value.util.NumberUtils; -import org.checkerframework.common.value.util.Range; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Set; import java.util.TreeSet; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.type.ArrayType; import javax.lang.model.type.DeclaredType; import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; +import org.checkerframework.common.value.qual.IntRange; +import org.checkerframework.common.value.qual.IntVal; +import org.checkerframework.common.value.qual.StringVal; +import org.checkerframework.common.value.util.NumberUtils; +import org.checkerframework.common.value.util.Range; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.TypesUtils; public class ValueCheckerUtils { public static Class getClassFromType(TypeMirror type) { diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueMethodIdentifier.java b/framework/src/main/java/org/checkerframework/common/value/ValueMethodIdentifier.java index c06bfb92003..d8f5bf7b606 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueMethodIdentifier.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueMethodIdentifier.java @@ -1,13 +1,10 @@ package org.checkerframework.common.value; import com.sun.source.tree.Tree; - -import org.checkerframework.javacutil.TreeUtils; - import java.util.List; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.ExecutableElement; +import org.checkerframework.javacutil.TreeUtils; /** Stores methods that have special handling in the value checker. */ class ValueMethodIdentifier { diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueQualifierHierarchy.java b/framework/src/main/java/org/checkerframework/common/value/ValueQualifierHierarchy.java index 1ccd17d4203..ed88eafa8cb 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueQualifierHierarchy.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueQualifierHierarchy.java @@ -1,15 +1,15 @@ package org.checkerframework.common.value; -import org.checkerframework.common.value.util.Range; -import org.checkerframework.framework.util.MultiGraphQualifierHierarchy; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.AnnotationUtils; +import static org.checkerframework.common.value.PropertyFileHandler.inPropertyFileQualifierHierarchy; import java.util.ArrayList; import java.util.List; import java.util.TreeSet; - import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.common.value.util.Range; +import org.checkerframework.framework.util.MultiGraphQualifierHierarchy; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.AnnotationUtils; /** The qualifier hierarchy for the Value type system. */ final class ValueQualifierHierarchy extends MultiGraphQualifierHierarchy { @@ -371,6 +371,18 @@ public AnnotationMirror leastUpperBound(AnnotationMirror a1, AnnotationMirror a2 */ @Override public boolean isSubtype(AnnotationMirror subAnno, AnnotationMirror superAnno) { + if (atypeFactory.propertyFileHandler != null) { + if (inPropertyFileQualifierHierarchy(subAnno) + && inPropertyFileQualifierHierarchy(superAnno)) { + return atypeFactory.propertyFileHandler.isSubtype(subAnno, superAnno); + } else if ((!inPropertyFileQualifierHierarchy(subAnno) + && inPropertyFileQualifierHierarchy(superAnno)) + || (inPropertyFileQualifierHierarchy(subAnno) + && !inPropertyFileQualifierHierarchy(superAnno))) { + return false; + } + } + // Fall through when two are in the value hierarchy. subAnno = atypeFactory.convertSpecialIntRangeToStandardIntRange(subAnno); superAnno = atypeFactory.convertSpecialIntRangeToStandardIntRange(superAnno); String subQual = AnnotationUtils.annotationName(subAnno); diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueTransfer.java b/framework/src/main/java/org/checkerframework/common/value/ValueTransfer.java index 9987927ab99..5fef509ea7e 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueTransfer.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueTransfer.java @@ -2,7 +2,15 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.Tree; - +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.common.value.qual.ArrayLen; import org.checkerframework.common.value.qual.ArrayLenRange; import org.checkerframework.common.value.qual.StringVal; @@ -59,17 +67,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** The transfer class for the Value Checker. */ public class ValueTransfer extends CFTransfer { /** The Value type factory. */ @@ -444,6 +441,9 @@ public TransferResult visitMethodInvocation( MethodInvocationNode n, TransferInput p) { TransferResult result = super.visitMethodInvocation(n, p); refineStringAtLengthInvocation(n, result.getRegularStore()); + if (atypefactory.propertyFileHandler != null) { + atypefactory.propertyFileHandler.handle(n, result); + } return result; } diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueTreeAnnotator.java b/framework/src/main/java/org/checkerframework/common/value/ValueTreeAnnotator.java index f6982ce91fb..76ec6aca999 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueTreeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueTreeAnnotator.java @@ -1,7 +1,12 @@ package org.checkerframework.common.value; import com.sun.source.tree.*; - +import java.util.*; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.signature.qual.BinaryName; import org.checkerframework.checker.signature.qual.Identifier; import org.checkerframework.common.value.qual.ArrayLen; @@ -16,14 +21,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.*; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** The TreeAnnotator for this AnnotatedTypeFactory. It adds/replaces annotations. */ class ValueTreeAnnotator extends TreeAnnotator { @@ -394,6 +391,10 @@ private Range getRangeForMathMinMax(MethodInvocationTree tree) { @Override public Void visitMethodInvocation(MethodInvocationTree tree, AnnotatedTypeMirror type) { + if (atypeFactory.propertyFileHandler != null) { + atypeFactory.propertyFileHandler.handle(tree, type); + } + if (type.hasAnnotation(atypeFactory.UNKNOWNVAL)) { Range range = getRangeForMathMinMax(tree); if (range != null) { diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueTypeAnnotator.java b/framework/src/main/java/org/checkerframework/common/value/ValueTypeAnnotator.java index bbc5023ca48..a05bd64d505 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueTypeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueTypeAnnotator.java @@ -1,17 +1,15 @@ package org.checkerframework.common.value; -import org.checkerframework.common.value.util.NumberUtils; -import org.checkerframework.common.value.util.Range; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.typeannotator.TypeAnnotator; -import org.checkerframework.javacutil.AnnotationUtils; - import java.util.Collections; import java.util.List; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import org.checkerframework.common.value.util.NumberUtils; +import org.checkerframework.common.value.util.Range; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.typeannotator.TypeAnnotator; +import org.checkerframework.javacutil.AnnotationUtils; /** * Performs pre-processing on annotations written by users, replacing illegal annotations by legal diff --git a/framework/src/main/java/org/checkerframework/common/value/ValueVisitor.java b/framework/src/main/java/org/checkerframework/common/value/ValueVisitor.java index 086caa47c59..5e563f6b129 100644 --- a/framework/src/main/java/org/checkerframework/common/value/ValueVisitor.java +++ b/framework/src/main/java/org/checkerframework/common/value/ValueVisitor.java @@ -6,7 +6,11 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.TypeCastTree; - +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; @@ -22,13 +26,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.Collections; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** Visitor for the Constant Value type system. */ public class ValueVisitor extends BaseTypeVisitor { diff --git a/framework/src/main/java/org/checkerframework/common/value/messages.properties b/framework/src/main/java/org/checkerframework/common/value/messages.properties index b4895354afc..561953b38ab 100644 --- a/framework/src/main/java/org/checkerframework/common/value/messages.properties +++ b/framework/src/main/java/org/checkerframework/common/value/messages.properties @@ -16,3 +16,4 @@ from.greater.than.to=The "from" value must be less than or equal to the "to" val negative.arraylen=Negative array lengths are not allowed.%nfound: %s class.convert.failed=Cannot convert annotation %s to class %s" annotation.intrange.on.noninteger=@IntRange can only be used on integral types. +key.not.exist.in.properties.file=Key "%s" does not exist in the properties file: %s diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/ArrayLen.java b/framework/src/main/java/org/checkerframework/common/value/qual/ArrayLen.java index 85c2f5b4d6b..ac7dbb7410b 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/ArrayLen.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/ArrayLen.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An annotation indicating the length of an array or a string. If an expression's type has this diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/ArrayLenRange.java b/framework/src/main/java/org/checkerframework/common/value/qual/ArrayLenRange.java index 765550a004a..a1dc709dbf0 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/ArrayLenRange.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/ArrayLenRange.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An expression with this type evaluates to an array or a string whose length is in the given diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/BoolVal.java b/framework/src/main/java/org/checkerframework/common/value/qual/BoolVal.java index adbb4d2d06f..cc88fde7bc3 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/BoolVal.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/BoolVal.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An annotation indicating the possible values for a bool type. If an expression's type has this diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/BottomVal.java b/framework/src/main/java/org/checkerframework/common/value/qual/BottomVal.java index 91913a5f5db..6c71fbe1ee0 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/BottomVal.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/BottomVal.java @@ -1,15 +1,14 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; /** * The bottom type in the Constant Value type system. Programmers should rarely write this type. diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/DoubleVal.java b/framework/src/main/java/org/checkerframework/common/value/qual/DoubleVal.java index 612ec4da291..cd180efdcd3 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/DoubleVal.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/DoubleVal.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An annotation indicating the possible values for a double or float type. If an expression's type diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/EnsuresMinLenIf.java b/framework/src/main/java/org/checkerframework/common/value/qual/EnsuresMinLenIf.java index 3d6bb098f3c..239f2c741be 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/EnsuresMinLenIf.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/EnsuresMinLenIf.java @@ -1,15 +1,14 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; -import org.checkerframework.framework.qual.InheritedAnnotation; -import org.checkerframework.framework.qual.QualifierArgument; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; +import org.checkerframework.framework.qual.InheritedAnnotation; +import org.checkerframework.framework.qual.QualifierArgument; /** * Indicates that the value of the given expression is a sequence containing at least the given diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/IntRange.java b/framework/src/main/java/org/checkerframework/common/value/qual/IntRange.java index 9946f157422..5ee28577902 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/IntRange.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/IntRange.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An expression with this type evaluates to an integral value (byte, short, char, int, or long) in diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromGTENegativeOne.java b/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromGTENegativeOne.java index 231f9116087..fc65c4a9f20 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromGTENegativeOne.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromGTENegativeOne.java @@ -1,11 +1,10 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An expression with this type is exactly the same as an {@link IntRange} annotation whose {@code diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromNonNegative.java b/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromNonNegative.java index 0d39d1bf601..434ff259de3 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromNonNegative.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromNonNegative.java @@ -1,11 +1,10 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An expression with this type is exactly the same as an {@link IntRange} annotation whose {@code diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromPositive.java b/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromPositive.java index 38fc9f88a18..4941505975a 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromPositive.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/IntRangeFromPositive.java @@ -1,11 +1,10 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An expression with this type is exactly the same as an {@link IntRange} annotation whose {@code diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/IntVal.java b/framework/src/main/java/org/checkerframework/common/value/qual/IntVal.java index 6ee20087e74..ad9658ab1f4 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/IntVal.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/IntVal.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An annotation indicating the possible values for a byte, short, char, int, or long type. If an diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/MinLenFieldInvariant.java b/framework/src/main/java/org/checkerframework/common/value/qual/MinLenFieldInvariant.java index ffe7d404fd0..d11a0aa5c0f 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/MinLenFieldInvariant.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/MinLenFieldInvariant.java @@ -1,13 +1,12 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.FieldInvariant; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.FieldInvariant; /** * A specialization of {@link FieldInvariant} for specifying the minimum length of an array. A class diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/PolyValue.java b/framework/src/main/java/org/checkerframework/common/value/qual/PolyValue.java index 99e6ddec353..8ae998b9b7f 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/PolyValue.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/PolyValue.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * A polymorphic qualifier for the Constant Value Checker. diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFile.java b/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFile.java new file mode 100644 index 00000000000..d3b96765a1c --- /dev/null +++ b/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFile.java @@ -0,0 +1,20 @@ +package org.checkerframework.common.value.qual; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; + +/** + * If an object has type {@code @PropertyFile("a.property")}, then this object has type {@link + * java.io.InputStream} or {@link java.util.Properties} which loads the property file: a.property. + */ +@SubtypeOf({PropertyFileUnknown.class}) +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) +@Documented +public @interface PropertyFile { + String value(); +} diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFileBottom.java b/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFileBottom.java new file mode 100644 index 00000000000..a74979c3cba --- /dev/null +++ b/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFileBottom.java @@ -0,0 +1,18 @@ +package org.checkerframework.common.value.qual; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; + +/** The bottom qualifier in PropertyFile hierarchy. */ +@SubtypeOf({PropertyFile.class}) +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) +@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND}) +@Documented +public @interface PropertyFileBottom {} diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFileUnknown.java b/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFileUnknown.java new file mode 100644 index 00000000000..557c13f7140 --- /dev/null +++ b/framework/src/main/java/org/checkerframework/common/value/qual/PropertyFileUnknown.java @@ -0,0 +1,17 @@ +package org.checkerframework.common.value.qual; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; + +/** The top qualifier in PropertyFile hierarchy. */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) +@DefaultQualifierInHierarchy +@SubtypeOf({}) +@Documented +public @interface PropertyFileUnknown {} diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/StringVal.java b/framework/src/main/java/org/checkerframework/common/value/qual/StringVal.java index 95472e9746f..458a456fd06 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/StringVal.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/StringVal.java @@ -1,12 +1,11 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * An annotation indicating the possible values for a String type. If an expression's type has this diff --git a/framework/src/main/java/org/checkerframework/common/value/qual/UnknownVal.java b/framework/src/main/java/org/checkerframework/common/value/qual/UnknownVal.java index c7a9a8cc623..bcc6b9d1186 100644 --- a/framework/src/main/java/org/checkerframework/common/value/qual/UnknownVal.java +++ b/framework/src/main/java/org/checkerframework/common/value/qual/UnknownVal.java @@ -1,13 +1,12 @@ package org.checkerframework.common.value.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * UnknownVal is a type annotation indicating that the expression's value is not known at compile diff --git a/framework/src/main/java/org/checkerframework/common/value/util/NumberUtils.java b/framework/src/main/java/org/checkerframework/common/value/util/NumberUtils.java index 233947c0200..5cbd8149f3e 100644 --- a/framework/src/main/java/org/checkerframework/common/value/util/NumberUtils.java +++ b/framework/src/main/java/org/checkerframework/common/value/util/NumberUtils.java @@ -1,13 +1,11 @@ package org.checkerframework.common.value.util; -import org.checkerframework.javacutil.TypesUtils; - import java.util.ArrayList; import java.util.List; - import javax.lang.model.type.DeclaredType; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import org.checkerframework.javacutil.TypesUtils; public class NumberUtils { diff --git a/framework/src/main/java/org/checkerframework/common/value/util/Range.java b/framework/src/main/java/org/checkerframework/common/value/util/Range.java index 11fd71b3249..b373a081f78 100644 --- a/framework/src/main/java/org/checkerframework/common/value/util/Range.java +++ b/framework/src/main/java/org/checkerframework/common/value/util/Range.java @@ -1,15 +1,13 @@ package org.checkerframework.common.value.util; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.math.BigInteger; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Objects; - import javax.lang.model.type.TypeKind; +import org.checkerframework.checker.nullness.qual.Nullable; /** * The Range class models a 64-bit two's-complement integral interval, such as all integers between diff --git a/framework/src/main/java/org/checkerframework/common/wholeprograminference/AnnotationConverter.java b/framework/src/main/java/org/checkerframework/common/wholeprograminference/AnnotationConverter.java index a8860e241f1..67e72bd7c2d 100644 --- a/framework/src/main/java/org/checkerframework/common/wholeprograminference/AnnotationConverter.java +++ b/framework/src/main/java/org/checkerframework/common/wholeprograminference/AnnotationConverter.java @@ -3,30 +3,26 @@ import com.sun.tools.javac.code.Attribute.Array; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.code.Type.ArrayType; - -import org.checkerframework.checker.signature.qual.ClassGetName; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; - -import scenelib.annotations.Annotation; -import scenelib.annotations.el.AnnotationDef; -import scenelib.annotations.field.AnnotationFieldType; -import scenelib.annotations.field.ArrayAFT; -import scenelib.annotations.field.BasicAFT; -import scenelib.annotations.field.ScalarAFT; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.AnnotationValue; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.signature.qual.ClassGetName; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import scenelib.annotations.Annotation; +import scenelib.annotations.el.AnnotationDef; +import scenelib.annotations.field.AnnotationFieldType; +import scenelib.annotations.field.ArrayAFT; +import scenelib.annotations.field.BasicAFT; +import scenelib.annotations.field.ScalarAFT; /** * This class contains static methods that convert between {@link scenelib.annotations.Annotation} diff --git a/framework/src/main/java/org/checkerframework/common/wholeprograminference/SceneToStubWriter.java b/framework/src/main/java/org/checkerframework/common/wholeprograminference/SceneToStubWriter.java index d67426a1259..4ce80c0148f 100644 --- a/framework/src/main/java/org/checkerframework/common/wholeprograminference/SceneToStubWriter.java +++ b/framework/src/main/java/org/checkerframework/common/wholeprograminference/SceneToStubWriter.java @@ -2,27 +2,6 @@ import com.google.common.collect.ComparisonChain; import com.sun.tools.javac.code.TypeAnnotationPosition.TypePathEntry; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.signature.qual.BinaryName; -import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; -import org.checkerframework.common.wholeprograminference.scenelib.ASceneWrapper; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; - -import scenelib.annotations.Annotation; -import scenelib.annotations.el.AClass; -import scenelib.annotations.el.AField; -import scenelib.annotations.el.AMethod; -import scenelib.annotations.el.AScene; -import scenelib.annotations.el.ATypeElement; -import scenelib.annotations.el.AnnotationDef; -import scenelib.annotations.el.DefCollector; -import scenelib.annotations.el.DefException; -import scenelib.annotations.el.InnerTypeLocation; -import scenelib.annotations.field.AnnotationFieldType; -import scenelib.annotations.io.IndexFileWriter; - import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; @@ -34,7 +13,6 @@ import java.util.Map; import java.util.StringJoiner; import java.util.regex.Pattern; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.TypeElement; import javax.lang.model.element.TypeParameterElement; @@ -42,6 +20,24 @@ import javax.lang.model.type.ArrayType; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signature.qual.BinaryName; +import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; +import org.checkerframework.common.wholeprograminference.scenelib.ASceneWrapper; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import scenelib.annotations.Annotation; +import scenelib.annotations.el.AClass; +import scenelib.annotations.el.AField; +import scenelib.annotations.el.AMethod; +import scenelib.annotations.el.AScene; +import scenelib.annotations.el.ATypeElement; +import scenelib.annotations.el.AnnotationDef; +import scenelib.annotations.el.DefCollector; +import scenelib.annotations.el.DefException; +import scenelib.annotations.el.InnerTypeLocation; +import scenelib.annotations.field.AnnotationFieldType; +import scenelib.annotations.io.IndexFileWriter; // In this file, "base name" means "type without its package part in binary name format". // For example, "Outer$Inner" is a base name. diff --git a/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInference.java b/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInference.java index dea32a7b0c3..e9984ca8ab1 100644 --- a/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInference.java +++ b/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInference.java @@ -4,7 +4,8 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; import com.sun.tools.javac.code.Symbol.ClassSymbol; - +import java.util.Map; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.dataflow.cfg.node.LocalVariableNode; import org.checkerframework.dataflow.cfg.node.MethodInvocationNode; @@ -16,10 +17,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import java.util.Map; - -import javax.lang.model.element.ExecutableElement; - /** * Interface for a whole-program inference implementation. * diff --git a/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInferenceScenes.java b/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInferenceScenes.java index 3d91fc977d6..c1644d5bbf5 100644 --- a/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInferenceScenes.java +++ b/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInferenceScenes.java @@ -7,7 +7,11 @@ import com.sun.tools.javac.code.Symbol.ClassSymbol; import com.sun.tools.javac.code.Symbol.MethodSymbol; import com.sun.tools.javac.code.Symbol.VarSymbol; - +import java.util.List; +import java.util.Map; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.checker.signature.qual.BinaryName; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.dataflow.cfg.node.FieldAccessNode; @@ -26,19 +30,11 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.TreeUtils; - import scenelib.annotations.el.AClass; import scenelib.annotations.el.AField; import scenelib.annotations.el.AMethod; import scenelib.annotations.util.JVMNames; -import java.util.List; -import java.util.Map; - -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; - /** * WholeProgramInferenceScenes is an implementation of {@link * org.checkerframework.common.wholeprograminference.WholeProgramInference} that uses a storage diff --git a/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInferenceScenesStorage.java b/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInferenceScenesStorage.java index 87ac0cfb3d2..f84d064873f 100644 --- a/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInferenceScenesStorage.java +++ b/framework/src/main/java/org/checkerframework/common/wholeprograminference/WholeProgramInferenceScenesStorage.java @@ -2,7 +2,17 @@ import com.sun.tools.javac.code.Symbol.ClassSymbol; import com.sun.tools.javac.code.TypeAnnotationPosition; - +import java.io.File; +import java.io.IOException; +import java.lang.annotation.Target; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.type.TypeKind; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.signature.qual.BinaryName; import org.checkerframework.common.basetype.BaseTypeChecker; @@ -21,7 +31,6 @@ import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.UserError; - import scenelib.annotations.Annotation; import scenelib.annotations.el.AClass; import scenelib.annotations.el.AScene; @@ -29,19 +38,6 @@ import scenelib.annotations.el.InnerTypeLocation; import scenelib.annotations.io.IndexFileParser; -import java.io.File; -import java.io.IOException; -import java.lang.annotation.Target; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.type.TypeKind; - /** * This class stores annotations for fields, method return types, and method parameters. * diff --git a/framework/src/main/java/org/checkerframework/common/wholeprograminference/scenelib/ASceneWrapper.java b/framework/src/main/java/org/checkerframework/common/wholeprograminference/scenelib/ASceneWrapper.java index f2015bc7d58..fd07eb3b7db 100644 --- a/framework/src/main/java/org/checkerframework/common/wholeprograminference/scenelib/ASceneWrapper.java +++ b/framework/src/main/java/org/checkerframework/common/wholeprograminference/scenelib/ASceneWrapper.java @@ -1,7 +1,17 @@ package org.checkerframework.common.wholeprograminference.scenelib; import com.sun.tools.javac.code.Symbol.ClassSymbol; - +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.wholeprograminference.SceneToStubWriter; @@ -13,7 +23,6 @@ import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.UserError; - import scenelib.annotations.Annotation; import scenelib.annotations.el.AClass; import scenelib.annotations.el.AField; @@ -23,19 +32,6 @@ import scenelib.annotations.el.DefException; import scenelib.annotations.io.IndexFileWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; - /** * scene-lib (from the Annotation File Utilities) doesn't provide enough information to usefully * print stub files: it lacks information about what is and is not an enum, about the base types of diff --git a/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractAnalysis.java b/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractAnalysis.java index 294f87e4795..999545467a1 100644 --- a/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractAnalysis.java +++ b/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractAnalysis.java @@ -1,5 +1,13 @@ package org.checkerframework.framework.flow; +import java.util.List; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Types; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.dataflow.analysis.ForwardAnalysisImpl; @@ -15,16 +23,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.Pair; -import java.util.List; -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.Types; - /** * {@link CFAbstractAnalysis} is an extensible org.checkerframework.dataflow analysis for the * Checker Framework that tracks the annotations using a flow-sensitive analysis. It uses an {@link diff --git a/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractStore.java b/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractStore.java index ada9dfbf3f9..b2c185de657 100644 --- a/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractStore.java +++ b/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractStore.java @@ -1,5 +1,15 @@ package org.checkerframework.framework.flow; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Name; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Types; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.ArrayAccess; @@ -28,18 +38,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.Pair; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Name; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.Types; - /** * A store for the checker framework analysis tracks the annotations of memory locations such as * local variables and fields. diff --git a/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractTransfer.java b/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractTransfer.java index 471eb369071..5f68c62d5de 100644 --- a/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractTransfer.java +++ b/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractTransfer.java @@ -6,7 +6,20 @@ import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; import com.sun.tools.javac.code.Symbol.ClassSymbol; - +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.ConditionalTransferResult; import org.checkerframework.dataflow.analysis.FlowExpressions; @@ -63,22 +76,6 @@ import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.TreeUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeMirror; - /** * The default analysis transfer function for the Checker Framework propagates information through * assignments and uses the {@link AnnotatedTypeFactory} to provide checker-specific logic how to diff --git a/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractValue.java b/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractValue.java index ef967673ab3..ca8fb7eaed9 100644 --- a/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractValue.java +++ b/framework/src/main/java/org/checkerframework/framework/flow/CFAbstractValue.java @@ -1,5 +1,14 @@ package org.checkerframework.framework.flow; +import java.util.Objects; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.TypeVariable; +import javax.lang.model.type.WildcardType; +import javax.lang.model.util.Types; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.AbstractValue; import org.checkerframework.dataflow.qual.Pure; @@ -13,17 +22,6 @@ import org.checkerframework.javacutil.SystemUtil; import org.checkerframework.javacutil.TypesUtils; -import java.util.Objects; -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.type.TypeVariable; -import javax.lang.model.type.WildcardType; -import javax.lang.model.util.Types; - /** * An implementation of an abstract value used by the Checker Framework * org.checkerframework.dataflow analysis. diff --git a/framework/src/main/java/org/checkerframework/framework/flow/CFAnalysis.java b/framework/src/main/java/org/checkerframework/framework/flow/CFAnalysis.java index 65d224627f7..4cd38083c17 100644 --- a/framework/src/main/java/org/checkerframework/framework/flow/CFAnalysis.java +++ b/framework/src/main/java/org/checkerframework/framework/flow/CFAnalysis.java @@ -1,15 +1,13 @@ package org.checkerframework.framework.flow; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; -import org.checkerframework.javacutil.Pair; - import java.util.List; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; +import org.checkerframework.javacutil.Pair; /** The default org.checkerframework.dataflow analysis used in the Checker Framework. */ public class CFAnalysis extends CFAbstractAnalysis { diff --git a/framework/src/main/java/org/checkerframework/framework/flow/CFCFGBuilder.java b/framework/src/main/java/org/checkerframework/framework/flow/CFCFGBuilder.java index 4eab7d0ea6e..7748ca15ba8 100644 --- a/framework/src/main/java/org/checkerframework/framework/flow/CFCFGBuilder.java +++ b/framework/src/main/java/org/checkerframework/framework/flow/CFCFGBuilder.java @@ -8,7 +8,12 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; import com.sun.source.tree.VariableTree; - +import java.util.Collection; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.Element; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.dataflow.cfg.CFGBuilder; import org.checkerframework.dataflow.cfg.ControlFlowGraph; @@ -21,14 +26,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.UserError; -import java.util.Collection; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.Element; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** * A control-flow graph builder (see {@link CFGBuilder}) that knows about the Checker Framework * annotations and their representation as {@link AnnotatedTypeMirror}s. diff --git a/framework/src/main/java/org/checkerframework/framework/flow/CFTreeBuilder.java b/framework/src/main/java/org/checkerframework/framework/flow/CFTreeBuilder.java index 46c478247ee..ce4df57a88c 100644 --- a/framework/src/main/java/org/checkerframework/framework/flow/CFTreeBuilder.java +++ b/framework/src/main/java/org/checkerframework/framework/flow/CFTreeBuilder.java @@ -8,17 +8,14 @@ import com.sun.tools.javac.code.TypeTag; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.util.List; - -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.javacutil.TypeAnnotationUtils; -import org.checkerframework.javacutil.trees.TreeBuilder; - import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.type.TypeVariable; import javax.lang.model.type.WildcardType; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.javacutil.TypeAnnotationUtils; +import org.checkerframework.javacutil.trees.TreeBuilder; /** * The TreeBuilder permits the creation of new AST Trees using the non-public Java compiler API diff --git a/framework/src/main/java/org/checkerframework/framework/flow/CFValue.java b/framework/src/main/java/org/checkerframework/framework/flow/CFValue.java index 23081a99084..604fbb70ee9 100644 --- a/framework/src/main/java/org/checkerframework/framework/flow/CFValue.java +++ b/framework/src/main/java/org/checkerframework/framework/flow/CFValue.java @@ -1,7 +1,6 @@ package org.checkerframework.framework.flow; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.type.TypeMirror; diff --git a/framework/src/main/java/org/checkerframework/framework/source/AggregateChecker.java b/framework/src/main/java/org/checkerframework/framework/source/AggregateChecker.java index 63454974fd1..74210b6f5d5 100644 --- a/framework/src/main/java/org/checkerframework/framework/source/AggregateChecker.java +++ b/framework/src/main/java/org/checkerframework/framework/source/AggregateChecker.java @@ -4,7 +4,6 @@ import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Log; - import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -13,7 +12,6 @@ import java.util.List; import java.util.Map; import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic.Kind; diff --git a/framework/src/main/java/org/checkerframework/framework/source/DiagMessage.java b/framework/src/main/java/org/checkerframework/framework/source/DiagMessage.java index c1462003b1b..8f8778421fe 100644 --- a/framework/src/main/java/org/checkerframework/framework/source/DiagMessage.java +++ b/framework/src/main/java/org/checkerframework/framework/source/DiagMessage.java @@ -1,16 +1,14 @@ package org.checkerframework.framework.source; -import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.qual.Pure; -import org.checkerframework.dataflow.qual.SideEffectFree; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; - import javax.tools.Diagnostic.Kind; +import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.qual.Pure; +import org.checkerframework.dataflow.qual.SideEffectFree; /** * A {@code DiagMessage} is a kind, a message key, and arguments. The message key will be expanded diff --git a/framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java b/framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java index e9496cefe20..def5704bd1e 100644 --- a/framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java +++ b/framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java @@ -15,25 +15,6 @@ import com.sun.tools.javac.util.DiagnosticSource; import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition; import com.sun.tools.javac.util.Log; - -import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.framework.qual.AnnotatedFor; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.util.CFContext; -import org.checkerframework.framework.util.CheckerMain; -import org.checkerframework.framework.util.OptionConfiguration; -import org.checkerframework.javacutil.AbstractTypeProcessor; -import org.checkerframework.javacutil.AnnotationProvider; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.SystemUtil; -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.UserError; -import org.plumelib.util.UtilPlume; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -60,7 +41,6 @@ import java.util.StringJoiner; import java.util.TreeSet; import java.util.regex.Pattern; - import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.Messager; import javax.annotation.processing.ProcessingEnvironment; @@ -73,6 +53,23 @@ import javax.lang.model.util.Elements; import javax.lang.model.util.Types; import javax.tools.Diagnostic.Kind; +import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.framework.qual.AnnotatedFor; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.util.CFContext; +import org.checkerframework.framework.util.CheckerMain; +import org.checkerframework.framework.util.OptionConfiguration; +import org.checkerframework.javacutil.AbstractTypeProcessor; +import org.checkerframework.javacutil.AnnotationProvider; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.SystemUtil; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.UserError; +import org.plumelib.util.UtilPlume; /** * An abstract annotation processor designed for implementing a source-file checker as an annotation diff --git a/framework/src/main/java/org/checkerframework/framework/source/SourceVisitor.java b/framework/src/main/java/org/checkerframework/framework/source/SourceVisitor.java index 3677175460a..24da79f1e98 100644 --- a/framework/src/main/java/org/checkerframework/framework/source/SourceVisitor.java +++ b/framework/src/main/java/org/checkerframework/framework/source/SourceVisitor.java @@ -8,17 +8,14 @@ import com.sun.source.util.TreePath; import com.sun.source.util.TreePathScanner; import com.sun.source.util.Trees; - -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayList; import java.util.List; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.Element; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.TreeUtils; /** * An AST visitor that provides a variety of compiler utilities and interfaces to facilitate diff --git a/framework/src/main/java/org/checkerframework/framework/stub/AddAnnotatedFor.java b/framework/src/main/java/org/checkerframework/framework/stub/AddAnnotatedFor.java index ba75be1592b..a4765f699ee 100644 --- a/framework/src/main/java/org/checkerframework/framework/stub/AddAnnotatedFor.java +++ b/framework/src/main/java/org/checkerframework/framework/stub/AddAnnotatedFor.java @@ -1,5 +1,17 @@ package org.checkerframework.framework.stub; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.io.PrintWriter; +import java.io.Reader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import scenelib.annotations.Annotation; import scenelib.annotations.Annotations; import scenelib.annotations.el.ABlock; @@ -21,19 +33,6 @@ import scenelib.annotations.io.IndexFileWriter; import scenelib.annotations.io.ParseException; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.LineNumberReader; -import java.io.PrintWriter; -import java.io.Reader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - /** * Utility that generates {@code @AnnotatedFor} class annotations. The {@link #main} method acts as * a filter: it reads a JAIF from standard input and writes an augmented JAIF to standard output. diff --git a/framework/src/main/java/org/checkerframework/framework/stub/JavaStubifier.java b/framework/src/main/java/org/checkerframework/framework/stub/JavaStubifier.java index 826150aade8..807c5da94ff 100644 --- a/framework/src/main/java/org/checkerframework/framework/stub/JavaStubifier.java +++ b/framework/src/main/java/org/checkerframework/framework/stub/JavaStubifier.java @@ -11,7 +11,6 @@ import com.github.javaparser.utils.ParserCollectionStrategy; import com.github.javaparser.utils.ProjectRoot; import com.github.javaparser.utils.SourceRoot; - import java.io.File; import java.io.IOException; import java.nio.file.Path; diff --git a/framework/src/main/java/org/checkerframework/framework/stub/StubGenerator.java b/framework/src/main/java/org/checkerframework/framework/stub/StubGenerator.java index da6e0dcbb1a..a27dcfa8741 100644 --- a/framework/src/main/java/org/checkerframework/framework/stub/StubGenerator.java +++ b/framework/src/main/java/org/checkerframework/framework/stub/StubGenerator.java @@ -5,17 +5,11 @@ import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Options; - -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.SystemUtil; -import org.checkerframework.javacutil.TypesUtils; - import java.io.OutputStream; import java.io.PrintStream; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; @@ -28,6 +22,9 @@ import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.util.ElementFilter; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.SystemUtil; +import org.checkerframework.javacutil.TypesUtils; /** * Generates a stub file from a single class or an entire package. diff --git a/framework/src/main/java/org/checkerframework/framework/stub/StubParser.java b/framework/src/main/java/org/checkerframework/framework/stub/StubParser.java index 412ae8761cd..19276230961 100644 --- a/framework/src/main/java/org/checkerframework/framework/stub/StubParser.java +++ b/framework/src/main/java/org/checkerframework/framework/stub/StubParser.java @@ -44,23 +44,6 @@ import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.type.TypeParameter; import com.github.javaparser.ast.type.WildcardType; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.framework.qual.FromStubFile; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; -import org.checkerframework.framework.type.AnnotatedTypeReplacer; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.Pair; - import java.io.InputStream; import java.lang.annotation.Target; import java.util.ArrayList; @@ -71,7 +54,6 @@ import java.util.List; import java.util.Map; import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; @@ -85,6 +67,21 @@ import javax.lang.model.type.TypeMirror; import javax.lang.model.util.ElementFilter; import javax.lang.model.util.Elements; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.framework.qual.FromStubFile; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; +import org.checkerframework.framework.type.AnnotatedTypeReplacer; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.Pair; /** * Given a stub file, yields the annotated types in it and the declaration annotations in it. The @@ -653,8 +650,8 @@ private List processType( stubDebug( String.format( "parseType: mismatched sizes for typeParameters=%s (size %d) and" - + " typeArguments=%s (size %d); decl=%s; elt=%s (%s); type=%s" - + " (%s); parseState=%s", + + " typeArguments=%s (size %d); decl=%s; elt=%s (%s); type=%s" + + " (%s); parseState=%s", typeParameters, numParams, typeArguments, @@ -1233,7 +1230,7 @@ private void annotateTypeParameters( String msg = String.format( "annotateTypeParameters: mismatched sizes: typeParameters (size" - + " %d)=%s; typeArguments (size %d)=%s; decl=%s; elt=%s (%s).", + + " %d)=%s; typeArguments (size %d)=%s; decl=%s; elt=%s (%s).", typeParameters.size(), typeParameters, typeArguments.size(), diff --git a/framework/src/main/java/org/checkerframework/framework/stub/StubTypes.java b/framework/src/main/java/org/checkerframework/framework/stub/StubTypes.java index e0cf29b59cd..4b723d5e050 100644 --- a/framework/src/main/java/org/checkerframework/framework/stub/StubTypes.java +++ b/framework/src/main/java/org/checkerframework/framework/stub/StubTypes.java @@ -1,13 +1,5 @@ package org.checkerframework.framework.stub; -import org.checkerframework.framework.qual.StubFiles; -import org.checkerframework.framework.source.SourceChecker; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.SystemUtil; - import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -28,13 +20,19 @@ import java.util.jar.JarFile; import java.util.stream.Collectors; import java.util.stream.Stream; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic.Kind; +import org.checkerframework.framework.qual.StubFiles; +import org.checkerframework.framework.source.SourceChecker; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.SystemUtil; /** Holds information about types parsed from stub files. */ public class StubTypes { diff --git a/framework/src/main/java/org/checkerframework/framework/stub/StubUtil.java b/framework/src/main/java/org/checkerframework/framework/stub/StubUtil.java index 0df2a0090fe..c76d1ccd002 100644 --- a/framework/src/main/java/org/checkerframework/framework/stub/StubUtil.java +++ b/framework/src/main/java/org/checkerframework/framework/stub/StubUtil.java @@ -15,10 +15,6 @@ import com.github.javaparser.ast.type.VoidType; import com.github.javaparser.ast.type.WildcardType; import com.github.javaparser.ast.visitor.SimpleVoidVisitor; - -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.Pair; - import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -29,11 +25,12 @@ import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarFile; - import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.Pair; /** Utility class for stub files. */ public class StubUtil { diff --git a/framework/src/main/java/org/checkerframework/framework/stub/ToIndexFileConverter.java b/framework/src/main/java/org/checkerframework/framework/stub/ToIndexFileConverter.java index b6be909e43a..02de07fa7d9 100644 --- a/framework/src/main/java/org/checkerframework/framework/stub/ToIndexFileConverter.java +++ b/framework/src/main/java/org/checkerframework/framework/stub/ToIndexFileConverter.java @@ -36,7 +36,20 @@ import com.github.javaparser.ast.type.WildcardType; import com.github.javaparser.ast.visitor.GenericVisitorAdapter; import com.sun.tools.javac.code.TypeAnnotationPosition.TypePathEntry; - +import java.io.BufferedWriter; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.signature.qual.BinaryName; import org.checkerframework.checker.signature.qual.ClassGetName; @@ -45,7 +58,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.SystemUtil; import org.plumelib.reflection.Signatures; - import scenelib.annotations.Annotation; import scenelib.annotations.el.AClass; import scenelib.annotations.el.ADeclaration; @@ -62,21 +74,6 @@ import scenelib.annotations.io.IndexFileParser; import scenelib.annotations.io.IndexFileWriter; -import java.io.BufferedWriter; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * Convert a JAIF file plus a stub file into index files (JAIFs). Note that the resulting index * files will not include annotation definitions, for which stubfiles do not generally provide diff --git a/framework/src/main/java/org/checkerframework/framework/type/AbstractViewpointAdapter.java b/framework/src/main/java/org/checkerframework/framework/type/AbstractViewpointAdapter.java index 31eb46f41d9..38f22deb254 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AbstractViewpointAdapter.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AbstractViewpointAdapter.java @@ -1,23 +1,10 @@ package org.checkerframework.framework.type; -import org.checkerframework.dataflow.qual.SideEffectFree; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedNullType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.Pair; - import java.util.ArrayList; import java.util.HashMap; import java.util.IdentityHashMap; import java.util.List; import java.util.Map; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; @@ -26,6 +13,17 @@ import javax.lang.model.element.TypeParameterElement; import javax.lang.model.type.DeclaredType; import javax.lang.model.type.TypeKind; +import org.checkerframework.dataflow.qual.SideEffectFree; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedNullType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.Pair; /** * Abstract utility class for performing viewpoint adaptation. diff --git a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeCopier.java b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeCopier.java index 502a437d2f4..ee18cb1d88e 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeCopier.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeCopier.java @@ -1,5 +1,9 @@ package org.checkerframework.framework.type; +import java.util.ArrayList; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.List; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; @@ -12,11 +16,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; import org.checkerframework.framework.type.visitor.AnnotatedTypeVisitor; -import java.util.ArrayList; -import java.util.Collections; -import java.util.IdentityHashMap; -import java.util.List; - /** * AnnotatedTypeCopier is a visitor that deep copies an AnnotatedTypeMirror exactly, including any * lazily initialized fields. That is, if a field has already been initialized, it will be diff --git a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeCopierWithReplacement.java b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeCopierWithReplacement.java index 11bcd87e0df..dfadc148335 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeCopierWithReplacement.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeCopierWithReplacement.java @@ -1,9 +1,8 @@ package org.checkerframework.framework.type; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; - import java.util.IdentityHashMap; import java.util.Map; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; /** Duplicates annotated types and replaces components according to a replacement map. */ public class AnnotatedTypeCopierWithReplacement { diff --git a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeFactory.java index 5b231a039ec..5820bd24d4f 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeFactory.java @@ -26,7 +26,38 @@ import com.sun.source.util.TreePath; import com.sun.source.util.Trees; import com.sun.tools.javac.code.Type; - +import java.lang.annotation.Annotation; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Name; +import javax.lang.model.element.PackageElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.IntersectionType; +import javax.lang.model.type.PrimitiveType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.TypeVariable; +import javax.lang.model.type.WildcardType; +import javax.lang.model.util.Elements; +import javax.lang.model.util.Types; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; @@ -79,40 +110,6 @@ import org.checkerframework.javacutil.UserError; import org.checkerframework.javacutil.trees.DetachedVarSymbol; -import java.lang.annotation.Annotation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Name; -import javax.lang.model.element.PackageElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.IntersectionType; -import javax.lang.model.type.PrimitiveType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.type.TypeVariable; -import javax.lang.model.type.WildcardType; -import javax.lang.model.util.Elements; -import javax.lang.model.util.Types; - /** * The methods of this class take an element or AST node, and return the annotated type as an {@link * AnnotatedTypeMirror}. The methods are: @@ -2140,8 +2137,8 @@ public ParameterizedExecutableType methodFromUse( if (typeVarMapping.get(tv.getUnderlyingType()) == null) { throw new BugInCF( "AnnotatedTypeFactory.methodFromUse:mismatch between declared method" - + " type variables and the inferred method type arguments. Method" - + " type variables: " + + " type variables and the inferred method type arguments. Method" + + " type variables: " + methodType.getTypeVariables() + "; " + "Inferred method type arguments: " diff --git a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeMirror.java b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeMirror.java index 9cb3cd9c5fe..7f1732b9204 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeMirror.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeMirror.java @@ -1,26 +1,12 @@ package org.checkerframework.framework.type; import com.sun.tools.javac.code.Symbol.MethodSymbol; - -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.qual.Pure; -import org.checkerframework.dataflow.qual.SideEffectFree; -import org.checkerframework.framework.type.visitor.AnnotatedTypeVisitor; -import org.checkerframework.framework.type.visitor.SimpleAnnotatedTypeScanner; -import org.checkerframework.framework.util.AnnotatedTypes; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.ElementUtils; - import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; @@ -40,6 +26,17 @@ import javax.lang.model.type.UnionType; import javax.lang.model.type.WildcardType; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.qual.Pure; +import org.checkerframework.dataflow.qual.SideEffectFree; +import org.checkerframework.framework.type.visitor.AnnotatedTypeVisitor; +import org.checkerframework.framework.type.visitor.SimpleAnnotatedTypeScanner; +import org.checkerframework.framework.util.AnnotatedTypes; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.ElementUtils; /** * Represents an annotated type in the Java programming language. Types include primitive types, diff --git a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeParameterBounds.java b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeParameterBounds.java index 304535ef99e..dfa60be4f19 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeParameterBounds.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeParameterBounds.java @@ -1,8 +1,7 @@ package org.checkerframework.framework.type; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.Objects; +import org.checkerframework.checker.nullness.qual.Nullable; /** Represents upper and lower bounds, each an AnnotatedTypeMirror. */ public class AnnotatedTypeParameterBounds { diff --git a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeReplacer.java b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeReplacer.java index 78ed1171c45..59cf98351ec 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeReplacer.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AnnotatedTypeReplacer.java @@ -1,13 +1,12 @@ package org.checkerframework.framework.type; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; import org.checkerframework.framework.type.visitor.AnnotatedTypeComparer; import org.checkerframework.javacutil.BugInCF; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; - /** * Replaces or adds all the annotations in the parameter with the annotations from the visited type. * An annotation is replaced if the parameter type already has an annotation in the same hierarchy diff --git a/framework/src/main/java/org/checkerframework/framework/type/AnnotationClassLoader.java b/framework/src/main/java/org/checkerframework/framework/type/AnnotationClassLoader.java index 52c89664783..99c7f22c3b3 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AnnotationClassLoader.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AnnotationClassLoader.java @@ -1,18 +1,5 @@ package org.checkerframework.framework.type; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.signature.qual.BinaryName; -import org.checkerframework.checker.signature.qual.ClassGetName; -import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; -import org.checkerframework.checker.signature.qual.Identifier; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.InternalUtils; -import org.checkerframework.javacutil.UserError; -import org.plumelib.reflection.Signatures; - import java.io.File; import java.io.IOException; import java.lang.annotation.Annotation; @@ -34,9 +21,20 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.regex.Pattern; - import javax.annotation.processing.ProcessingEnvironment; import javax.tools.Diagnostic.Kind; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signature.qual.BinaryName; +import org.checkerframework.checker.signature.qual.ClassGetName; +import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; +import org.checkerframework.checker.signature.qual.Identifier; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.InternalUtils; +import org.checkerframework.javacutil.UserError; +import org.plumelib.reflection.Signatures; /** * This class assists the {@link AnnotatedTypeFactory} by reflectively looking up the list of diff --git a/framework/src/main/java/org/checkerframework/framework/type/AsSuperVisitor.java b/framework/src/main/java/org/checkerframework/framework/type/AsSuperVisitor.java index 4e20b11e155..f9e1554847a 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/AsSuperVisitor.java +++ b/framework/src/main/java/org/checkerframework/framework/type/AsSuperVisitor.java @@ -1,5 +1,13 @@ package org.checkerframework.framework.type; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Types; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; @@ -13,16 +21,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.Types; - /** * Implements asSuper {@link AnnotatedTypes#asSuper(AnnotatedTypeFactory, AnnotatedTypeMirror, * AnnotatedTypeMirror)}. diff --git a/framework/src/main/java/org/checkerframework/framework/type/BoundsInitializer.java b/framework/src/main/java/org/checkerframework/framework/type/BoundsInitializer.java index 0f06e85e9fb..d9b878242a9 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/BoundsInitializer.java +++ b/framework/src/main/java/org/checkerframework/framework/type/BoundsInitializer.java @@ -3,24 +3,6 @@ import com.sun.tools.javac.code.Symtab; import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; - -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedNoType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedNullType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedUnionType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; -import org.checkerframework.framework.type.visitor.AnnotatedTypeVisitor; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.Pair; -import org.checkerframework.javacutil.SystemUtil; -import org.checkerframework.javacutil.TypeAnnotationUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -28,7 +10,6 @@ import java.util.List; import java.util.Map; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.TypeElement; import javax.lang.model.element.TypeParameterElement; @@ -38,6 +19,22 @@ import javax.lang.model.type.TypeMirror; import javax.lang.model.type.TypeVariable; import javax.lang.model.type.WildcardType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedNoType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedNullType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedUnionType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; +import org.checkerframework.framework.type.visitor.AnnotatedTypeVisitor; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.Pair; +import org.checkerframework.javacutil.SystemUtil; +import org.checkerframework.javacutil.TypeAnnotationUtils; +import org.checkerframework.javacutil.TypesUtils; /** * BoundsInitializer creates AnnotatedTypeMirrors (without annotations) for the bounds of type diff --git a/framework/src/main/java/org/checkerframework/framework/type/DeclarationsIntoElements.java b/framework/src/main/java/org/checkerframework/framework/type/DeclarationsIntoElements.java index 25c44ed782b..ca0f4cdc87e 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/DeclarationsIntoElements.java +++ b/framework/src/main/java/org/checkerframework/framework/type/DeclarationsIntoElements.java @@ -6,16 +6,13 @@ import com.sun.tools.javac.code.Attribute.Compound; import com.sun.tools.javac.code.Symbol.MethodSymbol; import com.sun.tools.javac.util.List; - -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.TypeAnnotationUtils; - import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.ExecutableElement; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.TypeAnnotationUtils; /** * A helper class that puts the declaration annotations from a method declaration back into the diff --git a/framework/src/main/java/org/checkerframework/framework/type/DefaultAnnotatedTypeFormatter.java b/framework/src/main/java/org/checkerframework/framework/type/DefaultAnnotatedTypeFormatter.java index c8dcdc2b0a0..cb0ab369089 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/DefaultAnnotatedTypeFormatter.java +++ b/framework/src/main/java/org/checkerframework/framework/type/DefaultAnnotatedTypeFormatter.java @@ -1,7 +1,13 @@ package org.checkerframework.framework.type; import com.sun.tools.javac.code.Type; - +import java.util.ArrayList; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.Element; +import javax.lang.model.type.TypeKind; import org.checkerframework.dataflow.qual.SideEffectFree; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; @@ -18,15 +24,6 @@ import org.checkerframework.framework.util.DefaultAnnotationFormatter; import org.checkerframework.javacutil.TypeAnnotationUtils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.Element; -import javax.lang.model.type.TypeKind; - /** * An AnnotatedTypeFormatter used by default by all AnnotatedTypeFactory (and therefore all * annotated types). diff --git a/framework/src/main/java/org/checkerframework/framework/type/DefaultInferredTypesApplier.java b/framework/src/main/java/org/checkerframework/framework/type/DefaultInferredTypesApplier.java index 1fd7ae92def..fa256fec005 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/DefaultInferredTypesApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/type/DefaultInferredTypesApplier.java @@ -1,17 +1,15 @@ package org.checkerframework.framework.type; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.util.AnnotatedTypes; -import org.checkerframework.javacutil.BugInCF; - import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.type.TypeVariable; import javax.lang.model.type.WildcardType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.util.AnnotatedTypes; +import org.checkerframework.javacutil.BugInCF; /** Utility class for applying the annotations inferred by dataflow to a given type. */ public class DefaultInferredTypesApplier { diff --git a/framework/src/main/java/org/checkerframework/framework/type/DefaultTypeHierarchy.java b/framework/src/main/java/org/checkerframework/framework/type/DefaultTypeHierarchy.java index d942d1f4f5d..8c4c9b996f2 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/DefaultTypeHierarchy.java +++ b/framework/src/main/java/org/checkerframework/framework/type/DefaultTypeHierarchy.java @@ -1,5 +1,13 @@ package org.checkerframework.framework.type; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.TypeVariable; +import javax.lang.model.util.Types; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.qual.Covariant; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; @@ -17,16 +25,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.TypesUtils; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.type.TypeVariable; -import javax.lang.model.util.Types; - /** * Default implementation of TypeHierarchy that implements the JLS specification with minor * deviations as outlined by the Checker Framework manual. Changes to the JLS include forbidding diff --git a/framework/src/main/java/org/checkerframework/framework/type/ElementAnnotationApplier.java b/framework/src/main/java/org/checkerframework/framework/type/ElementAnnotationApplier.java index c06aa1bfbf6..c4a7223f51b 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/ElementAnnotationApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/type/ElementAnnotationApplier.java @@ -5,7 +5,12 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; import com.sun.tools.javac.code.Symbol; - +import java.util.List; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.TypeParameterElement; +import javax.lang.model.element.VariableElement; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; import org.checkerframework.framework.type.visitor.AnnotatedTypeScanner; @@ -22,14 +27,6 @@ import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.Pair; -import java.util.List; - -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.TypeParameterElement; -import javax.lang.model.element.VariableElement; - /** * Utility methods for adding the annotations that are stored in an Element to the type that * represents that element (or a use of that Element). diff --git a/framework/src/main/java/org/checkerframework/framework/type/GenericAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/framework/type/GenericAnnotatedTypeFactory.java index 47e79f0c87f..c055ed8a502 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/GenericAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/framework/type/GenericAnnotatedTypeFactory.java @@ -15,7 +15,26 @@ import com.sun.source.tree.UnaryTree; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.dataflow.analysis.AnalysisResult; @@ -84,28 +103,6 @@ import org.checkerframework.javacutil.UserError; import org.plumelib.reflection.Signatures; -import java.lang.annotation.Annotation; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Queue; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** * A factory that extends {@link AnnotatedTypeFactory} to optionally use flow-sensitive qualifier * inference, qualifier polymorphism, default annotations via {@link DefaultFor}, and user-specified @@ -611,8 +608,8 @@ protected void checkForDefaultQualifierInHierarchy(QualifierDefaults defs) { if (!defs.hasDefaultsForCheckedCode()) { throw new BugInCF( "GenericAnnotatedTypeFactory.createQualifierDefaults:" - + " @DefaultQualifierInHierarchy or @DefaultFor(TypeUseLocation.OTHERWISE)" - + " not found. Every checker must specify a default qualifier. " + + " @DefaultQualifierInHierarchy or @DefaultFor(TypeUseLocation.OTHERWISE)" + + " not found. Every checker must specify a default qualifier. " + getSortedQualifierNames()); } diff --git a/framework/src/main/java/org/checkerframework/framework/type/QualifierHierarchy.java b/framework/src/main/java/org/checkerframework/framework/type/QualifierHierarchy.java index 0f944baa657..d498fe62b89 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/QualifierHierarchy.java +++ b/framework/src/main/java/org/checkerframework/framework/type/QualifierHierarchy.java @@ -1,14 +1,12 @@ package org.checkerframework.framework.type; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; - import java.util.Collection; import java.util.Map; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.type.TypeKind; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; /** * Represents a type qualifier hierarchy. diff --git a/framework/src/main/java/org/checkerframework/framework/type/QualifierUpperBounds.java b/framework/src/main/java/org/checkerframework/framework/type/QualifierUpperBounds.java index aa93a21fe4f..b33ae7ebfe1 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/QualifierUpperBounds.java +++ b/framework/src/main/java/org/checkerframework/framework/type/QualifierUpperBounds.java @@ -1,22 +1,20 @@ package org.checkerframework.framework.type; -import org.checkerframework.framework.qual.UpperBoundFor; -import org.checkerframework.framework.util.AnnotationMirrorSet; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.TypesUtils; - import java.lang.annotation.Annotation; import java.util.EnumMap; import java.util.HashMap; import java.util.Map; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.TypeElement; import javax.lang.model.type.DeclaredType; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import org.checkerframework.framework.qual.UpperBoundFor; +import org.checkerframework.framework.util.AnnotationMirrorSet; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.TypesUtils; /** Class that computes and stores the qualifier upper bounds for type uses. */ public class QualifierUpperBounds { diff --git a/framework/src/main/java/org/checkerframework/framework/type/StructuralEqualityComparer.java b/framework/src/main/java/org/checkerframework/framework/type/StructuralEqualityComparer.java index 91e86d6e14e..573d4b93ced 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/StructuralEqualityComparer.java +++ b/framework/src/main/java/org/checkerframework/framework/type/StructuralEqualityComparer.java @@ -1,5 +1,11 @@ package org.checkerframework.framework.type; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; +import javax.lang.model.util.Types; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; @@ -14,14 +20,6 @@ import org.checkerframework.javacutil.SystemUtil; import org.checkerframework.javacutil.TypesUtils; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; -import javax.lang.model.util.Types; - /** * A visitor used to compare two type mirrors for "structural" equality. Structural equality implies * that, for two objects, all fields are also structurally equal and for primitives their values are diff --git a/framework/src/main/java/org/checkerframework/framework/type/StructuralEqualityVisitHistory.java b/framework/src/main/java/org/checkerframework/framework/type/StructuralEqualityVisitHistory.java index 364c0536329..e4ea9f1298b 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/StructuralEqualityVisitHistory.java +++ b/framework/src/main/java/org/checkerframework/framework/type/StructuralEqualityVisitHistory.java @@ -1,8 +1,7 @@ package org.checkerframework.framework.type; -import org.checkerframework.checker.nullness.qual.Nullable; - import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.checker.nullness.qual.Nullable; /** * Stores the result of {@link StructuralEqualityComparer} for type arguments. diff --git a/framework/src/main/java/org/checkerframework/framework/type/SubtypeVisitHistory.java b/framework/src/main/java/org/checkerframework/framework/type/SubtypeVisitHistory.java index c776fed6851..d9dd6f32ee3 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/SubtypeVisitHistory.java +++ b/framework/src/main/java/org/checkerframework/framework/type/SubtypeVisitHistory.java @@ -1,13 +1,11 @@ package org.checkerframework.framework.type; -import org.checkerframework.javacutil.Pair; - import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.javacutil.Pair; /** * THIS CLASS IS DESIGNED FOR USE WITH DefaultTypeHierarchy, DefaultRawnessComparer, and diff --git a/framework/src/main/java/org/checkerframework/framework/type/SupertypeFinder.java b/framework/src/main/java/org/checkerframework/framework/type/SupertypeFinder.java index 537e40411f9..5f3dbbd7008 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/SupertypeFinder.java +++ b/framework/src/main/java/org/checkerframework/framework/type/SupertypeFinder.java @@ -2,26 +2,12 @@ import com.sun.source.tree.ClassTree; import com.sun.source.tree.Tree; - -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; -import org.checkerframework.framework.type.visitor.AnnotatedTypeScanner; -import org.checkerframework.framework.type.visitor.SimpleAnnotatedTypeVisitor; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; @@ -33,6 +19,17 @@ import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; +import org.checkerframework.framework.type.visitor.AnnotatedTypeScanner; +import org.checkerframework.framework.type.visitor.SimpleAnnotatedTypeVisitor; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.TypesUtils; /** * Finds the direct supertypes of an input AnnotatedTypeMirror. See diff --git a/framework/src/main/java/org/checkerframework/framework/type/SyntheticArrays.java b/framework/src/main/java/org/checkerframework/framework/type/SyntheticArrays.java index 614b0f1b411..4dcbb046f89 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/SyntheticArrays.java +++ b/framework/src/main/java/org/checkerframework/framework/type/SyntheticArrays.java @@ -1,11 +1,10 @@ package org.checkerframework.framework.type; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; - import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.type.TypeKind; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; /** * SyntheticArrays exists solely to fix AnnotatedTypeMirrors that need to be adapted from Array type diff --git a/framework/src/main/java/org/checkerframework/framework/type/TypeFromClassVisitor.java b/framework/src/main/java/org/checkerframework/framework/type/TypeFromClassVisitor.java index 1e253917399..a64ff52f8c9 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/TypeFromClassVisitor.java +++ b/framework/src/main/java/org/checkerframework/framework/type/TypeFromClassVisitor.java @@ -1,10 +1,8 @@ package org.checkerframework.framework.type; import com.sun.source.tree.ClassTree; - -import org.checkerframework.javacutil.TreeUtils; - import javax.lang.model.element.TypeElement; +import org.checkerframework.javacutil.TreeUtils; /** * Converts ClassTrees into AnnotatedDeclaredType. diff --git a/framework/src/main/java/org/checkerframework/framework/type/TypeFromExpressionVisitor.java b/framework/src/main/java/org/checkerframework/framework/type/TypeFromExpressionVisitor.java index 2967d6d6840..5ab445c456b 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/TypeFromExpressionVisitor.java +++ b/framework/src/main/java/org/checkerframework/framework/type/TypeFromExpressionVisitor.java @@ -24,7 +24,12 @@ import com.sun.source.tree.TypeCastTree; import com.sun.source.tree.UnaryTree; import com.sun.source.tree.WildcardTree; - +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; @@ -34,14 +39,6 @@ import org.checkerframework.javacutil.Pair; import org.checkerframework.javacutil.TreeUtils; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** * Converts ExpressionTrees into AnnotatedTypeMirrors. * diff --git a/framework/src/main/java/org/checkerframework/framework/type/TypeFromMemberVisitor.java b/framework/src/main/java/org/checkerframework/framework/type/TypeFromMemberVisitor.java index 14e3903a7a1..7fdeda11b6d 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/TypeFromMemberVisitor.java +++ b/framework/src/main/java/org/checkerframework/framework/type/TypeFromMemberVisitor.java @@ -6,19 +6,16 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; - -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.framework.util.AnnotatedTypes; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.util.List; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.ExecutableElement; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.framework.util.AnnotatedTypes; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.TypesUtils; /** * Converts a field or methods tree into an AnnotatedTypeMirror. diff --git a/framework/src/main/java/org/checkerframework/framework/type/TypeFromTree.java b/framework/src/main/java/org/checkerframework/framework/type/TypeFromTree.java index 14be97777bf..28beb766d18 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/TypeFromTree.java +++ b/framework/src/main/java/org/checkerframework/framework/type/TypeFromTree.java @@ -3,13 +3,11 @@ import com.sun.source.tree.ClassTree; import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.Tree; - +import javax.lang.model.type.TypeKind; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; import org.checkerframework.javacutil.BugInCF; -import javax.lang.model.type.TypeKind; - /** * A utility class to convert trees into corresponding AnnotatedTypeMirrors. This class should be * used ONLY from AnnotatedTypeFactory. diff --git a/framework/src/main/java/org/checkerframework/framework/type/TypeFromTreeVisitor.java b/framework/src/main/java/org/checkerframework/framework/type/TypeFromTreeVisitor.java index 87804be3d9e..7f36e318c0d 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/TypeFromTreeVisitor.java +++ b/framework/src/main/java/org/checkerframework/framework/type/TypeFromTreeVisitor.java @@ -2,7 +2,6 @@ import com.sun.source.tree.Tree; import com.sun.source.util.SimpleTreeVisitor; - import org.checkerframework.javacutil.BugInCF; /** diff --git a/framework/src/main/java/org/checkerframework/framework/type/TypeFromTypeTreeVisitor.java b/framework/src/main/java/org/checkerframework/framework/type/TypeFromTypeTreeVisitor.java index 611f49ff1bd..7d609363c81 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/TypeFromTypeTreeVisitor.java +++ b/framework/src/main/java/org/checkerframework/framework/type/TypeFromTypeTreeVisitor.java @@ -20,22 +20,11 @@ import com.sun.tools.javac.code.Type.TypeVar; import com.sun.tools.javac.code.Type.WildcardType; import com.sun.tools.javac.tree.JCTree.JCWildcard; - -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; @@ -43,6 +32,14 @@ import javax.lang.model.element.TypeParameterElement; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeVariable; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.TypesUtils; /** * Converts type trees into AnnotatedTypeMirrors. diff --git a/framework/src/main/java/org/checkerframework/framework/type/TypeVariableSubstitutor.java b/framework/src/main/java/org/checkerframework/framework/type/TypeVariableSubstitutor.java index de446b10b5b..9cffd4eac19 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/TypeVariableSubstitutor.java +++ b/framework/src/main/java/org/checkerframework/framework/type/TypeVariableSubstitutor.java @@ -1,18 +1,16 @@ package org.checkerframework.framework.type; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; - import java.util.HashMap; import java.util.IdentityHashMap; import java.util.Map; - import javax.lang.model.element.Element; import javax.lang.model.element.TypeParameterElement; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.type.TypeVariable; import javax.lang.model.util.Types; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; /** TypeVariableSusbtitutor replaces type variables from a declaration with arguments to its use. */ public class TypeVariableSubstitutor { diff --git a/framework/src/main/java/org/checkerframework/framework/type/TypesIntoElements.java b/framework/src/main/java/org/checkerframework/framework/type/TypesIntoElements.java index 204538f3517..a0432cbd973 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/TypesIntoElements.java +++ b/framework/src/main/java/org/checkerframework/framework/type/TypesIntoElements.java @@ -17,7 +17,10 @@ import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.ListBuffer; - +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; +import javax.lang.model.util.Types; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; @@ -31,11 +34,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypeAnnotationUtils; -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; -import javax.lang.model.util.Types; - /** * A helper class that puts the annotations from an AnnotatedTypeMirrors back into the corresponding * Elements, so that they get stored in the bytecode by the compiler. diff --git a/framework/src/main/java/org/checkerframework/framework/type/ViewpointAdapter.java b/framework/src/main/java/org/checkerframework/framework/type/ViewpointAdapter.java index 3f973b7efef..8b5db3a333d 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/ViewpointAdapter.java +++ b/framework/src/main/java/org/checkerframework/framework/type/ViewpointAdapter.java @@ -1,11 +1,9 @@ package org.checkerframework.framework.type; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; - import java.util.List; - import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; /** * This interface defines the methods that must be implemented by a viewpoint adaptor utility class. diff --git a/framework/src/main/java/org/checkerframework/framework/type/VisitorState.java b/framework/src/main/java/org/checkerframework/framework/type/VisitorState.java index f1b8ac96be0..e46828229c3 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/VisitorState.java +++ b/framework/src/main/java/org/checkerframework/framework/type/VisitorState.java @@ -4,7 +4,6 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; - import org.checkerframework.dataflow.qual.SideEffectFree; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.javacutil.Pair; diff --git a/framework/src/main/java/org/checkerframework/framework/type/poly/AbstractQualifierPolymorphism.java b/framework/src/main/java/org/checkerframework/framework/type/poly/AbstractQualifierPolymorphism.java index 1a81a26dcc6..4ae6c67304a 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/poly/AbstractQualifierPolymorphism.java +++ b/framework/src/main/java/org/checkerframework/framework/type/poly/AbstractQualifierPolymorphism.java @@ -2,7 +2,17 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.NewClassTree; - +import java.util.ArrayList; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; @@ -24,19 +34,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.IdentityHashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.TypeKind; - /** * Implements framework support for qualifier polymorphism. * diff --git a/framework/src/main/java/org/checkerframework/framework/type/poly/DefaultQualifierPolymorphism.java b/framework/src/main/java/org/checkerframework/framework/type/poly/DefaultQualifierPolymorphism.java index cf306684043..b4f2afa7c96 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/poly/DefaultQualifierPolymorphism.java +++ b/framework/src/main/java/org/checkerframework/framework/type/poly/DefaultQualifierPolymorphism.java @@ -1,13 +1,11 @@ package org.checkerframework.framework.type.poly; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.util.AnnotationMirrorMap; - import java.util.Map; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.util.AnnotationMirrorMap; /** * Default implementation of {@link AbstractQualifierPolymorphism}. The polymorphic qualifiers for a diff --git a/framework/src/main/java/org/checkerframework/framework/type/poly/QualifierPolymorphism.java b/framework/src/main/java/org/checkerframework/framework/type/poly/QualifierPolymorphism.java index ecf4ec747f4..e1d7a402677 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/poly/QualifierPolymorphism.java +++ b/framework/src/main/java/org/checkerframework/framework/type/poly/QualifierPolymorphism.java @@ -2,16 +2,14 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.NewClassTree; - -import org.checkerframework.framework.qual.PolymorphicQualifier; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.javacutil.AnnotationUtils; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.Name; import javax.lang.model.element.VariableElement; +import org.checkerframework.framework.qual.PolymorphicQualifier; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.javacutil.AnnotationUtils; /** * Interface to implement qualifier polymorphism. diff --git a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/DebugListTreeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/DebugListTreeAnnotator.java index 4167f072eb5..801e3359599 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/DebugListTreeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/DebugListTreeAnnotator.java @@ -2,13 +2,11 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.framework.type.AnnotatedTypeMirror; - import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Set; +import org.checkerframework.framework.type.AnnotatedTypeMirror; /** A ListTreeAnnotator implementation that additionally outputs debugging information. */ public class DebugListTreeAnnotator extends ListTreeAnnotator { diff --git a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/ListTreeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/ListTreeAnnotator.java index c31c14517cb..0355b3f1137 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/ListTreeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/ListTreeAnnotator.java @@ -1,13 +1,11 @@ package org.checkerframework.framework.type.treeannotator; import com.sun.source.tree.Tree; - -import org.checkerframework.framework.type.AnnotatedTypeMirror; - import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import org.checkerframework.framework.type.AnnotatedTypeMirror; /** * ListTreeAnnotator is a TreeVisitor that executes a list of {@link TreeAnnotator} for each tree diff --git a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/LiteralTreeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/LiteralTreeAnnotator.java index 4cf10e716c8..33c99582515 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/LiteralTreeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/LiteralTreeAnnotator.java @@ -3,18 +3,6 @@ import com.sun.source.tree.LiteralTree; import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; - -import org.checkerframework.framework.qual.LiteralKind; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; -import org.checkerframework.framework.type.QualifierHierarchy; -import org.checkerframework.framework.type.typeannotator.DefaultForTypeAnnotator; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.SystemUtil; - import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.EnumMap; @@ -24,8 +12,17 @@ import java.util.Map; import java.util.Set; import java.util.regex.Pattern; - import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.framework.qual.LiteralKind; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; +import org.checkerframework.framework.type.QualifierHierarchy; +import org.checkerframework.framework.type.typeannotator.DefaultForTypeAnnotator; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.SystemUtil; /** * Adds annotations to a type based on the contents of a tree. This class applies annotations diff --git a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/PropagationTreeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/PropagationTreeAnnotator.java index 560215cd131..67f75e01e55 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/PropagationTreeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/PropagationTreeAnnotator.java @@ -7,19 +7,16 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.TypeCastTree; import com.sun.source.tree.UnaryTree; - +import java.util.Collection; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.QualifierHierarchy; import org.checkerframework.javacutil.Pair; -import java.util.Collection; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; - /** * {@link PropagationTreeAnnotator} adds qualifiers to types where the resulting type is a function * of an input type, e.g. the result of a binary operation is a LUB of the type of expressions in diff --git a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/TreeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/TreeAnnotator.java index 5228e03361c..2bb11f4530b 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/treeannotator/TreeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/treeannotator/TreeAnnotator.java @@ -4,7 +4,6 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Tree; import com.sun.source.util.SimpleTreeVisitor; - import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; diff --git a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/DefaultForTypeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/DefaultForTypeAnnotator.java index a57dec0665e..e9ed1747113 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/DefaultForTypeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/DefaultForTypeAnnotator.java @@ -1,5 +1,13 @@ package org.checkerframework.framework.type.typeannotator; +import java.lang.annotation.Annotation; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; @@ -10,16 +18,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.TypesUtils; -import java.lang.annotation.Annotation; -import java.util.EnumMap; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeKind; - /** * Adds annotations to a type based on the use of a type. This class applies annotations specified * by {@link DefaultFor}; it is designed to be used in a {@link ListTypeAnnotator} constructed in diff --git a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/DefaultQualifierForUseTypeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/DefaultQualifierForUseTypeAnnotator.java index bc3f20cc250..163d10bc0c9 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/DefaultQualifierForUseTypeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/DefaultQualifierForUseTypeAnnotator.java @@ -1,5 +1,12 @@ package org.checkerframework.framework.type.typeannotator; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.Name; import org.checkerframework.framework.qual.DefaultQualifierForUse; import org.checkerframework.framework.qual.NoDefaultQualifierForUse; import org.checkerframework.framework.type.AnnotatedTypeFactory; @@ -10,15 +17,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.CollectionUtils; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.Name; - /** Implements support for {@link DefaultQualifierForUse} and {@link NoDefaultQualifierForUse}. */ public class DefaultQualifierForUseTypeAnnotator extends TypeAnnotator { diff --git a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/IrrelevantTypeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/IrrelevantTypeAnnotator.java index 160e3739634..9a4390c7d4b 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/IrrelevantTypeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/IrrelevantTypeAnnotator.java @@ -1,21 +1,19 @@ package org.checkerframework.framework.type.typeannotator; -import org.checkerframework.framework.qual.RelevantJavaTypes; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.javacutil.CollectionUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.type.PrimitiveType; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Types; +import org.checkerframework.framework.qual.RelevantJavaTypes; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.javacutil.CollectionUtils; +import org.checkerframework.javacutil.TypesUtils; /** * Adds annotations to types that are not relevant specified by the {@link RelevantJavaTypes} on a diff --git a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/ListTypeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/ListTypeAnnotator.java index 97cdc576933..bb10bf3739d 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/ListTypeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/ListTypeAnnotator.java @@ -1,11 +1,10 @@ package org.checkerframework.framework.type.typeannotator; -import org.checkerframework.framework.type.AnnotatedTypeMirror; - import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import org.checkerframework.framework.type.AnnotatedTypeMirror; /** * ListTypeAnnotator is a TypeAnnotator that executes a list of {@link TypeAnnotator} for each type diff --git a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/PropagationTypeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/PropagationTypeAnnotator.java index e43c8780da9..2d4efb1f23e 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/PropagationTypeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/PropagationTypeAnnotator.java @@ -1,7 +1,12 @@ package org.checkerframework.framework.type.typeannotator; import com.sun.tools.javac.code.Type.WildcardType; - +import java.util.ArrayDeque; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; @@ -11,14 +16,6 @@ import org.checkerframework.javacutil.SystemUtil; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayDeque; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; - /** * {@link PropagationTypeAnnotator} adds qualifiers to types where the qualifier to add should be * transferred from one or more other types. diff --git a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/TypeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/TypeAnnotator.java index fb8d21ce85b..02a157c6597 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/typeannotator/TypeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/type/typeannotator/TypeAnnotator.java @@ -1,12 +1,11 @@ package org.checkerframework.framework.type.typeannotator; +import javax.lang.model.element.Element; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; import org.checkerframework.framework.type.visitor.AnnotatedTypeScanner; -import javax.lang.model.element.Element; - /** * {@link TypeAnnotator} is an abstract AnnotatedTypeScanner to be used with {@link * ListTypeAnnotator}. diff --git a/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeCombiner.java b/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeCombiner.java index 12958539cc9..0d56d19b890 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeCombiner.java +++ b/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeCombiner.java @@ -1,14 +1,12 @@ package org.checkerframework.framework.type.visitor; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.QualifierHierarchy; import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.BugInCF; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** * Combines all the annotations in the parameter with the annotations from the visited type, taking * the greatest lower bound at each point. diff --git a/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeComparer.java b/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeComparer.java index 08337e324d7..686f486941f 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeComparer.java +++ b/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeComparer.java @@ -1,5 +1,6 @@ package org.checkerframework.framework.type.visitor; +import java.util.Iterator; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; @@ -10,8 +11,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; import org.checkerframework.javacutil.BugInCF; -import java.util.Iterator; - /** * A TypeVisitor that takes two AnnotatedTypeMirrors as parameters, and visits them simultaneously. * Both AnnotatedTypeMirrors must have the same structure. diff --git a/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeScanner.java b/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeScanner.java index be310d2bc51..12b47138049 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeScanner.java +++ b/framework/src/main/java/org/checkerframework/framework/type/visitor/AnnotatedTypeScanner.java @@ -1,5 +1,7 @@ package org.checkerframework.framework.type.visitor; +import java.util.IdentityHashMap; +import java.util.Map; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; @@ -13,9 +15,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedUnionType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; -import java.util.IdentityHashMap; -import java.util.Map; - /** * An {@code AnnotatedTypeScanner} visits an {@link AnnotatedTypeMirror} and all of its child {@link * AnnotatedTypeMirror} and preforms some function depending on the kind of type. A {@link diff --git a/framework/src/main/java/org/checkerframework/framework/type/visitor/EquivalentAtmComboScanner.java b/framework/src/main/java/org/checkerframework/framework/type/visitor/EquivalentAtmComboScanner.java index a9b60ff1c9f..f584d6c7fe9 100644 --- a/framework/src/main/java/org/checkerframework/framework/type/visitor/EquivalentAtmComboScanner.java +++ b/framework/src/main/java/org/checkerframework/framework/type/visitor/EquivalentAtmComboScanner.java @@ -1,5 +1,8 @@ package org.checkerframework.framework.type.visitor; +import java.util.IdentityHashMap; +import java.util.Iterator; +import java.util.Map; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; @@ -13,10 +16,6 @@ import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; import org.checkerframework.framework.util.AtmCombo; -import java.util.IdentityHashMap; -import java.util.Iterator; -import java.util.Map; - /** * EquivalentAtmComboScanner is an AtmComboVisitor that accepts combinations that are identical in * TypeMirror structure but might differ in contained AnnotationMirrors. This method will scan the diff --git a/framework/src/main/java/org/checkerframework/framework/util/AnnotatedTypes.java b/framework/src/main/java/org/checkerframework/framework/util/AnnotatedTypes.java index 053dea94ecd..b8ddaf099d1 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/AnnotatedTypes.java +++ b/framework/src/main/java/org/checkerframework/framework/util/AnnotatedTypes.java @@ -9,27 +9,6 @@ import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.code.Type.WildcardType; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; -import org.checkerframework.framework.type.AsSuperVisitor; -import org.checkerframework.framework.type.QualifierHierarchy; -import org.checkerframework.framework.type.SyntheticArrays; -import org.checkerframework.framework.type.poly.QualifierPolymorphism; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.ElementUtils; -import org.checkerframework.javacutil.Pair; -import org.checkerframework.javacutil.SystemUtil; -import org.checkerframework.javacutil.TypesUtils; - import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; @@ -42,7 +21,6 @@ import java.util.List; import java.util.Map; import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; @@ -55,6 +33,25 @@ import javax.lang.model.util.ElementFilter; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType; +import org.checkerframework.framework.type.AsSuperVisitor; +import org.checkerframework.framework.type.QualifierHierarchy; +import org.checkerframework.framework.type.SyntheticArrays; +import org.checkerframework.framework.type.poly.QualifierPolymorphism; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.ElementUtils; +import org.checkerframework.javacutil.Pair; +import org.checkerframework.javacutil.SystemUtil; +import org.checkerframework.javacutil.TypesUtils; /** * Utility methods for operating on {@code AnnotatedTypeMirror}. This class mimics the class {@link diff --git a/framework/src/main/java/org/checkerframework/framework/util/AnnotationFormatter.java b/framework/src/main/java/org/checkerframework/framework/util/AnnotationFormatter.java index 0c8ac0155d3..4d4486fb6a4 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/AnnotationFormatter.java +++ b/framework/src/main/java/org/checkerframework/framework/util/AnnotationFormatter.java @@ -1,10 +1,8 @@ package org.checkerframework.framework.util; -import org.checkerframework.dataflow.qual.SideEffectFree; - import java.util.Collection; - import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.dataflow.qual.SideEffectFree; /** * Converts AnnotationMirrors to Strings For converting AnnotatedTypeMirrors. diff --git a/framework/src/main/java/org/checkerframework/framework/util/AnnotationMirrorMap.java b/framework/src/main/java/org/checkerframework/framework/util/AnnotationMirrorMap.java index 98005557c8b..85cbe55548c 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/AnnotationMirrorMap.java +++ b/framework/src/main/java/org/checkerframework/framework/util/AnnotationMirrorMap.java @@ -1,13 +1,11 @@ package org.checkerframework.framework.util; -import org.checkerframework.javacutil.AnnotationUtils; - import java.util.Collection; import java.util.Map; import java.util.Set; import java.util.TreeMap; - import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.javacutil.AnnotationUtils; /** * The Map interface defines some of its methods with respect to the equals method. This diff --git a/framework/src/main/java/org/checkerframework/framework/util/AnnotationMirrorSet.java b/framework/src/main/java/org/checkerframework/framework/util/AnnotationMirrorSet.java index fd5bff4f7e9..605314c52a6 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/AnnotationMirrorSet.java +++ b/framework/src/main/java/org/checkerframework/framework/util/AnnotationMirrorSet.java @@ -1,13 +1,11 @@ package org.checkerframework.framework.util; -import org.checkerframework.javacutil.AnnotationUtils; - import java.util.Collection; import java.util.Iterator; import java.util.Set; import java.util.TreeSet; - import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.javacutil.AnnotationUtils; /** * The Set interface defines many methods with respect to the equals method. This implementation of diff --git a/framework/src/main/java/org/checkerframework/framework/util/AtmLubVisitor.java b/framework/src/main/java/org/checkerframework/framework/util/AtmLubVisitor.java index 47f3899aa1b..18e20476317 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/AtmLubVisitor.java +++ b/framework/src/main/java/org/checkerframework/framework/util/AtmLubVisitor.java @@ -1,5 +1,12 @@ package org.checkerframework.framework.util; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.TypeVariable; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; @@ -15,15 +22,6 @@ import org.checkerframework.javacutil.BugInCF; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.type.TypeVariable; - /** * Helper class to compute the least upper bound of two AnnotatedTypeMirrors. * diff --git a/framework/src/main/java/org/checkerframework/framework/util/BaseContext.java b/framework/src/main/java/org/checkerframework/framework/util/BaseContext.java index 045ba334be8..3eeabc1cf8a 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/BaseContext.java +++ b/framework/src/main/java/org/checkerframework/framework/util/BaseContext.java @@ -1,12 +1,10 @@ package org.checkerframework.framework.util; import com.sun.source.util.Trees; - -import org.checkerframework.javacutil.AnnotationProvider; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; +import org.checkerframework.javacutil.AnnotationProvider; /** A collection of references to javac components. */ public interface BaseContext { diff --git a/framework/src/main/java/org/checkerframework/framework/util/CheckerDevelMain.java b/framework/src/main/java/org/checkerframework/framework/util/CheckerDevelMain.java index 81ecefb4e10..4dc86019314 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/CheckerDevelMain.java +++ b/framework/src/main/java/org/checkerframework/framework/util/CheckerDevelMain.java @@ -1,11 +1,10 @@ package org.checkerframework.framework.util; -import org.checkerframework.javacutil.SystemUtil; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.checkerframework.javacutil.SystemUtil; /** * The main entry point to the Checker Framework, for use by Checker Framework developers. diff --git a/framework/src/main/java/org/checkerframework/framework/util/CheckerMain.java b/framework/src/main/java/org/checkerframework/framework/util/CheckerMain.java index f9b66332f69..d072d3abe4b 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/CheckerMain.java +++ b/framework/src/main/java/org/checkerframework/framework/util/CheckerMain.java @@ -1,8 +1,5 @@ package org.checkerframework.framework.util; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.SystemUtil; - import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -20,6 +17,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.ZipEntry; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.SystemUtil; /** * This class behaves similarly to javac. CheckerMain does the following: diff --git a/framework/src/main/java/org/checkerframework/framework/util/Contract.java b/framework/src/main/java/org/checkerframework/framework/util/Contract.java index 18b9c4dcd7b..11284f31504 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/Contract.java +++ b/framework/src/main/java/org/checkerframework/framework/util/Contract.java @@ -1,5 +1,8 @@ package org.checkerframework.framework.util; +import java.lang.annotation.Annotation; +import java.util.Objects; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; import org.checkerframework.framework.qual.EnsuresQualifier; @@ -9,11 +12,6 @@ import org.checkerframework.framework.qual.RequiresQualifier; import org.checkerframework.javacutil.BugInCF; -import java.lang.annotation.Annotation; -import java.util.Objects; - -import javax.lang.model.element.AnnotationMirror; - /** * A contract represents an annotation on an expression. It is a precondition, postcondition, or * conditional postcondition. diff --git a/framework/src/main/java/org/checkerframework/framework/util/ContractsUtils.java b/framework/src/main/java/org/checkerframework/framework/util/ContractsUtils.java index 7d0bd5de91e..a599539f9c4 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/ContractsUtils.java +++ b/framework/src/main/java/org/checkerframework/framework/util/ContractsUtils.java @@ -1,5 +1,16 @@ package org.checkerframework.framework.util; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Name; +import javax.lang.model.util.ElementFilter; import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; import org.checkerframework.framework.qual.EnsuresQualifier; import org.checkerframework.framework.qual.EnsuresQualifierIf; @@ -13,19 +24,6 @@ import org.checkerframework.javacutil.AnnotationUtils; import org.checkerframework.javacutil.Pair; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Name; -import javax.lang.model.util.ElementFilter; - /** * A utility class to handle pre- and postconditions. * diff --git a/framework/src/main/java/org/checkerframework/framework/util/DefaultAnnotationFormatter.java b/framework/src/main/java/org/checkerframework/framework/util/DefaultAnnotationFormatter.java index 5030146cec4..77fd03e92f5 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/DefaultAnnotationFormatter.java +++ b/framework/src/main/java/org/checkerframework/framework/util/DefaultAnnotationFormatter.java @@ -1,18 +1,16 @@ package org.checkerframework.framework.util; -import org.checkerframework.dataflow.qual.SideEffectFree; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.javacutil.BugInCF; - import java.util.Collection; import java.util.List; import java.util.Map; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.AnnotationValue; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; +import org.checkerframework.dataflow.qual.SideEffectFree; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.javacutil.BugInCF; /** A utility for converting AnnotationMirrors to Strings. */ public class DefaultAnnotationFormatter implements AnnotationFormatter { diff --git a/framework/src/main/java/org/checkerframework/framework/util/FieldInvariants.java b/framework/src/main/java/org/checkerframework/framework/util/FieldInvariants.java index 46729c8e928..f31894190d9 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/FieldInvariants.java +++ b/framework/src/main/java/org/checkerframework/framework/util/FieldInvariants.java @@ -1,16 +1,14 @@ package org.checkerframework.framework.util; -import org.checkerframework.framework.source.DiagMessage; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.QualifierHierarchy; -import org.checkerframework.javacutil.BugInCF; - import java.util.ArrayList; import java.util.Collections; import java.util.List; - import javax.lang.model.element.AnnotationMirror; import javax.tools.Diagnostic.Kind; +import org.checkerframework.framework.source.DiagMessage; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.QualifierHierarchy; +import org.checkerframework.javacutil.BugInCF; /** * Represents field invariants, which the user states by writing {@code @FieldInvariant}. Think of diff --git a/framework/src/main/java/org/checkerframework/framework/util/FlowExpressionParseUtil.java b/framework/src/main/java/org/checkerframework/framework/util/FlowExpressionParseUtil.java index fb8dfe34048..6cf76b44402 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/FlowExpressionParseUtil.java +++ b/framework/src/main/java/org/checkerframework/framework/util/FlowExpressionParseUtil.java @@ -34,7 +34,25 @@ import com.sun.tools.javac.code.Symbol.MethodSymbol; import com.sun.tools.javac.code.Type.ArrayType; import com.sun.tools.javac.code.Type.ClassType; - +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.StringJoiner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Types; +import javax.tools.Diagnostic.Kind; import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.analysis.FlowExpressions; @@ -62,27 +80,6 @@ import org.checkerframework.javacutil.TypesUtils; import org.checkerframework.javacutil.trees.TreeBuilder; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.StringJoiner; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.Types; -import javax.tools.Diagnostic.Kind; - /** * A collection of helper methods to parse a string that represents a restricted Java expression. * diff --git a/framework/src/main/java/org/checkerframework/framework/util/GraphQualifierHierarchy.java b/framework/src/main/java/org/checkerframework/framework/util/GraphQualifierHierarchy.java index fabe65f4ae9..34f2681010b 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/GraphQualifierHierarchy.java +++ b/framework/src/main/java/org/checkerframework/framework/util/GraphQualifierHierarchy.java @@ -1,14 +1,12 @@ package org.checkerframework.framework.util; -import org.checkerframework.framework.type.QualifierHierarchy; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; - import java.util.Collection; import java.util.Map; import java.util.Set; - import javax.lang.model.element.AnnotationMirror; +import org.checkerframework.framework.type.QualifierHierarchy; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; /** * Represents the type qualifier hierarchy of a type system. diff --git a/framework/src/main/java/org/checkerframework/framework/util/Heuristics.java b/framework/src/main/java/org/checkerframework/framework/util/Heuristics.java index fc16debbb62..e898f4afda6 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/Heuristics.java +++ b/framework/src/main/java/org/checkerframework/framework/util/Heuristics.java @@ -9,11 +9,9 @@ import com.sun.source.tree.UnaryTree; import com.sun.source.util.SimpleTreeVisitor; import com.sun.source.util.TreePath; - -import org.checkerframework.javacutil.TreeUtils; - import java.util.ArrayDeque; import java.util.Arrays; +import org.checkerframework.javacutil.TreeUtils; /** * Utilities for determining tree-based heuristics. diff --git a/framework/src/main/java/org/checkerframework/framework/util/MultiGraphQualifierHierarchy.java b/framework/src/main/java/org/checkerframework/framework/util/MultiGraphQualifierHierarchy.java index e6062b7b0cf..36ca07b78c7 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/MultiGraphQualifierHierarchy.java +++ b/framework/src/main/java/org/checkerframework/framework/util/MultiGraphQualifierHierarchy.java @@ -1,16 +1,5 @@ package org.checkerframework.framework.util; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.qual.Pure; -import org.checkerframework.dataflow.qual.SideEffectFree; -import org.checkerframework.framework.qual.PolymorphicQualifier; -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.QualifierHierarchy; -import org.checkerframework.framework.type.poly.QualifierPolymorphism; -import org.checkerframework.javacutil.AnnotationBuilder; -import org.checkerframework.javacutil.AnnotationUtils; -import org.checkerframework.javacutil.BugInCF; - import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -19,9 +8,18 @@ import java.util.Objects; import java.util.Set; import java.util.StringJoiner; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Name; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.qual.Pure; +import org.checkerframework.dataflow.qual.SideEffectFree; +import org.checkerframework.framework.qual.PolymorphicQualifier; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.QualifierHierarchy; +import org.checkerframework.framework.type.poly.QualifierPolymorphism; +import org.checkerframework.javacutil.AnnotationBuilder; +import org.checkerframework.javacutil.AnnotationUtils; +import org.checkerframework.javacutil.BugInCF; /** * Represents the type qualifier hierarchy of a type system that supports multiple separate subtype @@ -484,9 +482,9 @@ private final void checkAnnoInGraph(AnnotationMirror a) { if (a == null) { throw new BugInCF( "MultiGraphQualifierHierarchy found an unqualified type. Please ensure that" - + " your defaulting rules cover all cases and/or use a" - + " @DefaultQualifierInHierarchy annotation. Also ensure that overrides of" - + " addComputedTypeAnnotations call super."); + + " your defaulting rules cover all cases and/or use a" + + " @DefaultQualifierInHierarchy annotation. Also ensure that overrides of" + + " addComputedTypeAnnotations call super."); } else { // System.out.println("MultiGraphQH: " + this); throw new BugInCF( diff --git a/framework/src/main/java/org/checkerframework/framework/util/PurityAnnotatedTypeFactory.java b/framework/src/main/java/org/checkerframework/framework/util/PurityAnnotatedTypeFactory.java index ec94ab6dd86..83812e21d2d 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/PurityAnnotatedTypeFactory.java +++ b/framework/src/main/java/org/checkerframework/framework/util/PurityAnnotatedTypeFactory.java @@ -1,12 +1,11 @@ package org.checkerframework.framework.util; -import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; -import org.checkerframework.common.basetype.BaseTypeChecker; - import java.lang.annotation.Annotation; import java.util.Arrays; import java.util.HashSet; import java.util.Set; +import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; +import org.checkerframework.common.basetype.BaseTypeChecker; public class PurityAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { diff --git a/framework/src/main/java/org/checkerframework/framework/util/PurityUnqualified.java b/framework/src/main/java/org/checkerframework/framework/util/PurityUnqualified.java index bc67c9ebd91..4c51c1bc0b1 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/PurityUnqualified.java +++ b/framework/src/main/java/org/checkerframework/framework/util/PurityUnqualified.java @@ -1,14 +1,13 @@ package org.checkerframework.framework.util; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.InvisibleQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.InvisibleQualifier; +import org.checkerframework.framework.qual.SubtypeOf; /** * An annotation intended solely for representing an unqualified type in the qualifier hierarchy for diff --git a/framework/src/main/java/org/checkerframework/framework/util/TreePathCacher.java b/framework/src/main/java/org/checkerframework/framework/util/TreePathCacher.java index 2ddc6c54ddc..d921b353b18 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/TreePathCacher.java +++ b/framework/src/main/java/org/checkerframework/framework/util/TreePathCacher.java @@ -4,7 +4,6 @@ import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; import com.sun.source.util.TreeScanner; - import java.util.HashMap; import java.util.Map; diff --git a/framework/src/main/java/org/checkerframework/framework/util/TypeArgumentMapper.java b/framework/src/main/java/org/checkerframework/framework/util/TypeArgumentMapper.java index 38c09a224f9..715544f3f7e 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/TypeArgumentMapper.java +++ b/framework/src/main/java/org/checkerframework/framework/util/TypeArgumentMapper.java @@ -1,7 +1,5 @@ package org.checkerframework.framework.util; -import org.checkerframework.javacutil.Pair; - import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections; @@ -11,7 +9,6 @@ import java.util.List; import java.util.Map; import java.util.Set; - import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.lang.model.element.TypeParameterElement; @@ -19,6 +16,7 @@ import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Types; +import org.checkerframework.javacutil.Pair; /** * Records any mapping between the type parameters of a subtype to the corresponding type parameters diff --git a/framework/src/main/java/org/checkerframework/framework/util/defaults/Default.java b/framework/src/main/java/org/checkerframework/framework/util/defaults/Default.java index 76545ec26e2..e2330fdc4f6 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/defaults/Default.java +++ b/framework/src/main/java/org/checkerframework/framework/util/defaults/Default.java @@ -1,13 +1,11 @@ package org.checkerframework.framework.util.defaults; +import java.util.Objects; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.framework.qual.TypeUseLocation; import org.checkerframework.javacutil.AnnotationUtils; -import java.util.Objects; - -import javax.lang.model.element.AnnotationMirror; - /** * Represents a mapping from an Annotation to a TypeUseLocation it should be applied to during * defaulting. The Comparable ordering of this class first tests location then tests annotation diff --git a/framework/src/main/java/org/checkerframework/framework/util/defaults/DefaultSet.java b/framework/src/main/java/org/checkerframework/framework/util/defaults/DefaultSet.java index 38b2e38383d..436e299cad2 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/defaults/DefaultSet.java +++ b/framework/src/main/java/org/checkerframework/framework/util/defaults/DefaultSet.java @@ -1,8 +1,7 @@ package org.checkerframework.framework.util.defaults; -import org.checkerframework.javacutil.SystemUtil; - import java.util.TreeSet; +import org.checkerframework.javacutil.SystemUtil; /** * An ordered set of Defaults (see {@link org.checkerframework.framework.util.defaults.Default}). diff --git a/framework/src/main/java/org/checkerframework/framework/util/defaults/QualifierDefaults.java b/framework/src/main/java/org/checkerframework/framework/util/defaults/QualifierDefaults.java index c07334fbc25..955a9d21ef5 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/defaults/QualifierDefaults.java +++ b/framework/src/main/java/org/checkerframework/framework/util/defaults/QualifierDefaults.java @@ -11,7 +11,20 @@ import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; import com.sun.tools.javac.code.Type.WildcardType; - +import java.util.Arrays; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Name; +import javax.lang.model.element.PackageElement; +import javax.lang.model.element.TypeParameterElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.util.Elements; import org.checkerframework.framework.qual.AnnotatedFor; import org.checkerframework.framework.qual.DefaultQualifier; import org.checkerframework.framework.qual.TypeUseLocation; @@ -37,22 +50,6 @@ import org.checkerframework.javacutil.TreeUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.Arrays; -import java.util.Collections; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.Name; -import javax.lang.model.element.PackageElement; -import javax.lang.model.element.TypeParameterElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.util.Elements; - /** * Determines the default qualifiers on a type. Default qualifiers are specified via the {@link * org.checkerframework.framework.qual.DefaultQualifier} annotation. diff --git a/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesError.java b/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesError.java index 6a45215d104..4c0571bf528 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesError.java +++ b/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesError.java @@ -1,12 +1,11 @@ package org.checkerframework.framework.util.dependenttypes; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.framework.util.FlowExpressionParseUtil.FlowExpressionParseException; -import org.checkerframework.javacutil.BugInCF; - import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.framework.util.FlowExpressionParseUtil.FlowExpressionParseException; +import org.checkerframework.javacutil.BugInCF; /** * Helper class for creating dependent type annotation error strings. diff --git a/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesHelper.java b/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesHelper.java index ebdf4325c94..8c72bf1079a 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesHelper.java +++ b/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesHelper.java @@ -14,7 +14,24 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; - +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringJoiner; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; import org.checkerframework.dataflow.analysis.FlowExpressions; import org.checkerframework.dataflow.analysis.FlowExpressions.Receiver; import org.checkerframework.framework.qual.JavaExpression; @@ -39,26 +56,6 @@ import org.checkerframework.javacutil.SystemUtil; import org.checkerframework.javacutil.TreeUtils; -import java.lang.annotation.Annotation; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.StringJoiner; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; - /** * A class that helps checkers use qualifiers that are represented by annotations with Java * expression strings. This class performs four main functions: diff --git a/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesTreeAnnotator.java b/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesTreeAnnotator.java index 21b4bb2a820..dd1a4555c70 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesTreeAnnotator.java +++ b/framework/src/main/java/org/checkerframework/framework/util/dependenttypes/DependentTypesTreeAnnotator.java @@ -7,15 +7,13 @@ import com.sun.source.tree.NewClassTree; import com.sun.source.tree.TypeCastTree; import com.sun.source.tree.VariableTree; - +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.treeannotator.TreeAnnotator; import org.checkerframework.javacutil.TreeUtils; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; - /** * Standardizes Java expressions in annotations and also view points adapts field accesses. (Other * viewpoint adaption is handled in {@link DependentTypesHelper} diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/ClassTypeParamApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/ClassTypeParamApplier.java index 5404dd30249..f5462bc49e1 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/ClassTypeParamApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/ClassTypeParamApplier.java @@ -3,16 +3,14 @@ import com.sun.tools.javac.code.Attribute; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.TargetType; - +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; import org.checkerframework.javacutil.BugInCF; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; - /** * Applies the annotations present for a class type parameter onto an AnnotatedTypeVariable. See * {@link TypeParamElementAnnotationApplier} for details. diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/ElementAnnotationUtil.java b/framework/src/main/java/org/checkerframework/framework/util/element/ElementAnnotationUtil.java index e231fe280b2..6fc33a2eff9 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/ElementAnnotationUtil.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/ElementAnnotationUtil.java @@ -7,7 +7,19 @@ import com.sun.tools.javac.code.TypeAnnotationPosition; import com.sun.tools.javac.code.TypeAnnotationPosition.TypePathEntry; import com.sun.tools.javac.code.TypeAnnotationPosition.TypePathEntryKind; - +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.IdentityHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeVariable; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; @@ -23,21 +35,6 @@ import org.checkerframework.javacutil.SystemUtil; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.IdentityHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.Element; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeVariable; - /** * Utility methods for adding the annotations that are stored in an Element to the type that * represents that element (or a use of that Element). This class also contains package private diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/IndexedElementAnnotationApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/IndexedElementAnnotationApplier.java index 70fe5ce0ed7..ebdf1cb1a2d 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/IndexedElementAnnotationApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/IndexedElementAnnotationApplier.java @@ -1,13 +1,10 @@ package org.checkerframework.framework.util.element; import com.sun.tools.javac.code.Attribute; - -import org.checkerframework.framework.type.AnnotatedTypeMirror; - import java.util.List; import java.util.Map; - import javax.lang.model.element.Element; +import org.checkerframework.framework.type.AnnotatedTypeMirror; /** * Some Elements are members of a list (formal method parameters and type parameters). This class diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/MethodApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/MethodApplier.java index 519d2f7a60e..c26f18bf965 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/MethodApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/MethodApplier.java @@ -5,7 +5,11 @@ import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.TargetType; import com.sun.tools.javac.code.TypeAnnotationPosition; - +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import javax.lang.model.element.Element; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; @@ -15,13 +19,6 @@ import org.checkerframework.javacutil.ElementUtils; import org.checkerframework.javacutil.SystemUtil; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import javax.lang.model.element.Element; - /** * Adds annotations from element to the return type, formal parameter types, type parameters, and * throws clauses of the AnnotatedExecutableType type. diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/MethodTypeParamApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/MethodTypeParamApplier.java index 1fb6b02ae53..2eab9b25d20 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/MethodTypeParamApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/MethodTypeParamApplier.java @@ -3,16 +3,14 @@ import com.sun.tools.javac.code.Attribute; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.TargetType; - +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; import org.checkerframework.javacutil.BugInCF; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; - /** Applies the annotations present for a method type parameter onto an AnnotatedTypeVariable. */ public class MethodTypeParamApplier extends TypeParamElementAnnotationApplier { diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/ParamApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/ParamApplier.java index 46fbf8f666d..240eff554f5 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/ParamApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/ParamApplier.java @@ -7,21 +7,18 @@ import com.sun.tools.javac.code.Attribute.TypeCompound; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.TargetType; - -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.ElementAnnotationApplier; -import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.Pair; - import java.util.ArrayList; import java.util.List; import java.util.Map; - import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.VariableElement; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.ElementAnnotationApplier; +import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.Pair; /** Adds annotations to one formal parameter of a method or lambda within a method. */ public class ParamApplier extends IndexedElementAnnotationApplier { diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/SuperTypeApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/SuperTypeApplier.java index 8d72086a0ff..fd6cc2f58be 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/SuperTypeApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/SuperTypeApplier.java @@ -4,13 +4,10 @@ import com.sun.tools.javac.code.Attribute.TypeCompound; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.TargetType; - -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; - import java.util.List; - import javax.lang.model.element.TypeElement; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; /** * When discovering supertypes of an AnnotatedTypeMirror we want to annotate each supertype with the diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/TargetedElementAnnotationApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/TargetedElementAnnotationApplier.java index dd445edd1e1..3a45fc9caef 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/TargetedElementAnnotationApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/TargetedElementAnnotationApplier.java @@ -3,20 +3,17 @@ import com.sun.tools.javac.code.Attribute; import com.sun.tools.javac.code.Attribute.TypeCompound; import com.sun.tools.javac.code.TargetType; - -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.SystemUtil; - import java.util.ArrayList; import java.util.EnumMap; import java.util.List; import java.util.Map; import java.util.StringJoiner; - import javax.lang.model.element.Element; import javax.lang.model.type.TypeKind; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.SystemUtil; /** * TargetedElementAnnotationApplier filters annotations for an element into 3 groups. TARGETED diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/TypeDeclarationApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/TypeDeclarationApplier.java index 3c62a8dcc0d..5a2af7fcf1a 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/TypeDeclarationApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/TypeDeclarationApplier.java @@ -4,17 +4,14 @@ import com.sun.tools.javac.code.Attribute.TypeCompound; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.TargetType; - +import java.util.List; +import javax.lang.model.element.Element; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; import org.checkerframework.javacutil.TypesUtils; -import java.util.List; - -import javax.lang.model.element.Element; - /** Apply annotations to a declared type based on its declaration. */ public class TypeDeclarationApplier extends TargetedElementAnnotationApplier { diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/TypeParamElementAnnotationApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/TypeParamElementAnnotationApplier.java index c30324f7713..a62f14ddd09 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/TypeParamElementAnnotationApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/TypeParamElementAnnotationApplier.java @@ -2,22 +2,19 @@ import com.sun.tools.javac.code.Attribute.TypeCompound; import com.sun.tools.javac.code.TargetType; - -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; -import org.checkerframework.javacutil.BugInCF; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.type.TypeKind; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; +import org.checkerframework.javacutil.BugInCF; /** * Applies Element annotations to a single AnnotatedTypeVariable representing a type parameter. diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/TypeVarUseApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/TypeVarUseApplier.java index 5f1be38c3d1..7f030dba14b 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/TypeVarUseApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/TypeVarUseApplier.java @@ -5,25 +5,22 @@ import com.sun.tools.javac.code.Symbol.VarSymbol; import com.sun.tools.javac.code.TargetType; import com.sun.tools.javac.code.TypeAnnotationPosition; - -import org.checkerframework.framework.type.AnnotatedTypeFactory; -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; -import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; -import org.checkerframework.framework.type.ElementAnnotationApplier; -import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; -import org.checkerframework.javacutil.BugInCF; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; - import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeParameterElement; import javax.lang.model.type.TypeKind; +import org.checkerframework.framework.type.AnnotatedTypeFactory; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedArrayType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedIntersectionType; +import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedTypeVariable; +import org.checkerframework.framework.type.ElementAnnotationApplier; +import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; +import org.checkerframework.javacutil.BugInCF; /** Apply annotations to the use of a type parameter declaration. */ public class TypeVarUseApplier { diff --git a/framework/src/main/java/org/checkerframework/framework/util/element/VariableApplier.java b/framework/src/main/java/org/checkerframework/framework/util/element/VariableApplier.java index d1c447918c6..7f40378aa39 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/element/VariableApplier.java +++ b/framework/src/main/java/org/checkerframework/framework/util/element/VariableApplier.java @@ -4,16 +4,13 @@ import com.sun.tools.javac.code.Attribute.TypeCompound; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.TargetType; - -import org.checkerframework.framework.type.AnnotatedTypeMirror; -import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; -import org.checkerframework.javacutil.BugInCF; - import java.util.List; - import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.type.TypeKind; +import org.checkerframework.framework.type.AnnotatedTypeMirror; +import org.checkerframework.framework.util.element.ElementAnnotationUtil.UnexpectedAnnotationLocationException; +import org.checkerframework.javacutil.BugInCF; /** * Applies annotations to variable declaration (providing they are not the use of a TYPE_PARAMETER). diff --git a/framework/src/main/java/org/checkerframework/framework/util/typeinference/DefaultTypeArgumentInference.java b/framework/src/main/java/org/checkerframework/framework/util/typeinference/DefaultTypeArgumentInference.java index 1de8351a4e8..35688f17eae 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/typeinference/DefaultTypeArgumentInference.java +++ b/framework/src/main/java/org/checkerframework/framework/util/typeinference/DefaultTypeArgumentInference.java @@ -4,7 +4,23 @@ import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; import com.sun.tools.javac.code.Symbol.MethodSymbol; - +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeVariable; +import javax.lang.model.util.Types; +import javax.tools.Diagnostic.Kind; import org.checkerframework.framework.source.SourceChecker; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; @@ -41,25 +57,6 @@ import org.checkerframework.javacutil.TypeAnnotationUtils; import org.checkerframework.javacutil.TypesUtils; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Queue; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeVariable; -import javax.lang.model.util.Types; -import javax.tools.Diagnostic.Kind; - /** * An implementation of TypeArgumentInference that mostly follows the process outlined in JLS7 See * the JLS 7: { public TestVisitor(BaseTypeChecker checker) { diff --git a/framework/src/test/java/testchecker/quals/H1Bot.java b/framework/src/test/java/testchecker/quals/H1Bot.java index 7ffdf4730e2..2a1ec4f6b34 100644 --- a/framework/src/test/java/testchecker/quals/H1Bot.java +++ b/framework/src/test/java/testchecker/quals/H1Bot.java @@ -1,14 +1,13 @@ package testchecker.quals; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H1Invalid.java b/framework/src/test/java/testchecker/quals/H1Invalid.java index 105ceb9980a..91d275f3d18 100644 --- a/framework/src/test/java/testchecker/quals/H1Invalid.java +++ b/framework/src/test/java/testchecker/quals/H1Invalid.java @@ -1,12 +1,11 @@ package testchecker.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H1Poly.java b/framework/src/test/java/testchecker/quals/H1Poly.java index dcb6382b3ec..7951e9e0203 100644 --- a/framework/src/test/java/testchecker/quals/H1Poly.java +++ b/framework/src/test/java/testchecker/quals/H1Poly.java @@ -1,12 +1,11 @@ package testchecker.quals; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H1S1.java b/framework/src/test/java/testchecker/quals/H1S1.java index fe9e6fc41d9..b8dfabc51f5 100644 --- a/framework/src/test/java/testchecker/quals/H1S1.java +++ b/framework/src/test/java/testchecker/quals/H1S1.java @@ -1,12 +1,11 @@ package testchecker.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H1S2.java b/framework/src/test/java/testchecker/quals/H1S2.java index dbe5923e429..e9b163465f8 100644 --- a/framework/src/test/java/testchecker/quals/H1S2.java +++ b/framework/src/test/java/testchecker/quals/H1S2.java @@ -1,12 +1,11 @@ package testchecker.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H1Top.java b/framework/src/test/java/testchecker/quals/H1Top.java index bb6486ebd86..423ab581be5 100644 --- a/framework/src/test/java/testchecker/quals/H1Top.java +++ b/framework/src/test/java/testchecker/quals/H1Top.java @@ -1,13 +1,12 @@ package testchecker.quals; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H2Bot.java b/framework/src/test/java/testchecker/quals/H2Bot.java index f0d23408fde..fb39b6fb8f8 100644 --- a/framework/src/test/java/testchecker/quals/H2Bot.java +++ b/framework/src/test/java/testchecker/quals/H2Bot.java @@ -1,14 +1,13 @@ package testchecker.quals; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H2Poly.java b/framework/src/test/java/testchecker/quals/H2Poly.java index df58477d229..52b4a497018 100644 --- a/framework/src/test/java/testchecker/quals/H2Poly.java +++ b/framework/src/test/java/testchecker/quals/H2Poly.java @@ -1,12 +1,11 @@ package testchecker.quals; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H2S1.java b/framework/src/test/java/testchecker/quals/H2S1.java index 945105cdcbe..e86352b8948 100644 --- a/framework/src/test/java/testchecker/quals/H2S1.java +++ b/framework/src/test/java/testchecker/quals/H2S1.java @@ -1,12 +1,11 @@ package testchecker.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H2S2.java b/framework/src/test/java/testchecker/quals/H2S2.java index b659386042d..354552b181e 100644 --- a/framework/src/test/java/testchecker/quals/H2S2.java +++ b/framework/src/test/java/testchecker/quals/H2S2.java @@ -1,12 +1,11 @@ package testchecker.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testchecker/quals/H2Top.java b/framework/src/test/java/testchecker/quals/H2Top.java index b9479e8ad2f..af404205eb7 100644 --- a/framework/src/test/java/testchecker/quals/H2Top.java +++ b/framework/src/test/java/testchecker/quals/H2Top.java @@ -1,13 +1,12 @@ package testchecker.quals; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testlib/aggregate/AggregateOfCompoundChecker.java b/framework/src/test/java/testlib/aggregate/AggregateOfCompoundChecker.java index bb2e94065c1..a77cfe6b30b 100644 --- a/framework/src/test/java/testlib/aggregate/AggregateOfCompoundChecker.java +++ b/framework/src/test/java/testlib/aggregate/AggregateOfCompoundChecker.java @@ -1,15 +1,13 @@ package testlib.aggregate; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.source.AggregateChecker; import org.checkerframework.framework.source.SourceChecker; - import testlib.compound.CompoundChecker; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - /** An aggregate checker where one of the checkers is a compound checker. */ public class AggregateOfCompoundChecker extends AggregateChecker { diff --git a/framework/src/test/java/testlib/aggregate/TestAggregateChecker.java b/framework/src/test/java/testlib/aggregate/TestAggregateChecker.java index eaccdbcd81a..acc402973b7 100644 --- a/framework/src/test/java/testlib/aggregate/TestAggregateChecker.java +++ b/framework/src/test/java/testlib/aggregate/TestAggregateChecker.java @@ -1,14 +1,13 @@ package testlib.aggregate; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; import org.checkerframework.common.aliasing.AliasingChecker; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.source.AggregateChecker; import org.checkerframework.framework.source.SourceChecker; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - /** Basic aggregate checker. */ public class TestAggregateChecker extends AggregateChecker { diff --git a/framework/src/test/java/testlib/compound/AnotherCompoundChecker.java b/framework/src/test/java/testlib/compound/AnotherCompoundChecker.java index 26e2597639f..979548edddf 100644 --- a/framework/src/test/java/testlib/compound/AnotherCompoundChecker.java +++ b/framework/src/test/java/testlib/compound/AnotherCompoundChecker.java @@ -1,12 +1,11 @@ package testlib.compound; +import java.util.LinkedHashSet; import org.checkerframework.common.aliasing.AliasingChecker; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.common.value.ValueChecker; -import java.util.LinkedHashSet; - public class AnotherCompoundChecker extends BaseTypeChecker { @Override protected LinkedHashSet> getImmediateSubcheckerClasses() { diff --git a/framework/src/test/java/testlib/compound/AnotherCompoundCheckerAnnotatedTypeFactory.java b/framework/src/test/java/testlib/compound/AnotherCompoundCheckerAnnotatedTypeFactory.java index 59cce1b2868..293d7ccfb36 100644 --- a/framework/src/test/java/testlib/compound/AnotherCompoundCheckerAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/compound/AnotherCompoundCheckerAnnotatedTypeFactory.java @@ -1,7 +1,10 @@ package testlib.compound; import com.sun.source.tree.Tree; - +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import org.checkerframework.common.aliasing.AliasingChecker; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; @@ -10,15 +13,9 @@ import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; import org.checkerframework.framework.type.treeannotator.ListTreeAnnotator; import org.checkerframework.framework.type.treeannotator.TreeAnnotator; - import testlib.compound.qual.ACCBottom; import testlib.compound.qual.ACCTop; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - public class AnotherCompoundCheckerAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { public AnotherCompoundCheckerAnnotatedTypeFactory(BaseTypeChecker checker) { diff --git a/framework/src/test/java/testlib/compound/CompoundChecker.java b/framework/src/test/java/testlib/compound/CompoundChecker.java index c625200f865..6e22e243c1b 100644 --- a/framework/src/test/java/testlib/compound/CompoundChecker.java +++ b/framework/src/test/java/testlib/compound/CompoundChecker.java @@ -1,11 +1,10 @@ package testlib.compound; +import java.util.LinkedHashSet; import org.checkerframework.common.aliasing.AliasingChecker; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; -import java.util.LinkedHashSet; - /** * Used to test the compound checker design pattern. AliasingChecker and AnotherCompoundChecker are * subcheckers of this checker AnotherCompoundChecker relies on the Aliasing Checker, too. This is diff --git a/framework/src/test/java/testlib/compound/CompoundCheckerAnnotatedTypeFactory.java b/framework/src/test/java/testlib/compound/CompoundCheckerAnnotatedTypeFactory.java index 98f3fb7888c..2829f047457 100644 --- a/framework/src/test/java/testlib/compound/CompoundCheckerAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/compound/CompoundCheckerAnnotatedTypeFactory.java @@ -1,7 +1,10 @@ package testlib.compound; import com.sun.source.tree.Tree; - +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import org.checkerframework.common.aliasing.AliasingChecker; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; @@ -10,15 +13,9 @@ import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; import org.checkerframework.framework.type.treeannotator.ListTreeAnnotator; import org.checkerframework.framework.type.treeannotator.TreeAnnotator; - import testlib.compound.qual.CCBottom; import testlib.compound.qual.CCTop; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - public class CompoundCheckerAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { public CompoundCheckerAnnotatedTypeFactory(BaseTypeChecker checker) { diff --git a/framework/src/test/java/testlib/compound/qual/ACCBottom.java b/framework/src/test/java/testlib/compound/qual/ACCBottom.java index 1be3cc1b428..45d53fa10fb 100644 --- a/framework/src/test/java/testlib/compound/qual/ACCBottom.java +++ b/framework/src/test/java/testlib/compound/qual/ACCBottom.java @@ -1,12 +1,11 @@ package testlib.compound.qual; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TargetLocations; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - @SubtypeOf({ACCTop.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND}) diff --git a/framework/src/test/java/testlib/compound/qual/ACCTop.java b/framework/src/test/java/testlib/compound/qual/ACCTop.java index b1a1b2fb331..ecfe7105fc8 100644 --- a/framework/src/test/java/testlib/compound/qual/ACCTop.java +++ b/framework/src/test/java/testlib/compound/qual/ACCTop.java @@ -1,10 +1,9 @@ package testlib.compound.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf({}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/compound/qual/CCBottom.java b/framework/src/test/java/testlib/compound/qual/CCBottom.java index b1377311d25..4273060da9b 100644 --- a/framework/src/test/java/testlib/compound/qual/CCBottom.java +++ b/framework/src/test/java/testlib/compound/qual/CCBottom.java @@ -1,12 +1,11 @@ package testlib.compound.qual; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TargetLocations; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - @SubtypeOf({CCTop.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND}) diff --git a/framework/src/test/java/testlib/compound/qual/CCTop.java b/framework/src/test/java/testlib/compound/qual/CCTop.java index 92a12ec405e..919698f3e5e 100644 --- a/framework/src/test/java/testlib/compound/qual/CCTop.java +++ b/framework/src/test/java/testlib/compound/qual/CCTop.java @@ -1,10 +1,9 @@ package testlib.compound.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf({}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/defaulting/DefaultingLowerBoundAnnotatedTypeFactory.java b/framework/src/test/java/testlib/defaulting/DefaultingLowerBoundAnnotatedTypeFactory.java index 00590248856..cf079bee40e 100644 --- a/framework/src/test/java/testlib/defaulting/DefaultingLowerBoundAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/defaulting/DefaultingLowerBoundAnnotatedTypeFactory.java @@ -1,18 +1,16 @@ package testlib.defaulting; +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; - import testlib.defaulting.LowerBoundQual.LbBottom; import testlib.defaulting.LowerBoundQual.LbExplicit; import testlib.defaulting.LowerBoundQual.LbImplicit; import testlib.defaulting.LowerBoundQual.LbTop; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - public class DefaultingLowerBoundAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { public DefaultingLowerBoundAnnotatedTypeFactory(BaseTypeChecker checker) { diff --git a/framework/src/test/java/testlib/defaulting/DefaultingUpperBoundAnnotatedTypeFactory.java b/framework/src/test/java/testlib/defaulting/DefaultingUpperBoundAnnotatedTypeFactory.java index ead57c5cb70..b0d768a29fb 100644 --- a/framework/src/test/java/testlib/defaulting/DefaultingUpperBoundAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/defaulting/DefaultingUpperBoundAnnotatedTypeFactory.java @@ -1,12 +1,11 @@ package testlib.defaulting; -import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; -import org.checkerframework.common.basetype.BaseTypeChecker; - import java.lang.annotation.Annotation; import java.util.Arrays; import java.util.HashSet; import java.util.Set; +import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; +import org.checkerframework.common.basetype.BaseTypeChecker; public class DefaultingUpperBoundAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { diff --git a/framework/src/test/java/testlib/defaulting/LowerBoundQual.java b/framework/src/test/java/testlib/defaulting/LowerBoundQual.java index a48f6d9847e..61bfa51d6f8 100644 --- a/framework/src/test/java/testlib/defaulting/LowerBoundQual.java +++ b/framework/src/test/java/testlib/defaulting/LowerBoundQual.java @@ -1,15 +1,14 @@ package testlib.defaulting; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; public class LowerBoundQual { diff --git a/framework/src/test/java/testlib/defaulting/UpperBoundQual.java b/framework/src/test/java/testlib/defaulting/UpperBoundQual.java index ab988edd9a8..8611d21c48b 100644 --- a/framework/src/test/java/testlib/defaulting/UpperBoundQual.java +++ b/framework/src/test/java/testlib/defaulting/UpperBoundQual.java @@ -1,15 +1,14 @@ package testlib.defaulting; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; /** Created by jburke on 9/29/14. */ public class UpperBoundQual { diff --git a/framework/src/test/java/testlib/flowexpression/FlowExpressionAnnotatedTypeFactory.java b/framework/src/test/java/testlib/flowexpression/FlowExpressionAnnotatedTypeFactory.java index 039ea34f0f3..2078cebade9 100644 --- a/framework/src/test/java/testlib/flowexpression/FlowExpressionAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/flowexpression/FlowExpressionAnnotatedTypeFactory.java @@ -1,5 +1,7 @@ package testlib.flowexpression; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.type.QualifierHierarchy; @@ -8,14 +10,9 @@ import org.checkerframework.framework.util.dependenttypes.DependentTypesHelper; import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; - import testlib.flowexpression.qual.FEBot; import testlib.flowexpression.qual.FETop; -import java.util.List; - -import javax.lang.model.element.AnnotationMirror; - public class FlowExpressionAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { private AnnotationMirror TOP, BOTTOM; diff --git a/framework/src/test/java/testlib/flowexpression/qual/FEBot.java b/framework/src/test/java/testlib/flowexpression/qual/FEBot.java index 50e22f4a296..2661ef575dc 100644 --- a/framework/src/test/java/testlib/flowexpression/qual/FEBot.java +++ b/framework/src/test/java/testlib/flowexpression/qual/FEBot.java @@ -1,9 +1,8 @@ package testlib.flowexpression.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf({FlowExp.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/flowexpression/qual/FETop.java b/framework/src/test/java/testlib/flowexpression/qual/FETop.java index 1fbda9bcfa8..eed5236ba74 100644 --- a/framework/src/test/java/testlib/flowexpression/qual/FETop.java +++ b/framework/src/test/java/testlib/flowexpression/qual/FETop.java @@ -1,10 +1,9 @@ package testlib.flowexpression.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @DefaultQualifierInHierarchy @SubtypeOf({}) diff --git a/framework/src/test/java/testlib/flowexpression/qual/FlowExp.java b/framework/src/test/java/testlib/flowexpression/qual/FlowExp.java index eb94ca60ffd..50c2891e3e1 100644 --- a/framework/src/test/java/testlib/flowexpression/qual/FlowExp.java +++ b/framework/src/test/java/testlib/flowexpression/qual/FlowExp.java @@ -1,10 +1,9 @@ package testlib.flowexpression.qual; -import org.checkerframework.framework.qual.JavaExpression; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.JavaExpression; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf({FETop.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/nontopdefault/NTDAnnotatedTypeFactory.java b/framework/src/test/java/testlib/nontopdefault/NTDAnnotatedTypeFactory.java index e3f59ec6205..86325aaf82d 100644 --- a/framework/src/test/java/testlib/nontopdefault/NTDAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/nontopdefault/NTDAnnotatedTypeFactory.java @@ -1,10 +1,9 @@ package testlib.nontopdefault; -import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; -import org.checkerframework.common.basetype.BaseTypeChecker; - import java.lang.annotation.Annotation; import java.util.Set; +import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; +import org.checkerframework.common.basetype.BaseTypeChecker; public class NTDAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { diff --git a/framework/src/test/java/testlib/nontopdefault/NTDVisitor.java b/framework/src/test/java/testlib/nontopdefault/NTDVisitor.java index 1dbd5ba7893..02d547e3d53 100644 --- a/framework/src/test/java/testlib/nontopdefault/NTDVisitor.java +++ b/framework/src/test/java/testlib/nontopdefault/NTDVisitor.java @@ -1,11 +1,9 @@ package testlib.nontopdefault; import com.sun.source.tree.Tree; - import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType; - import testlib.nontopdefault.qual.NTDBottom; import testlib.nontopdefault.qual.NTDMiddle; diff --git a/framework/src/test/java/testlib/nontopdefault/qual/NTDBottom.java b/framework/src/test/java/testlib/nontopdefault/qual/NTDBottom.java index 995f487726d..5326dac01f2 100644 --- a/framework/src/test/java/testlib/nontopdefault/qual/NTDBottom.java +++ b/framework/src/test/java/testlib/nontopdefault/qual/NTDBottom.java @@ -1,15 +1,14 @@ package testlib.nontopdefault.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TargetLocations; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TargetLocations; +import org.checkerframework.framework.qual.TypeUseLocation; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testlib/nontopdefault/qual/NTDMiddle.java b/framework/src/test/java/testlib/nontopdefault/qual/NTDMiddle.java index dd2566f5caa..73f6ee22de6 100644 --- a/framework/src/test/java/testlib/nontopdefault/qual/NTDMiddle.java +++ b/framework/src/test/java/testlib/nontopdefault/qual/NTDMiddle.java @@ -1,13 +1,12 @@ package testlib.nontopdefault.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** Middle is the default type in hierarchy. */ @Documented diff --git a/framework/src/test/java/testlib/nontopdefault/qual/NTDSide.java b/framework/src/test/java/testlib/nontopdefault/qual/NTDSide.java index 3b8a796a9c4..e101f947090 100644 --- a/framework/src/test/java/testlib/nontopdefault/qual/NTDSide.java +++ b/framework/src/test/java/testlib/nontopdefault/qual/NTDSide.java @@ -1,12 +1,11 @@ package testlib.nontopdefault.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testlib/nontopdefault/qual/NTDTop.java b/framework/src/test/java/testlib/nontopdefault/qual/NTDTop.java index b7936e06b99..c1e6c210ba6 100644 --- a/framework/src/test/java/testlib/nontopdefault/qual/NTDTop.java +++ b/framework/src/test/java/testlib/nontopdefault/qual/NTDTop.java @@ -1,14 +1,13 @@ package testlib.nontopdefault.qual; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/testlib/reflection/ReflectionTestAnnotatedTypeFactory.java b/framework/src/test/java/testlib/reflection/ReflectionTestAnnotatedTypeFactory.java index 7584377b535..b4ad8687afb 100644 --- a/framework/src/test/java/testlib/reflection/ReflectionTestAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/reflection/ReflectionTestAnnotatedTypeFactory.java @@ -1,5 +1,6 @@ package testlib.reflection; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.qual.LiteralKind; @@ -11,11 +12,8 @@ import org.checkerframework.framework.util.GraphQualifierHierarchy; import org.checkerframework.framework.util.MultiGraphQualifierHierarchy.MultiGraphFactory; import org.checkerframework.javacutil.AnnotationBuilder; - import testlib.reflection.qual.ReflectBottom; -import javax.lang.model.element.AnnotationMirror; - /** * AnnotatedTypeFactory with reflection resolution enabled. The used qualifier hierarchy is * straightforward and only intended for test purposes. diff --git a/framework/src/test/java/testlib/reflection/qual/PolyReflection.java b/framework/src/test/java/testlib/reflection/qual/PolyReflection.java index 02f4b6eacd2..1ea62c53f2f 100644 --- a/framework/src/test/java/testlib/reflection/qual/PolyReflection.java +++ b/framework/src/test/java/testlib/reflection/qual/PolyReflection.java @@ -1,9 +1,8 @@ package testlib.reflection.qual; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** * Toy type system for testing reflection resolution. Uses diff --git a/framework/src/test/java/testlib/reflection/qual/ReflectBottom.java b/framework/src/test/java/testlib/reflection/qual/ReflectBottom.java index 8a0af59dd1a..f8ac704e5c9 100644 --- a/framework/src/test/java/testlib/reflection/qual/ReflectBottom.java +++ b/framework/src/test/java/testlib/reflection/qual/ReflectBottom.java @@ -1,13 +1,12 @@ package testlib.reflection.qual; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TargetLocations; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - /** * Toy type system for testing reflection resolution. Uses * org.checkerframework.common.subtyping.qual.Bottom as bottom. diff --git a/framework/src/test/java/testlib/reflection/qual/Sibling1.java b/framework/src/test/java/testlib/reflection/qual/Sibling1.java index ac385f22c59..4ca25a6e26b 100644 --- a/framework/src/test/java/testlib/reflection/qual/Sibling1.java +++ b/framework/src/test/java/testlib/reflection/qual/Sibling1.java @@ -1,9 +1,8 @@ package testlib.reflection.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Toy type system for testing reflection resolution. Uses diff --git a/framework/src/test/java/testlib/reflection/qual/Sibling2.java b/framework/src/test/java/testlib/reflection/qual/Sibling2.java index a7adacfc724..d4bfb7854be 100644 --- a/framework/src/test/java/testlib/reflection/qual/Sibling2.java +++ b/framework/src/test/java/testlib/reflection/qual/Sibling2.java @@ -1,9 +1,8 @@ package testlib.reflection.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Toy type system for testing reflection resolution. Uses diff --git a/framework/src/test/java/testlib/reflection/qual/Top.java b/framework/src/test/java/testlib/reflection/qual/Top.java index 17fd318fd62..3eca549713d 100644 --- a/framework/src/test/java/testlib/reflection/qual/Top.java +++ b/framework/src/test/java/testlib/reflection/qual/Top.java @@ -1,10 +1,9 @@ package testlib.reflection.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * Toy type system for testing reflection resolution. Uses diff --git a/framework/src/test/java/testlib/supportedquals/SupportedQualsChecker.java b/framework/src/test/java/testlib/supportedquals/SupportedQualsChecker.java index 09007b07a39..527ced184eb 100644 --- a/framework/src/test/java/testlib/supportedquals/SupportedQualsChecker.java +++ b/framework/src/test/java/testlib/supportedquals/SupportedQualsChecker.java @@ -1,17 +1,15 @@ package testlib.supportedquals; +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; - import testlib.supportedquals.qual.BottomQualifier; import testlib.supportedquals.qual.Qualifier; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - /** * Tests that annotations that have @Target(TYPE_USE, OTHER) (where OTHER is not TYPE_PARAMETER) may * be in the qual package so long as {@link BaseAnnotatedTypeFactory#createSupportedTypeQualifiers} diff --git a/framework/src/test/java/testlib/supportedquals/qual/BottomQualifier.java b/framework/src/test/java/testlib/supportedquals/qual/BottomQualifier.java index b228f07577a..9c95e3f669f 100644 --- a/framework/src/test/java/testlib/supportedquals/qual/BottomQualifier.java +++ b/framework/src/test/java/testlib/supportedquals/qual/BottomQualifier.java @@ -1,12 +1,11 @@ package testlib.supportedquals.qual; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TargetLocations; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - @SubtypeOf({Qualifier.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND}) diff --git a/framework/src/test/java/testlib/supportedquals/qual/Qualifier.java b/framework/src/test/java/testlib/supportedquals/qual/Qualifier.java index 75939cdefb5..68f86a89cf2 100644 --- a/framework/src/test/java/testlib/supportedquals/qual/Qualifier.java +++ b/framework/src/test/java/testlib/supportedquals/qual/Qualifier.java @@ -1,10 +1,9 @@ package testlib.supportedquals.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf({}) @Target(ElementType.TYPE_USE) diff --git a/framework/src/test/java/testlib/util/AnnoWithStringArg.java b/framework/src/test/java/testlib/util/AnnoWithStringArg.java index 15a5ab7765d..b5e0130ba79 100644 --- a/framework/src/test/java/testlib/util/AnnoWithStringArg.java +++ b/framework/src/test/java/testlib/util/AnnoWithStringArg.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.common.subtyping.qual.Unqualified; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.common.subtyping.qual.Unqualified; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf(Unqualified.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/Critical.java b/framework/src/test/java/testlib/util/Critical.java index f182605f913..b4b3c41e106 100644 --- a/framework/src/test/java/testlib/util/Critical.java +++ b/framework/src/test/java/testlib/util/Critical.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.common.subtyping.qual.Unqualified; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.common.subtyping.qual.Unqualified; +import org.checkerframework.framework.qual.SubtypeOf; /** Denotes an exception that is particularly important. */ @SubtypeOf(Unqualified.class) diff --git a/framework/src/test/java/testlib/util/Encrypted.java b/framework/src/test/java/testlib/util/Encrypted.java index a08eef97764..566be4de9fb 100644 --- a/framework/src/test/java/testlib/util/Encrypted.java +++ b/framework/src/test/java/testlib/util/Encrypted.java @@ -1,13 +1,12 @@ package testlib.util; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.common.subtyping.qual.Unqualified; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - /** Denotes an object with a representation that has been encrypted. */ @SubtypeOf(Unqualified.class) @DefaultFor({TypeUseLocation.LOWER_BOUND}) diff --git a/framework/src/test/java/testlib/util/EnsuresOdd.java b/framework/src/test/java/testlib/util/EnsuresOdd.java index 8f23f261b84..3edab4053a0 100644 --- a/framework/src/test/java/testlib/util/EnsuresOdd.java +++ b/framework/src/test/java/testlib/util/EnsuresOdd.java @@ -1,13 +1,12 @@ package testlib.util; -import org.checkerframework.framework.qual.InheritedAnnotation; -import org.checkerframework.framework.qual.PostconditionAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.InheritedAnnotation; +import org.checkerframework.framework.qual.PostconditionAnnotation; /** * A postcondition annotation to indicate that a method ensures certain expressions to be {@link diff --git a/framework/src/test/java/testlib/util/EnsuresOddIf.java b/framework/src/test/java/testlib/util/EnsuresOddIf.java index c22ed87ee7e..4c1cffae8e6 100644 --- a/framework/src/test/java/testlib/util/EnsuresOddIf.java +++ b/framework/src/test/java/testlib/util/EnsuresOddIf.java @@ -1,13 +1,12 @@ package testlib.util; -import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; -import org.checkerframework.framework.qual.InheritedAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.ConditionalPostconditionAnnotation; +import org.checkerframework.framework.qual.InheritedAnnotation; /** * A conditional postcondition annotation to indicate that a method ensures certain expressions to diff --git a/framework/src/test/java/testlib/util/Even.java b/framework/src/test/java/testlib/util/Even.java index 5548fc1c35e..75cf43848df 100644 --- a/framework/src/test/java/testlib/util/Even.java +++ b/framework/src/test/java/testlib/util/Even.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.common.subtyping.qual.Unqualified; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.common.subtyping.qual.Unqualified; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf(Unqualified.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/FactoryTestChecker.java b/framework/src/test/java/testlib/util/FactoryTestChecker.java index 07a031f38fa..97fffa90381 100644 --- a/framework/src/test/java/testlib/util/FactoryTestChecker.java +++ b/framework/src/test/java/testlib/util/FactoryTestChecker.java @@ -4,15 +4,6 @@ import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.Tree; import com.sun.tools.javac.tree.JCTree; - -import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; -import org.checkerframework.common.basetype.BaseTypeChecker; -import org.checkerframework.common.basetype.BaseTypeVisitor; -import org.checkerframework.framework.source.SourceChecker; -import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; -import org.checkerframework.javacutil.BugInCF; -import org.checkerframework.javacutil.TreeUtils; - import java.io.File; import java.io.FileReader; import java.io.IOException; @@ -24,11 +15,17 @@ import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; - import javax.annotation.processing.SupportedOptions; import javax.annotation.processing.SupportedSourceVersion; import javax.lang.model.SourceVersion; import javax.tools.JavaFileObject; +import org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey; +import org.checkerframework.common.basetype.BaseTypeChecker; +import org.checkerframework.common.basetype.BaseTypeVisitor; +import org.checkerframework.framework.source.SourceChecker; +import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; +import org.checkerframework.javacutil.BugInCF; +import org.checkerframework.javacutil.TreeUtils; /** * A specialized checker for testing purposes. It compares an expression's annotated type to an diff --git a/framework/src/test/java/testlib/util/FlowTestAnnotatedTypeFactory.java b/framework/src/test/java/testlib/util/FlowTestAnnotatedTypeFactory.java index a39ef4dd7be..91cfc0a0538 100644 --- a/framework/src/test/java/testlib/util/FlowTestAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/util/FlowTestAnnotatedTypeFactory.java @@ -1,5 +1,10 @@ package testlib.util; +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.subtyping.qual.Bottom; @@ -12,13 +17,6 @@ import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - public class FlowTestAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { protected final AnnotationMirror VALUE, BOTTOM; diff --git a/framework/src/test/java/testlib/util/MonotonicOdd.java b/framework/src/test/java/testlib/util/MonotonicOdd.java index 50d69af0989..06aa8488427 100644 --- a/framework/src/test/java/testlib/util/MonotonicOdd.java +++ b/framework/src/test/java/testlib/util/MonotonicOdd.java @@ -1,12 +1,11 @@ package testlib.util; -import org.checkerframework.common.subtyping.qual.Unqualified; -import org.checkerframework.framework.qual.MonotonicQualifier; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Target; +import org.checkerframework.common.subtyping.qual.Unqualified; +import org.checkerframework.framework.qual.MonotonicQualifier; +import org.checkerframework.framework.qual.SubtypeOf; @Inherited @SubtypeOf(Unqualified.class) diff --git a/framework/src/test/java/testlib/util/Odd.java b/framework/src/test/java/testlib/util/Odd.java index 6a28b080676..273ec79f59d 100644 --- a/framework/src/test/java/testlib/util/Odd.java +++ b/framework/src/test/java/testlib/util/Odd.java @@ -1,9 +1,8 @@ package testlib.util; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf(MonotonicOdd.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/PatternA.java b/framework/src/test/java/testlib/util/PatternA.java index 590eea8ef1d..427988ac706 100644 --- a/framework/src/test/java/testlib/util/PatternA.java +++ b/framework/src/test/java/testlib/util/PatternA.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf({PatternAB.class, PatternAC.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/PatternAB.java b/framework/src/test/java/testlib/util/PatternAB.java index 8c5f809e51d..f641255c13c 100644 --- a/framework/src/test/java/testlib/util/PatternAB.java +++ b/framework/src/test/java/testlib/util/PatternAB.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf(PatternUnknown.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/PatternAC.java b/framework/src/test/java/testlib/util/PatternAC.java index 594e80c89bb..806e0fbef1a 100644 --- a/framework/src/test/java/testlib/util/PatternAC.java +++ b/framework/src/test/java/testlib/util/PatternAC.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf(PatternUnknown.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/PatternB.java b/framework/src/test/java/testlib/util/PatternB.java index f7908ee2a49..c1040531d70 100644 --- a/framework/src/test/java/testlib/util/PatternB.java +++ b/framework/src/test/java/testlib/util/PatternB.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf({PatternAB.class, PatternBC.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/PatternBC.java b/framework/src/test/java/testlib/util/PatternBC.java index 85ec25e128a..7f30ca2960c 100644 --- a/framework/src/test/java/testlib/util/PatternBC.java +++ b/framework/src/test/java/testlib/util/PatternBC.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf(PatternUnknown.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/PatternBottomFull.java b/framework/src/test/java/testlib/util/PatternBottomFull.java index 3a58d3756ca..0039d2d54e9 100644 --- a/framework/src/test/java/testlib/util/PatternBottomFull.java +++ b/framework/src/test/java/testlib/util/PatternBottomFull.java @@ -1,12 +1,11 @@ package testlib.util; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TargetLocations; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - @SubtypeOf({PatternA.class, PatternB.class, PatternC.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND}) diff --git a/framework/src/test/java/testlib/util/PatternBottomPartial.java b/framework/src/test/java/testlib/util/PatternBottomPartial.java index 05e27b1514e..0f373a31839 100644 --- a/framework/src/test/java/testlib/util/PatternBottomPartial.java +++ b/framework/src/test/java/testlib/util/PatternBottomPartial.java @@ -1,12 +1,11 @@ package testlib.util; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TargetLocations; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - @SubtypeOf({PatternAB.class, PatternBC.class, PatternAC.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND}) diff --git a/framework/src/test/java/testlib/util/PatternC.java b/framework/src/test/java/testlib/util/PatternC.java index db526d1d454..4e5dce67d39 100644 --- a/framework/src/test/java/testlib/util/PatternC.java +++ b/framework/src/test/java/testlib/util/PatternC.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf({PatternBC.class, PatternAC.class}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/PatternUnknown.java b/framework/src/test/java/testlib/util/PatternUnknown.java index 47351d4c364..f48f72477aa 100644 --- a/framework/src/test/java/testlib/util/PatternUnknown.java +++ b/framework/src/test/java/testlib/util/PatternUnknown.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @DefaultQualifierInHierarchy @SubtypeOf({}) diff --git a/framework/src/test/java/testlib/util/PolyEncrypted.java b/framework/src/test/java/testlib/util/PolyEncrypted.java index e50a9734652..a0c109b728f 100644 --- a/framework/src/test/java/testlib/util/PolyEncrypted.java +++ b/framework/src/test/java/testlib/util/PolyEncrypted.java @@ -1,9 +1,8 @@ package testlib.util; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; @PolymorphicQualifier @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/util/RequiresOdd.java b/framework/src/test/java/testlib/util/RequiresOdd.java index 077a30f0b6a..dcad000cb58 100644 --- a/framework/src/test/java/testlib/util/RequiresOdd.java +++ b/framework/src/test/java/testlib/util/RequiresOdd.java @@ -1,12 +1,11 @@ package testlib.util; -import org.checkerframework.framework.qual.PreconditionAnnotation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PreconditionAnnotation; /** * A precondition annotation to indicate that a method requires certain expressions to be {@link diff --git a/framework/src/test/java/testlib/util/SubQual.java b/framework/src/test/java/testlib/util/SubQual.java index 42d88d0261c..4418864e2ed 100644 --- a/framework/src/test/java/testlib/util/SubQual.java +++ b/framework/src/test/java/testlib/util/SubQual.java @@ -1,9 +1,8 @@ package testlib.util; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** A subtype of SuperQual. */ @SubtypeOf(SuperQual.class) diff --git a/framework/src/test/java/testlib/util/SuperQual.java b/framework/src/test/java/testlib/util/SuperQual.java index fecba8dd004..f69466a8eb3 100644 --- a/framework/src/test/java/testlib/util/SuperQual.java +++ b/framework/src/test/java/testlib/util/SuperQual.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** A supertype of SubQual. */ @SubtypeOf({}) diff --git a/framework/src/test/java/testlib/util/TestChecker.java b/framework/src/test/java/testlib/util/TestChecker.java index 169a3c4b654..06bb4025a0c 100644 --- a/framework/src/test/java/testlib/util/TestChecker.java +++ b/framework/src/test/java/testlib/util/TestChecker.java @@ -1,7 +1,12 @@ package testlib.util; import com.sun.source.tree.Tree; - +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.util.Elements; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; @@ -15,14 +20,6 @@ import org.checkerframework.framework.util.defaults.QualifierDefaults; import org.checkerframework.javacutil.AnnotationBuilder; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.util.Elements; - /** * A simple checker used for testing the Checker Framework. It treats the {@code @Odd} and * {@code @Even} annotations as a subtype-style qualifiers with no special semantics. diff --git a/framework/src/test/java/testlib/util/Value.java b/framework/src/test/java/testlib/util/Value.java index 31f59b2dc7e..a605e00fadf 100644 --- a/framework/src/test/java/testlib/util/Value.java +++ b/framework/src/test/java/testlib/util/Value.java @@ -1,10 +1,9 @@ package testlib.util; -import org.checkerframework.common.subtyping.qual.Unqualified; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.common.subtyping.qual.Unqualified; +import org.checkerframework.framework.qual.SubtypeOf; @SubtypeOf(Unqualified.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) diff --git a/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestAnnotatedTypeFactory.java b/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestAnnotatedTypeFactory.java index 96d8e966f66..b6d2f7b2aa8 100644 --- a/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestAnnotatedTypeFactory.java +++ b/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestAnnotatedTypeFactory.java @@ -1,5 +1,12 @@ package testlib.wholeprograminference; +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.reflection.qual.UnknownClass; @@ -13,7 +20,6 @@ import org.checkerframework.framework.util.MultiGraphQualifierHierarchy.MultiGraphFactory; import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; - import testlib.wholeprograminference.qual.DefaultType; import testlib.wholeprograminference.qual.ImplicitAnno; import testlib.wholeprograminference.qual.Parent; @@ -23,15 +29,6 @@ import testlib.wholeprograminference.qual.Top; import testlib.wholeprograminference.qual.WholeProgramInferenceBottom; -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.lang.model.element.AnnotationMirror; - /** * AnnotatedTypeFactory to test whole-program inference using .jaif files. * diff --git a/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestChecker.java b/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestChecker.java index 8753fb97fe9..5434f2a5114 100644 --- a/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestChecker.java +++ b/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestChecker.java @@ -1,11 +1,10 @@ package testlib.wholeprograminference; +import java.util.LinkedHashSet; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.common.value.ValueChecker; -import java.util.LinkedHashSet; - /** * Checker for a simple type system to test whole-program inference. Uses the Value Checker as a * subchecker to ensure that generated files contain annotations both from this checker and from the diff --git a/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestVisitor.java b/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestVisitor.java index 2d56dbb9edb..14edf7575cd 100644 --- a/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestVisitor.java +++ b/framework/src/test/java/testlib/wholeprograminference/WholeProgramInferenceTestVisitor.java @@ -3,16 +3,13 @@ import com.sun.source.tree.AnnotationTree; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.TreeInfo; - +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.common.basetype.BaseTypeVisitor; import org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType; - import testlib.wholeprograminference.qual.DefaultType; -import javax.lang.model.element.Element; -import javax.lang.model.element.ExecutableElement; - /** Visitor for a simple type system to test whole-program inference using .jaif files. */ public class WholeProgramInferenceTestVisitor extends BaseTypeVisitor { diff --git a/framework/src/test/java/testlib/wholeprograminference/qual/DefaultType.java b/framework/src/test/java/testlib/wholeprograminference/qual/DefaultType.java index d314908ad44..41532e032a4 100644 --- a/framework/src/test/java/testlib/wholeprograminference/qual/DefaultType.java +++ b/framework/src/test/java/testlib/wholeprograminference/qual/DefaultType.java @@ -1,10 +1,9 @@ package testlib.wholeprograminference.qual; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; /** * DefaultType is used to test the relaxInference option. Toy type system for testing field diff --git a/framework/src/test/java/testlib/wholeprograminference/qual/ImplicitAnno.java b/framework/src/test/java/testlib/wholeprograminference/qual/ImplicitAnno.java index 5d4357d29fb..0c76916de6c 100644 --- a/framework/src/test/java/testlib/wholeprograminference/qual/ImplicitAnno.java +++ b/framework/src/test/java/testlib/wholeprograminference/qual/ImplicitAnno.java @@ -1,12 +1,11 @@ package testlib.wholeprograminference.qual; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.qual.IgnoreInWholeProgramInference; import org.checkerframework.framework.qual.SubtypeOf; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - /** * Toy type system for testing field inference. * diff --git a/framework/src/test/java/testlib/wholeprograminference/qual/Parent.java b/framework/src/test/java/testlib/wholeprograminference/qual/Parent.java index 2660889baa1..7a7853bbc03 100644 --- a/framework/src/test/java/testlib/wholeprograminference/qual/Parent.java +++ b/framework/src/test/java/testlib/wholeprograminference/qual/Parent.java @@ -1,9 +1,8 @@ package testlib.wholeprograminference.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Toy type system for testing field inference. diff --git a/framework/src/test/java/testlib/wholeprograminference/qual/Sibling1.java b/framework/src/test/java/testlib/wholeprograminference/qual/Sibling1.java index 62a23395bb7..c661bc9a01e 100644 --- a/framework/src/test/java/testlib/wholeprograminference/qual/Sibling1.java +++ b/framework/src/test/java/testlib/wholeprograminference/qual/Sibling1.java @@ -1,9 +1,8 @@ package testlib.wholeprograminference.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Toy type system for testing field inference. diff --git a/framework/src/test/java/testlib/wholeprograminference/qual/Sibling2.java b/framework/src/test/java/testlib/wholeprograminference/qual/Sibling2.java index 231932e5eb6..eaf4439fb6e 100644 --- a/framework/src/test/java/testlib/wholeprograminference/qual/Sibling2.java +++ b/framework/src/test/java/testlib/wholeprograminference/qual/Sibling2.java @@ -1,9 +1,8 @@ package testlib.wholeprograminference.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Toy type system for testing field inference. diff --git a/framework/src/test/java/testlib/wholeprograminference/qual/SiblingWithFields.java b/framework/src/test/java/testlib/wholeprograminference/qual/SiblingWithFields.java index b375ba84c3f..a013f32c27d 100644 --- a/framework/src/test/java/testlib/wholeprograminference/qual/SiblingWithFields.java +++ b/framework/src/test/java/testlib/wholeprograminference/qual/SiblingWithFields.java @@ -1,9 +1,8 @@ package testlib.wholeprograminference.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Toy type system for testing field inference. diff --git a/framework/src/test/java/testlib/wholeprograminference/qual/Top.java b/framework/src/test/java/testlib/wholeprograminference/qual/Top.java index 0f5d4964456..07a9b8d3833 100644 --- a/framework/src/test/java/testlib/wholeprograminference/qual/Top.java +++ b/framework/src/test/java/testlib/wholeprograminference/qual/Top.java @@ -1,9 +1,8 @@ package testlib.wholeprograminference.qual; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** * Toy type system for testing field inference. diff --git a/framework/src/test/java/testlib/wholeprograminference/qual/WholeProgramInferenceBottom.java b/framework/src/test/java/testlib/wholeprograminference/qual/WholeProgramInferenceBottom.java index 50b1590916b..5db2462e0f8 100644 --- a/framework/src/test/java/testlib/wholeprograminference/qual/WholeProgramInferenceBottom.java +++ b/framework/src/test/java/testlib/wholeprograminference/qual/WholeProgramInferenceBottom.java @@ -1,13 +1,12 @@ package testlib.wholeprograminference.qual; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import org.checkerframework.framework.qual.DefaultFor; import org.checkerframework.framework.qual.SubtypeOf; import org.checkerframework.framework.qual.TargetLocations; import org.checkerframework.framework.qual.TypeUseLocation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - /** * Toy type system for testing field inference. * diff --git a/framework/src/test/java/tests/AccumulationTest.java b/framework/src/test/java/tests/AccumulationTest.java index c60c5d5c08e..40d01c42665 100644 --- a/framework/src/test/java/tests/AccumulationTest.java +++ b/framework/src/test/java/tests/AccumulationTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testaccumulation.TestAccumulationChecker; -import java.io.File; -import java.util.List; - /** * A test that the accumulation abstract checker is working correctly, using a simple accumulation * checker. diff --git a/framework/src/test/java/tests/AggregateTest.java b/framework/src/test/java/tests/AggregateTest.java index 2039c5c672f..2d8181188c0 100644 --- a/framework/src/test/java/tests/AggregateTest.java +++ b/framework/src/test/java/tests/AggregateTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.aggregate.AggregateOfCompoundChecker; -import java.io.File; -import java.util.List; - public class AggregateTest extends FrameworkPerDirectoryTest { /** @param testFiles the files containing test code, which will be type-checked */ diff --git a/framework/src/test/java/tests/AliasingTest.java b/framework/src/test/java/tests/AliasingTest.java index d37dba24a8f..96783ceca39 100644 --- a/framework/src/test/java/tests/AliasingTest.java +++ b/framework/src/test/java/tests/AliasingTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class AliasingTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/AnnotatedForTest.java b/framework/src/test/java/tests/AnnotatedForTest.java index 3261fa5a509..3208d5f43ef 100644 --- a/framework/src/test/java/tests/AnnotatedForTest.java +++ b/framework/src/test/java/tests/AnnotatedForTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** Created by jthaine on 6/25/15. */ public class AnnotatedForTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/AnnotationBuilderTest.java b/framework/src/test/java/tests/AnnotationBuilderTest.java index 45a0abf7c9b..1341a84d212 100644 --- a/framework/src/test/java/tests/AnnotationBuilderTest.java +++ b/framework/src/test/java/tests/AnnotationBuilderTest.java @@ -6,20 +6,17 @@ import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.Options; - +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.type.TypeMirror; import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.BugInCF; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; - import testlib.util.AnnoWithStringArg; import testlib.util.Encrypted; -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.type.TypeMirror; - public class AnnotationBuilderTest { private final ProcessingEnvironment env; diff --git a/framework/src/test/java/tests/ClassValTest.java b/framework/src/test/java/tests/ClassValTest.java index 863ab70e54b..018fe883411 100644 --- a/framework/src/test/java/tests/ClassValTest.java +++ b/framework/src/test/java/tests/ClassValTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** Tests the ClassVal Checker. */ public class ClassValTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/CompoundCheckerTest.java b/framework/src/test/java/tests/CompoundCheckerTest.java index ddabf616492..190c060cb51 100644 --- a/framework/src/test/java/tests/CompoundCheckerTest.java +++ b/framework/src/test/java/tests/CompoundCheckerTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.compound.CompoundChecker; -import java.io.File; -import java.util.List; - /** Tests for the compound checker design pattern. */ public class CompoundCheckerTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/DefaultingLowerBoundTest.java b/framework/src/test/java/tests/DefaultingLowerBoundTest.java index 776bcf990f9..86acb5ad84c 100644 --- a/framework/src/test/java/tests/DefaultingLowerBoundTest.java +++ b/framework/src/test/java/tests/DefaultingLowerBoundTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.defaulting.DefaultingLowerBoundChecker; -import java.io.File; -import java.util.List; - /** Created by jburke on 9/29/14. */ public class DefaultingLowerBoundTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/DefaultingUpperBoundTest.java b/framework/src/test/java/tests/DefaultingUpperBoundTest.java index b7acade40e2..e46a4ddfc46 100644 --- a/framework/src/test/java/tests/DefaultingUpperBoundTest.java +++ b/framework/src/test/java/tests/DefaultingUpperBoundTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.defaulting.DefaultingUpperBoundChecker; -import java.io.File; -import java.util.List; - /** Created by jburke on 9/29/14. */ public class DefaultingUpperBoundTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/Flow2Test.java b/framework/src/test/java/tests/Flow2Test.java index a623e98b5c5..42c81a5d490 100644 --- a/framework/src/test/java/tests/Flow2Test.java +++ b/framework/src/test/java/tests/Flow2Test.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.util.FlowTestChecker; -import java.io.File; -import java.util.List; - /** * Tests for the flow-sensitive part of the framework. These tests complement the tests of {@link * FlowTest} and have been written when the org.checkerframework.dataflow analysis has been diff --git a/framework/src/test/java/tests/FlowExpressionCheckerTest.java b/framework/src/test/java/tests/FlowExpressionCheckerTest.java index 32a8d29ea7e..978325071af 100644 --- a/framework/src/test/java/tests/FlowExpressionCheckerTest.java +++ b/framework/src/test/java/tests/FlowExpressionCheckerTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.flowexpression.FlowExpressionChecker; -import java.io.File; -import java.util.List; - public class FlowExpressionCheckerTest extends FrameworkPerDirectoryTest { /** @param testFiles the files containing test code, which will be type-checked */ diff --git a/framework/src/test/java/tests/FlowTest.java b/framework/src/test/java/tests/FlowTest.java index 9336ba1ba30..4d527c3ebcf 100644 --- a/framework/src/test/java/tests/FlowTest.java +++ b/framework/src/test/java/tests/FlowTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.util.FlowTestChecker; -import java.io.File; -import java.util.List; - /** */ public class FlowTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/FrameworkTest.java b/framework/src/test/java/tests/FrameworkTest.java index 3f96c99f7e5..5349e4d2cbf 100644 --- a/framework/src/test/java/tests/FrameworkTest.java +++ b/framework/src/test/java/tests/FrameworkTest.java @@ -1,12 +1,10 @@ package tests; +import java.io.File; import org.checkerframework.framework.test.FrameworkPerFileTest; import org.junit.runners.Parameterized.Parameters; - import testlib.util.TestChecker; -import java.io.File; - /** JUnit tests for the Checker Framework, using the {@link TestChecker}. */ public class FrameworkTest extends FrameworkPerFileTest { diff --git a/framework/src/test/java/tests/LubGlbTest.java b/framework/src/test/java/tests/LubGlbTest.java index 85908417e35..5de49380932 100644 --- a/framework/src/test/java/tests/LubGlbTest.java +++ b/framework/src/test/java/tests/LubGlbTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** */ public class LubGlbTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/MethodValTest.java b/framework/src/test/java/tests/MethodValTest.java index efc23f2cea0..fc187c92097 100644 --- a/framework/src/test/java/tests/MethodValTest.java +++ b/framework/src/test/java/tests/MethodValTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** Tests the MethodVal Checker. */ public class MethodValTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/NonTopDefaultTest.java b/framework/src/test/java/tests/NonTopDefaultTest.java index 8761e28c934..675613898ac 100644 --- a/framework/src/test/java/tests/NonTopDefaultTest.java +++ b/framework/src/test/java/tests/NonTopDefaultTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.nontopdefault.NTDChecker; -import java.io.File; -import java.util.List; - /** Tests the NonTopDefault Checker. */ public class NonTopDefaultTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/PuritySuggestionsTest.java b/framework/src/test/java/tests/PuritySuggestionsTest.java index 3da2066cb24..e8a181008ce 100644 --- a/framework/src/test/java/tests/PuritySuggestionsTest.java +++ b/framework/src/test/java/tests/PuritySuggestionsTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.util.FlowTestChecker; -import java.io.File; -import java.util.List; - /** Tests for the {@code -AsuggestPureMethods} command-line argument. */ public class PuritySuggestionsTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/RangeTest.java b/framework/src/test/java/tests/RangeTest.java index 67b51f3c6da..0360e414fe4 100644 --- a/framework/src/test/java/tests/RangeTest.java +++ b/framework/src/test/java/tests/RangeTest.java @@ -1,17 +1,15 @@ package tests; -import org.checkerframework.common.value.util.Range; -import org.junit.Assert; -import org.junit.Test; - import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; - import javax.lang.model.type.TypeKind; +import org.checkerframework.common.value.util.Range; +import org.junit.Assert; +import org.junit.Test; /** This class tests the Range class, independent of the Value Checker. */ public class RangeTest { diff --git a/framework/src/test/java/tests/ReflectionTest.java b/framework/src/test/java/tests/ReflectionTest.java index 1954f114cb9..e27a5da3b6d 100644 --- a/framework/src/test/java/tests/ReflectionTest.java +++ b/framework/src/test/java/tests/ReflectionTest.java @@ -1,13 +1,11 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - -import testlib.reflection.ReflectionTestChecker; - import java.io.File; import java.util.ArrayList; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; +import testlib.reflection.ReflectionTestChecker; /** Tests the reflection resolution using a simple type system. */ public class ReflectionTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/ReportModifiersTest.java b/framework/src/test/java/tests/ReportModifiersTest.java index 60cf3681961..8ace1a86187 100644 --- a/framework/src/test/java/tests/ReportModifiersTest.java +++ b/framework/src/test/java/tests/ReportModifiersTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class ReportModifiersTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/ReportTest.java b/framework/src/test/java/tests/ReportTest.java index 5bf64708465..423bbf3adf7 100644 --- a/framework/src/test/java/tests/ReportTest.java +++ b/framework/src/test/java/tests/ReportTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class ReportTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/ReportTreeKindsTest.java b/framework/src/test/java/tests/ReportTreeKindsTest.java index c34b6d6b0d5..6098d228e75 100644 --- a/framework/src/test/java/tests/ReportTreeKindsTest.java +++ b/framework/src/test/java/tests/ReportTreeKindsTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; public class ReportTreeKindsTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/ReturnsReceiverAutoValueTest.java b/framework/src/test/java/tests/ReturnsReceiverAutoValueTest.java index c7b1b3ef29e..f2b3af1f00d 100644 --- a/framework/src/test/java/tests/ReturnsReceiverAutoValueTest.java +++ b/framework/src/test/java/tests/ReturnsReceiverAutoValueTest.java @@ -1,13 +1,11 @@ package tests; import com.google.common.collect.ImmutableList; - -import org.checkerframework.framework.test.*; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.Collections; import java.util.List; +import org.checkerframework.framework.test.*; +import org.junit.runners.Parameterized.Parameters; /** tests the returns receiver checker's AutoValue integration. */ public class ReturnsReceiverAutoValueTest extends CheckerFrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/ReturnsReceiverLombokTest.java b/framework/src/test/java/tests/ReturnsReceiverLombokTest.java index bacefa1125a..7ba9f1d7768 100644 --- a/framework/src/test/java/tests/ReturnsReceiverLombokTest.java +++ b/framework/src/test/java/tests/ReturnsReceiverLombokTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.common.returnsreceiver.ReturnsReceiverChecker; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** * Tests the returns receiver checker's lombok integration, the test files in * tests/returnsreceiverlombok package will be delomboked into tests/returnsreceiverdelomboked diff --git a/framework/src/test/java/tests/ReturnsReceiverTest.java b/framework/src/test/java/tests/ReturnsReceiverTest.java index 076858e529f..7f5fe8d8df4 100644 --- a/framework/src/test/java/tests/ReturnsReceiverTest.java +++ b/framework/src/test/java/tests/ReturnsReceiverTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.common.returnsreceiver.ReturnsReceiverChecker; import org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** * Test runner for tests of the Returns Receiver Checker. * diff --git a/framework/src/test/java/tests/SubtypingEncryptedTest.java b/framework/src/test/java/tests/SubtypingEncryptedTest.java index b99ca3bf5a3..84c50edd9a4 100644 --- a/framework/src/test/java/tests/SubtypingEncryptedTest.java +++ b/framework/src/test/java/tests/SubtypingEncryptedTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** Test suite for the Subtyping Checker, using a simple {@link Encrypted} annotation. */ public class SubtypingEncryptedTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/SubtypingStringPatternsFullTest.java b/framework/src/test/java/tests/SubtypingStringPatternsFullTest.java index c47622730ff..821cfa99e9d 100644 --- a/framework/src/test/java/tests/SubtypingStringPatternsFullTest.java +++ b/framework/src/test/java/tests/SubtypingStringPatternsFullTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** Test suite for the Subtyping Checker, using a simple {@link Encrypted} annotation. */ public class SubtypingStringPatternsFullTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/SupportedQualsTest.java b/framework/src/test/java/tests/SupportedQualsTest.java index c2c6a99f12b..7e3053f3a3c 100644 --- a/framework/src/test/java/tests/SupportedQualsTest.java +++ b/framework/src/test/java/tests/SupportedQualsTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testlib.supportedquals.SupportedQualsChecker; -import java.io.File; -import java.util.List; - public class SupportedQualsTest extends FrameworkPerDirectoryTest { /** @param testFiles the files containing test code, which will be type-checked */ diff --git a/framework/src/test/java/tests/TestCheckerTest.java b/framework/src/test/java/tests/TestCheckerTest.java index 00c9bead6e4..7f5e07e2e85 100644 --- a/framework/src/test/java/tests/TestCheckerTest.java +++ b/framework/src/test/java/tests/TestCheckerTest.java @@ -1,13 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; - import testchecker.TestChecker; -import java.io.File; -import java.util.List; - /** */ public class TestCheckerTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/TreeParserTest.java b/framework/src/test/java/tests/TreeParserTest.java index e4b6c479917..160fc8a017f 100644 --- a/framework/src/test/java/tests/TreeParserTest.java +++ b/framework/src/test/java/tests/TreeParserTest.java @@ -8,13 +8,11 @@ import com.sun.source.tree.MethodInvocationTree; import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; - +import javax.annotation.processing.ProcessingEnvironment; import org.checkerframework.javacutil.trees.TreeParser; import org.junit.Assert; import org.junit.Test; -import javax.annotation.processing.ProcessingEnvironment; - public class TreeParserTest { private final ProcessingEnvironment env; private final TreeParser parser; diff --git a/framework/src/test/java/tests/TypeDeclDefaultTest.java b/framework/src/test/java/tests/TypeDeclDefaultTest.java index 03e1408375f..ccca47715e0 100644 --- a/framework/src/test/java/tests/TypeDeclDefaultTest.java +++ b/framework/src/test/java/tests/TypeDeclDefaultTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized.Parameters; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; /** Create the TypeDeclDefault test. */ public class TypeDeclDefaultTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/ValueHandlePropertyFileTest.java b/framework/src/test/java/tests/ValueHandlePropertyFileTest.java new file mode 100644 index 00000000000..6db9d85e962 --- /dev/null +++ b/framework/src/test/java/tests/ValueHandlePropertyFileTest.java @@ -0,0 +1,27 @@ +package tests; + +import java.io.File; +import java.util.List; +import org.checkerframework.common.value.ValueChecker; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized.Parameters; + +/** Tests the constant value propagation type system with property file handler. */ +public class ValueHandlePropertyFileTest extends FrameworkPerDirectoryTest { + + /** @param testFiles the files containing test code, which will be type-checked */ + public ValueHandlePropertyFileTest(List testFiles) { + super( + testFiles, + org.checkerframework.common.value.ValueChecker.class, + "value", + "-Anomsgtext", + "-A" + ValueChecker.REPORT_EVAL_WARNS, + "-A" + ValueChecker.HANDLE_PROPERTY_FILES); + } + + @Parameters + public static String[] getTestDirs() { + return new String[] {"value", "all-systems", "value-handle-property-file"}; + } +} diff --git a/framework/src/test/java/tests/ValueIgnoreRangeOverflowTest.java b/framework/src/test/java/tests/ValueIgnoreRangeOverflowTest.java index 05f57ed1d4e..093684ab379 100644 --- a/framework/src/test/java/tests/ValueIgnoreRangeOverflowTest.java +++ b/framework/src/test/java/tests/ValueIgnoreRangeOverflowTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** Tests the constant value propagation type system without overflow. */ public class ValueIgnoreRangeOverflowTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/ValueNonNullStringsConcatenationTest.java b/framework/src/test/java/tests/ValueNonNullStringsConcatenationTest.java index e359133ee41..47f560ee05b 100644 --- a/framework/src/test/java/tests/ValueNonNullStringsConcatenationTest.java +++ b/framework/src/test/java/tests/ValueNonNullStringsConcatenationTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - public class ValueNonNullStringsConcatenationTest extends FrameworkPerDirectoryTest { /** @param testFiles the files containing test code, which will be type-checked */ diff --git a/framework/src/test/java/tests/ValueTest.java b/framework/src/test/java/tests/ValueTest.java index fb9b03a4ed3..38cac432432 100644 --- a/framework/src/test/java/tests/ValueTest.java +++ b/framework/src/test/java/tests/ValueTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** * Tests the constant value propagation type system. * diff --git a/framework/src/test/java/tests/ValueUncheckedDefaultsTest.java b/framework/src/test/java/tests/ValueUncheckedDefaultsTest.java index ca108046925..6cc64ec1261 100644 --- a/framework/src/test/java/tests/ValueUncheckedDefaultsTest.java +++ b/framework/src/test/java/tests/ValueUncheckedDefaultsTest.java @@ -1,12 +1,11 @@ package tests; +import java.io.File; +import java.util.List; import org.checkerframework.common.value.ValueChecker; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.runners.Parameterized.Parameters; -import java.io.File; -import java.util.List; - /** Tests conservative defaults for the constant value propagation type system. */ public class ValueUncheckedDefaultsTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/ViewpointTestCheckerTest.java b/framework/src/test/java/tests/ViewpointTestCheckerTest.java index a32eb3c4bc0..fe2032e2cf0 100644 --- a/framework/src/test/java/tests/ViewpointTestCheckerTest.java +++ b/framework/src/test/java/tests/ViewpointTestCheckerTest.java @@ -1,10 +1,9 @@ package tests; -import org.checkerframework.framework.test.FrameworkPerDirectoryTest; -import org.junit.runners.Parameterized; - import java.io.File; import java.util.List; +import org.checkerframework.framework.test.FrameworkPerDirectoryTest; +import org.junit.runners.Parameterized; public class ViewpointTestCheckerTest extends FrameworkPerDirectoryTest { diff --git a/framework/src/test/java/tests/wpirunners/WholeProgramInferenceJaifsTest.java b/framework/src/test/java/tests/wpirunners/WholeProgramInferenceJaifsTest.java index b427e92e486..86fffd209b4 100644 --- a/framework/src/test/java/tests/wpirunners/WholeProgramInferenceJaifsTest.java +++ b/framework/src/test/java/tests/wpirunners/WholeProgramInferenceJaifsTest.java @@ -1,14 +1,12 @@ package tests.wpirunners; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.experimental.categories.Category; import org.junit.runners.Parameterized.Parameters; - import testlib.wholeprograminference.WholeProgramInferenceTestChecker; -import java.io.File; -import java.util.List; - /** * Runs whole-program inference and inserts annotations into source code. * diff --git a/framework/src/test/java/tests/wpirunners/WholeProgramInferenceJaifsValidationTest.java b/framework/src/test/java/tests/wpirunners/WholeProgramInferenceJaifsValidationTest.java index f79c99470c5..0997832db90 100644 --- a/framework/src/test/java/tests/wpirunners/WholeProgramInferenceJaifsValidationTest.java +++ b/framework/src/test/java/tests/wpirunners/WholeProgramInferenceJaifsValidationTest.java @@ -1,14 +1,12 @@ package tests.wpirunners; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.experimental.categories.Category; import org.junit.runners.Parameterized.Parameters; - import testlib.wholeprograminference.WholeProgramInferenceTestChecker; -import java.io.File; -import java.util.List; - /** * Tests whole-program type inference with the aid of .jaif files. This test is the second pass, * which ensures that with the annotations inserted, the errors are no longer issued. diff --git a/framework/src/test/java/tests/wpirunners/WholeProgramInferenceStubsTest.java b/framework/src/test/java/tests/wpirunners/WholeProgramInferenceStubsTest.java index a34003038c5..df0a1233feb 100644 --- a/framework/src/test/java/tests/wpirunners/WholeProgramInferenceStubsTest.java +++ b/framework/src/test/java/tests/wpirunners/WholeProgramInferenceStubsTest.java @@ -1,14 +1,12 @@ package tests.wpirunners; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.experimental.categories.Category; import org.junit.runners.Parameterized.Parameters; - import testlib.wholeprograminference.WholeProgramInferenceTestChecker; -import java.io.File; -import java.util.List; - /** * Tests whole-program inference with the aid of stub files. This test is the first pass on the test * data, which generates the stubs. diff --git a/framework/src/test/java/tests/wpirunners/WholeProgramInferenceStubsValidationTest.java b/framework/src/test/java/tests/wpirunners/WholeProgramInferenceStubsValidationTest.java index 7a64318a810..2f38acfdbad 100644 --- a/framework/src/test/java/tests/wpirunners/WholeProgramInferenceStubsValidationTest.java +++ b/framework/src/test/java/tests/wpirunners/WholeProgramInferenceStubsValidationTest.java @@ -1,14 +1,12 @@ package tests.wpirunners; +import java.io.File; +import java.util.List; import org.checkerframework.framework.test.FrameworkPerDirectoryTest; import org.junit.experimental.categories.Category; import org.junit.runners.Parameterized.Parameters; - import testlib.wholeprograminference.WholeProgramInferenceTestChecker; -import java.io.File; -import java.util.List; - /** * Tests whole-program type inference with stub files. This test is the second pass, which ensures * that with the stubs in place, the errors that those annotations remove are no longer issued. diff --git a/framework/src/test/java/typedecldefault/TypeDeclDefaultAnnotatedTypeFactory.java b/framework/src/test/java/typedecldefault/TypeDeclDefaultAnnotatedTypeFactory.java index 13a7e4cd2e2..8d7608ca2b8 100644 --- a/framework/src/test/java/typedecldefault/TypeDeclDefaultAnnotatedTypeFactory.java +++ b/framework/src/test/java/typedecldefault/TypeDeclDefaultAnnotatedTypeFactory.java @@ -1,14 +1,12 @@ package typedecldefault; -import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; -import org.checkerframework.common.basetype.BaseTypeChecker; - -import typedecldefault.quals.*; - import java.lang.annotation.Annotation; import java.util.Arrays; import java.util.HashSet; import java.util.Set; +import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; +import org.checkerframework.common.basetype.BaseTypeChecker; +import typedecldefault.quals.*; public class TypeDeclDefaultAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { public TypeDeclDefaultAnnotatedTypeFactory(BaseTypeChecker checker) { diff --git a/framework/src/test/java/typedecldefault/quals/PolyTypeDeclDefault.java b/framework/src/test/java/typedecldefault/quals/PolyTypeDeclDefault.java index 256741b5fb2..412c5c88f8a 100644 --- a/framework/src/test/java/typedecldefault/quals/PolyTypeDeclDefault.java +++ b/framework/src/test/java/typedecldefault/quals/PolyTypeDeclDefault.java @@ -1,10 +1,9 @@ package typedecldefault.quals; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.*; import java.lang.annotation.Documented; import java.lang.annotation.Retention; +import org.checkerframework.framework.qual.PolymorphicQualifier; /** A polymorphic qualifier for the TyepDeclDefault type system. */ @Documented diff --git a/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultBottom.java b/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultBottom.java index 5bdbc821916..1184f31bbc0 100644 --- a/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultBottom.java +++ b/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultBottom.java @@ -1,15 +1,14 @@ package typedecldefault.quals; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.LiteralKind; -import org.checkerframework.framework.qual.QualifierForLiterals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.LiteralKind; +import org.checkerframework.framework.qual.QualifierForLiterals; +import org.checkerframework.framework.qual.SubtypeOf; /** TypeDeclDefault bottom qualifier. */ @Documented diff --git a/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultMiddle.java b/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultMiddle.java index fd12207b5b4..257411607b4 100644 --- a/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultMiddle.java +++ b/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultMiddle.java @@ -1,12 +1,11 @@ package typedecldefault.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; /** TypeDeclDefault middle qualifier. */ @Documented diff --git a/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultTop.java b/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultTop.java index 2f98c04fc9d..1b2bb3f3712 100644 --- a/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultTop.java +++ b/framework/src/test/java/typedecldefault/quals/TypeDeclDefaultTop.java @@ -1,12 +1,11 @@ package typedecldefault.quals; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.*; import java.lang.annotation.Documented; import java.lang.annotation.Retention; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; /** This is the top qualifier of the TypeDeclDefault type system. */ @Documented diff --git a/framework/src/test/java/viewpointtest/ViewpointTestAnnotatedTypeFactory.java b/framework/src/test/java/viewpointtest/ViewpointTestAnnotatedTypeFactory.java index 63be0a07fcc..3fc1711f18c 100644 --- a/framework/src/test/java/viewpointtest/ViewpointTestAnnotatedTypeFactory.java +++ b/framework/src/test/java/viewpointtest/ViewpointTestAnnotatedTypeFactory.java @@ -1,9 +1,10 @@ package viewpointtest; +import java.lang.annotation.Annotation; +import java.util.Set; import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.type.AbstractViewpointAdapter; - import viewpointtest.quals.A; import viewpointtest.quals.B; import viewpointtest.quals.Bottom; @@ -11,9 +12,6 @@ import viewpointtest.quals.ReceiverDependentQual; import viewpointtest.quals.Top; -import java.lang.annotation.Annotation; -import java.util.Set; - public class ViewpointTestAnnotatedTypeFactory extends BaseAnnotatedTypeFactory { public ViewpointTestAnnotatedTypeFactory(BaseTypeChecker checker) { diff --git a/framework/src/test/java/viewpointtest/ViewpointTestViewpointAdapter.java b/framework/src/test/java/viewpointtest/ViewpointTestViewpointAdapter.java index 4b81f8c8406..0d7ede70a96 100644 --- a/framework/src/test/java/viewpointtest/ViewpointTestViewpointAdapter.java +++ b/framework/src/test/java/viewpointtest/ViewpointTestViewpointAdapter.java @@ -1,16 +1,14 @@ package viewpointtest; +import javax.lang.model.element.AnnotationMirror; import org.checkerframework.framework.type.AbstractViewpointAdapter; import org.checkerframework.framework.type.AnnotatedTypeFactory; import org.checkerframework.framework.type.AnnotatedTypeMirror; import org.checkerframework.javacutil.AnnotationBuilder; import org.checkerframework.javacutil.AnnotationUtils; - import viewpointtest.quals.ReceiverDependentQual; import viewpointtest.quals.Top; -import javax.lang.model.element.AnnotationMirror; - public class ViewpointTestViewpointAdapter extends AbstractViewpointAdapter { private final AnnotationMirror TOP, RECEIVERDEPENDENTQUAL; diff --git a/framework/src/test/java/viewpointtest/quals/A.java b/framework/src/test/java/viewpointtest/quals/A.java index 3578a501ec2..60b3696fa03 100644 --- a/framework/src/test/java/viewpointtest/quals/A.java +++ b/framework/src/test/java/viewpointtest/quals/A.java @@ -1,12 +1,11 @@ package viewpointtest.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/viewpointtest/quals/B.java b/framework/src/test/java/viewpointtest/quals/B.java index 1fc36246149..ed90c9d5b02 100644 --- a/framework/src/test/java/viewpointtest/quals/B.java +++ b/framework/src/test/java/viewpointtest/quals/B.java @@ -1,12 +1,11 @@ package viewpointtest.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/viewpointtest/quals/Bottom.java b/framework/src/test/java/viewpointtest/quals/Bottom.java index 484726ae7f4..0840010bb79 100644 --- a/framework/src/test/java/viewpointtest/quals/Bottom.java +++ b/framework/src/test/java/viewpointtest/quals/Bottom.java @@ -1,14 +1,13 @@ package viewpointtest.quals; -import org.checkerframework.framework.qual.DefaultFor; -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.TypeUseLocation; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultFor; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.TypeUseLocation; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/viewpointtest/quals/PolyVP.java b/framework/src/test/java/viewpointtest/quals/PolyVP.java index 0904ee3f094..8d4659e7297 100644 --- a/framework/src/test/java/viewpointtest/quals/PolyVP.java +++ b/framework/src/test/java/viewpointtest/quals/PolyVP.java @@ -1,12 +1,11 @@ package viewpointtest.quals; -import org.checkerframework.framework.qual.PolymorphicQualifier; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.PolymorphicQualifier; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/viewpointtest/quals/ReceiverDependentQual.java b/framework/src/test/java/viewpointtest/quals/ReceiverDependentQual.java index 434561e183d..a99ac91bd19 100644 --- a/framework/src/test/java/viewpointtest/quals/ReceiverDependentQual.java +++ b/framework/src/test/java/viewpointtest/quals/ReceiverDependentQual.java @@ -1,12 +1,11 @@ package viewpointtest.quals; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/src/test/java/viewpointtest/quals/Top.java b/framework/src/test/java/viewpointtest/quals/Top.java index 84b39223cdc..96d52a30998 100644 --- a/framework/src/test/java/viewpointtest/quals/Top.java +++ b/framework/src/test/java/viewpointtest/quals/Top.java @@ -1,13 +1,12 @@ package viewpointtest.quals; -import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; -import org.checkerframework.framework.qual.SubtypeOf; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.DefaultQualifierInHierarchy; +import org.checkerframework.framework.qual.SubtypeOf; @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/framework/tests/accumulation/Generics.java b/framework/tests/accumulation/Generics.java index 56d62521ff9..6791c4506b6 100644 --- a/framework/tests/accumulation/Generics.java +++ b/framework/tests/accumulation/Generics.java @@ -1,9 +1,7 @@ -import org.checkerframework.common.returnsreceiver.qual.*; - -import testaccumulation.qual.*; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.common.returnsreceiver.qual.*; +import testaccumulation.qual.*; class Generics { diff --git a/framework/tests/accumulation/SimpleFluent.java b/framework/tests/accumulation/SimpleFluent.java index df17dd63991..598d22bf60c 100644 --- a/framework/tests/accumulation/SimpleFluent.java +++ b/framework/tests/accumulation/SimpleFluent.java @@ -1,7 +1,6 @@ // A simple test that the fluent API logic in the Accumulation Checker works. import org.checkerframework.common.returnsreceiver.qual.*; - import testaccumulation.qual.*; /* Simple inference of a fluent builder. */ diff --git a/framework/tests/accumulation/Subtyping.java b/framework/tests/accumulation/Subtyping.java index a06be055874..f4fff0e5114 100644 --- a/framework/tests/accumulation/Subtyping.java +++ b/framework/tests/accumulation/Subtyping.java @@ -23,7 +23,8 @@ void top(@TestAccumulation() Object o1) { void foo(@TestAccumulation("foo") Object o1) { @TestAccumulation() Object o2 = o1; - @TestAccumulation("foo") Object o3 = o1; + @TestAccumulation("foo") + Object o3 = o1; @TestAccumulation("bar") // :: error: assignment.type.incompatible Object o4 = o1; @@ -39,7 +40,8 @@ void bar(@TestAccumulation("bar") Object o1) { @TestAccumulation("foo") // :: error: assignment.type.incompatible Object o3 = o1; - @TestAccumulation("bar") Object o4 = o1; + @TestAccumulation("bar") + Object o4 = o1; @TestAccumulation({"foo", "bar"}) // :: error: assignment.type.incompatible Object o5 = o1; @@ -49,27 +51,36 @@ void bar(@TestAccumulation("bar") Object o1) { void foobar(@TestAccumulation({"foo", "bar"}) Object o1) { @TestAccumulation() Object o2 = o1; - @TestAccumulation("foo") Object o3 = o1; - @TestAccumulation("bar") Object o4 = o1; - @TestAccumulation({"foo", "bar"}) Object o5 = o1; + @TestAccumulation("foo") + Object o3 = o1; + @TestAccumulation("bar") + Object o4 = o1; + @TestAccumulation({"foo", "bar"}) + Object o5 = o1; // :: error: assignment.type.incompatible @TestAccumulationBottom Object o6 = o1; } void barfoo(@TestAccumulation({"bar", "foo"}) Object o1) { @TestAccumulation() Object o2 = o1; - @TestAccumulation("foo") Object o3 = o1; - @TestAccumulation("bar") Object o4 = o1; - @TestAccumulation({"foo", "bar"}) Object o5 = o1; + @TestAccumulation("foo") + Object o3 = o1; + @TestAccumulation("bar") + Object o4 = o1; + @TestAccumulation({"foo", "bar"}) + Object o5 = o1; // :: error: assignment.type.incompatible @TestAccumulationBottom Object o6 = o1; } void bot(@TestAccumulationBottom Object o1) { @TestAccumulation() Object o2 = o1; - @TestAccumulation("foo") Object o3 = o1; - @TestAccumulation("bar") Object o4 = o1; - @TestAccumulation({"foo", "bar"}) Object o5 = o1; + @TestAccumulation("foo") + Object o3 = o1; + @TestAccumulation("bar") + Object o4 = o1; + @TestAccumulation({"foo", "bar"}) + Object o5 = o1; @TestAccumulationBottom Object o6 = o1; } } diff --git a/framework/tests/aliasing/ForbiddenUniqueTest.java b/framework/tests/aliasing/ForbiddenUniqueTest.java index 43ba9b793f6..7c900ebe3c4 100644 --- a/framework/tests/aliasing/ForbiddenUniqueTest.java +++ b/framework/tests/aliasing/ForbiddenUniqueTest.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.aliasing.qual.Unique; - import java.util.List; +import org.checkerframework.common.aliasing.qual.Unique; class ForbiddenUniqueTest { diff --git a/framework/tests/all-systems/AsSuperCrashes.java b/framework/tests/all-systems/AsSuperCrashes.java index d5dd85a2938..025a118c28f 100644 --- a/framework/tests/all-systems/AsSuperCrashes.java +++ b/framework/tests/all-systems/AsSuperCrashes.java @@ -1,11 +1,10 @@ package assuper; -import org.checkerframework.dataflow.qual.Pure; - import java.lang.ref.WeakReference; import java.lang.reflect.Field; import java.util.Date; import java.util.List; +import org.checkerframework.dataflow.qual.Pure; // This class has code that used to cause AsSuper to crash @SuppressWarnings("all") diff --git a/framework/tests/all-systems/BigString.java b/framework/tests/all-systems/BigString.java index 83008cc793a..937096b1594 100644 --- a/framework/tests/all-systems/BigString.java +++ b/framework/tests/all-systems/BigString.java @@ -1,254 +1,254 @@ public class BigString { public static final String big = "\u00e7\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa" - + "\u04e3\u04e4\u04e5\u04e6\u04e7\u04e8\u04e9\u04ea\u04eb\u04ec\u04ed\u04ee\u04ef\u04f0\u04f1\u04f2\u04f3\u04f4\u04f5\u04f6" - + "\u04f7\u04f8\u04f9\u04fa\u04fb\u04fc\u04fd\u04fe\u04ff\u0500\u0501\u0502\u0503\u0504\u0505\u0506\u0507\u0508\u0509\u050a" - + "\u050b\u050c\u050d\u050e\u050f\u0510\u0511\u0512\u0513\u0514\u0515\u0516\u0517\u0518\u0519\u051a\u051b\u051c\u051d\u051e" - + "\u051f\u0520\u0521\u0522\u0523\u0524\u0525\u0526\u0527\u0528\u0529\u052a\u052b\u052c\u052d\u052e\u052f\u0530\u0531\u0532" - + "\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053a\u053b\u053c\u053d\u053e\u053f\u0540\u0541\u0542\u0543\u0544\u0545\u0546" - + "\u0547\u0548\u0549\u054a\u054b\u054c\u054d\u054e\u054f\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u0557\u0558\u0559\u055a" - + "\u055b\u055c\u055d\u055e\u055f\u0560\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056a\u056b\u056c\u056d\u056e" - + "\u056f\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057a\u057b\u057c\u057d\u057e\u057f\u0580\u0581\u0582" - + "\u0583\u0584\u0585\u0586\u0587\u0588\u0589\u058a\u058b\u058c\u058d\u058e\u058f\u0590\u0591\u0592\u0593\u0594\u0595\u0596" - + "\u0597\u0598\u0599\u059a\u059b\u059c\u059d\u059e\u059f\u05a0\u05a1\u05a2\u05a3\u05a4\u05a5\u05a6\u05a7\u05a8\u05a9\u05aa" - + "\u05ab\u05ac\u05ad\u05ae\u05af\u05b0\u05b1\u05b2\u05b3\u05b4\u05b5\u05b6\u05b7\u05b8\u05b9\u05ba\u05bb\u05bc\u05bd\u05be" - + "\u05bf\u05c0\u05c1\u05c2\u05c3\u05c4\u05c5\u05c6\u05c7\u05c8\u05c9\u05ca\u05cb\u05cc\u05cd\u05ce\u05cf\u05d0\u05d1\u05d2" - + "\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6" - + "\u05e7\u05e8\u05e9\u05ea\u05eb\u05ec\u05ed\u05ee\u05ef\u05f0\u05f1\u05f2\u05f3\u05f4\u05f5\u05f6\u05f7\u05f8\u05f9\u05fa" - + "\u05fb\u05fc\u05fd\u05fe\u05ff\u0600\u0601\u0602\u0603\u0604\u0605\u0606\u0607\u0608\u0609\u060a\u060b\u060c\u060d\u060e" - + "\u060f\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061a\u061b\u061c\u061d\u061e\u061f\u0620\u0621\u0622" - + "\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636" - + "\u0637\u0638\u0639\u063a\u063b\u063c\u063d\u063e\u063f\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a" - + "\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065a\u065b\u065c\u065d\u065e" - + "\u065f\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u066a\u066b\u066c\u066d\u066e\u066f\u0670\u0671\u0672" - + "\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067a\u067b\u067c\u067d\u067e\u067f\u0680\u0681\u0682\u0683\u0684\u0685\u0686" - + "\u0687\u0688\u0689\u068a\u068b\u068c\u068d\u068e\u068f\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069a" - + "\u069b\u069c\u069d\u069e\u069f\u06a0\u06a1\u06a2\u06a3\u06a4\u06a5\u06a6\u06a7\u06a8\u06a9\u06aa\u06ab\u06ac\u06ad\u06ae" - + "\u06af\u06b0\u06b1\u06b2\u06b3\u06b4\u06b5\u06b6\u06b7\u06b8\u06b9\u06ba\u06bb\u06bc\u06bd\u06be\u06bf\u06c0\u06c1\u06c2" - + "\u06c3\u06c4\u06c5\u06c6\u06c7\u06c8\u06c9\u06ca\u06cb\u06cc\u06cd\u06ce\u06cf\u06d0\u06d1\u06d2\u06d3\u06d4\u06d5\u06d6" - + "\u06d7\u06d8\u06d9\u06da\u06db\u06dc\u06dd\u06de\u06df\u06e0\u06e1\u06e2\u06e3\u06e4\u06e5\u06e6\u06e7\u06e8\u06e9\u06ea" - + "\u06eb\u06ec\u06ed\u06ee\u06ef\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u06fa\u06fb\u06fc\u06fd\u06fe" - + "\u06ff\u0700\u0701\u0702\u0703\u0704\u0705\u0706\u0707\u0708\u0709\u070a\u070b\u070c\u070d\u070e\u070f\u0710\u0711\u0712" - + "\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071a\u071b\u071c\u071d\u071e\u071f\u0720\u0721\u0722\u0723\u0724\u0725\u0726" - + "\u0727\u0728\u0729\u072a\u072b\u072c\u072d\u072e\u072f\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073a" - + "\u073b\u073c\u073d\u073e\u073f\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074a\u074b\u074c\u074d\u074e" - + "\u074f\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075a\u075b\u075c\u075d\u075e\u075f\u0760\u0761\u0762" - + "\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076a\u076b\u076c\u076d\u076e\u076f\u0770\u0771\u0772\u0773\u0774\u0775\u0776" - + "\u0777\u0778\u0779\u077a\u077b\u077c\u077d\u077e\u077f\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078a" - + "\u078b\u078c\u078d\u078e\u078f\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079a\u079b\u079c\u079d\u079e" - + "\u079f\u07a0\u07a1\u07a2\u07a3\u07a4\u07a5\u07a6\u07a7\u07a8\u07a9\u07aa\u07ab\u07ac\u07ad\u07ae\u07af\u07b0\u07b1\u07b2" - + "\u07b3\u07b4\u07b5\u07b6\u07b7\u07b8\u07b9\u07ba\u07bb\u07bc\u07bd\u07be\u07bf\u07c0\u07c1\u07c2\u07c3\u07c4\u07c5\u07c6" - + "\u07c7\u07c8\u07c9\u07ca\u07cb\u07cc\u07cd\u07ce\u07cf\u07d0\u07d1\u07d2\u07d3\u07d4\u07d5\u07d6\u07d7\u07d8\u07d9\u07da" - + "\u07db\u07dc\u07dd\u07de\u07df\u07e0\u07e1\u07e2\u07e3\u07e4\u07e5\u07e6\u07e7\u07e8\u07e9\u07ea\u07eb\u07ec\u07ed\u07ee" - + "\u07ef\u07f0\u07f1\u07f2\u07f3\u07f4\u07f5\u07f6\u07f7\u07f8\u07f9\u07fa\u07fb\u07fc\u07fd\u07fe\u07ff\u0800\u0801\u0802" - + "\u0803\u0804\u0805\u0806\u0807\u0808\u0809\u080a\u080b\u080c\u080d\u080e\u080f\u0810\u0811\u0812\u0813\u0814\u0815\u0816" - + "\u0817\u0818\u0819\u081a\u081b\u081c\u081d\u081e\u081f\u0820\u0821\u0822\u0823\u0824\u0825\u0826\u0827\u0828\u0829\u082a" - + "\u082b\u082c\u082d\u082e\u082f\u0830\u0831\u0832\u0833\u0834\u0835\u0836\u0837\u0838\u0839\u083a\u083b\u083c\u083d\u083e" - + "\u083f\u0840\u0841\u0842\u0843\u0844\u0845\u0846\u0847\u0848\u0849\u084a\u084b\u084c\u084d\u084e\u084f\u0850\u0851\u0852" - + "\u0853\u0854\u0855\u0856\u0857\u0858\u0859\u085a\u085b\u085c\u085d\u085e\u085f\u0860\u0861\u0862\u0863\u0864\u0865\u0866" - + "\u0867\u0868\u0869\u086a\u086b\u086c\u086d\u086e\u086f\u0870\u0871\u0872\u0873\u0874\u0875\u0876\u0877\u0878\u0879\u087a" - + "\u087b\u087c\u087d\u087e\u087f\u0880\u0881\u0882\u0883\u0884\u0885\u0886\u0887\u0888\u0889\u088a\u088b\u088c\u088d\u088e" - + "\u088f\u0890\u0891\u0892\u0893\u0894\u0895\u0896\u0897\u0898\u0899\u089a\u089b\u089c\u089d\u089e\u089f\u08a0\u08a1\u08a2" - + "\u08a3\u08a4\u08a5\u08a6\u08a7\u08a8\u08a9\u08aa\u08ab\u08ac\u08ad\u08ae\u08af\u08b0\u08b1\u08b2\u08b3\u08b4\u08b5\u08b6"; + + "\u04e3\u04e4\u04e5\u04e6\u04e7\u04e8\u04e9\u04ea\u04eb\u04ec\u04ed\u04ee\u04ef\u04f0\u04f1\u04f2\u04f3\u04f4\u04f5\u04f6" + + "\u04f7\u04f8\u04f9\u04fa\u04fb\u04fc\u04fd\u04fe\u04ff\u0500\u0501\u0502\u0503\u0504\u0505\u0506\u0507\u0508\u0509\u050a" + + "\u050b\u050c\u050d\u050e\u050f\u0510\u0511\u0512\u0513\u0514\u0515\u0516\u0517\u0518\u0519\u051a\u051b\u051c\u051d\u051e" + + "\u051f\u0520\u0521\u0522\u0523\u0524\u0525\u0526\u0527\u0528\u0529\u052a\u052b\u052c\u052d\u052e\u052f\u0530\u0531\u0532" + + "\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053a\u053b\u053c\u053d\u053e\u053f\u0540\u0541\u0542\u0543\u0544\u0545\u0546" + + "\u0547\u0548\u0549\u054a\u054b\u054c\u054d\u054e\u054f\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u0557\u0558\u0559\u055a" + + "\u055b\u055c\u055d\u055e\u055f\u0560\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056a\u056b\u056c\u056d\u056e" + + "\u056f\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057a\u057b\u057c\u057d\u057e\u057f\u0580\u0581\u0582" + + "\u0583\u0584\u0585\u0586\u0587\u0588\u0589\u058a\u058b\u058c\u058d\u058e\u058f\u0590\u0591\u0592\u0593\u0594\u0595\u0596" + + "\u0597\u0598\u0599\u059a\u059b\u059c\u059d\u059e\u059f\u05a0\u05a1\u05a2\u05a3\u05a4\u05a5\u05a6\u05a7\u05a8\u05a9\u05aa" + + "\u05ab\u05ac\u05ad\u05ae\u05af\u05b0\u05b1\u05b2\u05b3\u05b4\u05b5\u05b6\u05b7\u05b8\u05b9\u05ba\u05bb\u05bc\u05bd\u05be" + + "\u05bf\u05c0\u05c1\u05c2\u05c3\u05c4\u05c5\u05c6\u05c7\u05c8\u05c9\u05ca\u05cb\u05cc\u05cd\u05ce\u05cf\u05d0\u05d1\u05d2" + + "\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6" + + "\u05e7\u05e8\u05e9\u05ea\u05eb\u05ec\u05ed\u05ee\u05ef\u05f0\u05f1\u05f2\u05f3\u05f4\u05f5\u05f6\u05f7\u05f8\u05f9\u05fa" + + "\u05fb\u05fc\u05fd\u05fe\u05ff\u0600\u0601\u0602\u0603\u0604\u0605\u0606\u0607\u0608\u0609\u060a\u060b\u060c\u060d\u060e" + + "\u060f\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061a\u061b\u061c\u061d\u061e\u061f\u0620\u0621\u0622" + + "\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636" + + "\u0637\u0638\u0639\u063a\u063b\u063c\u063d\u063e\u063f\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a" + + "\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065a\u065b\u065c\u065d\u065e" + + "\u065f\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u066a\u066b\u066c\u066d\u066e\u066f\u0670\u0671\u0672" + + "\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067a\u067b\u067c\u067d\u067e\u067f\u0680\u0681\u0682\u0683\u0684\u0685\u0686" + + "\u0687\u0688\u0689\u068a\u068b\u068c\u068d\u068e\u068f\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069a" + + "\u069b\u069c\u069d\u069e\u069f\u06a0\u06a1\u06a2\u06a3\u06a4\u06a5\u06a6\u06a7\u06a8\u06a9\u06aa\u06ab\u06ac\u06ad\u06ae" + + "\u06af\u06b0\u06b1\u06b2\u06b3\u06b4\u06b5\u06b6\u06b7\u06b8\u06b9\u06ba\u06bb\u06bc\u06bd\u06be\u06bf\u06c0\u06c1\u06c2" + + "\u06c3\u06c4\u06c5\u06c6\u06c7\u06c8\u06c9\u06ca\u06cb\u06cc\u06cd\u06ce\u06cf\u06d0\u06d1\u06d2\u06d3\u06d4\u06d5\u06d6" + + "\u06d7\u06d8\u06d9\u06da\u06db\u06dc\u06dd\u06de\u06df\u06e0\u06e1\u06e2\u06e3\u06e4\u06e5\u06e6\u06e7\u06e8\u06e9\u06ea" + + "\u06eb\u06ec\u06ed\u06ee\u06ef\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u06fa\u06fb\u06fc\u06fd\u06fe" + + "\u06ff\u0700\u0701\u0702\u0703\u0704\u0705\u0706\u0707\u0708\u0709\u070a\u070b\u070c\u070d\u070e\u070f\u0710\u0711\u0712" + + "\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071a\u071b\u071c\u071d\u071e\u071f\u0720\u0721\u0722\u0723\u0724\u0725\u0726" + + "\u0727\u0728\u0729\u072a\u072b\u072c\u072d\u072e\u072f\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073a" + + "\u073b\u073c\u073d\u073e\u073f\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074a\u074b\u074c\u074d\u074e" + + "\u074f\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075a\u075b\u075c\u075d\u075e\u075f\u0760\u0761\u0762" + + "\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076a\u076b\u076c\u076d\u076e\u076f\u0770\u0771\u0772\u0773\u0774\u0775\u0776" + + "\u0777\u0778\u0779\u077a\u077b\u077c\u077d\u077e\u077f\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078a" + + "\u078b\u078c\u078d\u078e\u078f\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079a\u079b\u079c\u079d\u079e" + + "\u079f\u07a0\u07a1\u07a2\u07a3\u07a4\u07a5\u07a6\u07a7\u07a8\u07a9\u07aa\u07ab\u07ac\u07ad\u07ae\u07af\u07b0\u07b1\u07b2" + + "\u07b3\u07b4\u07b5\u07b6\u07b7\u07b8\u07b9\u07ba\u07bb\u07bc\u07bd\u07be\u07bf\u07c0\u07c1\u07c2\u07c3\u07c4\u07c5\u07c6" + + "\u07c7\u07c8\u07c9\u07ca\u07cb\u07cc\u07cd\u07ce\u07cf\u07d0\u07d1\u07d2\u07d3\u07d4\u07d5\u07d6\u07d7\u07d8\u07d9\u07da" + + "\u07db\u07dc\u07dd\u07de\u07df\u07e0\u07e1\u07e2\u07e3\u07e4\u07e5\u07e6\u07e7\u07e8\u07e9\u07ea\u07eb\u07ec\u07ed\u07ee" + + "\u07ef\u07f0\u07f1\u07f2\u07f3\u07f4\u07f5\u07f6\u07f7\u07f8\u07f9\u07fa\u07fb\u07fc\u07fd\u07fe\u07ff\u0800\u0801\u0802" + + "\u0803\u0804\u0805\u0806\u0807\u0808\u0809\u080a\u080b\u080c\u080d\u080e\u080f\u0810\u0811\u0812\u0813\u0814\u0815\u0816" + + "\u0817\u0818\u0819\u081a\u081b\u081c\u081d\u081e\u081f\u0820\u0821\u0822\u0823\u0824\u0825\u0826\u0827\u0828\u0829\u082a" + + "\u082b\u082c\u082d\u082e\u082f\u0830\u0831\u0832\u0833\u0834\u0835\u0836\u0837\u0838\u0839\u083a\u083b\u083c\u083d\u083e" + + "\u083f\u0840\u0841\u0842\u0843\u0844\u0845\u0846\u0847\u0848\u0849\u084a\u084b\u084c\u084d\u084e\u084f\u0850\u0851\u0852" + + "\u0853\u0854\u0855\u0856\u0857\u0858\u0859\u085a\u085b\u085c\u085d\u085e\u085f\u0860\u0861\u0862\u0863\u0864\u0865\u0866" + + "\u0867\u0868\u0869\u086a\u086b\u086c\u086d\u086e\u086f\u0870\u0871\u0872\u0873\u0874\u0875\u0876\u0877\u0878\u0879\u087a" + + "\u087b\u087c\u087d\u087e\u087f\u0880\u0881\u0882\u0883\u0884\u0885\u0886\u0887\u0888\u0889\u088a\u088b\u088c\u088d\u088e" + + "\u088f\u0890\u0891\u0892\u0893\u0894\u0895\u0896\u0897\u0898\u0899\u089a\u089b\u089c\u089d\u089e\u089f\u08a0\u08a1\u08a2" + + "\u08a3\u08a4\u08a5\u08a6\u08a7\u08a8\u08a9\u08aa\u08ab\u08ac\u08ad\u08ae\u08af\u08b0\u08b1\u08b2\u08b3\u08b4\u08b5\u08b6"; public static final String bigger = "\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa" - + "\u00fb\u00fc\u00fd\u00fe\u00ff\u0100\u0101\u0102\u0103\u0104\u0105\u0106\u0107\u0108\u0109\u010a\u010b\u010c\u010d\u010e" - + "\u010f\u0110\u0111\u0112\u0113\u0114\u0115\u0116\u0117\u0118\u0119\u011a\u011b\u011c\u011d\u011e\u011f\u0120\u0121\u0122" - + "\u0123\u0124\u0125\u0126\u0127\u0128\u0129\u012a\u012b\u012c\u012d\u012e\u012f\u0130\u0131\u0132\u0133\u0134\u0135\u0136" - + "\u0137\u0138\u0139\u013a\u013b\u013c\u013d\u013e\u013f\u0140\u0141\u0142\u0143\u0144\u0145\u0146\u0147\u0148\u0149\u014a" - + "\u014b\u014c\u014d\u014e\u014f\u0150\u0151\u0152\u0153\u0154\u0155\u0156\u0157\u0158\u0159\u015a\u015b\u015c\u015d\u015e" - + "\u015f\u0160\u0161\u0162\u0163\u0164\u0165\u0166\u0167\u0168\u0169\u016a\u016b\u016c\u016d\u016e\u016f\u0170\u0171\u0172" - + "\u0173\u0174\u0175\u0176\u0177\u0178\u0179\u017a\u017b\u017c\u017d\u017e\u017f\u0180\u0181\u0182\u0183\u0184\u0185\u0186" - + "\u0187\u0188\u0189\u018a\u018b\u018c\u018d\u018e\u018f\u0190\u0191\u0192\u0193\u0194\u0195\u0196\u0197\u0198\u0199\u019a" - + "\u019b\u019c\u019d\u019e\u019f\u01a0\u01a1\u01a2\u01a3\u01a4\u01a5\u01a6\u01a7\u01a8\u01a9\u01aa\u01ab\u01ac\u01ad\u01ae" - + "\u01af\u01b0\u01b1\u01b2\u01b3\u01b4\u01b5\u01b6\u01b7\u01b8\u01b9\u01ba\u01bb\u01bc\u01bd\u01be\u01bf\u01c0\u01c1\u01c2" - + "\u01c3\u01c4\u01c5\u01c6\u01c7\u01c8\u01c9\u01ca\u01cb\u01cc\u01cd\u01ce\u01cf\u01d0\u01d1\u01d2\u01d3\u01d4\u01d5\u01d6" - + "\u01d7\u01d8\u01d9\u01da\u01db\u01dc\u01dd\u01de\u01df\u01e0\u01e1\u01e2\u01e3\u01e4\u01e5\u01e6\u01e7\u01e8\u01e9\u01ea" - + "\u01eb\u01ec\u01ed\u01ee\u01ef\u01f0\u01f1\u01f2\u01f3\u01f4\u01f5\u01f6\u01f7\u01f8\u01f9\u01fa\u01fb\u01fc\u01fd\u01fe" - + "\u01ff\u0200\u0201\u0202\u0203\u0204\u0205\u0206\u0207\u0208\u0209\u020a\u020b\u020c\u020d\u020e\u020f\u0210\u0211\u0212" - + "\u0213\u0214\u0215\u0216\u0217\u0218\u0219\u021a\u021b\u021c\u021d\u021e\u021f\u0220\u0221\u0222\u0223\u0224\u0225\u0226" - + "\u0227\u0228\u0229\u022a\u022b\u022c\u022d\u022e\u022f\u0230\u0231\u0232\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023a" - + "\u023b\u023c\u023d\u023e\u023f\u0240\u0241\u0242\u0243\u0244\u0245\u0246\u0247\u0248\u0249\u024a\u024b\u024c\u024d\u024e" - + "\u024f\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025a\u025b\u025c\u025d\u025e\u025f\u0260\u0261\u0262" - + "\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026a\u026b\u026c\u026d\u026e\u026f\u0270\u0271\u0272\u0273\u0274\u0275\u0276" - + "\u0277\u0278\u0279\u027a\u027b\u027c\u027d\u027e\u027f\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028a" - + "\u028b\u028c\u028d\u028e\u028f\u0290\u0291\u0292\u0293\u0294\u0295\u0296\u0297\u0298\u0299\u029a\u029b\u029c\u029d\u029e" - + "\u029f\u02a0\u02a1\u02a2\u02a3\u02a4\u02a5\u02a6\u02a7\u02a8\u02a9\u02aa\u02ab\u02ac\u02ad\u02ae\u02af\u02b0\u02b1\u02b2" - + "\u02b3\u02b4\u02b5\u02b6\u02b7\u02b8\u02b9\u02ba\u02bb\u02bc\u02bd\u02be\u02bf\u02c0\u02c1\u02c2\u02c3\u02c4\u02c5\u02c6" - + "\u02c7\u02c8\u02c9\u02ca\u02cb\u02cc\u02cd\u02ce\u02cf\u02d0\u02d1\u02d2\u02d3\u02d4\u02d5\u02d6\u02d7\u02d8\u02d9\u02da" - + "\u02db\u02dc\u02dd\u02de\u02df\u02e0\u02e1\u02e2\u02e3\u02e4\u02e5\u02e6\u02e7\u02e8\u02e9\u02ea\u02eb\u02ec\u02ed\u02ee" - + "\u02ef\u02f0\u02f1\u02f2\u02f3\u02f4\u02f5\u02f6\u02f7\u02f8\u02f9\u02fa\u02fb\u02fc\u02fd\u02fe\u02ff\u0300\u0301\u0302" - + "\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030a\u030b\u030c\u030d\u030e\u030f\u0310\u0311\u0312\u0313\u0314\u0315\u0316" - + "\u0317\u0318\u0319\u031a\u031b\u031c\u031d\u031e\u031f\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032a" - + "\u032b\u032c\u032d\u032e\u032f\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033a\u033b\u033c\u033d\u033e" - + "\u033f\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034a\u034b\u034c\u034d\u034e\u034f\u0350\u0351\u0352" - + "\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035a\u035b\u035c\u035d\u035e\u035f\u0360\u0361\u0362\u0363\u0364\u0365\u0366" - + "\u0367\u0368\u0369\u036a\u036b\u036c\u036d\u036e\u036f\u0370\u0371\u0372\u0373\u0374\u0375\u0376\u0377\u0378\u0379\u037a" - + "\u037b\u037c\u037d\u037e\u037f\u0380\u0381\u0382\u0383\u0384\u0385\u0386\u0387\u0388\u0389\u038a\u038b\u038c\u038d\u038e" - + "\u038f\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a2" - + "\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03aa\u03ab\u03ac\u03ad\u03ae\u03af\u03b0\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6" - + "\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\u03ca" - + "\u03cb\u03cc\u03cd\u03ce\u03cf\u03d0\u03d1\u03d2\u03d3\u03d4\u03d5\u03d6\u03d7\u03d8\u03d9\u03da\u03db\u03dc\u03dd\u03de" - + "\u03df\u03e0\u03e1\u03e2\u03e3\u03e4\u03e5\u03e6\u03e7\u03e8\u03e9\u03ea\u03eb\u03ec\u03ed\u03ee\u03ef\u03f0\u03f1\u03f2" - + "\u03f3\u03f4\u03f5\u03f6\u03f7\u03f8\u03f9\u03fa\u03fb\u03fc\u03fd\u03fe\u03ff\u0400\u0401\u0402\u0403\u0404\u0405\u0406" - + "\u0407\u0408\u0409\u040a\u040b\u040c\u040d\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a" - + "\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e" - + "\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442" - + "\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0450\u0451\u0452\u0453\u0454\u0455\u0456" - + "\u0457\u0458\u0459\u045a\u045b\u045c\u045d\u045e\u045f\u0460\u0461\u0462\u0463\u0464\u0465\u0466\u0467\u0468\u0469\u046a" - + "\u046b\u046c\u046d\u046e\u046f\u0470\u0471\u0472\u0473\u0474\u0475\u0476\u0477\u0478\u0479\u047a\u047b\u047c\u047d\u047e" - + "\u047f\u0480\u0481\u0482\u0483\u0484\u0485\u0486\u0487\u0488\u0489\u048a\u048b\u048c\u048d\u048e\u048f\u0490\u0491\u0492" - + "\u0493\u0494\u0495\u0496\u0497\u0498\u0499\u049a\u049b\u049c\u049d\u049e\u049f\u04a0\u04a1\u04a2\u04a3\u04a4\u04a5\u04a6" - + "\u04a7\u04a8\u04a9\u04aa\u04ab\u04ac\u04ad\u04ae\u04af\u04b0\u04b1\u04b2\u04b3\u04b4\u04b5\u04b6\u04b7\u04b8\u04b9\u04ba" - + "\u04bb\u04bc\u04bd\u04be\u04bf\u04c0\u04c1\u04c2\u04c3\u04c4\u04c5\u04c6\u04c7\u04c8\u04c9\u04ca\u04cb\u04cc\u04cd\u04ce" - + "\u04cf\u04d0\u04d1\u04d2\u04d3\u04d4\u04d5\u04d6\u04d7\u04d8\u04d9\u04da\u04db\u04dc\u04dd\u04de\u04df\u04e0\u04e1\u04e2" - + "\u04e3\u04e4\u04e5\u04e6\u04e7\u04e8\u04e9\u04ea\u04eb\u04ec\u04ed\u04ee\u04ef\u04f0\u04f1\u04f2\u04f3\u04f4\u04f5\u04f6" - + "\u04f7\u04f8\u04f9\u04fa\u04fb\u04fc\u04fd\u04fe\u04ff\u0500\u0501\u0502\u0503\u0504\u0505\u0506\u0507\u0508\u0509\u050a" - + "\u050b\u050c\u050d\u050e\u050f\u0510\u0511\u0512\u0513\u0514\u0515\u0516\u0517\u0518\u0519\u051a\u051b\u051c\u051d\u051e" - + "\u051f\u0520\u0521\u0522\u0523\u0524\u0525\u0526\u0527\u0528\u0529\u052a\u052b\u052c\u052d\u052e\u052f\u0530\u0531\u0532" - + "\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053a\u053b\u053c\u053d\u053e\u053f\u0540\u0541\u0542\u0543\u0544\u0545\u0546" - + "\u0547\u0548\u0549\u054a\u054b\u054c\u054d\u054e\u054f\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u0557\u0558\u0559\u055a" - + "\u055b\u055c\u055d\u055e\u055f\u0560\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056a\u056b\u056c\u056d\u056e" - + "\u056f\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057a\u057b\u057c\u057d\u057e\u057f\u0580\u0581\u0582" - + "\u0583\u0584\u0585\u0586\u0587\u0588\u0589\u058a\u058b\u058c\u058d\u058e\u058f\u0590\u0591\u0592\u0593\u0594\u0595\u0596" - + "\u0597\u0598\u0599\u059a\u059b\u059c\u059d\u059e\u059f\u05a0\u05a1\u05a2\u05a3\u05a4\u05a5\u05a6\u05a7\u05a8\u05a9\u05aa" - + "\u05ab\u05ac\u05ad\u05ae\u05af\u05b0\u05b1\u05b2\u05b3\u05b4\u05b5\u05b6\u05b7\u05b8\u05b9\u05ba\u05bb\u05bc\u05bd\u05be" - + "\u05bf\u05c0\u05c1\u05c2\u05c3\u05c4\u05c5\u05c6\u05c7\u05c8\u05c9\u05ca\u05cb\u05cc\u05cd\u05ce\u05cf\u05d0\u05d1\u05d2" - + "\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6" - + "\u05e7\u05e8\u05e9\u05ea\u05eb\u05ec\u05ed\u05ee\u05ef\u05f0\u05f1\u05f2\u05f3\u05f4\u05f5\u05f6\u05f7\u05f8\u05f9\u05fa" - + "\u05fb\u05fc\u05fd\u05fe\u05ff\u0600\u0601\u0602\u0603\u0604\u0605\u0606\u0607\u0608\u0609\u060a\u060b\u060c\u060d\u060e" - + "\u060f\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061a\u061b\u061c\u061d\u061e\u061f\u0620\u0621\u0622" - + "\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636" - + "\u0637\u0638\u0639\u063a\u063b\u063c\u063d\u063e\u063f\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a" - + "\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065a\u065b\u065c\u065d\u065e" - + "\u065f\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u066a\u066b\u066c\u066d\u066e\u066f\u0670\u0671\u0672" - + "\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067a\u067b\u067c\u067d\u067e\u067f\u0680\u0681\u0682\u0683\u0684\u0685\u0686" - + "\u0687\u0688\u0689\u068a\u068b\u068c\u068d\u068e\u068f\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069a" - + "\u069b\u069c\u069d\u069e\u069f\u06a0\u06a1\u06a2\u06a3\u06a4\u06a5\u06a6\u06a7\u06a8\u06a9\u06aa\u06ab\u06ac\u06ad\u06ae" - + "\u06af\u06b0\u06b1\u06b2\u06b3\u06b4\u06b5\u06b6\u06b7\u06b8\u06b9\u06ba\u06bb\u06bc\u06bd\u06be\u06bf\u06c0\u06c1\u06c2" - + "\u06c3\u06c4\u06c5\u06c6\u06c7\u06c8\u06c9\u06ca\u06cb\u06cc\u06cd\u06ce\u06cf\u06d0\u06d1\u06d2\u06d3\u06d4\u06d5\u06d6" - + "\u06d7\u06d8\u06d9\u06da\u06db\u06dc\u06dd\u06de\u06df\u06e0\u06e1\u06e2\u06e3\u06e4\u06e5\u06e6\u06e7\u06e8\u06e9\u06ea" - + "\u06eb\u06ec\u06ed\u06ee\u06ef\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u06fa\u06fb\u06fc\u06fd\u06fe" - + "\u06ff\u0700\u0701\u0702\u0703\u0704\u0705\u0706\u0707\u0708\u0709\u070a\u070b\u070c\u070d\u070e\u070f\u0710\u0711\u0712" - + "\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071a\u071b\u071c\u071d\u071e\u071f\u0720\u0721\u0722\u0723\u0724\u0725\u0726" - + "\u0727\u0728\u0729\u072a\u072b\u072c\u072d\u072e\u072f\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073a" - + "\u073b\u073c\u073d\u073e\u073f\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074a\u074b\u074c\u074d\u074e" - + "\u074f\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075a\u075b\u075c\u075d\u075e\u075f\u0760\u0761\u0762" - + "\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076a\u076b\u076c\u076d\u076e\u076f\u0770\u0771\u0772\u0773\u0774\u0775\u0776" - + "\u0777\u0778\u0779\u077a\u077b\u077c\u077d\u077e\u077f\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078a" - + "\u078b\u078c\u078d\u078e\u078f\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079a\u079b\u079c\u079d\u079e" - + "\u079f\u07a0\u07a1\u07a2\u07a3\u07a4\u07a5\u07a6\u07a7\u07a8\u07a9\u07aa\u07ab\u07ac\u07ad\u07ae\u07af\u07b0\u07b1\u07b2" - + "\u07b3\u07b4\u07b5\u07b6\u07b7\u07b8\u07b9\u07ba\u07bb\u07bc\u07bd\u07be\u07bf\u07c0\u07c1\u07c2\u07c3\u07c4\u07c5\u07c6" - + "\u07c7\u07c8\u07c9\u07ca\u07cb\u07cc\u07cd\u07ce\u07cf\u07d0\u07d1\u07d2\u07d3\u07d4\u07d5\u07d6\u07d7\u07d8\u07d9\u07da" - + "\u07db\u07dc\u07dd\u07de\u07df\u07e0\u07e1\u07e2\u07e3\u07e4\u07e5\u07e6\u07e7\u07e8\u07e9\u07ea\u07eb\u07ec\u07ed\u07ee" - + "\u07ef\u07f0\u07f1\u07f2\u07f3\u07f4\u07f5\u07f6\u07f7\u07f8\u07f9\u07fa\u07fb\u07fc\u07fd\u07fe\u07ff\u0800\u0801\u0802" - + "\u0803\u0804\u0805\u0806\u0807\u0808\u0809\u080a\u080b\u080c\u080d\u080e\u080f\u0810\u0811\u0812\u0813\u0814\u0815\u0816" - + "\u0817\u0818\u0819\u081a\u081b\u081c\u081d\u081e\u081f\u0820\u0821\u0822\u0823\u0824\u0825\u0826\u0827\u0828\u0829\u082a" - + "\u082b\u082c\u082d\u082e\u082f\u0830\u0831\u0832\u0833\u0834\u0835\u0836\u0837\u0838\u0839\u083a\u083b\u083c\u083d\u083e" - + "\u083f\u0840\u0841\u0842\u0843\u0844\u0845\u0846\u0847\u0848\u0849\u084a\u084b\u084c\u084d\u084e\u084f\u0850\u0851\u0852" - + "\u0853\u0854\u0855\u0856\u0857\u0858\u0859\u085a\u085b\u085c\u085d\u085e\u085f\u0860\u0861\u0862\u0863\u0864\u0865\u0866" - + "\u0867\u0868\u0869\u086a\u086b\u086c\u086d\u086e\u086f\u0870\u0871\u0872\u0873\u0874\u0875\u0876\u0877\u0878\u0879\u087a" - + "\u087b\u087c\u087d\u087e\u087f\u0880\u0881\u0882\u0883\u0884\u0885\u0886\u0887\u0888\u0889\u088a\u088b\u088c\u088d\u088e" - + "\u088f\u0890\u0891\u0892\u0893\u0894\u0895\u0896\u0897\u0898\u0899\u089a\u089b\u089c\u089d\u089e\u089f\u08a0\u08a1\u08a2" - + "\u08a3\u08a4\u08a5\u08a6\u08a7\u08a8\u08a9\u08aa\u08ab\u08ac\u08ad\u08ae\u08af\u08b0\u08b1\u08b2\u08b3\u08b4\u08b5\u08b6" - + "\u08b7\u08b8\u08b9\u08ba\u08bb\u08bc\u08bd\u08be\u08bf\u08c0\u08c1\u08c2\u08c3\u08c4\u08c5\u08c6\u08c7\u08c8\u08c9\u08ca" - + "\u08cb\u08cc\u08cd\u08ce\u08cf\u08d0\u08d1\u08d2\u08d3\u08d4\u08d5\u08d6\u08d7\u08d8\u08d9\u08da\u08db\u08dc\u08dd\u08de" - + "\u08df\u08e0\u08e1\u08e2\u08e3\u08e4\u08e5\u08e6\u08e7\u08e8\u08e9\u08ea\u08eb\u08ec\u08ed\u08ee\u08ef\u08f0\u08f1\u08f2" - + "\u08f3\u08f4\u08f5\u08f6\u08f7\u08f8\u08f9\u08fa\u08fb\u08fc\u08fd\u08fe\u08ff\u0900\u0901\u0902\u0903\u0904\u0905\u0906" - + "\u0907\u0908\u0909\u090a\u090b\u090c\u090d\u090e\u090f\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091a" - + "\u091b\u091c\u091d\u091e\u091f\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092a\u092b\u092c\u092d\u092e" - + "\u092f\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093a\u093b\u093c\u093d\u093e\u093f\u0940\u0941\u0942" - + "\u0943\u0944\u0945\u0946\u0947\u0948\u0949\u094a\u094b\u094c\u094d\u094e\u094f\u0950\u0951\u0952\u0953\u0954\u0955\u0956" - + "\u0957\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u0960\u0961\u0962\u0963\u0964\u0965\u0966\u0967\u0968\u0969\u096a" - + "\u096b\u096c\u096d\u096e\u096f\u0970\u0971\u0972\u0973\u0974\u0975\u0976\u0977\u0978\u0979\u097a\u097b\u097c\u097d\u097e" - + "\u097f\u0980\u0981\u0982\u0983\u0984\u0985\u0986\u0987\u0988\u0989\u098a\u098b\u098c\u098d\u098e\u098f\u0990\u0991\u0992" - + "\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099a\u099b\u099c\u099d\u099e\u099f\u09a0\u09a1\u09a2\u09a3\u09a4\u09a5\u09a6" - + "\u09a7\u09a8\u09a9\u09aa\u09ab\u09ac\u09ad\u09ae\u09af\u09b0\u09b1\u09b2\u09b3\u09b4\u09b5\u09b6\u09b7\u09b8\u09b9\u09ba" - + "\u09bb\u09bc\u09bd\u09be\u09bf\u09c0\u09c1\u09c2\u09c3\u09c4\u09c5\u09c6\u09c7\u09c8\u09c9\u09ca\u09cb\u09cc\u09cd\u09ce" - + "\u09cf\u09d0\u09d1\u09d2\u09d3\u09d4\u09d5\u09d6\u09d7\u09d8\u09d9\u09da\u09db\u09dc\u09dd\u09de\u09df\u09e0\u09e1\u09e2" - + "\u09e3\u09e4\u09e5\u09e6\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09f0\u09f1\u09f2\u09f3\u09f4\u09f5\u09f6" - + "\u09f7\u09f8\u09f9\u09fa\u09fb\u09fc\u09fd\u09fe\u09ff\u0a00\u0a01\u0a02\u0a03\u0a04\u0a05\u0a06\u0a07\u0a08\u0a09\u0a0a" - + "\u0a0b\u0a0c\u0a0d\u0a0e\u0a0f\u0a10\u0a11\u0a12\u0a13\u0a14\u0a15\u0a16\u0a17\u0a18\u0a19\u0a1a\u0a1b\u0a1c\u0a1d\u0a1e" - + "\u0a1f\u0a20\u0a21\u0a22\u0a23\u0a24\u0a25\u0a26\u0a27\u0a28\u0a29\u0a2a\u0a2b\u0a2c\u0a2d\u0a2e\u0a2f\u0a30\u0a31\u0a32" - + "\u0a33\u0a34\u0a35\u0a36\u0a37\u0a38\u0a39\u0a3a\u0a3b\u0a3c\u0a3d\u0a3e\u0a3f\u0a40\u0a41\u0a42\u0a43\u0a44\u0a45\u0a46" - + "\u0a47\u0a48\u0a49\u0a4a\u0a4b\u0a4c\u0a4d\u0a4e\u0a4f\u0a50\u0a51\u0a52\u0a53\u0a54\u0a55\u0a56\u0a57\u0a58\u0a59\u0a5a" - + "\u0a5b\u0a5c\u0a5d\u0a5e\u0a5f\u0a60\u0a61\u0a62\u0a63\u0a64\u0a65\u0a66\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e" - + "\u0a6f\u0a70\u0a71\u0a72\u0a73\u0a74\u0a75\u0a76\u0a77\u0a78\u0a79\u0a7a\u0a7b\u0a7c\u0a7d\u0a7e\u0a7f\u0a80\u0a81\u0a82" - + "\u0a83\u0a84\u0a85\u0a86\u0a87\u0a88\u0a89\u0a8a\u0a8b\u0a8c\u0a8d\u0a8e\u0a8f\u0a90\u0a91\u0a92\u0a93\u0a94\u0a95\u0a96" - + "\u0a97\u0a98\u0a99\u0a9a\u0a9b\u0a9c\u0a9d\u0a9e\u0a9f\u0aa0\u0aa1\u0aa2\u0aa3\u0aa4\u0aa5\u0aa6\u0aa7\u0aa8\u0aa9\u0aaa" - + "\u0aab\u0aac\u0aad\u0aae\u0aaf\u0ab0\u0ab1\u0ab2\u0ab3\u0ab4\u0ab5\u0ab6\u0ab7\u0ab8\u0ab9\u0aba\u0abb\u0abc\u0abd\u0abe" - + "\u0abf\u0ac0\u0ac1\u0ac2\u0ac3\u0ac4\u0ac5\u0ac6\u0ac7\u0ac8\u0ac9\u0aca\u0acb\u0acc\u0acd\u0ace\u0acf\u0ad0\u0ad1\u0ad2" - + "\u0ad3\u0ad4\u0ad5\u0ad6\u0ad7\u0ad8\u0ad9\u0ada\u0adb\u0adc\u0add\u0ade\u0adf\u0ae0\u0ae1\u0ae2\u0ae3\u0ae4\u0ae5\u0ae6" - + "\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0af0\u0af1\u0af2\u0af3\u0af4\u0af5\u0af6\u0af7\u0af8\u0af9\u0afa" - + "\u0afb\u0afc\u0afd\u0afe\u0aff\u0b00\u0b01\u0b02\u0b03\u0b04\u0b05\u0b06\u0b07\u0b08\u0b09\u0b0a\u0b0b\u0b0c\u0b0d\u0b0e" - + "\u0b0f\u0b10\u0b11\u0b12\u0b13\u0b14\u0b15\u0b16\u0b17\u0b18\u0b19\u0b1a\u0b1b\u0b1c\u0b1d\u0b1e\u0b1f\u0b20\u0b21\u0b22" - + "\u0b23\u0b24\u0b25\u0b26\u0b27\u0b28\u0b29\u0b2a\u0b2b\u0b2c\u0b2d\u0b2e\u0b2f\u0b30\u0b31\u0b32\u0b33\u0b34\u0b35\u0b36" - + "\u0b37\u0b38\u0b39\u0b3a\u0b3b\u0b3c\u0b3d\u0b3e\u0b3f\u0b40\u0b41\u0b42\u0b43\u0b44\u0b45\u0b46\u0b47\u0b48\u0b49\u0b4a" - + "\u0b4b\u0b4c\u0b4d\u0b4e\u0b4f\u0b50\u0b51\u0b52\u0b53\u0b54\u0b55\u0b56\u0b57\u0b58\u0b59\u0b5a\u0b5b\u0b5c\u0b5d\u0b5e" - + "\u0b5f\u0b60\u0b61\u0b62\u0b63\u0b64\u0b65\u0b66\u0b67\u0b68\u0b69\u0b6a\u0b6b\u0b6c\u0b6d\u0b6e\u0b6f\u0b70\u0b71\u0b72" - + "\u0b73\u0b74\u0b75\u0b76\u0b77\u0b78\u0b79\u0b7a\u0b7b\u0b7c\u0b7d\u0b7e\u0b7f\u0b80\u0b81\u0b82\u0b83\u0b84\u0b85\u0b86" - + "\u0b87\u0b88\u0b89\u0b8a\u0b8b\u0b8c\u0b8d\u0b8e\u0b8f\u0b90\u0b91\u0b92\u0b93\u0b94\u0b95\u0b96\u0b97\u0b98\u0b99\u0b9a" - + "\u0b9b\u0b9c\u0b9d\u0b9e\u0b9f\u0ba0\u0ba1\u0ba2\u0ba3\u0ba4\u0ba5\u0ba6\u0ba7\u0ba8\u0ba9\u0baa\u0bab\u0bac\u0bad\u0bae" - + "\u0baf\u0bb0\u0bb1\u0bb2\u0bb3\u0bb4\u0bb5\u0bb6\u0bb7\u0bb8\u0bb9\u0bba\u0bbb\u0bbc\u0bbd\u0bbe\u0bbf\u0bc0\u0bc1\u0bc2" - + "\u0bc3\u0bc4\u0bc5\u0bc6\u0bc7\u0bc8\u0bc9\u0bca\u0bcb\u0bcc\u0bcd\u0bce\u0bcf\u0bd0\u0bd1\u0bd2\u0bd3\u0bd4\u0bd5\u0bd6" - + "\u0bd7\u0bd8\u0bd9\u0bda\u0bdb\u0bdc\u0bdd\u0bde\u0bdf\u0be0\u0be1\u0be2\u0be3\u0be4\u0be5\u0be6\u0be7\u0be8\u0be9\u0bea" - + "\u0beb\u0bec\u0bed\u0bee\u0bef\u0bf0\u0bf1\u0bf2\u0bf3\u0bf4\u0bf5\u0bf6\u0bf7\u0bf8\u0bf9\u0bfa\u0bfb\u0bfc\u0bfd\u0bfe" - + "\u0bff\u0c00\u0c01\u0c02\u0c03\u0c04\u0c05\u0c06\u0c07\u0c08\u0c09\u0c0a\u0c0b\u0c0c\u0c0d\u0c0e\u0c0f\u0c10\u0c11\u0c12" - + "\u0c13\u0c14\u0c15\u0c16\u0c17\u0c18\u0c19\u0c1a\u0c1b\u0c1c\u0c1d\u0c1e\u0c1f\u0c20\u0c21\u0c22\u0c23\u0c24\u0c25\u0c26" - + "\u0c27\u0c28\u0c29\u0c2a\u0c2b\u0c2c\u0c2d\u0c2e\u0c2f\u0c30\u0c31\u0c32\u0c33\u0c34\u0c35\u0c36\u0c37\u0c38\u0c39\u0c3a" - + "\u0c3b\u0c3c\u0c3d\u0c3e\u0c3f\u0c40\u0c41\u0c42\u0c43\u0c44\u0c45\u0c46\u0c47\u0c48\u0c49\u0c4a\u0c4b\u0c4c\u0c4d\u0c4e" - + "\u0c4f\u0c50\u0c51\u0c52\u0c53\u0c54\u0c55\u0c56\u0c57\u0c58\u0c59\u0c5a\u0c5b\u0c5c\u0c5d\u0c5e\u0c5f\u0c60\u0c61\u0c62" - + "\u0c63\u0c64\u0c65\u0c66\u0c67\u0c68\u0c69\u0c6a\u0c6b\u0c6c\u0c6d\u0c6e\u0c6f\u0c70\u0c71\u0c72\u0c73\u0c74\u0c75\u0c76" - + "\u0c77\u0c78\u0c79\u0c7a\u0c7b\u0c7c\u0c7d\u0c7e\u0c7f\u0c80\u0c81\u0c82\u0c83\u0c84\u0c85\u0c86\u0c87\u0c88\u0c89\u0c8a" - + "\u0c8b\u0c8c\u0c8d\u0c8e\u0c8f\u0c90\u0c91\u0c92\u0c93\u0c94\u0c95\u0c96\u0c97\u0c98\u0c99\u0c9a\u0c9b\u0c9c\u0c9d\u0c9e" - + "\u0c9f\u0ca0\u0ca1\u0ca2\u0ca3\u0ca4\u0ca5\u0ca6\u0ca7\u0ca8\u0ca9\u0caa\u0cab\u0cac\u0cad\u0cae\u0caf\u0cb0\u0cb1\u0cb2" - + "\u0cb3\u0cb4\u0cb5\u0cb6\u0cb7\u0cb8\u0cb9\u0cba\u0cbb\u0cbc\u0cbd\u0cbe\u0cbf\u0cc0\u0cc1\u0cc2\u0cc3\u0cc4\u0cc5\u0cc6" - + "\u0cc7\u0cc8\u0cc9\u0cca\u0ccb\u0ccc\u0ccd\u0cce\u0ccf\u0cd0\u0cd1\u0cd2\u0cd3\u0cd4\u0cd5\u0cd6\u0cd7\u0cd8\u0cd9\u0cda" - + "\u0cdb\u0cdc\u0cdd\u0cde\u0cdf\u0ce0\u0ce1\u0ce2\u0ce3\u0ce4\u0ce5\u0ce6\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee" - + "\u0cef\u0cf0\u0cf1\u0cf2\u0cf3\u0cf4\u0cf5\u0cf6\u0cf7\u0cf8\u0cf9\u0cfa\u0cfb\u0cfc\u0cfd\u0cfe\u0cff\u0d00\u0d01\u0d02" - + "\u0d03\u0d04\u0d05\u0d06\u0d07\u0d08\u0d09\u0d0a\u0d0b\u0d0c\u0d0d\u0d0e\u0d0f\u0d10\u0d11\u0d12\u0d13\u0d14\u0d15\u0d16" - + "\u0d17\u0d18\u0d19\u0d1a\u0d1b\u0d1c\u0d1d\u0d1e\u0d1f\u0d20\u0d21\u0d22\u0d23\u0d24\u0d25\u0d26\u0d27\u0d28\u0d29\u0d2a" - + "\u0d2b\u0d2c\u0d2d\u0d2e\u0d2f\u0d30\u0d31\u0d32\u0d33\u0d34\u0d35\u0d36\u0d37\u0d38\u0d39\u0d3a\u0d3b\u0d3c\u0d3d\u0d3e" - + "\u0d3f\u0d40\u0d41\u0d42\u0d43\u0d44\u0d45\u0d46\u0d47\u0d48\u0d49\u0d4a\u0d4b\u0d4c\u0d4d\u0d4e\u0d4f\u0d50\u0d51\u0d52" - + "\u0d53\u0d54\u0d55\u0d56\u0d57\u0d58\u0d59\u0d5a\u0d5b\u0d5c\u0d5d\u0d5e\u0d5f\u0d60\u0d61\u0d62\u0d63\u0d64\u0d65\u0d66" - + "\u0d67\u0d68\u0d69\u0d6a\u0d6b\u0d6c\u0d6d\u0d6e\u0d6f\u0d70\u0d71\u0d72\u0d73\u0d74\u0d75\u0d76\u0d77\u0d78\u0d79\u0d7a" - + "\u0d7b\u0d7c\u0d7d\u0d7e\u0d7f\u0d80\u0d81\u0d82\u0d83\u0d84\u0d85\u0d86\u0d87\u0d88\u0d89\u0d8a\u0d8b\u0d8c\u0d8d\u0d8e" - + "\u0d8f\u0d90\u0d91\u0d92\u0d93\u0d94\u0d95\u0d96\u0d97\u0d98\u0d99\u0d9a\u0d9b\u0d9c\u0d9d\u0d9e\u0d9f\u0da0\u0da1\u0da2" - + "\u0da3\u0da4\u0da5\u0da6\u0da7\u0da8\u0da9\u0daa\u0dab\u0dac\u0dad\u0dae\u0daf\u0db0\u0db1\u0db2\u0db3\u0db4\u0db5\u0db6" - + "\u0db7\u0db8\u0db9\u0dba\u0dbb\u0dbc\u0dbd\u0dbe\u0dbf\u0dc0\u0dc1\u0dc2\u0dc3\u0dc4\u0dc5\u0dc6\u0dc7\u0dc8\u0dc9\u0dca" - + "\u0dcb\u0dcc\u0dcd\u0dce\u0dcf\u0dd0\u0dd1\u0dd2\u0dd3\u0dd4\u0dd5\u0dd6\u0dd7\u0dd8\u0dd9\u0dda\u0ddb\u0ddc\u0ddd\u0dde" - + "\u0ddf\u0de0\u0de1\u0de2\u0de3\u0de4\u0de5\u0de6\u0de7\u0de8\u0de9\u0dea\u0deb\u0dec\u0ded\u0dee\u0def\u0df0\u0df1\u0df2" - + "\u0df3\u0df4\u0df5\u0df6\u0df7\u0df8\u0df9\u0dfa\u0dfb\u0dfc\u0dfd\u0dfe\u0dff\u0e00\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06" - + "\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a" - + "\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e" - + "\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\u0e3b\u0e3c\u0e3d\u0e3e\u0e3f\u0e40\u0e41\u0e42" - + "\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56" - + "\u0e57\u0e58\u0e59\u0e5a\u0e5b\u0e5c\u0e5d\u0e5e\u0e5f\u0e60\u0e61\u0e62\u0e63\u0e64\u0e65\u0e66\u0e67\u0e68\u0e69\u0e6a" - + "\u0e6b\u0e6c\u0e6d\u0e6e\u0e6f\u0e70\u0e71\u0e72\u0e73\u0e74\u0e75\u0e76\u0e77\u0e78\u0e79\u0e7a\u0e7b\u0e7c\u0e7d\u0e7e" - + "\u0e7f\u0e80\u0e81\u0e82\u0e83\u0e84\u0e85\u0e86\u0e87\u0e88\u0e89\u0e8a\u0e8b\u0e8c\u0e8d\u0e8e\u0e8f\u0e90\u0e91\u0e92" - + "\u0e93\u0e94\u0e95\u0e96\u0e97\u0e98\u0e99\u0e9a\u0e9b\u0e9c\u0e9d\u0e9e\u0e9f\u0ea0\u0ea1\u0ea2\u0ea3\u0ea4\u0ea5\u0ea6" - + "\u0ea7\u0ea8\u0ea9\u0eaa\u0eab\u0eac\u0ead\u0eae\u0eaf\u0eb0\u0eb1\u0eb2\u0eb3\u0eb4\u0eb5\u0eb6\u0eb7\u0eb8\u0eb9\u0eba" - + "\u0ebb\u0ebc\u0ebd\u0ebe\u0ebf\u0ec0\u0ec1\u0ec2\u0ec3\u0ec4\u0ec5\u0ec6\u0ec7\u0ec8\u0ec9\u0eca\u0ecb\u0ecc\u0ecd\u0ece" - + "\u0ecf\u0ed0\u0ed1\u0ed2\u0ed3\u0ed4\u0ed5\u0ed6\u0ed7\u0ed8\u0ed9\u0eda\u0edb\u0edc\u0edd\u0ede\u0edf\u0ee0\u0ee1\u0ee2" - + "\u0ee3\u0ee4\u0ee5\u0ee6\u0ee7\u0ee8\u0ee9\u0eea\u0eeb\u0eec\u0eed\u0eee\u0eef\u0ef0\u0ef1\u0ef2\u0ef3\u0ef4\u0ef5\u0ef6" - + "\u0ef7\u0ef8\u0ef9\u0efa\u0efb\u0efc\u0efd\u0efe\u0eff\u0f00\u0f01\u0f02\u0f03\u0f04\u0f05\u0f06\u0f07\u0f08\u0f09\u0f0a" - + "\u0f0b\u0f0c\u0f0d\u0f0e\u0f0f\u0f10\u0f11\u0f12\u0f13\u0f14\u0f15\u0f16\u0f17\u0f18\u0f19\u0f1a\u0f1b\u0f1c\u0f1d\u0f1e" - + "\u0f1f\u0f20\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f2a\u0f2b\u0f2c\u0f2d\u0f2e\u0f2f\u0f30\u0f31\u0f32" - + "\u0f33\u0f34\u0f35\u0f36\u0f37\u0f38\u0f39\u0f3a\u0f3b\u0f3c\u0f3d\u0f3e\u0f3f\u0f40\u0f41\u0f42\u0f43\u0f44\u0f45\u0f46" - + "\u0f47\u0f48\u0f49\u0f4a\u0f4b\u0f4c\u0f4d\u0f4e\u0f4f\u0f50\u0f51\u0f52\u0f53\u0f54\u0f55\u0f56\u0f57\u0f58\u0f59\u0f5a" - + "\u0f5b\u0f5c\u0f5d\u0f5e\u0f5f\u0f60\u0f61\u0f62\u0f63\u0f64\u0f65\u0f66\u0f67\u0f68\u0f69\u0f6a\u0f6b\u0f6c\u0f6d\u0f6e" - + "\u0f6f\u0f70\u0f71\u0f72\u0f73\u0f74\u0f75\u0f76\u0f77\u0f78\u0f79\u0f7a\u0f7b\u0f7c\u0f7d\u0f7e\u0f7f\u0f80\u0f81\u0f82" - + "\u0f83\u0f84\u0f85\u0f86\u0f87\u0f88\u0f89\u0f8a\u0f8b\u0f8c\u0f8d\u0f8e\u0f8f\u0f90\u0f91\u0f92\u0f93\u0f94\u0f95\u0f96" - + "\u0f97\u0f98\u0f99\u0f9a\u0f9b\u0f9c\u0f9d\u0f9e\u0f9f\u0fa0\u0fa1\u0fa2\u0fa3\u0fa4\u0fa5\u0fa6\u0fa7\u0fa8\u0fa9\u0faa" - + "\u0fab\u0fac\u0fad\u0fae\u0faf\u0fb0\u0fb1\u0fb2\u0fb3\u0fb4\u0fb5\u0fb6\u0fb7\u0fb8\u0fb9\u0fba\u0fbb\u0fbc\u0fbd\u0fbe" - + "\u0fbf\u0fc0\u0fc1\u0fc2\u0fc3\u0fc4\u0fc5\u0fc6\u0fc7\u0fc8\u0fc9\u0fca\u0fcb\u0fcc\u0fcd\u0fce\u0fcf\u0fd0\u0fd1\u0fd2" - + "\u0fd3\u0fd4\u0fd5\u0fd6\u0fd7\u0fd8\u0fd9\u0fda\u0fdb\u0fdc\u0fdd\u0fde\u0fdf\u0fe0\u0fe1\u0fe2\u0fe3\u0fe4\u0fe5\u0fe6" - + "\u0fe7\u0fe8\u0fe9\u0fea\u0feb\u0fec\u0fed\u0fee\u0fef\u0ff0\u0ff1\u0ff2\u0ff3\u0ff4\u0ff5\u0ff6\u0ff7\u0ff8\u0ff9\u0ffa" - + "\u0ffb\u0ffc\u0ffd\u0ffe\u0fff\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100a\u100b\u100c\u100d\u100e" - + "\u100f\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101a\u101b\u101c\u101d\u101e\u101f\u1020\u1021\u1022" - + "\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102a\u102b\u102c\u102d\u102e\u102f\u1030\u1031\u1032\u1033\u1034\u1035\u1036" - + "\u1037\u1038\u1039\u103a\u103b\u103c\u103d\u103e\u103f\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u104a" - + "\u104b\u104c\u104d\u104e\u104f\u1050\u1051\u1052\u1053\u1054\u1055\u1056\u1057\u1058\u1059\u105a\u105b\u105c\u105d\u105e" - + "\u105f\u1060\u1061\u1062\u1063\u1064\u1065\u1066\u1067\u1068\u1069\u106a\u106b\u106c\u106d\u106e\u106f\u1070\u1071\u1072" - + "\u1073\u1074\u1075\u1076\u1077\u1078\u1079\u107a\u107b\u107c\u107d\u107e\u107f\u1080\u1081\u1082\u1083\u1084\u1085\u1086"; + + "\u00fb\u00fc\u00fd\u00fe\u00ff\u0100\u0101\u0102\u0103\u0104\u0105\u0106\u0107\u0108\u0109\u010a\u010b\u010c\u010d\u010e" + + "\u010f\u0110\u0111\u0112\u0113\u0114\u0115\u0116\u0117\u0118\u0119\u011a\u011b\u011c\u011d\u011e\u011f\u0120\u0121\u0122" + + "\u0123\u0124\u0125\u0126\u0127\u0128\u0129\u012a\u012b\u012c\u012d\u012e\u012f\u0130\u0131\u0132\u0133\u0134\u0135\u0136" + + "\u0137\u0138\u0139\u013a\u013b\u013c\u013d\u013e\u013f\u0140\u0141\u0142\u0143\u0144\u0145\u0146\u0147\u0148\u0149\u014a" + + "\u014b\u014c\u014d\u014e\u014f\u0150\u0151\u0152\u0153\u0154\u0155\u0156\u0157\u0158\u0159\u015a\u015b\u015c\u015d\u015e" + + "\u015f\u0160\u0161\u0162\u0163\u0164\u0165\u0166\u0167\u0168\u0169\u016a\u016b\u016c\u016d\u016e\u016f\u0170\u0171\u0172" + + "\u0173\u0174\u0175\u0176\u0177\u0178\u0179\u017a\u017b\u017c\u017d\u017e\u017f\u0180\u0181\u0182\u0183\u0184\u0185\u0186" + + "\u0187\u0188\u0189\u018a\u018b\u018c\u018d\u018e\u018f\u0190\u0191\u0192\u0193\u0194\u0195\u0196\u0197\u0198\u0199\u019a" + + "\u019b\u019c\u019d\u019e\u019f\u01a0\u01a1\u01a2\u01a3\u01a4\u01a5\u01a6\u01a7\u01a8\u01a9\u01aa\u01ab\u01ac\u01ad\u01ae" + + "\u01af\u01b0\u01b1\u01b2\u01b3\u01b4\u01b5\u01b6\u01b7\u01b8\u01b9\u01ba\u01bb\u01bc\u01bd\u01be\u01bf\u01c0\u01c1\u01c2" + + "\u01c3\u01c4\u01c5\u01c6\u01c7\u01c8\u01c9\u01ca\u01cb\u01cc\u01cd\u01ce\u01cf\u01d0\u01d1\u01d2\u01d3\u01d4\u01d5\u01d6" + + "\u01d7\u01d8\u01d9\u01da\u01db\u01dc\u01dd\u01de\u01df\u01e0\u01e1\u01e2\u01e3\u01e4\u01e5\u01e6\u01e7\u01e8\u01e9\u01ea" + + "\u01eb\u01ec\u01ed\u01ee\u01ef\u01f0\u01f1\u01f2\u01f3\u01f4\u01f5\u01f6\u01f7\u01f8\u01f9\u01fa\u01fb\u01fc\u01fd\u01fe" + + "\u01ff\u0200\u0201\u0202\u0203\u0204\u0205\u0206\u0207\u0208\u0209\u020a\u020b\u020c\u020d\u020e\u020f\u0210\u0211\u0212" + + "\u0213\u0214\u0215\u0216\u0217\u0218\u0219\u021a\u021b\u021c\u021d\u021e\u021f\u0220\u0221\u0222\u0223\u0224\u0225\u0226" + + "\u0227\u0228\u0229\u022a\u022b\u022c\u022d\u022e\u022f\u0230\u0231\u0232\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023a" + + "\u023b\u023c\u023d\u023e\u023f\u0240\u0241\u0242\u0243\u0244\u0245\u0246\u0247\u0248\u0249\u024a\u024b\u024c\u024d\u024e" + + "\u024f\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025a\u025b\u025c\u025d\u025e\u025f\u0260\u0261\u0262" + + "\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026a\u026b\u026c\u026d\u026e\u026f\u0270\u0271\u0272\u0273\u0274\u0275\u0276" + + "\u0277\u0278\u0279\u027a\u027b\u027c\u027d\u027e\u027f\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028a" + + "\u028b\u028c\u028d\u028e\u028f\u0290\u0291\u0292\u0293\u0294\u0295\u0296\u0297\u0298\u0299\u029a\u029b\u029c\u029d\u029e" + + "\u029f\u02a0\u02a1\u02a2\u02a3\u02a4\u02a5\u02a6\u02a7\u02a8\u02a9\u02aa\u02ab\u02ac\u02ad\u02ae\u02af\u02b0\u02b1\u02b2" + + "\u02b3\u02b4\u02b5\u02b6\u02b7\u02b8\u02b9\u02ba\u02bb\u02bc\u02bd\u02be\u02bf\u02c0\u02c1\u02c2\u02c3\u02c4\u02c5\u02c6" + + "\u02c7\u02c8\u02c9\u02ca\u02cb\u02cc\u02cd\u02ce\u02cf\u02d0\u02d1\u02d2\u02d3\u02d4\u02d5\u02d6\u02d7\u02d8\u02d9\u02da" + + "\u02db\u02dc\u02dd\u02de\u02df\u02e0\u02e1\u02e2\u02e3\u02e4\u02e5\u02e6\u02e7\u02e8\u02e9\u02ea\u02eb\u02ec\u02ed\u02ee" + + "\u02ef\u02f0\u02f1\u02f2\u02f3\u02f4\u02f5\u02f6\u02f7\u02f8\u02f9\u02fa\u02fb\u02fc\u02fd\u02fe\u02ff\u0300\u0301\u0302" + + "\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030a\u030b\u030c\u030d\u030e\u030f\u0310\u0311\u0312\u0313\u0314\u0315\u0316" + + "\u0317\u0318\u0319\u031a\u031b\u031c\u031d\u031e\u031f\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032a" + + "\u032b\u032c\u032d\u032e\u032f\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033a\u033b\u033c\u033d\u033e" + + "\u033f\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034a\u034b\u034c\u034d\u034e\u034f\u0350\u0351\u0352" + + "\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035a\u035b\u035c\u035d\u035e\u035f\u0360\u0361\u0362\u0363\u0364\u0365\u0366" + + "\u0367\u0368\u0369\u036a\u036b\u036c\u036d\u036e\u036f\u0370\u0371\u0372\u0373\u0374\u0375\u0376\u0377\u0378\u0379\u037a" + + "\u037b\u037c\u037d\u037e\u037f\u0380\u0381\u0382\u0383\u0384\u0385\u0386\u0387\u0388\u0389\u038a\u038b\u038c\u038d\u038e" + + "\u038f\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a2" + + "\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03aa\u03ab\u03ac\u03ad\u03ae\u03af\u03b0\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6" + + "\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\u03ca" + + "\u03cb\u03cc\u03cd\u03ce\u03cf\u03d0\u03d1\u03d2\u03d3\u03d4\u03d5\u03d6\u03d7\u03d8\u03d9\u03da\u03db\u03dc\u03dd\u03de" + + "\u03df\u03e0\u03e1\u03e2\u03e3\u03e4\u03e5\u03e6\u03e7\u03e8\u03e9\u03ea\u03eb\u03ec\u03ed\u03ee\u03ef\u03f0\u03f1\u03f2" + + "\u03f3\u03f4\u03f5\u03f6\u03f7\u03f8\u03f9\u03fa\u03fb\u03fc\u03fd\u03fe\u03ff\u0400\u0401\u0402\u0403\u0404\u0405\u0406" + + "\u0407\u0408\u0409\u040a\u040b\u040c\u040d\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a" + + "\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e" + + "\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442" + + "\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0450\u0451\u0452\u0453\u0454\u0455\u0456" + + "\u0457\u0458\u0459\u045a\u045b\u045c\u045d\u045e\u045f\u0460\u0461\u0462\u0463\u0464\u0465\u0466\u0467\u0468\u0469\u046a" + + "\u046b\u046c\u046d\u046e\u046f\u0470\u0471\u0472\u0473\u0474\u0475\u0476\u0477\u0478\u0479\u047a\u047b\u047c\u047d\u047e" + + "\u047f\u0480\u0481\u0482\u0483\u0484\u0485\u0486\u0487\u0488\u0489\u048a\u048b\u048c\u048d\u048e\u048f\u0490\u0491\u0492" + + "\u0493\u0494\u0495\u0496\u0497\u0498\u0499\u049a\u049b\u049c\u049d\u049e\u049f\u04a0\u04a1\u04a2\u04a3\u04a4\u04a5\u04a6" + + "\u04a7\u04a8\u04a9\u04aa\u04ab\u04ac\u04ad\u04ae\u04af\u04b0\u04b1\u04b2\u04b3\u04b4\u04b5\u04b6\u04b7\u04b8\u04b9\u04ba" + + "\u04bb\u04bc\u04bd\u04be\u04bf\u04c0\u04c1\u04c2\u04c3\u04c4\u04c5\u04c6\u04c7\u04c8\u04c9\u04ca\u04cb\u04cc\u04cd\u04ce" + + "\u04cf\u04d0\u04d1\u04d2\u04d3\u04d4\u04d5\u04d6\u04d7\u04d8\u04d9\u04da\u04db\u04dc\u04dd\u04de\u04df\u04e0\u04e1\u04e2" + + "\u04e3\u04e4\u04e5\u04e6\u04e7\u04e8\u04e9\u04ea\u04eb\u04ec\u04ed\u04ee\u04ef\u04f0\u04f1\u04f2\u04f3\u04f4\u04f5\u04f6" + + "\u04f7\u04f8\u04f9\u04fa\u04fb\u04fc\u04fd\u04fe\u04ff\u0500\u0501\u0502\u0503\u0504\u0505\u0506\u0507\u0508\u0509\u050a" + + "\u050b\u050c\u050d\u050e\u050f\u0510\u0511\u0512\u0513\u0514\u0515\u0516\u0517\u0518\u0519\u051a\u051b\u051c\u051d\u051e" + + "\u051f\u0520\u0521\u0522\u0523\u0524\u0525\u0526\u0527\u0528\u0529\u052a\u052b\u052c\u052d\u052e\u052f\u0530\u0531\u0532" + + "\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053a\u053b\u053c\u053d\u053e\u053f\u0540\u0541\u0542\u0543\u0544\u0545\u0546" + + "\u0547\u0548\u0549\u054a\u054b\u054c\u054d\u054e\u054f\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u0557\u0558\u0559\u055a" + + "\u055b\u055c\u055d\u055e\u055f\u0560\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056a\u056b\u056c\u056d\u056e" + + "\u056f\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057a\u057b\u057c\u057d\u057e\u057f\u0580\u0581\u0582" + + "\u0583\u0584\u0585\u0586\u0587\u0588\u0589\u058a\u058b\u058c\u058d\u058e\u058f\u0590\u0591\u0592\u0593\u0594\u0595\u0596" + + "\u0597\u0598\u0599\u059a\u059b\u059c\u059d\u059e\u059f\u05a0\u05a1\u05a2\u05a3\u05a4\u05a5\u05a6\u05a7\u05a8\u05a9\u05aa" + + "\u05ab\u05ac\u05ad\u05ae\u05af\u05b0\u05b1\u05b2\u05b3\u05b4\u05b5\u05b6\u05b7\u05b8\u05b9\u05ba\u05bb\u05bc\u05bd\u05be" + + "\u05bf\u05c0\u05c1\u05c2\u05c3\u05c4\u05c5\u05c6\u05c7\u05c8\u05c9\u05ca\u05cb\u05cc\u05cd\u05ce\u05cf\u05d0\u05d1\u05d2" + + "\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6" + + "\u05e7\u05e8\u05e9\u05ea\u05eb\u05ec\u05ed\u05ee\u05ef\u05f0\u05f1\u05f2\u05f3\u05f4\u05f5\u05f6\u05f7\u05f8\u05f9\u05fa" + + "\u05fb\u05fc\u05fd\u05fe\u05ff\u0600\u0601\u0602\u0603\u0604\u0605\u0606\u0607\u0608\u0609\u060a\u060b\u060c\u060d\u060e" + + "\u060f\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061a\u061b\u061c\u061d\u061e\u061f\u0620\u0621\u0622" + + "\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636" + + "\u0637\u0638\u0639\u063a\u063b\u063c\u063d\u063e\u063f\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a" + + "\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065a\u065b\u065c\u065d\u065e" + + "\u065f\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u066a\u066b\u066c\u066d\u066e\u066f\u0670\u0671\u0672" + + "\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067a\u067b\u067c\u067d\u067e\u067f\u0680\u0681\u0682\u0683\u0684\u0685\u0686" + + "\u0687\u0688\u0689\u068a\u068b\u068c\u068d\u068e\u068f\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069a" + + "\u069b\u069c\u069d\u069e\u069f\u06a0\u06a1\u06a2\u06a3\u06a4\u06a5\u06a6\u06a7\u06a8\u06a9\u06aa\u06ab\u06ac\u06ad\u06ae" + + "\u06af\u06b0\u06b1\u06b2\u06b3\u06b4\u06b5\u06b6\u06b7\u06b8\u06b9\u06ba\u06bb\u06bc\u06bd\u06be\u06bf\u06c0\u06c1\u06c2" + + "\u06c3\u06c4\u06c5\u06c6\u06c7\u06c8\u06c9\u06ca\u06cb\u06cc\u06cd\u06ce\u06cf\u06d0\u06d1\u06d2\u06d3\u06d4\u06d5\u06d6" + + "\u06d7\u06d8\u06d9\u06da\u06db\u06dc\u06dd\u06de\u06df\u06e0\u06e1\u06e2\u06e3\u06e4\u06e5\u06e6\u06e7\u06e8\u06e9\u06ea" + + "\u06eb\u06ec\u06ed\u06ee\u06ef\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u06fa\u06fb\u06fc\u06fd\u06fe" + + "\u06ff\u0700\u0701\u0702\u0703\u0704\u0705\u0706\u0707\u0708\u0709\u070a\u070b\u070c\u070d\u070e\u070f\u0710\u0711\u0712" + + "\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071a\u071b\u071c\u071d\u071e\u071f\u0720\u0721\u0722\u0723\u0724\u0725\u0726" + + "\u0727\u0728\u0729\u072a\u072b\u072c\u072d\u072e\u072f\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073a" + + "\u073b\u073c\u073d\u073e\u073f\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074a\u074b\u074c\u074d\u074e" + + "\u074f\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075a\u075b\u075c\u075d\u075e\u075f\u0760\u0761\u0762" + + "\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076a\u076b\u076c\u076d\u076e\u076f\u0770\u0771\u0772\u0773\u0774\u0775\u0776" + + "\u0777\u0778\u0779\u077a\u077b\u077c\u077d\u077e\u077f\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078a" + + "\u078b\u078c\u078d\u078e\u078f\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079a\u079b\u079c\u079d\u079e" + + "\u079f\u07a0\u07a1\u07a2\u07a3\u07a4\u07a5\u07a6\u07a7\u07a8\u07a9\u07aa\u07ab\u07ac\u07ad\u07ae\u07af\u07b0\u07b1\u07b2" + + "\u07b3\u07b4\u07b5\u07b6\u07b7\u07b8\u07b9\u07ba\u07bb\u07bc\u07bd\u07be\u07bf\u07c0\u07c1\u07c2\u07c3\u07c4\u07c5\u07c6" + + "\u07c7\u07c8\u07c9\u07ca\u07cb\u07cc\u07cd\u07ce\u07cf\u07d0\u07d1\u07d2\u07d3\u07d4\u07d5\u07d6\u07d7\u07d8\u07d9\u07da" + + "\u07db\u07dc\u07dd\u07de\u07df\u07e0\u07e1\u07e2\u07e3\u07e4\u07e5\u07e6\u07e7\u07e8\u07e9\u07ea\u07eb\u07ec\u07ed\u07ee" + + "\u07ef\u07f0\u07f1\u07f2\u07f3\u07f4\u07f5\u07f6\u07f7\u07f8\u07f9\u07fa\u07fb\u07fc\u07fd\u07fe\u07ff\u0800\u0801\u0802" + + "\u0803\u0804\u0805\u0806\u0807\u0808\u0809\u080a\u080b\u080c\u080d\u080e\u080f\u0810\u0811\u0812\u0813\u0814\u0815\u0816" + + "\u0817\u0818\u0819\u081a\u081b\u081c\u081d\u081e\u081f\u0820\u0821\u0822\u0823\u0824\u0825\u0826\u0827\u0828\u0829\u082a" + + "\u082b\u082c\u082d\u082e\u082f\u0830\u0831\u0832\u0833\u0834\u0835\u0836\u0837\u0838\u0839\u083a\u083b\u083c\u083d\u083e" + + "\u083f\u0840\u0841\u0842\u0843\u0844\u0845\u0846\u0847\u0848\u0849\u084a\u084b\u084c\u084d\u084e\u084f\u0850\u0851\u0852" + + "\u0853\u0854\u0855\u0856\u0857\u0858\u0859\u085a\u085b\u085c\u085d\u085e\u085f\u0860\u0861\u0862\u0863\u0864\u0865\u0866" + + "\u0867\u0868\u0869\u086a\u086b\u086c\u086d\u086e\u086f\u0870\u0871\u0872\u0873\u0874\u0875\u0876\u0877\u0878\u0879\u087a" + + "\u087b\u087c\u087d\u087e\u087f\u0880\u0881\u0882\u0883\u0884\u0885\u0886\u0887\u0888\u0889\u088a\u088b\u088c\u088d\u088e" + + "\u088f\u0890\u0891\u0892\u0893\u0894\u0895\u0896\u0897\u0898\u0899\u089a\u089b\u089c\u089d\u089e\u089f\u08a0\u08a1\u08a2" + + "\u08a3\u08a4\u08a5\u08a6\u08a7\u08a8\u08a9\u08aa\u08ab\u08ac\u08ad\u08ae\u08af\u08b0\u08b1\u08b2\u08b3\u08b4\u08b5\u08b6" + + "\u08b7\u08b8\u08b9\u08ba\u08bb\u08bc\u08bd\u08be\u08bf\u08c0\u08c1\u08c2\u08c3\u08c4\u08c5\u08c6\u08c7\u08c8\u08c9\u08ca" + + "\u08cb\u08cc\u08cd\u08ce\u08cf\u08d0\u08d1\u08d2\u08d3\u08d4\u08d5\u08d6\u08d7\u08d8\u08d9\u08da\u08db\u08dc\u08dd\u08de" + + "\u08df\u08e0\u08e1\u08e2\u08e3\u08e4\u08e5\u08e6\u08e7\u08e8\u08e9\u08ea\u08eb\u08ec\u08ed\u08ee\u08ef\u08f0\u08f1\u08f2" + + "\u08f3\u08f4\u08f5\u08f6\u08f7\u08f8\u08f9\u08fa\u08fb\u08fc\u08fd\u08fe\u08ff\u0900\u0901\u0902\u0903\u0904\u0905\u0906" + + "\u0907\u0908\u0909\u090a\u090b\u090c\u090d\u090e\u090f\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091a" + + "\u091b\u091c\u091d\u091e\u091f\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092a\u092b\u092c\u092d\u092e" + + "\u092f\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093a\u093b\u093c\u093d\u093e\u093f\u0940\u0941\u0942" + + "\u0943\u0944\u0945\u0946\u0947\u0948\u0949\u094a\u094b\u094c\u094d\u094e\u094f\u0950\u0951\u0952\u0953\u0954\u0955\u0956" + + "\u0957\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u0960\u0961\u0962\u0963\u0964\u0965\u0966\u0967\u0968\u0969\u096a" + + "\u096b\u096c\u096d\u096e\u096f\u0970\u0971\u0972\u0973\u0974\u0975\u0976\u0977\u0978\u0979\u097a\u097b\u097c\u097d\u097e" + + "\u097f\u0980\u0981\u0982\u0983\u0984\u0985\u0986\u0987\u0988\u0989\u098a\u098b\u098c\u098d\u098e\u098f\u0990\u0991\u0992" + + "\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099a\u099b\u099c\u099d\u099e\u099f\u09a0\u09a1\u09a2\u09a3\u09a4\u09a5\u09a6" + + "\u09a7\u09a8\u09a9\u09aa\u09ab\u09ac\u09ad\u09ae\u09af\u09b0\u09b1\u09b2\u09b3\u09b4\u09b5\u09b6\u09b7\u09b8\u09b9\u09ba" + + "\u09bb\u09bc\u09bd\u09be\u09bf\u09c0\u09c1\u09c2\u09c3\u09c4\u09c5\u09c6\u09c7\u09c8\u09c9\u09ca\u09cb\u09cc\u09cd\u09ce" + + "\u09cf\u09d0\u09d1\u09d2\u09d3\u09d4\u09d5\u09d6\u09d7\u09d8\u09d9\u09da\u09db\u09dc\u09dd\u09de\u09df\u09e0\u09e1\u09e2" + + "\u09e3\u09e4\u09e5\u09e6\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09f0\u09f1\u09f2\u09f3\u09f4\u09f5\u09f6" + + "\u09f7\u09f8\u09f9\u09fa\u09fb\u09fc\u09fd\u09fe\u09ff\u0a00\u0a01\u0a02\u0a03\u0a04\u0a05\u0a06\u0a07\u0a08\u0a09\u0a0a" + + "\u0a0b\u0a0c\u0a0d\u0a0e\u0a0f\u0a10\u0a11\u0a12\u0a13\u0a14\u0a15\u0a16\u0a17\u0a18\u0a19\u0a1a\u0a1b\u0a1c\u0a1d\u0a1e" + + "\u0a1f\u0a20\u0a21\u0a22\u0a23\u0a24\u0a25\u0a26\u0a27\u0a28\u0a29\u0a2a\u0a2b\u0a2c\u0a2d\u0a2e\u0a2f\u0a30\u0a31\u0a32" + + "\u0a33\u0a34\u0a35\u0a36\u0a37\u0a38\u0a39\u0a3a\u0a3b\u0a3c\u0a3d\u0a3e\u0a3f\u0a40\u0a41\u0a42\u0a43\u0a44\u0a45\u0a46" + + "\u0a47\u0a48\u0a49\u0a4a\u0a4b\u0a4c\u0a4d\u0a4e\u0a4f\u0a50\u0a51\u0a52\u0a53\u0a54\u0a55\u0a56\u0a57\u0a58\u0a59\u0a5a" + + "\u0a5b\u0a5c\u0a5d\u0a5e\u0a5f\u0a60\u0a61\u0a62\u0a63\u0a64\u0a65\u0a66\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e" + + "\u0a6f\u0a70\u0a71\u0a72\u0a73\u0a74\u0a75\u0a76\u0a77\u0a78\u0a79\u0a7a\u0a7b\u0a7c\u0a7d\u0a7e\u0a7f\u0a80\u0a81\u0a82" + + "\u0a83\u0a84\u0a85\u0a86\u0a87\u0a88\u0a89\u0a8a\u0a8b\u0a8c\u0a8d\u0a8e\u0a8f\u0a90\u0a91\u0a92\u0a93\u0a94\u0a95\u0a96" + + "\u0a97\u0a98\u0a99\u0a9a\u0a9b\u0a9c\u0a9d\u0a9e\u0a9f\u0aa0\u0aa1\u0aa2\u0aa3\u0aa4\u0aa5\u0aa6\u0aa7\u0aa8\u0aa9\u0aaa" + + "\u0aab\u0aac\u0aad\u0aae\u0aaf\u0ab0\u0ab1\u0ab2\u0ab3\u0ab4\u0ab5\u0ab6\u0ab7\u0ab8\u0ab9\u0aba\u0abb\u0abc\u0abd\u0abe" + + "\u0abf\u0ac0\u0ac1\u0ac2\u0ac3\u0ac4\u0ac5\u0ac6\u0ac7\u0ac8\u0ac9\u0aca\u0acb\u0acc\u0acd\u0ace\u0acf\u0ad0\u0ad1\u0ad2" + + "\u0ad3\u0ad4\u0ad5\u0ad6\u0ad7\u0ad8\u0ad9\u0ada\u0adb\u0adc\u0add\u0ade\u0adf\u0ae0\u0ae1\u0ae2\u0ae3\u0ae4\u0ae5\u0ae6" + + "\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0af0\u0af1\u0af2\u0af3\u0af4\u0af5\u0af6\u0af7\u0af8\u0af9\u0afa" + + "\u0afb\u0afc\u0afd\u0afe\u0aff\u0b00\u0b01\u0b02\u0b03\u0b04\u0b05\u0b06\u0b07\u0b08\u0b09\u0b0a\u0b0b\u0b0c\u0b0d\u0b0e" + + "\u0b0f\u0b10\u0b11\u0b12\u0b13\u0b14\u0b15\u0b16\u0b17\u0b18\u0b19\u0b1a\u0b1b\u0b1c\u0b1d\u0b1e\u0b1f\u0b20\u0b21\u0b22" + + "\u0b23\u0b24\u0b25\u0b26\u0b27\u0b28\u0b29\u0b2a\u0b2b\u0b2c\u0b2d\u0b2e\u0b2f\u0b30\u0b31\u0b32\u0b33\u0b34\u0b35\u0b36" + + "\u0b37\u0b38\u0b39\u0b3a\u0b3b\u0b3c\u0b3d\u0b3e\u0b3f\u0b40\u0b41\u0b42\u0b43\u0b44\u0b45\u0b46\u0b47\u0b48\u0b49\u0b4a" + + "\u0b4b\u0b4c\u0b4d\u0b4e\u0b4f\u0b50\u0b51\u0b52\u0b53\u0b54\u0b55\u0b56\u0b57\u0b58\u0b59\u0b5a\u0b5b\u0b5c\u0b5d\u0b5e" + + "\u0b5f\u0b60\u0b61\u0b62\u0b63\u0b64\u0b65\u0b66\u0b67\u0b68\u0b69\u0b6a\u0b6b\u0b6c\u0b6d\u0b6e\u0b6f\u0b70\u0b71\u0b72" + + "\u0b73\u0b74\u0b75\u0b76\u0b77\u0b78\u0b79\u0b7a\u0b7b\u0b7c\u0b7d\u0b7e\u0b7f\u0b80\u0b81\u0b82\u0b83\u0b84\u0b85\u0b86" + + "\u0b87\u0b88\u0b89\u0b8a\u0b8b\u0b8c\u0b8d\u0b8e\u0b8f\u0b90\u0b91\u0b92\u0b93\u0b94\u0b95\u0b96\u0b97\u0b98\u0b99\u0b9a" + + "\u0b9b\u0b9c\u0b9d\u0b9e\u0b9f\u0ba0\u0ba1\u0ba2\u0ba3\u0ba4\u0ba5\u0ba6\u0ba7\u0ba8\u0ba9\u0baa\u0bab\u0bac\u0bad\u0bae" + + "\u0baf\u0bb0\u0bb1\u0bb2\u0bb3\u0bb4\u0bb5\u0bb6\u0bb7\u0bb8\u0bb9\u0bba\u0bbb\u0bbc\u0bbd\u0bbe\u0bbf\u0bc0\u0bc1\u0bc2" + + "\u0bc3\u0bc4\u0bc5\u0bc6\u0bc7\u0bc8\u0bc9\u0bca\u0bcb\u0bcc\u0bcd\u0bce\u0bcf\u0bd0\u0bd1\u0bd2\u0bd3\u0bd4\u0bd5\u0bd6" + + "\u0bd7\u0bd8\u0bd9\u0bda\u0bdb\u0bdc\u0bdd\u0bde\u0bdf\u0be0\u0be1\u0be2\u0be3\u0be4\u0be5\u0be6\u0be7\u0be8\u0be9\u0bea" + + "\u0beb\u0bec\u0bed\u0bee\u0bef\u0bf0\u0bf1\u0bf2\u0bf3\u0bf4\u0bf5\u0bf6\u0bf7\u0bf8\u0bf9\u0bfa\u0bfb\u0bfc\u0bfd\u0bfe" + + "\u0bff\u0c00\u0c01\u0c02\u0c03\u0c04\u0c05\u0c06\u0c07\u0c08\u0c09\u0c0a\u0c0b\u0c0c\u0c0d\u0c0e\u0c0f\u0c10\u0c11\u0c12" + + "\u0c13\u0c14\u0c15\u0c16\u0c17\u0c18\u0c19\u0c1a\u0c1b\u0c1c\u0c1d\u0c1e\u0c1f\u0c20\u0c21\u0c22\u0c23\u0c24\u0c25\u0c26" + + "\u0c27\u0c28\u0c29\u0c2a\u0c2b\u0c2c\u0c2d\u0c2e\u0c2f\u0c30\u0c31\u0c32\u0c33\u0c34\u0c35\u0c36\u0c37\u0c38\u0c39\u0c3a" + + "\u0c3b\u0c3c\u0c3d\u0c3e\u0c3f\u0c40\u0c41\u0c42\u0c43\u0c44\u0c45\u0c46\u0c47\u0c48\u0c49\u0c4a\u0c4b\u0c4c\u0c4d\u0c4e" + + "\u0c4f\u0c50\u0c51\u0c52\u0c53\u0c54\u0c55\u0c56\u0c57\u0c58\u0c59\u0c5a\u0c5b\u0c5c\u0c5d\u0c5e\u0c5f\u0c60\u0c61\u0c62" + + "\u0c63\u0c64\u0c65\u0c66\u0c67\u0c68\u0c69\u0c6a\u0c6b\u0c6c\u0c6d\u0c6e\u0c6f\u0c70\u0c71\u0c72\u0c73\u0c74\u0c75\u0c76" + + "\u0c77\u0c78\u0c79\u0c7a\u0c7b\u0c7c\u0c7d\u0c7e\u0c7f\u0c80\u0c81\u0c82\u0c83\u0c84\u0c85\u0c86\u0c87\u0c88\u0c89\u0c8a" + + "\u0c8b\u0c8c\u0c8d\u0c8e\u0c8f\u0c90\u0c91\u0c92\u0c93\u0c94\u0c95\u0c96\u0c97\u0c98\u0c99\u0c9a\u0c9b\u0c9c\u0c9d\u0c9e" + + "\u0c9f\u0ca0\u0ca1\u0ca2\u0ca3\u0ca4\u0ca5\u0ca6\u0ca7\u0ca8\u0ca9\u0caa\u0cab\u0cac\u0cad\u0cae\u0caf\u0cb0\u0cb1\u0cb2" + + "\u0cb3\u0cb4\u0cb5\u0cb6\u0cb7\u0cb8\u0cb9\u0cba\u0cbb\u0cbc\u0cbd\u0cbe\u0cbf\u0cc0\u0cc1\u0cc2\u0cc3\u0cc4\u0cc5\u0cc6" + + "\u0cc7\u0cc8\u0cc9\u0cca\u0ccb\u0ccc\u0ccd\u0cce\u0ccf\u0cd0\u0cd1\u0cd2\u0cd3\u0cd4\u0cd5\u0cd6\u0cd7\u0cd8\u0cd9\u0cda" + + "\u0cdb\u0cdc\u0cdd\u0cde\u0cdf\u0ce0\u0ce1\u0ce2\u0ce3\u0ce4\u0ce5\u0ce6\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee" + + "\u0cef\u0cf0\u0cf1\u0cf2\u0cf3\u0cf4\u0cf5\u0cf6\u0cf7\u0cf8\u0cf9\u0cfa\u0cfb\u0cfc\u0cfd\u0cfe\u0cff\u0d00\u0d01\u0d02" + + "\u0d03\u0d04\u0d05\u0d06\u0d07\u0d08\u0d09\u0d0a\u0d0b\u0d0c\u0d0d\u0d0e\u0d0f\u0d10\u0d11\u0d12\u0d13\u0d14\u0d15\u0d16" + + "\u0d17\u0d18\u0d19\u0d1a\u0d1b\u0d1c\u0d1d\u0d1e\u0d1f\u0d20\u0d21\u0d22\u0d23\u0d24\u0d25\u0d26\u0d27\u0d28\u0d29\u0d2a" + + "\u0d2b\u0d2c\u0d2d\u0d2e\u0d2f\u0d30\u0d31\u0d32\u0d33\u0d34\u0d35\u0d36\u0d37\u0d38\u0d39\u0d3a\u0d3b\u0d3c\u0d3d\u0d3e" + + "\u0d3f\u0d40\u0d41\u0d42\u0d43\u0d44\u0d45\u0d46\u0d47\u0d48\u0d49\u0d4a\u0d4b\u0d4c\u0d4d\u0d4e\u0d4f\u0d50\u0d51\u0d52" + + "\u0d53\u0d54\u0d55\u0d56\u0d57\u0d58\u0d59\u0d5a\u0d5b\u0d5c\u0d5d\u0d5e\u0d5f\u0d60\u0d61\u0d62\u0d63\u0d64\u0d65\u0d66" + + "\u0d67\u0d68\u0d69\u0d6a\u0d6b\u0d6c\u0d6d\u0d6e\u0d6f\u0d70\u0d71\u0d72\u0d73\u0d74\u0d75\u0d76\u0d77\u0d78\u0d79\u0d7a" + + "\u0d7b\u0d7c\u0d7d\u0d7e\u0d7f\u0d80\u0d81\u0d82\u0d83\u0d84\u0d85\u0d86\u0d87\u0d88\u0d89\u0d8a\u0d8b\u0d8c\u0d8d\u0d8e" + + "\u0d8f\u0d90\u0d91\u0d92\u0d93\u0d94\u0d95\u0d96\u0d97\u0d98\u0d99\u0d9a\u0d9b\u0d9c\u0d9d\u0d9e\u0d9f\u0da0\u0da1\u0da2" + + "\u0da3\u0da4\u0da5\u0da6\u0da7\u0da8\u0da9\u0daa\u0dab\u0dac\u0dad\u0dae\u0daf\u0db0\u0db1\u0db2\u0db3\u0db4\u0db5\u0db6" + + "\u0db7\u0db8\u0db9\u0dba\u0dbb\u0dbc\u0dbd\u0dbe\u0dbf\u0dc0\u0dc1\u0dc2\u0dc3\u0dc4\u0dc5\u0dc6\u0dc7\u0dc8\u0dc9\u0dca" + + "\u0dcb\u0dcc\u0dcd\u0dce\u0dcf\u0dd0\u0dd1\u0dd2\u0dd3\u0dd4\u0dd5\u0dd6\u0dd7\u0dd8\u0dd9\u0dda\u0ddb\u0ddc\u0ddd\u0dde" + + "\u0ddf\u0de0\u0de1\u0de2\u0de3\u0de4\u0de5\u0de6\u0de7\u0de8\u0de9\u0dea\u0deb\u0dec\u0ded\u0dee\u0def\u0df0\u0df1\u0df2" + + "\u0df3\u0df4\u0df5\u0df6\u0df7\u0df8\u0df9\u0dfa\u0dfb\u0dfc\u0dfd\u0dfe\u0dff\u0e00\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06" + + "\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a" + + "\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e" + + "\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\u0e3b\u0e3c\u0e3d\u0e3e\u0e3f\u0e40\u0e41\u0e42" + + "\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56" + + "\u0e57\u0e58\u0e59\u0e5a\u0e5b\u0e5c\u0e5d\u0e5e\u0e5f\u0e60\u0e61\u0e62\u0e63\u0e64\u0e65\u0e66\u0e67\u0e68\u0e69\u0e6a" + + "\u0e6b\u0e6c\u0e6d\u0e6e\u0e6f\u0e70\u0e71\u0e72\u0e73\u0e74\u0e75\u0e76\u0e77\u0e78\u0e79\u0e7a\u0e7b\u0e7c\u0e7d\u0e7e" + + "\u0e7f\u0e80\u0e81\u0e82\u0e83\u0e84\u0e85\u0e86\u0e87\u0e88\u0e89\u0e8a\u0e8b\u0e8c\u0e8d\u0e8e\u0e8f\u0e90\u0e91\u0e92" + + "\u0e93\u0e94\u0e95\u0e96\u0e97\u0e98\u0e99\u0e9a\u0e9b\u0e9c\u0e9d\u0e9e\u0e9f\u0ea0\u0ea1\u0ea2\u0ea3\u0ea4\u0ea5\u0ea6" + + "\u0ea7\u0ea8\u0ea9\u0eaa\u0eab\u0eac\u0ead\u0eae\u0eaf\u0eb0\u0eb1\u0eb2\u0eb3\u0eb4\u0eb5\u0eb6\u0eb7\u0eb8\u0eb9\u0eba" + + "\u0ebb\u0ebc\u0ebd\u0ebe\u0ebf\u0ec0\u0ec1\u0ec2\u0ec3\u0ec4\u0ec5\u0ec6\u0ec7\u0ec8\u0ec9\u0eca\u0ecb\u0ecc\u0ecd\u0ece" + + "\u0ecf\u0ed0\u0ed1\u0ed2\u0ed3\u0ed4\u0ed5\u0ed6\u0ed7\u0ed8\u0ed9\u0eda\u0edb\u0edc\u0edd\u0ede\u0edf\u0ee0\u0ee1\u0ee2" + + "\u0ee3\u0ee4\u0ee5\u0ee6\u0ee7\u0ee8\u0ee9\u0eea\u0eeb\u0eec\u0eed\u0eee\u0eef\u0ef0\u0ef1\u0ef2\u0ef3\u0ef4\u0ef5\u0ef6" + + "\u0ef7\u0ef8\u0ef9\u0efa\u0efb\u0efc\u0efd\u0efe\u0eff\u0f00\u0f01\u0f02\u0f03\u0f04\u0f05\u0f06\u0f07\u0f08\u0f09\u0f0a" + + "\u0f0b\u0f0c\u0f0d\u0f0e\u0f0f\u0f10\u0f11\u0f12\u0f13\u0f14\u0f15\u0f16\u0f17\u0f18\u0f19\u0f1a\u0f1b\u0f1c\u0f1d\u0f1e" + + "\u0f1f\u0f20\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f2a\u0f2b\u0f2c\u0f2d\u0f2e\u0f2f\u0f30\u0f31\u0f32" + + "\u0f33\u0f34\u0f35\u0f36\u0f37\u0f38\u0f39\u0f3a\u0f3b\u0f3c\u0f3d\u0f3e\u0f3f\u0f40\u0f41\u0f42\u0f43\u0f44\u0f45\u0f46" + + "\u0f47\u0f48\u0f49\u0f4a\u0f4b\u0f4c\u0f4d\u0f4e\u0f4f\u0f50\u0f51\u0f52\u0f53\u0f54\u0f55\u0f56\u0f57\u0f58\u0f59\u0f5a" + + "\u0f5b\u0f5c\u0f5d\u0f5e\u0f5f\u0f60\u0f61\u0f62\u0f63\u0f64\u0f65\u0f66\u0f67\u0f68\u0f69\u0f6a\u0f6b\u0f6c\u0f6d\u0f6e" + + "\u0f6f\u0f70\u0f71\u0f72\u0f73\u0f74\u0f75\u0f76\u0f77\u0f78\u0f79\u0f7a\u0f7b\u0f7c\u0f7d\u0f7e\u0f7f\u0f80\u0f81\u0f82" + + "\u0f83\u0f84\u0f85\u0f86\u0f87\u0f88\u0f89\u0f8a\u0f8b\u0f8c\u0f8d\u0f8e\u0f8f\u0f90\u0f91\u0f92\u0f93\u0f94\u0f95\u0f96" + + "\u0f97\u0f98\u0f99\u0f9a\u0f9b\u0f9c\u0f9d\u0f9e\u0f9f\u0fa0\u0fa1\u0fa2\u0fa3\u0fa4\u0fa5\u0fa6\u0fa7\u0fa8\u0fa9\u0faa" + + "\u0fab\u0fac\u0fad\u0fae\u0faf\u0fb0\u0fb1\u0fb2\u0fb3\u0fb4\u0fb5\u0fb6\u0fb7\u0fb8\u0fb9\u0fba\u0fbb\u0fbc\u0fbd\u0fbe" + + "\u0fbf\u0fc0\u0fc1\u0fc2\u0fc3\u0fc4\u0fc5\u0fc6\u0fc7\u0fc8\u0fc9\u0fca\u0fcb\u0fcc\u0fcd\u0fce\u0fcf\u0fd0\u0fd1\u0fd2" + + "\u0fd3\u0fd4\u0fd5\u0fd6\u0fd7\u0fd8\u0fd9\u0fda\u0fdb\u0fdc\u0fdd\u0fde\u0fdf\u0fe0\u0fe1\u0fe2\u0fe3\u0fe4\u0fe5\u0fe6" + + "\u0fe7\u0fe8\u0fe9\u0fea\u0feb\u0fec\u0fed\u0fee\u0fef\u0ff0\u0ff1\u0ff2\u0ff3\u0ff4\u0ff5\u0ff6\u0ff7\u0ff8\u0ff9\u0ffa" + + "\u0ffb\u0ffc\u0ffd\u0ffe\u0fff\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100a\u100b\u100c\u100d\u100e" + + "\u100f\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101a\u101b\u101c\u101d\u101e\u101f\u1020\u1021\u1022" + + "\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102a\u102b\u102c\u102d\u102e\u102f\u1030\u1031\u1032\u1033\u1034\u1035\u1036" + + "\u1037\u1038\u1039\u103a\u103b\u103c\u103d\u103e\u103f\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u104a" + + "\u104b\u104c\u104d\u104e\u104f\u1050\u1051\u1052\u1053\u1054\u1055\u1056\u1057\u1058\u1059\u105a\u105b\u105c\u105d\u105e" + + "\u105f\u1060\u1061\u1062\u1063\u1064\u1065\u1066\u1067\u1068\u1069\u106a\u106b\u106c\u106d\u106e\u106f\u1070\u1071\u1072" + + "\u1073\u1074\u1075\u1076\u1077\u1078\u1079\u107a\u107b\u107c\u107d\u107e\u107f\u1080\u1081\u1082\u1083\u1084\u1085\u1086"; } diff --git a/framework/tests/all-systems/IsSubarrayEq.java b/framework/tests/all-systems/IsSubarrayEq.java index cd988501ec4..238a919c3e5 100644 --- a/framework/tests/all-systems/IsSubarrayEq.java +++ b/framework/tests/all-systems/IsSubarrayEq.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.MinLen; - import java.util.List; +import org.checkerframework.common.value.qual.MinLen; public class IsSubarrayEq { // the Interning checker correctly issues an error below, but we would like to keep this test in diff --git a/framework/tests/all-systems/java8inference/CollectorsToList.java b/framework/tests/all-systems/java8inference/CollectorsToList.java index a3eba350847..2a4e9cdb5ef 100644 --- a/framework/tests/all-systems/java8inference/CollectorsToList.java +++ b/framework/tests/all-systems/java8inference/CollectorsToList.java @@ -3,11 +3,10 @@ // @skip-test until the bug is fixed -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.checkerframework.checker.nullness.qual.Nullable; public class CollectorsToList { diff --git a/framework/tests/classval/ClassValInferenceTest.java b/framework/tests/classval/ClassValInferenceTest.java index a7cd10d1484..47a195aa2a9 100644 --- a/framework/tests/classval/ClassValInferenceTest.java +++ b/framework/tests/classval/ClassValInferenceTest.java @@ -1,8 +1,7 @@ -import org.checkerframework.common.reflection.qual.ClassBound; -import org.checkerframework.common.reflection.qual.ClassVal; - import java.util.ArrayList; import java.util.List; +import org.checkerframework.common.reflection.qual.ClassBound; +import org.checkerframework.common.reflection.qual.ClassVal; public class ClassValInferenceTest { diff --git a/framework/tests/conservative-defaults/annotatedfor/AnnotatedForTest.java b/framework/tests/conservative-defaults/annotatedfor/AnnotatedForTest.java index 84ef8e50efd..9b775bff90b 100644 --- a/framework/tests/conservative-defaults/annotatedfor/AnnotatedForTest.java +++ b/framework/tests/conservative-defaults/annotatedfor/AnnotatedForTest.java @@ -1,5 +1,4 @@ import org.checkerframework.framework.qual.AnnotatedFor; - import testlib.util.SubQual; import testlib.util.SuperQual; diff --git a/framework/tests/flow/Values.java b/framework/tests/flow/Values.java index 4bf6b7b7a88..181a00e87bb 100644 --- a/framework/tests/flow/Values.java +++ b/framework/tests/flow/Values.java @@ -1,6 +1,5 @@ -import testlib.util.*; - import java.util.Collection; +import testlib.util.*; public class Values { diff --git a/framework/tests/flow2/AnnotationAliasing.java b/framework/tests/flow2/AnnotationAliasing.java index 3a5d288c516..288a29a3b06 100644 --- a/framework/tests/flow2/AnnotationAliasing.java +++ b/framework/tests/flow2/AnnotationAliasing.java @@ -1,6 +1,5 @@ import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.test.*; - import testlib.util.*; /** Various tests for annotation aliasing. */ @@ -11,14 +10,12 @@ class AnnotationAliasing { @Pure int pure1() { return 1; - } - ; + }; @org.jmlspecs.annotation.Pure int pure2() { return 1; - } - ; + }; // a method that is not pure (no annotation) void nonpure() {} diff --git a/framework/tests/flow2/ArrayFlow.java b/framework/tests/flow2/ArrayFlow.java index 32f7e97edd7..7735d23e89d 100644 --- a/framework/tests/flow2/ArrayFlow.java +++ b/framework/tests/flow2/ArrayFlow.java @@ -1,5 +1,4 @@ import org.checkerframework.framework.test.*; - import testlib.util.*; class ArrayFlow { diff --git a/framework/tests/flow2/Basic2.java b/framework/tests/flow2/Basic2.java index e1dbc46dac8..41ab6022223 100644 --- a/framework/tests/flow2/Basic2.java +++ b/framework/tests/flow2/Basic2.java @@ -1,10 +1,8 @@ +import java.util.List; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.test.*; - import testlib.util.*; -import java.util.List; - class Basic2 { // basic tests to make sure everything works @@ -208,8 +206,7 @@ class CF { final String f1; CF c; - void nonpure() {} - ; + void nonpure() {}; CF(@Odd String p1) { f1 = p1; diff --git a/framework/tests/flow2/ContractsOverriding.java b/framework/tests/flow2/ContractsOverriding.java index b6ec8b4b00d..1e5575cdbc9 100644 --- a/framework/tests/flow2/ContractsOverriding.java +++ b/framework/tests/flow2/ContractsOverriding.java @@ -1,7 +1,6 @@ import org.checkerframework.framework.qual.EnsuresQualifier; import org.checkerframework.framework.qual.EnsuresQualifierIf; import org.checkerframework.framework.qual.RequiresQualifier; - import testlib.util.EnsuresOdd; import testlib.util.EnsuresOddIf; import testlib.util.Odd; diff --git a/framework/tests/flow2/ContractsOverridingSubtyping.java b/framework/tests/flow2/ContractsOverridingSubtyping.java index f22ba2ebfcd..db9b6f99904 100644 --- a/framework/tests/flow2/ContractsOverridingSubtyping.java +++ b/framework/tests/flow2/ContractsOverridingSubtyping.java @@ -2,7 +2,6 @@ import org.checkerframework.framework.qual.EnsuresQualifier; import org.checkerframework.framework.qual.EnsuresQualifierIf; import org.checkerframework.framework.qual.RequiresQualifier; - import testlib.util.Odd; class ContractsOverridingSubtyping { diff --git a/framework/tests/flow2/CustomContractWithArgs.java b/framework/tests/flow2/CustomContractWithArgs.java index 8078b903b45..4958c65ce72 100644 --- a/framework/tests/flow2/CustomContractWithArgs.java +++ b/framework/tests/flow2/CustomContractWithArgs.java @@ -2,7 +2,6 @@ import org.checkerframework.framework.qual.PostconditionAnnotation; import org.checkerframework.framework.qual.PreconditionAnnotation; import org.checkerframework.framework.qual.QualifierArgument; - import testlib.util.Value; public class CustomContractWithArgs { diff --git a/framework/tests/flow2/Equal.java b/framework/tests/flow2/Equal.java index c4bb212bd42..e6ad6f479c5 100644 --- a/framework/tests/flow2/Equal.java +++ b/framework/tests/flow2/Equal.java @@ -1,5 +1,4 @@ import org.checkerframework.framework.test.*; - import testlib.util.*; class Equal { diff --git a/framework/tests/flow2/FieldShadowing.java b/framework/tests/flow2/FieldShadowing.java index 66b76b84931..7e73cfde4c1 100644 --- a/framework/tests/flow2/FieldShadowing.java +++ b/framework/tests/flow2/FieldShadowing.java @@ -1,7 +1,6 @@ import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.RequiresQualifier; import org.checkerframework.framework.test.*; - import testlib.util.*; // various tests for the precondition mechanism diff --git a/framework/tests/flow2/MetaPostcondition.java b/framework/tests/flow2/MetaPostcondition.java index 6d8bddd561d..9b77e9db1c1 100644 --- a/framework/tests/flow2/MetaPostcondition.java +++ b/framework/tests/flow2/MetaPostcondition.java @@ -1,5 +1,4 @@ import org.checkerframework.framework.test.*; - import testlib.util.*; class MetaPostcondition { diff --git a/framework/tests/flow2/MetaPrecondition.java b/framework/tests/flow2/MetaPrecondition.java index f3995008082..c24c97a7a3f 100644 --- a/framework/tests/flow2/MetaPrecondition.java +++ b/framework/tests/flow2/MetaPrecondition.java @@ -1,6 +1,5 @@ import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.test.*; - import testlib.util.*; // Tests for the meta-annotations for contracts. diff --git a/framework/tests/flow2/MethodCallFlowExpr.java b/framework/tests/flow2/MethodCallFlowExpr.java index 7750057f67b..44c48214b29 100644 --- a/framework/tests/flow2/MethodCallFlowExpr.java +++ b/framework/tests/flow2/MethodCallFlowExpr.java @@ -1,6 +1,5 @@ import org.checkerframework.dataflow.qual.*; import org.checkerframework.framework.qual.EnsuresQualifier; - import testlib.util.*; class MethodCallFlowExpr { diff --git a/framework/tests/flow2/Monotonic.java b/framework/tests/flow2/Monotonic.java index a57d7f2ee24..c8e8db987fb 100644 --- a/framework/tests/flow2/Monotonic.java +++ b/framework/tests/flow2/Monotonic.java @@ -1,5 +1,4 @@ import org.checkerframework.framework.test.*; - import testlib.util.*; class Monotonic { diff --git a/framework/tests/flow2/NonMethodCode.java b/framework/tests/flow2/NonMethodCode.java index 725a2f4804a..a2f83107349 100644 --- a/framework/tests/flow2/NonMethodCode.java +++ b/framework/tests/flow2/NonMethodCode.java @@ -1,5 +1,4 @@ import org.checkerframework.framework.test.*; - import testlib.util.*; class NonMethodCode { diff --git a/framework/tests/flow2/ParamFlowExpr.java b/framework/tests/flow2/ParamFlowExpr.java index b69a706aea6..b90660105f0 100644 --- a/framework/tests/flow2/ParamFlowExpr.java +++ b/framework/tests/flow2/ParamFlowExpr.java @@ -1,6 +1,5 @@ import org.checkerframework.framework.qual.RequiresQualifier; import org.checkerframework.framework.test.*; - import testlib.util.*; class ParamFlowExpr { diff --git a/framework/tests/flow2/Postcondition.java b/framework/tests/flow2/Postcondition.java index e73ce3229fe..ad48ffd8291 100644 --- a/framework/tests/flow2/Postcondition.java +++ b/framework/tests/flow2/Postcondition.java @@ -2,7 +2,6 @@ import org.checkerframework.framework.qual.EnsuresQualifier; import org.checkerframework.framework.qual.EnsuresQualifierIf; import org.checkerframework.framework.test.*; - import testlib.util.*; class Postcondition { diff --git a/framework/tests/flow2/Precondition.java b/framework/tests/flow2/Precondition.java index c68e09066eb..6c4076302ea 100644 --- a/framework/tests/flow2/Precondition.java +++ b/framework/tests/flow2/Precondition.java @@ -1,7 +1,6 @@ import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.RequiresQualifier; import org.checkerframework.framework.test.*; - import testlib.util.*; // various tests for the precondition mechanism diff --git a/framework/tests/flow2/Purity.java b/framework/tests/flow2/Purity.java index a0f60e37cbc..1f95c1fa6f1 100644 --- a/framework/tests/flow2/Purity.java +++ b/framework/tests/flow2/Purity.java @@ -2,7 +2,6 @@ import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.SideEffectFree; import org.checkerframework.framework.test.*; - import testlib.util.*; // various tests for the @Pure annotation diff --git a/framework/tests/flow2/StorePure.java b/framework/tests/flow2/StorePure.java index 8a1220ee90b..cb3fcdb4258 100644 --- a/framework/tests/flow2/StorePure.java +++ b/framework/tests/flow2/StorePure.java @@ -1,7 +1,6 @@ import org.checkerframework.dataflow.qual.Deterministic; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.test.*; - import testlib.util.*; // various tests about keeping information in the store about pure method calls diff --git a/framework/tests/flow2/Termination.java b/framework/tests/flow2/Termination.java index 13862bc5a5e..28446dbf395 100644 --- a/framework/tests/flow2/Termination.java +++ b/framework/tests/flow2/Termination.java @@ -1,6 +1,5 @@ import org.checkerframework.dataflow.qual.TerminatesExecution; import org.checkerframework.framework.test.*; - import testlib.util.*; // various tests for @TerminatesExecution diff --git a/framework/tests/flow2/flowexpression-scope/Class2.java b/framework/tests/flow2/flowexpression-scope/Class2.java index c93decaed67..9aa939d4182 100644 --- a/framework/tests/flow2/flowexpression-scope/Class2.java +++ b/framework/tests/flow2/flowexpression-scope/Class2.java @@ -1,7 +1,6 @@ package pkg2; import pkg1.Class1; - import testlib.util.EnsuresOdd; import testlib.util.Odd; import testlib.util.RequiresOdd; diff --git a/framework/tests/flowexpression/Complex.java b/framework/tests/flowexpression/Complex.java index cf389bc4f8d..3718e63691d 100644 --- a/framework/tests/flowexpression/Complex.java +++ b/framework/tests/flowexpression/Complex.java @@ -1,11 +1,10 @@ package flowexpression; -import testlib.flowexpression.qual.FlowExp; - import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import testlib.flowexpression.qual.FlowExp; public class Complex { class DocCategory { diff --git a/framework/tests/flowexpression/Issue1609.java b/framework/tests/flowexpression/Issue1609.java index 5b50da830cf..a1d9e56688c 100644 --- a/framework/tests/flowexpression/Issue1609.java +++ b/framework/tests/flowexpression/Issue1609.java @@ -8,203 +8,203 @@ void method(@FlowExp("\"" + s + "\"") String x) {} public static final String s = "\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa" - + "\u00fb\u00fc\u00fd\u00fe\u00ff\u0100\u0101\u0102\u0103\u0104\u0105\u0106\u0107\u0108\u0109\u010a\u010b\u010c\u010d\u010e" - + "\u010f\u0110\u0111\u0112\u0113\u0114\u0115\u0116\u0117\u0118\u0119\u011a\u011b\u011c\u011d\u011e\u011f\u0120\u0121\u0122" - + "\u0123\u0124\u0125\u0126\u0127\u0128\u0129\u012a\u012b\u012c\u012d\u012e\u012f\u0130\u0131\u0132\u0133\u0134\u0135\u0136" - + "\u0137\u0138\u0139\u013a\u013b\u013c\u013d\u013e\u013f\u0140\u0141\u0142\u0143\u0144\u0145\u0146\u0147\u0148\u0149\u014a" - + "\u014b\u014c\u014d\u014e\u014f\u0150\u0151\u0152\u0153\u0154\u0155\u0156\u0157\u0158\u0159\u015a\u015b\u015c\u015d\u015e" - + "\u015f\u0160\u0161\u0162\u0163\u0164\u0165\u0166\u0167\u0168\u0169\u016a\u016b\u016c\u016d\u016e\u016f\u0170\u0171\u0172" - + "\u0173\u0174\u0175\u0176\u0177\u0178\u0179\u017a\u017b\u017c\u017d\u017e\u017f\u0180\u0181\u0182\u0183\u0184\u0185\u0186" - + "\u0187\u0188\u0189\u018a\u018b\u018c\u018d\u018e\u018f\u0190\u0191\u0192\u0193\u0194\u0195\u0196\u0197\u0198\u0199\u019a" - + "\u019b\u019c\u019d\u019e\u019f\u01a0\u01a1\u01a2\u01a3\u01a4\u01a5\u01a6\u01a7\u01a8\u01a9\u01aa\u01ab\u01ac\u01ad\u01ae" - + "\u01af\u01b0\u01b1\u01b2\u01b3\u01b4\u01b5\u01b6\u01b7\u01b8\u01b9\u01ba\u01bb\u01bc\u01bd\u01be\u01bf\u01c0\u01c1\u01c2" - + "\u01c3\u01c4\u01c5\u01c6\u01c7\u01c8\u01c9\u01ca\u01cb\u01cc\u01cd\u01ce\u01cf\u01d0\u01d1\u01d2\u01d3\u01d4\u01d5\u01d6" - + "\u01d7\u01d8\u01d9\u01da\u01db\u01dc\u01dd\u01de\u01df\u01e0\u01e1\u01e2\u01e3\u01e4\u01e5\u01e6\u01e7\u01e8\u01e9\u01ea" - + "\u01eb\u01ec\u01ed\u01ee\u01ef\u01f0\u01f1\u01f2\u01f3\u01f4\u01f5\u01f6\u01f7\u01f8\u01f9\u01fa\u01fb\u01fc\u01fd\u01fe" - + "\u01ff\u0200\u0201\u0202\u0203\u0204\u0205\u0206\u0207\u0208\u0209\u020a\u020b\u020c\u020d\u020e\u020f\u0210\u0211\u0212" - + "\u0213\u0214\u0215\u0216\u0217\u0218\u0219\u021a\u021b\u021c\u021d\u021e\u021f\u0220\u0221\u0222\u0223\u0224\u0225\u0226" - + "\u0227\u0228\u0229\u022a\u022b\u022c\u022d\u022e\u022f\u0230\u0231\u0232\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023a" - + "\u023b\u023c\u023d\u023e\u023f\u0240\u0241\u0242\u0243\u0244\u0245\u0246\u0247\u0248\u0249\u024a\u024b\u024c\u024d\u024e" - + "\u024f\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025a\u025b\u025c\u025d\u025e\u025f\u0260\u0261\u0262" - + "\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026a\u026b\u026c\u026d\u026e\u026f\u0270\u0271\u0272\u0273\u0274\u0275\u0276" - + "\u0277\u0278\u0279\u027a\u027b\u027c\u027d\u027e\u027f\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028a" - + "\u028b\u028c\u028d\u028e\u028f\u0290\u0291\u0292\u0293\u0294\u0295\u0296\u0297\u0298\u0299\u029a\u029b\u029c\u029d\u029e" - + "\u029f\u02a0\u02a1\u02a2\u02a3\u02a4\u02a5\u02a6\u02a7\u02a8\u02a9\u02aa\u02ab\u02ac\u02ad\u02ae\u02af\u02b0\u02b1\u02b2" - + "\u02b3\u02b4\u02b5\u02b6\u02b7\u02b8\u02b9\u02ba\u02bb\u02bc\u02bd\u02be\u02bf\u02c0\u02c1\u02c2\u02c3\u02c4\u02c5\u02c6" - + "\u02c7\u02c8\u02c9\u02ca\u02cb\u02cc\u02cd\u02ce\u02cf\u02d0\u02d1\u02d2\u02d3\u02d4\u02d5\u02d6\u02d7\u02d8\u02d9\u02da" - + "\u02db\u02dc\u02dd\u02de\u02df\u02e0\u02e1\u02e2\u02e3\u02e4\u02e5\u02e6\u02e7\u02e8\u02e9\u02ea\u02eb\u02ec\u02ed\u02ee" - + "\u02ef\u02f0\u02f1\u02f2\u02f3\u02f4\u02f5\u02f6\u02f7\u02f8\u02f9\u02fa\u02fb\u02fc\u02fd\u02fe\u02ff\u0300\u0301\u0302" - + "\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030a\u030b\u030c\u030d\u030e\u030f\u0310\u0311\u0312\u0313\u0314\u0315\u0316" - + "\u0317\u0318\u0319\u031a\u031b\u031c\u031d\u031e\u031f\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032a" - + "\u032b\u032c\u032d\u032e\u032f\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033a\u033b\u033c\u033d\u033e" - + "\u033f\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034a\u034b\u034c\u034d\u034e\u034f\u0350\u0351\u0352" - + "\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035a\u035b\u035c\u035d\u035e\u035f\u0360\u0361\u0362\u0363\u0364\u0365\u0366" - + "\u0367\u0368\u0369\u036a\u036b\u036c\u036d\u036e\u036f\u0370\u0371\u0372\u0373\u0374\u0375\u0376\u0377\u0378\u0379\u037a" - + "\u037b\u037c\u037d\u037e\u037f\u0380\u0381\u0382\u0383\u0384\u0385\u0386\u0387\u0388\u0389\u038a\u038b\u038c\u038d\u038e" - + "\u038f\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a2" - + "\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03aa\u03ab\u03ac\u03ad\u03ae\u03af\u03b0\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6" - + "\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\u03ca" - + "\u03cb\u03cc\u03cd\u03ce\u03cf\u03d0\u03d1\u03d2\u03d3\u03d4\u03d5\u03d6\u03d7\u03d8\u03d9\u03da\u03db\u03dc\u03dd\u03de" - + "\u03df\u03e0\u03e1\u03e2\u03e3\u03e4\u03e5\u03e6\u03e7\u03e8\u03e9\u03ea\u03eb\u03ec\u03ed\u03ee\u03ef\u03f0\u03f1\u03f2" - + "\u03f3\u03f4\u03f5\u03f6\u03f7\u03f8\u03f9\u03fa\u03fb\u03fc\u03fd\u03fe\u03ff\u0400\u0401\u0402\u0403\u0404\u0405\u0406" - + "\u0407\u0408\u0409\u040a\u040b\u040c\u040d\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a" - + "\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e" - + "\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442" - + "\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0450\u0451\u0452\u0453\u0454\u0455\u0456" - + "\u0457\u0458\u0459\u045a\u045b\u045c\u045d\u045e\u045f\u0460\u0461\u0462\u0463\u0464\u0465\u0466\u0467\u0468\u0469\u046a" - + "\u046b\u046c\u046d\u046e\u046f\u0470\u0471\u0472\u0473\u0474\u0475\u0476\u0477\u0478\u0479\u047a\u047b\u047c\u047d\u047e" - + "\u047f\u0480\u0481\u0482\u0483\u0484\u0485\u0486\u0487\u0488\u0489\u048a\u048b\u048c\u048d\u048e\u048f\u0490\u0491\u0492" - + "\u0493\u0494\u0495\u0496\u0497\u0498\u0499\u049a\u049b\u049c\u049d\u049e\u049f\u04a0\u04a1\u04a2\u04a3\u04a4\u04a5\u04a6" - + "\u04a7\u04a8\u04a9\u04aa\u04ab\u04ac\u04ad\u04ae\u04af\u04b0\u04b1\u04b2\u04b3\u04b4\u04b5\u04b6\u04b7\u04b8\u04b9\u04ba" - + "\u04bb\u04bc\u04bd\u04be\u04bf\u04c0\u04c1\u04c2\u04c3\u04c4\u04c5\u04c6\u04c7\u04c8\u04c9\u04ca\u04cb\u04cc\u04cd\u04ce" - + "\u04cf\u04d0\u04d1\u04d2\u04d3\u04d4\u04d5\u04d6\u04d7\u04d8\u04d9\u04da\u04db\u04dc\u04dd\u04de\u04df\u04e0\u04e1\u04e2" - + "\u04e3\u04e4\u04e5\u04e6\u04e7\u04e8\u04e9\u04ea\u04eb\u04ec\u04ed\u04ee\u04ef\u04f0\u04f1\u04f2\u04f3\u04f4\u04f5\u04f6" - + "\u04f7\u04f8\u04f9\u04fa\u04fb\u04fc\u04fd\u04fe\u04ff\u0500\u0501\u0502\u0503\u0504\u0505\u0506\u0507\u0508\u0509\u050a" - + "\u050b\u050c\u050d\u050e\u050f\u0510\u0511\u0512\u0513\u0514\u0515\u0516\u0517\u0518\u0519\u051a\u051b\u051c\u051d\u051e" - + "\u051f\u0520\u0521\u0522\u0523\u0524\u0525\u0526\u0527\u0528\u0529\u052a\u052b\u052c\u052d\u052e\u052f\u0530\u0531\u0532" - + "\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053a\u053b\u053c\u053d\u053e\u053f\u0540\u0541\u0542\u0543\u0544\u0545\u0546" - + "\u0547\u0548\u0549\u054a\u054b\u054c\u054d\u054e\u054f\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u0557\u0558\u0559\u055a" - + "\u055b\u055c\u055d\u055e\u055f\u0560\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056a\u056b\u056c\u056d\u056e" - + "\u056f\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057a\u057b\u057c\u057d\u057e\u057f\u0580\u0581\u0582" - + "\u0583\u0584\u0585\u0586\u0587\u0588\u0589\u058a\u058b\u058c\u058d\u058e\u058f\u0590\u0591\u0592\u0593\u0594\u0595\u0596" - + "\u0597\u0598\u0599\u059a\u059b\u059c\u059d\u059e\u059f\u05a0\u05a1\u05a2\u05a3\u05a4\u05a5\u05a6\u05a7\u05a8\u05a9\u05aa" - + "\u05ab\u05ac\u05ad\u05ae\u05af\u05b0\u05b1\u05b2\u05b3\u05b4\u05b5\u05b6\u05b7\u05b8\u05b9\u05ba\u05bb\u05bc\u05bd\u05be" - + "\u05bf\u05c0\u05c1\u05c2\u05c3\u05c4\u05c5\u05c6\u05c7\u05c8\u05c9\u05ca\u05cb\u05cc\u05cd\u05ce\u05cf\u05d0\u05d1\u05d2" - + "\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6" - + "\u05e7\u05e8\u05e9\u05ea\u05eb\u05ec\u05ed\u05ee\u05ef\u05f0\u05f1\u05f2\u05f3\u05f4\u05f5\u05f6\u05f7\u05f8\u05f9\u05fa" - + "\u05fb\u05fc\u05fd\u05fe\u05ff\u0600\u0601\u0602\u0603\u0604\u0605\u0606\u0607\u0608\u0609\u060a\u060b\u060c\u060d\u060e" - + "\u060f\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061a\u061b\u061c\u061d\u061e\u061f\u0620\u0621\u0622" - + "\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636" - + "\u0637\u0638\u0639\u063a\u063b\u063c\u063d\u063e\u063f\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a" - + "\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065a\u065b\u065c\u065d\u065e" - + "\u065f\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u066a\u066b\u066c\u066d\u066e\u066f\u0670\u0671\u0672" - + "\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067a\u067b\u067c\u067d\u067e\u067f\u0680\u0681\u0682\u0683\u0684\u0685\u0686" - + "\u0687\u0688\u0689\u068a\u068b\u068c\u068d\u068e\u068f\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069a" - + "\u069b\u069c\u069d\u069e\u069f\u06a0\u06a1\u06a2\u06a3\u06a4\u06a5\u06a6\u06a7\u06a8\u06a9\u06aa\u06ab\u06ac\u06ad\u06ae" - + "\u06af\u06b0\u06b1\u06b2\u06b3\u06b4\u06b5\u06b6\u06b7\u06b8\u06b9\u06ba\u06bb\u06bc\u06bd\u06be\u06bf\u06c0\u06c1\u06c2" - + "\u06c3\u06c4\u06c5\u06c6\u06c7\u06c8\u06c9\u06ca\u06cb\u06cc\u06cd\u06ce\u06cf\u06d0\u06d1\u06d2\u06d3\u06d4\u06d5\u06d6" - + "\u06d7\u06d8\u06d9\u06da\u06db\u06dc\u06dd\u06de\u06df\u06e0\u06e1\u06e2\u06e3\u06e4\u06e5\u06e6\u06e7\u06e8\u06e9\u06ea" - + "\u06eb\u06ec\u06ed\u06ee\u06ef\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u06fa\u06fb\u06fc\u06fd\u06fe" - + "\u06ff\u0700\u0701\u0702\u0703\u0704\u0705\u0706\u0707\u0708\u0709\u070a\u070b\u070c\u070d\u070e\u070f\u0710\u0711\u0712" - + "\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071a\u071b\u071c\u071d\u071e\u071f\u0720\u0721\u0722\u0723\u0724\u0725\u0726" - + "\u0727\u0728\u0729\u072a\u072b\u072c\u072d\u072e\u072f\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073a" - + "\u073b\u073c\u073d\u073e\u073f\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074a\u074b\u074c\u074d\u074e" - + "\u074f\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075a\u075b\u075c\u075d\u075e\u075f\u0760\u0761\u0762" - + "\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076a\u076b\u076c\u076d\u076e\u076f\u0770\u0771\u0772\u0773\u0774\u0775\u0776" - + "\u0777\u0778\u0779\u077a\u077b\u077c\u077d\u077e\u077f\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078a" - + "\u078b\u078c\u078d\u078e\u078f\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079a\u079b\u079c\u079d\u079e" - + "\u079f\u07a0\u07a1\u07a2\u07a3\u07a4\u07a5\u07a6\u07a7\u07a8\u07a9\u07aa\u07ab\u07ac\u07ad\u07ae\u07af\u07b0\u07b1\u07b2" - + "\u07b3\u07b4\u07b5\u07b6\u07b7\u07b8\u07b9\u07ba\u07bb\u07bc\u07bd\u07be\u07bf\u07c0\u07c1\u07c2\u07c3\u07c4\u07c5\u07c6" - + "\u07c7\u07c8\u07c9\u07ca\u07cb\u07cc\u07cd\u07ce\u07cf\u07d0\u07d1\u07d2\u07d3\u07d4\u07d5\u07d6\u07d7\u07d8\u07d9\u07da" - + "\u07db\u07dc\u07dd\u07de\u07df\u07e0\u07e1\u07e2\u07e3\u07e4\u07e5\u07e6\u07e7\u07e8\u07e9\u07ea\u07eb\u07ec\u07ed\u07ee" - + "\u07ef\u07f0\u07f1\u07f2\u07f3\u07f4\u07f5\u07f6\u07f7\u07f8\u07f9\u07fa\u07fb\u07fc\u07fd\u07fe\u07ff\u0800\u0801\u0802" - + "\u0803\u0804\u0805\u0806\u0807\u0808\u0809\u080a\u080b\u080c\u080d\u080e\u080f\u0810\u0811\u0812\u0813\u0814\u0815\u0816" - + "\u0817\u0818\u0819\u081a\u081b\u081c\u081d\u081e\u081f\u0820\u0821\u0822\u0823\u0824\u0825\u0826\u0827\u0828\u0829\u082a" - + "\u082b\u082c\u082d\u082e\u082f\u0830\u0831\u0832\u0833\u0834\u0835\u0836\u0837\u0838\u0839\u083a\u083b\u083c\u083d\u083e" - + "\u083f\u0840\u0841\u0842\u0843\u0844\u0845\u0846\u0847\u0848\u0849\u084a\u084b\u084c\u084d\u084e\u084f\u0850\u0851\u0852" - + "\u0853\u0854\u0855\u0856\u0857\u0858\u0859\u085a\u085b\u085c\u085d\u085e\u085f\u0860\u0861\u0862\u0863\u0864\u0865\u0866" - + "\u0867\u0868\u0869\u086a\u086b\u086c\u086d\u086e\u086f\u0870\u0871\u0872\u0873\u0874\u0875\u0876\u0877\u0878\u0879\u087a" - + "\u087b\u087c\u087d\u087e\u087f\u0880\u0881\u0882\u0883\u0884\u0885\u0886\u0887\u0888\u0889\u088a\u088b\u088c\u088d\u088e" - + "\u088f\u0890\u0891\u0892\u0893\u0894\u0895\u0896\u0897\u0898\u0899\u089a\u089b\u089c\u089d\u089e\u089f\u08a0\u08a1\u08a2" - + "\u08a3\u08a4\u08a5\u08a6\u08a7\u08a8\u08a9\u08aa\u08ab\u08ac\u08ad\u08ae\u08af\u08b0\u08b1\u08b2\u08b3\u08b4\u08b5\u08b6" - + "\u08b7\u08b8\u08b9\u08ba\u08bb\u08bc\u08bd\u08be\u08bf\u08c0\u08c1\u08c2\u08c3\u08c4\u08c5\u08c6\u08c7\u08c8\u08c9\u08ca" - + "\u08cb\u08cc\u08cd\u08ce\u08cf\u08d0\u08d1\u08d2\u08d3\u08d4\u08d5\u08d6\u08d7\u08d8\u08d9\u08da\u08db\u08dc\u08dd\u08de" - + "\u08df\u08e0\u08e1\u08e2\u08e3\u08e4\u08e5\u08e6\u08e7\u08e8\u08e9\u08ea\u08eb\u08ec\u08ed\u08ee\u08ef\u08f0\u08f1\u08f2" - + "\u08f3\u08f4\u08f5\u08f6\u08f7\u08f8\u08f9\u08fa\u08fb\u08fc\u08fd\u08fe\u08ff\u0900\u0901\u0902\u0903\u0904\u0905\u0906" - + "\u0907\u0908\u0909\u090a\u090b\u090c\u090d\u090e\u090f\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091a" - + "\u091b\u091c\u091d\u091e\u091f\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092a\u092b\u092c\u092d\u092e" - + "\u092f\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093a\u093b\u093c\u093d\u093e\u093f\u0940\u0941\u0942" - + "\u0943\u0944\u0945\u0946\u0947\u0948\u0949\u094a\u094b\u094c\u094d\u094e\u094f\u0950\u0951\u0952\u0953\u0954\u0955\u0956" - + "\u0957\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u0960\u0961\u0962\u0963\u0964\u0965\u0966\u0967\u0968\u0969\u096a" - + "\u096b\u096c\u096d\u096e\u096f\u0970\u0971\u0972\u0973\u0974\u0975\u0976\u0977\u0978\u0979\u097a\u097b\u097c\u097d\u097e" - + "\u097f\u0980\u0981\u0982\u0983\u0984\u0985\u0986\u0987\u0988\u0989\u098a\u098b\u098c\u098d\u098e\u098f\u0990\u0991\u0992" - + "\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099a\u099b\u099c\u099d\u099e\u099f\u09a0\u09a1\u09a2\u09a3\u09a4\u09a5\u09a6" - + "\u09a7\u09a8\u09a9\u09aa\u09ab\u09ac\u09ad\u09ae\u09af\u09b0\u09b1\u09b2\u09b3\u09b4\u09b5\u09b6\u09b7\u09b8\u09b9\u09ba" - + "\u09bb\u09bc\u09bd\u09be\u09bf\u09c0\u09c1\u09c2\u09c3\u09c4\u09c5\u09c6\u09c7\u09c8\u09c9\u09ca\u09cb\u09cc\u09cd\u09ce" - + "\u09cf\u09d0\u09d1\u09d2\u09d3\u09d4\u09d5\u09d6\u09d7\u09d8\u09d9\u09da\u09db\u09dc\u09dd\u09de\u09df\u09e0\u09e1\u09e2" - + "\u09e3\u09e4\u09e5\u09e6\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09f0\u09f1\u09f2\u09f3\u09f4\u09f5\u09f6" - + "\u09f7\u09f8\u09f9\u09fa\u09fb\u09fc\u09fd\u09fe\u09ff\u0a00\u0a01\u0a02\u0a03\u0a04\u0a05\u0a06\u0a07\u0a08\u0a09\u0a0a" - + "\u0a0b\u0a0c\u0a0d\u0a0e\u0a0f\u0a10\u0a11\u0a12\u0a13\u0a14\u0a15\u0a16\u0a17\u0a18\u0a19\u0a1a\u0a1b\u0a1c\u0a1d\u0a1e" - + "\u0a1f\u0a20\u0a21\u0a22\u0a23\u0a24\u0a25\u0a26\u0a27\u0a28\u0a29\u0a2a\u0a2b\u0a2c\u0a2d\u0a2e\u0a2f\u0a30\u0a31\u0a32" - + "\u0a33\u0a34\u0a35\u0a36\u0a37\u0a38\u0a39\u0a3a\u0a3b\u0a3c\u0a3d\u0a3e\u0a3f\u0a40\u0a41\u0a42\u0a43\u0a44\u0a45\u0a46" - + "\u0a47\u0a48\u0a49\u0a4a\u0a4b\u0a4c\u0a4d\u0a4e\u0a4f\u0a50\u0a51\u0a52\u0a53\u0a54\u0a55\u0a56\u0a57\u0a58\u0a59\u0a5a" - + "\u0a5b\u0a5c\u0a5d\u0a5e\u0a5f\u0a60\u0a61\u0a62\u0a63\u0a64\u0a65\u0a66\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e" - + "\u0a6f\u0a70\u0a71\u0a72\u0a73\u0a74\u0a75\u0a76\u0a77\u0a78\u0a79\u0a7a\u0a7b\u0a7c\u0a7d\u0a7e\u0a7f\u0a80\u0a81\u0a82" - + "\u0a83\u0a84\u0a85\u0a86\u0a87\u0a88\u0a89\u0a8a\u0a8b\u0a8c\u0a8d\u0a8e\u0a8f\u0a90\u0a91\u0a92\u0a93\u0a94\u0a95\u0a96" - + "\u0a97\u0a98\u0a99\u0a9a\u0a9b\u0a9c\u0a9d\u0a9e\u0a9f\u0aa0\u0aa1\u0aa2\u0aa3\u0aa4\u0aa5\u0aa6\u0aa7\u0aa8\u0aa9\u0aaa" - + "\u0aab\u0aac\u0aad\u0aae\u0aaf\u0ab0\u0ab1\u0ab2\u0ab3\u0ab4\u0ab5\u0ab6\u0ab7\u0ab8\u0ab9\u0aba\u0abb\u0abc\u0abd\u0abe" - + "\u0abf\u0ac0\u0ac1\u0ac2\u0ac3\u0ac4\u0ac5\u0ac6\u0ac7\u0ac8\u0ac9\u0aca\u0acb\u0acc\u0acd\u0ace\u0acf\u0ad0\u0ad1\u0ad2" - + "\u0ad3\u0ad4\u0ad5\u0ad6\u0ad7\u0ad8\u0ad9\u0ada\u0adb\u0adc\u0add\u0ade\u0adf\u0ae0\u0ae1\u0ae2\u0ae3\u0ae4\u0ae5\u0ae6" - + "\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0af0\u0af1\u0af2\u0af3\u0af4\u0af5\u0af6\u0af7\u0af8\u0af9\u0afa" - + "\u0afb\u0afc\u0afd\u0afe\u0aff\u0b00\u0b01\u0b02\u0b03\u0b04\u0b05\u0b06\u0b07\u0b08\u0b09\u0b0a\u0b0b\u0b0c\u0b0d\u0b0e" - + "\u0b0f\u0b10\u0b11\u0b12\u0b13\u0b14\u0b15\u0b16\u0b17\u0b18\u0b19\u0b1a\u0b1b\u0b1c\u0b1d\u0b1e\u0b1f\u0b20\u0b21\u0b22" - + "\u0b23\u0b24\u0b25\u0b26\u0b27\u0b28\u0b29\u0b2a\u0b2b\u0b2c\u0b2d\u0b2e\u0b2f\u0b30\u0b31\u0b32\u0b33\u0b34\u0b35\u0b36" - + "\u0b37\u0b38\u0b39\u0b3a\u0b3b\u0b3c\u0b3d\u0b3e\u0b3f\u0b40\u0b41\u0b42\u0b43\u0b44\u0b45\u0b46\u0b47\u0b48\u0b49\u0b4a" - + "\u0b4b\u0b4c\u0b4d\u0b4e\u0b4f\u0b50\u0b51\u0b52\u0b53\u0b54\u0b55\u0b56\u0b57\u0b58\u0b59\u0b5a\u0b5b\u0b5c\u0b5d\u0b5e" - + "\u0b5f\u0b60\u0b61\u0b62\u0b63\u0b64\u0b65\u0b66\u0b67\u0b68\u0b69\u0b6a\u0b6b\u0b6c\u0b6d\u0b6e\u0b6f\u0b70\u0b71\u0b72" - + "\u0b73\u0b74\u0b75\u0b76\u0b77\u0b78\u0b79\u0b7a\u0b7b\u0b7c\u0b7d\u0b7e\u0b7f\u0b80\u0b81\u0b82\u0b83\u0b84\u0b85\u0b86" - + "\u0b87\u0b88\u0b89\u0b8a\u0b8b\u0b8c\u0b8d\u0b8e\u0b8f\u0b90\u0b91\u0b92\u0b93\u0b94\u0b95\u0b96\u0b97\u0b98\u0b99\u0b9a" - + "\u0b9b\u0b9c\u0b9d\u0b9e\u0b9f\u0ba0\u0ba1\u0ba2\u0ba3\u0ba4\u0ba5\u0ba6\u0ba7\u0ba8\u0ba9\u0baa\u0bab\u0bac\u0bad\u0bae" - + "\u0baf\u0bb0\u0bb1\u0bb2\u0bb3\u0bb4\u0bb5\u0bb6\u0bb7\u0bb8\u0bb9\u0bba\u0bbb\u0bbc\u0bbd\u0bbe\u0bbf\u0bc0\u0bc1\u0bc2" - + "\u0bc3\u0bc4\u0bc5\u0bc6\u0bc7\u0bc8\u0bc9\u0bca\u0bcb\u0bcc\u0bcd\u0bce\u0bcf\u0bd0\u0bd1\u0bd2\u0bd3\u0bd4\u0bd5\u0bd6" - + "\u0bd7\u0bd8\u0bd9\u0bda\u0bdb\u0bdc\u0bdd\u0bde\u0bdf\u0be0\u0be1\u0be2\u0be3\u0be4\u0be5\u0be6\u0be7\u0be8\u0be9\u0bea" - + "\u0beb\u0bec\u0bed\u0bee\u0bef\u0bf0\u0bf1\u0bf2\u0bf3\u0bf4\u0bf5\u0bf6\u0bf7\u0bf8\u0bf9\u0bfa\u0bfb\u0bfc\u0bfd\u0bfe" - + "\u0bff\u0c00\u0c01\u0c02\u0c03\u0c04\u0c05\u0c06\u0c07\u0c08\u0c09\u0c0a\u0c0b\u0c0c\u0c0d\u0c0e\u0c0f\u0c10\u0c11\u0c12" - + "\u0c13\u0c14\u0c15\u0c16\u0c17\u0c18\u0c19\u0c1a\u0c1b\u0c1c\u0c1d\u0c1e\u0c1f\u0c20\u0c21\u0c22\u0c23\u0c24\u0c25\u0c26" - + "\u0c27\u0c28\u0c29\u0c2a\u0c2b\u0c2c\u0c2d\u0c2e\u0c2f\u0c30\u0c31\u0c32\u0c33\u0c34\u0c35\u0c36\u0c37\u0c38\u0c39\u0c3a" - + "\u0c3b\u0c3c\u0c3d\u0c3e\u0c3f\u0c40\u0c41\u0c42\u0c43\u0c44\u0c45\u0c46\u0c47\u0c48\u0c49\u0c4a\u0c4b\u0c4c\u0c4d\u0c4e" - + "\u0c4f\u0c50\u0c51\u0c52\u0c53\u0c54\u0c55\u0c56\u0c57\u0c58\u0c59\u0c5a\u0c5b\u0c5c\u0c5d\u0c5e\u0c5f\u0c60\u0c61\u0c62" - + "\u0c63\u0c64\u0c65\u0c66\u0c67\u0c68\u0c69\u0c6a\u0c6b\u0c6c\u0c6d\u0c6e\u0c6f\u0c70\u0c71\u0c72\u0c73\u0c74\u0c75\u0c76" - + "\u0c77\u0c78\u0c79\u0c7a\u0c7b\u0c7c\u0c7d\u0c7e\u0c7f\u0c80\u0c81\u0c82\u0c83\u0c84\u0c85\u0c86\u0c87\u0c88\u0c89\u0c8a" - + "\u0c8b\u0c8c\u0c8d\u0c8e\u0c8f\u0c90\u0c91\u0c92\u0c93\u0c94\u0c95\u0c96\u0c97\u0c98\u0c99\u0c9a\u0c9b\u0c9c\u0c9d\u0c9e" - + "\u0c9f\u0ca0\u0ca1\u0ca2\u0ca3\u0ca4\u0ca5\u0ca6\u0ca7\u0ca8\u0ca9\u0caa\u0cab\u0cac\u0cad\u0cae\u0caf\u0cb0\u0cb1\u0cb2" - + "\u0cb3\u0cb4\u0cb5\u0cb6\u0cb7\u0cb8\u0cb9\u0cba\u0cbb\u0cbc\u0cbd\u0cbe\u0cbf\u0cc0\u0cc1\u0cc2\u0cc3\u0cc4\u0cc5\u0cc6" - + "\u0cc7\u0cc8\u0cc9\u0cca\u0ccb\u0ccc\u0ccd\u0cce\u0ccf\u0cd0\u0cd1\u0cd2\u0cd3\u0cd4\u0cd5\u0cd6\u0cd7\u0cd8\u0cd9\u0cda" - + "\u0cdb\u0cdc\u0cdd\u0cde\u0cdf\u0ce0\u0ce1\u0ce2\u0ce3\u0ce4\u0ce5\u0ce6\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee" - + "\u0cef\u0cf0\u0cf1\u0cf2\u0cf3\u0cf4\u0cf5\u0cf6\u0cf7\u0cf8\u0cf9\u0cfa\u0cfb\u0cfc\u0cfd\u0cfe\u0cff\u0d00\u0d01\u0d02" - + "\u0d03\u0d04\u0d05\u0d06\u0d07\u0d08\u0d09\u0d0a\u0d0b\u0d0c\u0d0d\u0d0e\u0d0f\u0d10\u0d11\u0d12\u0d13\u0d14\u0d15\u0d16" - + "\u0d17\u0d18\u0d19\u0d1a\u0d1b\u0d1c\u0d1d\u0d1e\u0d1f\u0d20\u0d21\u0d22\u0d23\u0d24\u0d25\u0d26\u0d27\u0d28\u0d29\u0d2a" - + "\u0d2b\u0d2c\u0d2d\u0d2e\u0d2f\u0d30\u0d31\u0d32\u0d33\u0d34\u0d35\u0d36\u0d37\u0d38\u0d39\u0d3a\u0d3b\u0d3c\u0d3d\u0d3e" - + "\u0d3f\u0d40\u0d41\u0d42\u0d43\u0d44\u0d45\u0d46\u0d47\u0d48\u0d49\u0d4a\u0d4b\u0d4c\u0d4d\u0d4e\u0d4f\u0d50\u0d51\u0d52" - + "\u0d53\u0d54\u0d55\u0d56\u0d57\u0d58\u0d59\u0d5a\u0d5b\u0d5c\u0d5d\u0d5e\u0d5f\u0d60\u0d61\u0d62\u0d63\u0d64\u0d65\u0d66" - + "\u0d67\u0d68\u0d69\u0d6a\u0d6b\u0d6c\u0d6d\u0d6e\u0d6f\u0d70\u0d71\u0d72\u0d73\u0d74\u0d75\u0d76\u0d77\u0d78\u0d79\u0d7a" - + "\u0d7b\u0d7c\u0d7d\u0d7e\u0d7f\u0d80\u0d81\u0d82\u0d83\u0d84\u0d85\u0d86\u0d87\u0d88\u0d89\u0d8a\u0d8b\u0d8c\u0d8d\u0d8e" - + "\u0d8f\u0d90\u0d91\u0d92\u0d93\u0d94\u0d95\u0d96\u0d97\u0d98\u0d99\u0d9a\u0d9b\u0d9c\u0d9d\u0d9e\u0d9f\u0da0\u0da1\u0da2" - + "\u0da3\u0da4\u0da5\u0da6\u0da7\u0da8\u0da9\u0daa\u0dab\u0dac\u0dad\u0dae\u0daf\u0db0\u0db1\u0db2\u0db3\u0db4\u0db5\u0db6" - + "\u0db7\u0db8\u0db9\u0dba\u0dbb\u0dbc\u0dbd\u0dbe\u0dbf\u0dc0\u0dc1\u0dc2\u0dc3\u0dc4\u0dc5\u0dc6\u0dc7\u0dc8\u0dc9\u0dca" - + "\u0dcb\u0dcc\u0dcd\u0dce\u0dcf\u0dd0\u0dd1\u0dd2\u0dd3\u0dd4\u0dd5\u0dd6\u0dd7\u0dd8\u0dd9\u0dda\u0ddb\u0ddc\u0ddd\u0dde" - + "\u0ddf\u0de0\u0de1\u0de2\u0de3\u0de4\u0de5\u0de6\u0de7\u0de8\u0de9\u0dea\u0deb\u0dec\u0ded\u0dee\u0def\u0df0\u0df1\u0df2" - + "\u0df3\u0df4\u0df5\u0df6\u0df7\u0df8\u0df9\u0dfa\u0dfb\u0dfc\u0dfd\u0dfe\u0dff\u0e00\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06" - + "\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a" - + "\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e" - + "\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\u0e3b\u0e3c\u0e3d\u0e3e\u0e3f\u0e40\u0e41\u0e42" - + "\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56" - + "\u0e57\u0e58\u0e59\u0e5a\u0e5b\u0e5c\u0e5d\u0e5e\u0e5f\u0e60\u0e61\u0e62\u0e63\u0e64\u0e65\u0e66\u0e67\u0e68\u0e69\u0e6a" - + "\u0e6b\u0e6c\u0e6d\u0e6e\u0e6f\u0e70\u0e71\u0e72\u0e73\u0e74\u0e75\u0e76\u0e77\u0e78\u0e79\u0e7a\u0e7b\u0e7c\u0e7d\u0e7e" - + "\u0e7f\u0e80\u0e81\u0e82\u0e83\u0e84\u0e85\u0e86\u0e87\u0e88\u0e89\u0e8a\u0e8b\u0e8c\u0e8d\u0e8e\u0e8f\u0e90\u0e91\u0e92" - + "\u0e93\u0e94\u0e95\u0e96\u0e97\u0e98\u0e99\u0e9a\u0e9b\u0e9c\u0e9d\u0e9e\u0e9f\u0ea0\u0ea1\u0ea2\u0ea3\u0ea4\u0ea5\u0ea6" - + "\u0ea7\u0ea8\u0ea9\u0eaa\u0eab\u0eac\u0ead\u0eae\u0eaf\u0eb0\u0eb1\u0eb2\u0eb3\u0eb4\u0eb5\u0eb6\u0eb7\u0eb8\u0eb9\u0eba" - + "\u0ebb\u0ebc\u0ebd\u0ebe\u0ebf\u0ec0\u0ec1\u0ec2\u0ec3\u0ec4\u0ec5\u0ec6\u0ec7\u0ec8\u0ec9\u0eca\u0ecb\u0ecc\u0ecd\u0ece" - + "\u0ecf\u0ed0\u0ed1\u0ed2\u0ed3\u0ed4\u0ed5\u0ed6\u0ed7\u0ed8\u0ed9\u0eda\u0edb\u0edc\u0edd\u0ede\u0edf\u0ee0\u0ee1\u0ee2" - + "\u0ee3\u0ee4\u0ee5\u0ee6\u0ee7\u0ee8\u0ee9\u0eea\u0eeb\u0eec\u0eed\u0eee\u0eef\u0ef0\u0ef1\u0ef2\u0ef3\u0ef4\u0ef5\u0ef6" - + "\u0ef7\u0ef8\u0ef9\u0efa\u0efb\u0efc\u0efd\u0efe\u0eff\u0f00\u0f01\u0f02\u0f03\u0f04\u0f05\u0f06\u0f07\u0f08\u0f09\u0f0a" - + "\u0f0b\u0f0c\u0f0d\u0f0e\u0f0f\u0f10\u0f11\u0f12\u0f13\u0f14\u0f15\u0f16\u0f17\u0f18\u0f19\u0f1a\u0f1b\u0f1c\u0f1d\u0f1e" - + "\u0f1f\u0f20\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f2a\u0f2b\u0f2c\u0f2d\u0f2e\u0f2f\u0f30\u0f31\u0f32" - + "\u0f33\u0f34\u0f35\u0f36\u0f37\u0f38\u0f39\u0f3a\u0f3b\u0f3c\u0f3d\u0f3e\u0f3f\u0f40\u0f41\u0f42\u0f43\u0f44\u0f45\u0f46" - + "\u0f47\u0f48\u0f49\u0f4a\u0f4b\u0f4c\u0f4d\u0f4e\u0f4f\u0f50\u0f51\u0f52\u0f53\u0f54\u0f55\u0f56\u0f57\u0f58\u0f59\u0f5a" - + "\u0f5b\u0f5c\u0f5d\u0f5e\u0f5f\u0f60\u0f61\u0f62\u0f63\u0f64\u0f65\u0f66\u0f67\u0f68\u0f69\u0f6a\u0f6b\u0f6c\u0f6d\u0f6e" - + "\u0f6f\u0f70\u0f71\u0f72\u0f73\u0f74\u0f75\u0f76\u0f77\u0f78\u0f79\u0f7a\u0f7b\u0f7c\u0f7d\u0f7e\u0f7f\u0f80\u0f81\u0f82" - + "\u0f83\u0f84\u0f85\u0f86\u0f87\u0f88\u0f89\u0f8a\u0f8b\u0f8c\u0f8d\u0f8e\u0f8f\u0f90\u0f91\u0f92\u0f93\u0f94\u0f95\u0f96" - + "\u0f97\u0f98\u0f99\u0f9a\u0f9b\u0f9c\u0f9d\u0f9e\u0f9f\u0fa0\u0fa1\u0fa2\u0fa3\u0fa4\u0fa5\u0fa6\u0fa7\u0fa8\u0fa9\u0faa" - + "\u0fab\u0fac\u0fad\u0fae\u0faf\u0fb0\u0fb1\u0fb2\u0fb3\u0fb4\u0fb5\u0fb6\u0fb7\u0fb8\u0fb9\u0fba\u0fbb\u0fbc\u0fbd\u0fbe" - + "\u0fbf\u0fc0\u0fc1\u0fc2\u0fc3\u0fc4\u0fc5\u0fc6\u0fc7\u0fc8\u0fc9\u0fca\u0fcb\u0fcc\u0fcd\u0fce\u0fcf\u0fd0\u0fd1\u0fd2" - + "\u0fd3\u0fd4\u0fd5\u0fd6\u0fd7\u0fd8\u0fd9\u0fda\u0fdb\u0fdc\u0fdd\u0fde\u0fdf\u0fe0\u0fe1\u0fe2\u0fe3\u0fe4\u0fe5\u0fe6" - + "\u0fe7\u0fe8\u0fe9\u0fea\u0feb\u0fec\u0fed\u0fee\u0fef\u0ff0\u0ff1\u0ff2\u0ff3\u0ff4\u0ff5\u0ff6\u0ff7\u0ff8\u0ff9\u0ffa" - + "\u0ffb\u0ffc\u0ffd\u0ffe\u0fff\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100a\u100b\u100c\u100d\u100e" - + "\u100f\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101a\u101b\u101c\u101d\u101e\u101f\u1020\u1021\u1022" - + "\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102a\u102b\u102c\u102d\u102e\u102f\u1030\u1031\u1032\u1033\u1034\u1035\u1036" - + "\u1037\u1038\u1039\u103a\u103b\u103c\u103d\u103e\u103f\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u104a" - + "\u104b\u104c\u104d\u104e\u104f\u1050\u1051\u1052\u1053\u1054\u1055\u1056\u1057\u1058\u1059\u105a\u105b\u105c\u105d\u105e" - + "\u105f\u1060\u1061\u1062\u1063\u1064\u1065\u1066\u1067\u1068\u1069\u106a\u106b\u106c\u106d\u106e\u106f\u1070\u1071\u1072" - + "\u1073\u1074\u1075\u1076\u1077\u1078\u1079\u107a\u107b\u107c\u107d\u107e\u107f\u1080\u1081\u1082\u1083\u1084\u1085\u1086"; + + "\u00fb\u00fc\u00fd\u00fe\u00ff\u0100\u0101\u0102\u0103\u0104\u0105\u0106\u0107\u0108\u0109\u010a\u010b\u010c\u010d\u010e" + + "\u010f\u0110\u0111\u0112\u0113\u0114\u0115\u0116\u0117\u0118\u0119\u011a\u011b\u011c\u011d\u011e\u011f\u0120\u0121\u0122" + + "\u0123\u0124\u0125\u0126\u0127\u0128\u0129\u012a\u012b\u012c\u012d\u012e\u012f\u0130\u0131\u0132\u0133\u0134\u0135\u0136" + + "\u0137\u0138\u0139\u013a\u013b\u013c\u013d\u013e\u013f\u0140\u0141\u0142\u0143\u0144\u0145\u0146\u0147\u0148\u0149\u014a" + + "\u014b\u014c\u014d\u014e\u014f\u0150\u0151\u0152\u0153\u0154\u0155\u0156\u0157\u0158\u0159\u015a\u015b\u015c\u015d\u015e" + + "\u015f\u0160\u0161\u0162\u0163\u0164\u0165\u0166\u0167\u0168\u0169\u016a\u016b\u016c\u016d\u016e\u016f\u0170\u0171\u0172" + + "\u0173\u0174\u0175\u0176\u0177\u0178\u0179\u017a\u017b\u017c\u017d\u017e\u017f\u0180\u0181\u0182\u0183\u0184\u0185\u0186" + + "\u0187\u0188\u0189\u018a\u018b\u018c\u018d\u018e\u018f\u0190\u0191\u0192\u0193\u0194\u0195\u0196\u0197\u0198\u0199\u019a" + + "\u019b\u019c\u019d\u019e\u019f\u01a0\u01a1\u01a2\u01a3\u01a4\u01a5\u01a6\u01a7\u01a8\u01a9\u01aa\u01ab\u01ac\u01ad\u01ae" + + "\u01af\u01b0\u01b1\u01b2\u01b3\u01b4\u01b5\u01b6\u01b7\u01b8\u01b9\u01ba\u01bb\u01bc\u01bd\u01be\u01bf\u01c0\u01c1\u01c2" + + "\u01c3\u01c4\u01c5\u01c6\u01c7\u01c8\u01c9\u01ca\u01cb\u01cc\u01cd\u01ce\u01cf\u01d0\u01d1\u01d2\u01d3\u01d4\u01d5\u01d6" + + "\u01d7\u01d8\u01d9\u01da\u01db\u01dc\u01dd\u01de\u01df\u01e0\u01e1\u01e2\u01e3\u01e4\u01e5\u01e6\u01e7\u01e8\u01e9\u01ea" + + "\u01eb\u01ec\u01ed\u01ee\u01ef\u01f0\u01f1\u01f2\u01f3\u01f4\u01f5\u01f6\u01f7\u01f8\u01f9\u01fa\u01fb\u01fc\u01fd\u01fe" + + "\u01ff\u0200\u0201\u0202\u0203\u0204\u0205\u0206\u0207\u0208\u0209\u020a\u020b\u020c\u020d\u020e\u020f\u0210\u0211\u0212" + + "\u0213\u0214\u0215\u0216\u0217\u0218\u0219\u021a\u021b\u021c\u021d\u021e\u021f\u0220\u0221\u0222\u0223\u0224\u0225\u0226" + + "\u0227\u0228\u0229\u022a\u022b\u022c\u022d\u022e\u022f\u0230\u0231\u0232\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023a" + + "\u023b\u023c\u023d\u023e\u023f\u0240\u0241\u0242\u0243\u0244\u0245\u0246\u0247\u0248\u0249\u024a\u024b\u024c\u024d\u024e" + + "\u024f\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025a\u025b\u025c\u025d\u025e\u025f\u0260\u0261\u0262" + + "\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026a\u026b\u026c\u026d\u026e\u026f\u0270\u0271\u0272\u0273\u0274\u0275\u0276" + + "\u0277\u0278\u0279\u027a\u027b\u027c\u027d\u027e\u027f\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028a" + + "\u028b\u028c\u028d\u028e\u028f\u0290\u0291\u0292\u0293\u0294\u0295\u0296\u0297\u0298\u0299\u029a\u029b\u029c\u029d\u029e" + + "\u029f\u02a0\u02a1\u02a2\u02a3\u02a4\u02a5\u02a6\u02a7\u02a8\u02a9\u02aa\u02ab\u02ac\u02ad\u02ae\u02af\u02b0\u02b1\u02b2" + + "\u02b3\u02b4\u02b5\u02b6\u02b7\u02b8\u02b9\u02ba\u02bb\u02bc\u02bd\u02be\u02bf\u02c0\u02c1\u02c2\u02c3\u02c4\u02c5\u02c6" + + "\u02c7\u02c8\u02c9\u02ca\u02cb\u02cc\u02cd\u02ce\u02cf\u02d0\u02d1\u02d2\u02d3\u02d4\u02d5\u02d6\u02d7\u02d8\u02d9\u02da" + + "\u02db\u02dc\u02dd\u02de\u02df\u02e0\u02e1\u02e2\u02e3\u02e4\u02e5\u02e6\u02e7\u02e8\u02e9\u02ea\u02eb\u02ec\u02ed\u02ee" + + "\u02ef\u02f0\u02f1\u02f2\u02f3\u02f4\u02f5\u02f6\u02f7\u02f8\u02f9\u02fa\u02fb\u02fc\u02fd\u02fe\u02ff\u0300\u0301\u0302" + + "\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030a\u030b\u030c\u030d\u030e\u030f\u0310\u0311\u0312\u0313\u0314\u0315\u0316" + + "\u0317\u0318\u0319\u031a\u031b\u031c\u031d\u031e\u031f\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032a" + + "\u032b\u032c\u032d\u032e\u032f\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033a\u033b\u033c\u033d\u033e" + + "\u033f\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034a\u034b\u034c\u034d\u034e\u034f\u0350\u0351\u0352" + + "\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035a\u035b\u035c\u035d\u035e\u035f\u0360\u0361\u0362\u0363\u0364\u0365\u0366" + + "\u0367\u0368\u0369\u036a\u036b\u036c\u036d\u036e\u036f\u0370\u0371\u0372\u0373\u0374\u0375\u0376\u0377\u0378\u0379\u037a" + + "\u037b\u037c\u037d\u037e\u037f\u0380\u0381\u0382\u0383\u0384\u0385\u0386\u0387\u0388\u0389\u038a\u038b\u038c\u038d\u038e" + + "\u038f\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a2" + + "\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03aa\u03ab\u03ac\u03ad\u03ae\u03af\u03b0\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6" + + "\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\u03ca" + + "\u03cb\u03cc\u03cd\u03ce\u03cf\u03d0\u03d1\u03d2\u03d3\u03d4\u03d5\u03d6\u03d7\u03d8\u03d9\u03da\u03db\u03dc\u03dd\u03de" + + "\u03df\u03e0\u03e1\u03e2\u03e3\u03e4\u03e5\u03e6\u03e7\u03e8\u03e9\u03ea\u03eb\u03ec\u03ed\u03ee\u03ef\u03f0\u03f1\u03f2" + + "\u03f3\u03f4\u03f5\u03f6\u03f7\u03f8\u03f9\u03fa\u03fb\u03fc\u03fd\u03fe\u03ff\u0400\u0401\u0402\u0403\u0404\u0405\u0406" + + "\u0407\u0408\u0409\u040a\u040b\u040c\u040d\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a" + + "\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e" + + "\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442" + + "\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0450\u0451\u0452\u0453\u0454\u0455\u0456" + + "\u0457\u0458\u0459\u045a\u045b\u045c\u045d\u045e\u045f\u0460\u0461\u0462\u0463\u0464\u0465\u0466\u0467\u0468\u0469\u046a" + + "\u046b\u046c\u046d\u046e\u046f\u0470\u0471\u0472\u0473\u0474\u0475\u0476\u0477\u0478\u0479\u047a\u047b\u047c\u047d\u047e" + + "\u047f\u0480\u0481\u0482\u0483\u0484\u0485\u0486\u0487\u0488\u0489\u048a\u048b\u048c\u048d\u048e\u048f\u0490\u0491\u0492" + + "\u0493\u0494\u0495\u0496\u0497\u0498\u0499\u049a\u049b\u049c\u049d\u049e\u049f\u04a0\u04a1\u04a2\u04a3\u04a4\u04a5\u04a6" + + "\u04a7\u04a8\u04a9\u04aa\u04ab\u04ac\u04ad\u04ae\u04af\u04b0\u04b1\u04b2\u04b3\u04b4\u04b5\u04b6\u04b7\u04b8\u04b9\u04ba" + + "\u04bb\u04bc\u04bd\u04be\u04bf\u04c0\u04c1\u04c2\u04c3\u04c4\u04c5\u04c6\u04c7\u04c8\u04c9\u04ca\u04cb\u04cc\u04cd\u04ce" + + "\u04cf\u04d0\u04d1\u04d2\u04d3\u04d4\u04d5\u04d6\u04d7\u04d8\u04d9\u04da\u04db\u04dc\u04dd\u04de\u04df\u04e0\u04e1\u04e2" + + "\u04e3\u04e4\u04e5\u04e6\u04e7\u04e8\u04e9\u04ea\u04eb\u04ec\u04ed\u04ee\u04ef\u04f0\u04f1\u04f2\u04f3\u04f4\u04f5\u04f6" + + "\u04f7\u04f8\u04f9\u04fa\u04fb\u04fc\u04fd\u04fe\u04ff\u0500\u0501\u0502\u0503\u0504\u0505\u0506\u0507\u0508\u0509\u050a" + + "\u050b\u050c\u050d\u050e\u050f\u0510\u0511\u0512\u0513\u0514\u0515\u0516\u0517\u0518\u0519\u051a\u051b\u051c\u051d\u051e" + + "\u051f\u0520\u0521\u0522\u0523\u0524\u0525\u0526\u0527\u0528\u0529\u052a\u052b\u052c\u052d\u052e\u052f\u0530\u0531\u0532" + + "\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053a\u053b\u053c\u053d\u053e\u053f\u0540\u0541\u0542\u0543\u0544\u0545\u0546" + + "\u0547\u0548\u0549\u054a\u054b\u054c\u054d\u054e\u054f\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u0557\u0558\u0559\u055a" + + "\u055b\u055c\u055d\u055e\u055f\u0560\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056a\u056b\u056c\u056d\u056e" + + "\u056f\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057a\u057b\u057c\u057d\u057e\u057f\u0580\u0581\u0582" + + "\u0583\u0584\u0585\u0586\u0587\u0588\u0589\u058a\u058b\u058c\u058d\u058e\u058f\u0590\u0591\u0592\u0593\u0594\u0595\u0596" + + "\u0597\u0598\u0599\u059a\u059b\u059c\u059d\u059e\u059f\u05a0\u05a1\u05a2\u05a3\u05a4\u05a5\u05a6\u05a7\u05a8\u05a9\u05aa" + + "\u05ab\u05ac\u05ad\u05ae\u05af\u05b0\u05b1\u05b2\u05b3\u05b4\u05b5\u05b6\u05b7\u05b8\u05b9\u05ba\u05bb\u05bc\u05bd\u05be" + + "\u05bf\u05c0\u05c1\u05c2\u05c3\u05c4\u05c5\u05c6\u05c7\u05c8\u05c9\u05ca\u05cb\u05cc\u05cd\u05ce\u05cf\u05d0\u05d1\u05d2" + + "\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6" + + "\u05e7\u05e8\u05e9\u05ea\u05eb\u05ec\u05ed\u05ee\u05ef\u05f0\u05f1\u05f2\u05f3\u05f4\u05f5\u05f6\u05f7\u05f8\u05f9\u05fa" + + "\u05fb\u05fc\u05fd\u05fe\u05ff\u0600\u0601\u0602\u0603\u0604\u0605\u0606\u0607\u0608\u0609\u060a\u060b\u060c\u060d\u060e" + + "\u060f\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061a\u061b\u061c\u061d\u061e\u061f\u0620\u0621\u0622" + + "\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636" + + "\u0637\u0638\u0639\u063a\u063b\u063c\u063d\u063e\u063f\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a" + + "\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065a\u065b\u065c\u065d\u065e" + + "\u065f\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u066a\u066b\u066c\u066d\u066e\u066f\u0670\u0671\u0672" + + "\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067a\u067b\u067c\u067d\u067e\u067f\u0680\u0681\u0682\u0683\u0684\u0685\u0686" + + "\u0687\u0688\u0689\u068a\u068b\u068c\u068d\u068e\u068f\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069a" + + "\u069b\u069c\u069d\u069e\u069f\u06a0\u06a1\u06a2\u06a3\u06a4\u06a5\u06a6\u06a7\u06a8\u06a9\u06aa\u06ab\u06ac\u06ad\u06ae" + + "\u06af\u06b0\u06b1\u06b2\u06b3\u06b4\u06b5\u06b6\u06b7\u06b8\u06b9\u06ba\u06bb\u06bc\u06bd\u06be\u06bf\u06c0\u06c1\u06c2" + + "\u06c3\u06c4\u06c5\u06c6\u06c7\u06c8\u06c9\u06ca\u06cb\u06cc\u06cd\u06ce\u06cf\u06d0\u06d1\u06d2\u06d3\u06d4\u06d5\u06d6" + + "\u06d7\u06d8\u06d9\u06da\u06db\u06dc\u06dd\u06de\u06df\u06e0\u06e1\u06e2\u06e3\u06e4\u06e5\u06e6\u06e7\u06e8\u06e9\u06ea" + + "\u06eb\u06ec\u06ed\u06ee\u06ef\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u06fa\u06fb\u06fc\u06fd\u06fe" + + "\u06ff\u0700\u0701\u0702\u0703\u0704\u0705\u0706\u0707\u0708\u0709\u070a\u070b\u070c\u070d\u070e\u070f\u0710\u0711\u0712" + + "\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071a\u071b\u071c\u071d\u071e\u071f\u0720\u0721\u0722\u0723\u0724\u0725\u0726" + + "\u0727\u0728\u0729\u072a\u072b\u072c\u072d\u072e\u072f\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073a" + + "\u073b\u073c\u073d\u073e\u073f\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074a\u074b\u074c\u074d\u074e" + + "\u074f\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075a\u075b\u075c\u075d\u075e\u075f\u0760\u0761\u0762" + + "\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076a\u076b\u076c\u076d\u076e\u076f\u0770\u0771\u0772\u0773\u0774\u0775\u0776" + + "\u0777\u0778\u0779\u077a\u077b\u077c\u077d\u077e\u077f\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078a" + + "\u078b\u078c\u078d\u078e\u078f\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079a\u079b\u079c\u079d\u079e" + + "\u079f\u07a0\u07a1\u07a2\u07a3\u07a4\u07a5\u07a6\u07a7\u07a8\u07a9\u07aa\u07ab\u07ac\u07ad\u07ae\u07af\u07b0\u07b1\u07b2" + + "\u07b3\u07b4\u07b5\u07b6\u07b7\u07b8\u07b9\u07ba\u07bb\u07bc\u07bd\u07be\u07bf\u07c0\u07c1\u07c2\u07c3\u07c4\u07c5\u07c6" + + "\u07c7\u07c8\u07c9\u07ca\u07cb\u07cc\u07cd\u07ce\u07cf\u07d0\u07d1\u07d2\u07d3\u07d4\u07d5\u07d6\u07d7\u07d8\u07d9\u07da" + + "\u07db\u07dc\u07dd\u07de\u07df\u07e0\u07e1\u07e2\u07e3\u07e4\u07e5\u07e6\u07e7\u07e8\u07e9\u07ea\u07eb\u07ec\u07ed\u07ee" + + "\u07ef\u07f0\u07f1\u07f2\u07f3\u07f4\u07f5\u07f6\u07f7\u07f8\u07f9\u07fa\u07fb\u07fc\u07fd\u07fe\u07ff\u0800\u0801\u0802" + + "\u0803\u0804\u0805\u0806\u0807\u0808\u0809\u080a\u080b\u080c\u080d\u080e\u080f\u0810\u0811\u0812\u0813\u0814\u0815\u0816" + + "\u0817\u0818\u0819\u081a\u081b\u081c\u081d\u081e\u081f\u0820\u0821\u0822\u0823\u0824\u0825\u0826\u0827\u0828\u0829\u082a" + + "\u082b\u082c\u082d\u082e\u082f\u0830\u0831\u0832\u0833\u0834\u0835\u0836\u0837\u0838\u0839\u083a\u083b\u083c\u083d\u083e" + + "\u083f\u0840\u0841\u0842\u0843\u0844\u0845\u0846\u0847\u0848\u0849\u084a\u084b\u084c\u084d\u084e\u084f\u0850\u0851\u0852" + + "\u0853\u0854\u0855\u0856\u0857\u0858\u0859\u085a\u085b\u085c\u085d\u085e\u085f\u0860\u0861\u0862\u0863\u0864\u0865\u0866" + + "\u0867\u0868\u0869\u086a\u086b\u086c\u086d\u086e\u086f\u0870\u0871\u0872\u0873\u0874\u0875\u0876\u0877\u0878\u0879\u087a" + + "\u087b\u087c\u087d\u087e\u087f\u0880\u0881\u0882\u0883\u0884\u0885\u0886\u0887\u0888\u0889\u088a\u088b\u088c\u088d\u088e" + + "\u088f\u0890\u0891\u0892\u0893\u0894\u0895\u0896\u0897\u0898\u0899\u089a\u089b\u089c\u089d\u089e\u089f\u08a0\u08a1\u08a2" + + "\u08a3\u08a4\u08a5\u08a6\u08a7\u08a8\u08a9\u08aa\u08ab\u08ac\u08ad\u08ae\u08af\u08b0\u08b1\u08b2\u08b3\u08b4\u08b5\u08b6" + + "\u08b7\u08b8\u08b9\u08ba\u08bb\u08bc\u08bd\u08be\u08bf\u08c0\u08c1\u08c2\u08c3\u08c4\u08c5\u08c6\u08c7\u08c8\u08c9\u08ca" + + "\u08cb\u08cc\u08cd\u08ce\u08cf\u08d0\u08d1\u08d2\u08d3\u08d4\u08d5\u08d6\u08d7\u08d8\u08d9\u08da\u08db\u08dc\u08dd\u08de" + + "\u08df\u08e0\u08e1\u08e2\u08e3\u08e4\u08e5\u08e6\u08e7\u08e8\u08e9\u08ea\u08eb\u08ec\u08ed\u08ee\u08ef\u08f0\u08f1\u08f2" + + "\u08f3\u08f4\u08f5\u08f6\u08f7\u08f8\u08f9\u08fa\u08fb\u08fc\u08fd\u08fe\u08ff\u0900\u0901\u0902\u0903\u0904\u0905\u0906" + + "\u0907\u0908\u0909\u090a\u090b\u090c\u090d\u090e\u090f\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091a" + + "\u091b\u091c\u091d\u091e\u091f\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092a\u092b\u092c\u092d\u092e" + + "\u092f\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093a\u093b\u093c\u093d\u093e\u093f\u0940\u0941\u0942" + + "\u0943\u0944\u0945\u0946\u0947\u0948\u0949\u094a\u094b\u094c\u094d\u094e\u094f\u0950\u0951\u0952\u0953\u0954\u0955\u0956" + + "\u0957\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u0960\u0961\u0962\u0963\u0964\u0965\u0966\u0967\u0968\u0969\u096a" + + "\u096b\u096c\u096d\u096e\u096f\u0970\u0971\u0972\u0973\u0974\u0975\u0976\u0977\u0978\u0979\u097a\u097b\u097c\u097d\u097e" + + "\u097f\u0980\u0981\u0982\u0983\u0984\u0985\u0986\u0987\u0988\u0989\u098a\u098b\u098c\u098d\u098e\u098f\u0990\u0991\u0992" + + "\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099a\u099b\u099c\u099d\u099e\u099f\u09a0\u09a1\u09a2\u09a3\u09a4\u09a5\u09a6" + + "\u09a7\u09a8\u09a9\u09aa\u09ab\u09ac\u09ad\u09ae\u09af\u09b0\u09b1\u09b2\u09b3\u09b4\u09b5\u09b6\u09b7\u09b8\u09b9\u09ba" + + "\u09bb\u09bc\u09bd\u09be\u09bf\u09c0\u09c1\u09c2\u09c3\u09c4\u09c5\u09c6\u09c7\u09c8\u09c9\u09ca\u09cb\u09cc\u09cd\u09ce" + + "\u09cf\u09d0\u09d1\u09d2\u09d3\u09d4\u09d5\u09d6\u09d7\u09d8\u09d9\u09da\u09db\u09dc\u09dd\u09de\u09df\u09e0\u09e1\u09e2" + + "\u09e3\u09e4\u09e5\u09e6\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09f0\u09f1\u09f2\u09f3\u09f4\u09f5\u09f6" + + "\u09f7\u09f8\u09f9\u09fa\u09fb\u09fc\u09fd\u09fe\u09ff\u0a00\u0a01\u0a02\u0a03\u0a04\u0a05\u0a06\u0a07\u0a08\u0a09\u0a0a" + + "\u0a0b\u0a0c\u0a0d\u0a0e\u0a0f\u0a10\u0a11\u0a12\u0a13\u0a14\u0a15\u0a16\u0a17\u0a18\u0a19\u0a1a\u0a1b\u0a1c\u0a1d\u0a1e" + + "\u0a1f\u0a20\u0a21\u0a22\u0a23\u0a24\u0a25\u0a26\u0a27\u0a28\u0a29\u0a2a\u0a2b\u0a2c\u0a2d\u0a2e\u0a2f\u0a30\u0a31\u0a32" + + "\u0a33\u0a34\u0a35\u0a36\u0a37\u0a38\u0a39\u0a3a\u0a3b\u0a3c\u0a3d\u0a3e\u0a3f\u0a40\u0a41\u0a42\u0a43\u0a44\u0a45\u0a46" + + "\u0a47\u0a48\u0a49\u0a4a\u0a4b\u0a4c\u0a4d\u0a4e\u0a4f\u0a50\u0a51\u0a52\u0a53\u0a54\u0a55\u0a56\u0a57\u0a58\u0a59\u0a5a" + + "\u0a5b\u0a5c\u0a5d\u0a5e\u0a5f\u0a60\u0a61\u0a62\u0a63\u0a64\u0a65\u0a66\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e" + + "\u0a6f\u0a70\u0a71\u0a72\u0a73\u0a74\u0a75\u0a76\u0a77\u0a78\u0a79\u0a7a\u0a7b\u0a7c\u0a7d\u0a7e\u0a7f\u0a80\u0a81\u0a82" + + "\u0a83\u0a84\u0a85\u0a86\u0a87\u0a88\u0a89\u0a8a\u0a8b\u0a8c\u0a8d\u0a8e\u0a8f\u0a90\u0a91\u0a92\u0a93\u0a94\u0a95\u0a96" + + "\u0a97\u0a98\u0a99\u0a9a\u0a9b\u0a9c\u0a9d\u0a9e\u0a9f\u0aa0\u0aa1\u0aa2\u0aa3\u0aa4\u0aa5\u0aa6\u0aa7\u0aa8\u0aa9\u0aaa" + + "\u0aab\u0aac\u0aad\u0aae\u0aaf\u0ab0\u0ab1\u0ab2\u0ab3\u0ab4\u0ab5\u0ab6\u0ab7\u0ab8\u0ab9\u0aba\u0abb\u0abc\u0abd\u0abe" + + "\u0abf\u0ac0\u0ac1\u0ac2\u0ac3\u0ac4\u0ac5\u0ac6\u0ac7\u0ac8\u0ac9\u0aca\u0acb\u0acc\u0acd\u0ace\u0acf\u0ad0\u0ad1\u0ad2" + + "\u0ad3\u0ad4\u0ad5\u0ad6\u0ad7\u0ad8\u0ad9\u0ada\u0adb\u0adc\u0add\u0ade\u0adf\u0ae0\u0ae1\u0ae2\u0ae3\u0ae4\u0ae5\u0ae6" + + "\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0af0\u0af1\u0af2\u0af3\u0af4\u0af5\u0af6\u0af7\u0af8\u0af9\u0afa" + + "\u0afb\u0afc\u0afd\u0afe\u0aff\u0b00\u0b01\u0b02\u0b03\u0b04\u0b05\u0b06\u0b07\u0b08\u0b09\u0b0a\u0b0b\u0b0c\u0b0d\u0b0e" + + "\u0b0f\u0b10\u0b11\u0b12\u0b13\u0b14\u0b15\u0b16\u0b17\u0b18\u0b19\u0b1a\u0b1b\u0b1c\u0b1d\u0b1e\u0b1f\u0b20\u0b21\u0b22" + + "\u0b23\u0b24\u0b25\u0b26\u0b27\u0b28\u0b29\u0b2a\u0b2b\u0b2c\u0b2d\u0b2e\u0b2f\u0b30\u0b31\u0b32\u0b33\u0b34\u0b35\u0b36" + + "\u0b37\u0b38\u0b39\u0b3a\u0b3b\u0b3c\u0b3d\u0b3e\u0b3f\u0b40\u0b41\u0b42\u0b43\u0b44\u0b45\u0b46\u0b47\u0b48\u0b49\u0b4a" + + "\u0b4b\u0b4c\u0b4d\u0b4e\u0b4f\u0b50\u0b51\u0b52\u0b53\u0b54\u0b55\u0b56\u0b57\u0b58\u0b59\u0b5a\u0b5b\u0b5c\u0b5d\u0b5e" + + "\u0b5f\u0b60\u0b61\u0b62\u0b63\u0b64\u0b65\u0b66\u0b67\u0b68\u0b69\u0b6a\u0b6b\u0b6c\u0b6d\u0b6e\u0b6f\u0b70\u0b71\u0b72" + + "\u0b73\u0b74\u0b75\u0b76\u0b77\u0b78\u0b79\u0b7a\u0b7b\u0b7c\u0b7d\u0b7e\u0b7f\u0b80\u0b81\u0b82\u0b83\u0b84\u0b85\u0b86" + + "\u0b87\u0b88\u0b89\u0b8a\u0b8b\u0b8c\u0b8d\u0b8e\u0b8f\u0b90\u0b91\u0b92\u0b93\u0b94\u0b95\u0b96\u0b97\u0b98\u0b99\u0b9a" + + "\u0b9b\u0b9c\u0b9d\u0b9e\u0b9f\u0ba0\u0ba1\u0ba2\u0ba3\u0ba4\u0ba5\u0ba6\u0ba7\u0ba8\u0ba9\u0baa\u0bab\u0bac\u0bad\u0bae" + + "\u0baf\u0bb0\u0bb1\u0bb2\u0bb3\u0bb4\u0bb5\u0bb6\u0bb7\u0bb8\u0bb9\u0bba\u0bbb\u0bbc\u0bbd\u0bbe\u0bbf\u0bc0\u0bc1\u0bc2" + + "\u0bc3\u0bc4\u0bc5\u0bc6\u0bc7\u0bc8\u0bc9\u0bca\u0bcb\u0bcc\u0bcd\u0bce\u0bcf\u0bd0\u0bd1\u0bd2\u0bd3\u0bd4\u0bd5\u0bd6" + + "\u0bd7\u0bd8\u0bd9\u0bda\u0bdb\u0bdc\u0bdd\u0bde\u0bdf\u0be0\u0be1\u0be2\u0be3\u0be4\u0be5\u0be6\u0be7\u0be8\u0be9\u0bea" + + "\u0beb\u0bec\u0bed\u0bee\u0bef\u0bf0\u0bf1\u0bf2\u0bf3\u0bf4\u0bf5\u0bf6\u0bf7\u0bf8\u0bf9\u0bfa\u0bfb\u0bfc\u0bfd\u0bfe" + + "\u0bff\u0c00\u0c01\u0c02\u0c03\u0c04\u0c05\u0c06\u0c07\u0c08\u0c09\u0c0a\u0c0b\u0c0c\u0c0d\u0c0e\u0c0f\u0c10\u0c11\u0c12" + + "\u0c13\u0c14\u0c15\u0c16\u0c17\u0c18\u0c19\u0c1a\u0c1b\u0c1c\u0c1d\u0c1e\u0c1f\u0c20\u0c21\u0c22\u0c23\u0c24\u0c25\u0c26" + + "\u0c27\u0c28\u0c29\u0c2a\u0c2b\u0c2c\u0c2d\u0c2e\u0c2f\u0c30\u0c31\u0c32\u0c33\u0c34\u0c35\u0c36\u0c37\u0c38\u0c39\u0c3a" + + "\u0c3b\u0c3c\u0c3d\u0c3e\u0c3f\u0c40\u0c41\u0c42\u0c43\u0c44\u0c45\u0c46\u0c47\u0c48\u0c49\u0c4a\u0c4b\u0c4c\u0c4d\u0c4e" + + "\u0c4f\u0c50\u0c51\u0c52\u0c53\u0c54\u0c55\u0c56\u0c57\u0c58\u0c59\u0c5a\u0c5b\u0c5c\u0c5d\u0c5e\u0c5f\u0c60\u0c61\u0c62" + + "\u0c63\u0c64\u0c65\u0c66\u0c67\u0c68\u0c69\u0c6a\u0c6b\u0c6c\u0c6d\u0c6e\u0c6f\u0c70\u0c71\u0c72\u0c73\u0c74\u0c75\u0c76" + + "\u0c77\u0c78\u0c79\u0c7a\u0c7b\u0c7c\u0c7d\u0c7e\u0c7f\u0c80\u0c81\u0c82\u0c83\u0c84\u0c85\u0c86\u0c87\u0c88\u0c89\u0c8a" + + "\u0c8b\u0c8c\u0c8d\u0c8e\u0c8f\u0c90\u0c91\u0c92\u0c93\u0c94\u0c95\u0c96\u0c97\u0c98\u0c99\u0c9a\u0c9b\u0c9c\u0c9d\u0c9e" + + "\u0c9f\u0ca0\u0ca1\u0ca2\u0ca3\u0ca4\u0ca5\u0ca6\u0ca7\u0ca8\u0ca9\u0caa\u0cab\u0cac\u0cad\u0cae\u0caf\u0cb0\u0cb1\u0cb2" + + "\u0cb3\u0cb4\u0cb5\u0cb6\u0cb7\u0cb8\u0cb9\u0cba\u0cbb\u0cbc\u0cbd\u0cbe\u0cbf\u0cc0\u0cc1\u0cc2\u0cc3\u0cc4\u0cc5\u0cc6" + + "\u0cc7\u0cc8\u0cc9\u0cca\u0ccb\u0ccc\u0ccd\u0cce\u0ccf\u0cd0\u0cd1\u0cd2\u0cd3\u0cd4\u0cd5\u0cd6\u0cd7\u0cd8\u0cd9\u0cda" + + "\u0cdb\u0cdc\u0cdd\u0cde\u0cdf\u0ce0\u0ce1\u0ce2\u0ce3\u0ce4\u0ce5\u0ce6\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee" + + "\u0cef\u0cf0\u0cf1\u0cf2\u0cf3\u0cf4\u0cf5\u0cf6\u0cf7\u0cf8\u0cf9\u0cfa\u0cfb\u0cfc\u0cfd\u0cfe\u0cff\u0d00\u0d01\u0d02" + + "\u0d03\u0d04\u0d05\u0d06\u0d07\u0d08\u0d09\u0d0a\u0d0b\u0d0c\u0d0d\u0d0e\u0d0f\u0d10\u0d11\u0d12\u0d13\u0d14\u0d15\u0d16" + + "\u0d17\u0d18\u0d19\u0d1a\u0d1b\u0d1c\u0d1d\u0d1e\u0d1f\u0d20\u0d21\u0d22\u0d23\u0d24\u0d25\u0d26\u0d27\u0d28\u0d29\u0d2a" + + "\u0d2b\u0d2c\u0d2d\u0d2e\u0d2f\u0d30\u0d31\u0d32\u0d33\u0d34\u0d35\u0d36\u0d37\u0d38\u0d39\u0d3a\u0d3b\u0d3c\u0d3d\u0d3e" + + "\u0d3f\u0d40\u0d41\u0d42\u0d43\u0d44\u0d45\u0d46\u0d47\u0d48\u0d49\u0d4a\u0d4b\u0d4c\u0d4d\u0d4e\u0d4f\u0d50\u0d51\u0d52" + + "\u0d53\u0d54\u0d55\u0d56\u0d57\u0d58\u0d59\u0d5a\u0d5b\u0d5c\u0d5d\u0d5e\u0d5f\u0d60\u0d61\u0d62\u0d63\u0d64\u0d65\u0d66" + + "\u0d67\u0d68\u0d69\u0d6a\u0d6b\u0d6c\u0d6d\u0d6e\u0d6f\u0d70\u0d71\u0d72\u0d73\u0d74\u0d75\u0d76\u0d77\u0d78\u0d79\u0d7a" + + "\u0d7b\u0d7c\u0d7d\u0d7e\u0d7f\u0d80\u0d81\u0d82\u0d83\u0d84\u0d85\u0d86\u0d87\u0d88\u0d89\u0d8a\u0d8b\u0d8c\u0d8d\u0d8e" + + "\u0d8f\u0d90\u0d91\u0d92\u0d93\u0d94\u0d95\u0d96\u0d97\u0d98\u0d99\u0d9a\u0d9b\u0d9c\u0d9d\u0d9e\u0d9f\u0da0\u0da1\u0da2" + + "\u0da3\u0da4\u0da5\u0da6\u0da7\u0da8\u0da9\u0daa\u0dab\u0dac\u0dad\u0dae\u0daf\u0db0\u0db1\u0db2\u0db3\u0db4\u0db5\u0db6" + + "\u0db7\u0db8\u0db9\u0dba\u0dbb\u0dbc\u0dbd\u0dbe\u0dbf\u0dc0\u0dc1\u0dc2\u0dc3\u0dc4\u0dc5\u0dc6\u0dc7\u0dc8\u0dc9\u0dca" + + "\u0dcb\u0dcc\u0dcd\u0dce\u0dcf\u0dd0\u0dd1\u0dd2\u0dd3\u0dd4\u0dd5\u0dd6\u0dd7\u0dd8\u0dd9\u0dda\u0ddb\u0ddc\u0ddd\u0dde" + + "\u0ddf\u0de0\u0de1\u0de2\u0de3\u0de4\u0de5\u0de6\u0de7\u0de8\u0de9\u0dea\u0deb\u0dec\u0ded\u0dee\u0def\u0df0\u0df1\u0df2" + + "\u0df3\u0df4\u0df5\u0df6\u0df7\u0df8\u0df9\u0dfa\u0dfb\u0dfc\u0dfd\u0dfe\u0dff\u0e00\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06" + + "\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a" + + "\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e" + + "\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\u0e3b\u0e3c\u0e3d\u0e3e\u0e3f\u0e40\u0e41\u0e42" + + "\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56" + + "\u0e57\u0e58\u0e59\u0e5a\u0e5b\u0e5c\u0e5d\u0e5e\u0e5f\u0e60\u0e61\u0e62\u0e63\u0e64\u0e65\u0e66\u0e67\u0e68\u0e69\u0e6a" + + "\u0e6b\u0e6c\u0e6d\u0e6e\u0e6f\u0e70\u0e71\u0e72\u0e73\u0e74\u0e75\u0e76\u0e77\u0e78\u0e79\u0e7a\u0e7b\u0e7c\u0e7d\u0e7e" + + "\u0e7f\u0e80\u0e81\u0e82\u0e83\u0e84\u0e85\u0e86\u0e87\u0e88\u0e89\u0e8a\u0e8b\u0e8c\u0e8d\u0e8e\u0e8f\u0e90\u0e91\u0e92" + + "\u0e93\u0e94\u0e95\u0e96\u0e97\u0e98\u0e99\u0e9a\u0e9b\u0e9c\u0e9d\u0e9e\u0e9f\u0ea0\u0ea1\u0ea2\u0ea3\u0ea4\u0ea5\u0ea6" + + "\u0ea7\u0ea8\u0ea9\u0eaa\u0eab\u0eac\u0ead\u0eae\u0eaf\u0eb0\u0eb1\u0eb2\u0eb3\u0eb4\u0eb5\u0eb6\u0eb7\u0eb8\u0eb9\u0eba" + + "\u0ebb\u0ebc\u0ebd\u0ebe\u0ebf\u0ec0\u0ec1\u0ec2\u0ec3\u0ec4\u0ec5\u0ec6\u0ec7\u0ec8\u0ec9\u0eca\u0ecb\u0ecc\u0ecd\u0ece" + + "\u0ecf\u0ed0\u0ed1\u0ed2\u0ed3\u0ed4\u0ed5\u0ed6\u0ed7\u0ed8\u0ed9\u0eda\u0edb\u0edc\u0edd\u0ede\u0edf\u0ee0\u0ee1\u0ee2" + + "\u0ee3\u0ee4\u0ee5\u0ee6\u0ee7\u0ee8\u0ee9\u0eea\u0eeb\u0eec\u0eed\u0eee\u0eef\u0ef0\u0ef1\u0ef2\u0ef3\u0ef4\u0ef5\u0ef6" + + "\u0ef7\u0ef8\u0ef9\u0efa\u0efb\u0efc\u0efd\u0efe\u0eff\u0f00\u0f01\u0f02\u0f03\u0f04\u0f05\u0f06\u0f07\u0f08\u0f09\u0f0a" + + "\u0f0b\u0f0c\u0f0d\u0f0e\u0f0f\u0f10\u0f11\u0f12\u0f13\u0f14\u0f15\u0f16\u0f17\u0f18\u0f19\u0f1a\u0f1b\u0f1c\u0f1d\u0f1e" + + "\u0f1f\u0f20\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f2a\u0f2b\u0f2c\u0f2d\u0f2e\u0f2f\u0f30\u0f31\u0f32" + + "\u0f33\u0f34\u0f35\u0f36\u0f37\u0f38\u0f39\u0f3a\u0f3b\u0f3c\u0f3d\u0f3e\u0f3f\u0f40\u0f41\u0f42\u0f43\u0f44\u0f45\u0f46" + + "\u0f47\u0f48\u0f49\u0f4a\u0f4b\u0f4c\u0f4d\u0f4e\u0f4f\u0f50\u0f51\u0f52\u0f53\u0f54\u0f55\u0f56\u0f57\u0f58\u0f59\u0f5a" + + "\u0f5b\u0f5c\u0f5d\u0f5e\u0f5f\u0f60\u0f61\u0f62\u0f63\u0f64\u0f65\u0f66\u0f67\u0f68\u0f69\u0f6a\u0f6b\u0f6c\u0f6d\u0f6e" + + "\u0f6f\u0f70\u0f71\u0f72\u0f73\u0f74\u0f75\u0f76\u0f77\u0f78\u0f79\u0f7a\u0f7b\u0f7c\u0f7d\u0f7e\u0f7f\u0f80\u0f81\u0f82" + + "\u0f83\u0f84\u0f85\u0f86\u0f87\u0f88\u0f89\u0f8a\u0f8b\u0f8c\u0f8d\u0f8e\u0f8f\u0f90\u0f91\u0f92\u0f93\u0f94\u0f95\u0f96" + + "\u0f97\u0f98\u0f99\u0f9a\u0f9b\u0f9c\u0f9d\u0f9e\u0f9f\u0fa0\u0fa1\u0fa2\u0fa3\u0fa4\u0fa5\u0fa6\u0fa7\u0fa8\u0fa9\u0faa" + + "\u0fab\u0fac\u0fad\u0fae\u0faf\u0fb0\u0fb1\u0fb2\u0fb3\u0fb4\u0fb5\u0fb6\u0fb7\u0fb8\u0fb9\u0fba\u0fbb\u0fbc\u0fbd\u0fbe" + + "\u0fbf\u0fc0\u0fc1\u0fc2\u0fc3\u0fc4\u0fc5\u0fc6\u0fc7\u0fc8\u0fc9\u0fca\u0fcb\u0fcc\u0fcd\u0fce\u0fcf\u0fd0\u0fd1\u0fd2" + + "\u0fd3\u0fd4\u0fd5\u0fd6\u0fd7\u0fd8\u0fd9\u0fda\u0fdb\u0fdc\u0fdd\u0fde\u0fdf\u0fe0\u0fe1\u0fe2\u0fe3\u0fe4\u0fe5\u0fe6" + + "\u0fe7\u0fe8\u0fe9\u0fea\u0feb\u0fec\u0fed\u0fee\u0fef\u0ff0\u0ff1\u0ff2\u0ff3\u0ff4\u0ff5\u0ff6\u0ff7\u0ff8\u0ff9\u0ffa" + + "\u0ffb\u0ffc\u0ffd\u0ffe\u0fff\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100a\u100b\u100c\u100d\u100e" + + "\u100f\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101a\u101b\u101c\u101d\u101e\u101f\u1020\u1021\u1022" + + "\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102a\u102b\u102c\u102d\u102e\u102f\u1030\u1031\u1032\u1033\u1034\u1035\u1036" + + "\u1037\u1038\u1039\u103a\u103b\u103c\u103d\u103e\u103f\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u104a" + + "\u104b\u104c\u104d\u104e\u104f\u1050\u1051\u1052\u1053\u1054\u1055\u1056\u1057\u1058\u1059\u105a\u105b\u105c\u105d\u105e" + + "\u105f\u1060\u1061\u1062\u1063\u1064\u1065\u1066\u1067\u1068\u1069\u106a\u106b\u106c\u106d\u106e\u106f\u1070\u1071\u1072" + + "\u1073\u1074\u1075\u1076\u1077\u1078\u1079\u107a\u107b\u107c\u107d\u107e\u107f\u1080\u1081\u1082\u1083\u1084\u1085\u1086"; } diff --git a/framework/tests/flowexpression/Private.java b/framework/tests/flowexpression/Private.java index 7ba665a6d46..17e0703cdcb 100644 --- a/framework/tests/flowexpression/Private.java +++ b/framework/tests/flowexpression/Private.java @@ -1,10 +1,9 @@ package flowexpression; -import testlib.flowexpression.qual.FlowExp; - import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; +import testlib.flowexpression.qual.FlowExp; public class Private { private final Map nameToPpt = new LinkedHashMap<>(); diff --git a/framework/tests/flowexpression/Standardize.java b/framework/tests/flowexpression/Standardize.java index 92d1dee11bb..ea35d71d168 100644 --- a/framework/tests/flowexpression/Standardize.java +++ b/framework/tests/flowexpression/Standardize.java @@ -1,11 +1,10 @@ package flowexpression; -import testlib.flowexpression.qual.FlowExp; - import java.io.FileInputStream; import java.util.HashMap; import java.util.List; import java.util.Map; +import testlib.flowexpression.qual.FlowExp; public class Standardize { Object field; diff --git a/framework/tests/flowexpression/UsePrivate.java b/framework/tests/flowexpression/UsePrivate.java index a19c4a3681a..055513f00d4 100644 --- a/framework/tests/flowexpression/UsePrivate.java +++ b/framework/tests/flowexpression/UsePrivate.java @@ -1,8 +1,7 @@ package flowexpression; -import testlib.flowexpression.qual.FlowExp; - import java.util.Collection; +import testlib.flowexpression.qual.FlowExp; public class UsePrivate { void test(Private app_ppts, Private test_ppts) { diff --git a/framework/tests/framework/AnnotatedAnnotation.java b/framework/tests/framework/AnnotatedAnnotation.java index a9b259e0880..7874e4410d9 100644 --- a/framework/tests/framework/AnnotatedAnnotation.java +++ b/framework/tests/framework/AnnotatedAnnotation.java @@ -1,7 +1,6 @@ -import testlib.util.*; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import testlib.util.*; @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface OddInt { diff --git a/framework/tests/framework/Arrays.java b/framework/tests/framework/Arrays.java index a3abf20f5c4..182f4bdde29 100644 --- a/framework/tests/framework/Arrays.java +++ b/framework/tests/framework/Arrays.java @@ -1,7 +1,6 @@ -import testlib.util.*; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import testlib.util.*; class Arrays { Object[] @Odd [] objB1 = new Object[] @Odd [] {}; diff --git a/framework/tests/framework/AssignmentsGeneric.java b/framework/tests/framework/AssignmentsGeneric.java index 27954a88c76..5e09af7606d 100644 --- a/framework/tests/framework/AssignmentsGeneric.java +++ b/framework/tests/framework/AssignmentsGeneric.java @@ -1,11 +1,10 @@ -import testlib.util.*; - import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; +import testlib.util.*; public class AssignmentsGeneric { diff --git a/framework/tests/framework/ExtendsDefault.java b/framework/tests/framework/ExtendsDefault.java index df80291e76f..0f5af496ff6 100644 --- a/framework/tests/framework/ExtendsDefault.java +++ b/framework/tests/framework/ExtendsDefault.java @@ -1,6 +1,5 @@ import org.checkerframework.framework.qual.DefaultQualifier; import org.checkerframework.framework.qual.TypeUseLocation; - import testlib.util.*; class ExtendsDefault { diff --git a/framework/tests/framework/GenericAlias.java b/framework/tests/framework/GenericAlias.java index 0ca0b17768d..eb91f31e345 100644 --- a/framework/tests/framework/GenericAlias.java +++ b/framework/tests/framework/GenericAlias.java @@ -1,10 +1,9 @@ -import testlib.util.*; - import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import testlib.util.*; public class GenericAlias { diff --git a/framework/tests/framework/GenericAliasInvalid.java b/framework/tests/framework/GenericAliasInvalid.java index ae75d31f5cc..04f6f39d565 100644 --- a/framework/tests/framework/GenericAliasInvalid.java +++ b/framework/tests/framework/GenericAliasInvalid.java @@ -1,9 +1,8 @@ -import testlib.util.*; - import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import testlib.util.*; public class GenericAliasInvalid { diff --git a/framework/tests/framework/GenericAliasInvalidCall.java b/framework/tests/framework/GenericAliasInvalidCall.java index 2295827dd38..a8d7a17773e 100644 --- a/framework/tests/framework/GenericAliasInvalidCall.java +++ b/framework/tests/framework/GenericAliasInvalidCall.java @@ -1,10 +1,9 @@ -import testlib.util.*; - import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import testlib.util.*; public class GenericAliasInvalidCall { diff --git a/framework/tests/framework/GenericTest4.java b/framework/tests/framework/GenericTest4.java index 6543a693425..c1c44881d22 100644 --- a/framework/tests/framework/GenericTest4.java +++ b/framework/tests/framework/GenericTest4.java @@ -1,6 +1,5 @@ -import testlib.util.*; - import java.util.Map; +import testlib.util.*; // Test case for Issue 134: // https://github.com/typetools/checker-framework/issues/134 diff --git a/framework/tests/framework/Supertypes.java b/framework/tests/framework/Supertypes.java index 21ec3ceb453..8f2464605f3 100644 --- a/framework/tests/framework/Supertypes.java +++ b/framework/tests/framework/Supertypes.java @@ -1,7 +1,6 @@ -import testlib.util.*; - import java.util.ArrayList; import java.util.List; +import testlib.util.*; public class Supertypes { static interface Inter {} @@ -72,24 +71,16 @@ void testListOp() { } void ListIterable() { - for (String s : a1) - ; - for (String s : a2) - ; - for (String s : b1) - ; - for (String s : b2) - ; + for (String s : a1) ; + for (String s : a2) ; + for (String s : b1) ; + for (String s : b2) ; // :: error: (enhancedfor.type.incompatible) - for (@Odd String s : a1) - ; // should emit error + for (@Odd String s : a1) ; // should emit error // :: error: (enhancedfor.type.incompatible) - for (@Odd String s : a2) - ; // should emit error - for (@Odd String s : b1) - ; - for (@Odd String s : b2) - ; + for (@Odd String s : a2) ; // should emit error + for (@Odd String s : b1) ; + for (@Odd String s : b2) ; } } diff --git a/framework/tests/framework/TypeInference.java b/framework/tests/framework/TypeInference.java index d1a62427900..d453f0fc295 100644 --- a/framework/tests/framework/TypeInference.java +++ b/framework/tests/framework/TypeInference.java @@ -1,9 +1,8 @@ -import testlib.util.*; - import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import testlib.util.*; public class TypeInference { diff --git a/framework/tests/framework/WildcardSuper.java b/framework/tests/framework/WildcardSuper.java index a976d212064..129ec2b526c 100644 --- a/framework/tests/framework/WildcardSuper.java +++ b/framework/tests/framework/WildcardSuper.java @@ -1,6 +1,5 @@ -import testlib.util.*; - import java.util.List; +import testlib.util.*; class WildcardSuper { void test(List list) { diff --git a/framework/tests/framework/Wildcards.java b/framework/tests/framework/Wildcards.java index 715cc8b66ef..a4603b49b69 100644 --- a/framework/tests/framework/Wildcards.java +++ b/framework/tests/framework/Wildcards.java @@ -1,7 +1,6 @@ -import testlib.util.*; - import java.util.Date; import java.util.List; +import testlib.util.*; public class Wildcards { void process(List arg) {} diff --git a/framework/tests/methodval/MethodValInferenceTest.java b/framework/tests/methodval/MethodValInferenceTest.java index 28e934f9cad..2707eba4e13 100644 --- a/framework/tests/methodval/MethodValInferenceTest.java +++ b/framework/tests/methodval/MethodValInferenceTest.java @@ -1,12 +1,11 @@ +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; import org.checkerframework.common.reflection.qual.ClassBound; import org.checkerframework.common.reflection.qual.ClassVal; import org.checkerframework.common.reflection.qual.MethodVal; import org.checkerframework.common.value.qual.ArrayLen; import org.checkerframework.common.value.qual.StringVal; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; - class MethodValInferenceTest { boolean flag = true; diff --git a/framework/tests/methodval/MethodValLUBTest.java b/framework/tests/methodval/MethodValLUBTest.java index 3f0a70328e6..0e2fd4a88b2 100644 --- a/framework/tests/methodval/MethodValLUBTest.java +++ b/framework/tests/methodval/MethodValLUBTest.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.reflection.qual.MethodVal; - import java.lang.reflect.Method; +import org.checkerframework.common.reflection.qual.MethodVal; public class MethodValLUBTest { Object unknown = null; diff --git a/framework/tests/purity-suggestions/PuritySuggestionsClass.java b/framework/tests/purity-suggestions/PuritySuggestionsClass.java index 882ca0dce4c..bcf7e0fe954 100644 --- a/framework/tests/purity-suggestions/PuritySuggestionsClass.java +++ b/framework/tests/purity-suggestions/PuritySuggestionsClass.java @@ -1,7 +1,6 @@ import org.checkerframework.dataflow.qual.Deterministic; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.test.*; - import testlib.util.*; // various tests for the checker to automatically suggest pure methods (most methods have been diff --git a/framework/tests/reflection/AnonymousClassTest.java b/framework/tests/reflection/AnonymousClassTest.java index 77b4d1957a0..147641e9fc5 100644 --- a/framework/tests/reflection/AnonymousClassTest.java +++ b/framework/tests/reflection/AnonymousClassTest.java @@ -1,10 +1,9 @@ +import java.lang.reflect.Method; import testlib.reflection.qual.ReflectBottom; import testlib.reflection.qual.Sibling1; import testlib.reflection.qual.Sibling2; import testlib.reflection.qual.Top; -import java.lang.reflect.Method; - public class AnonymousClassTest { /** * To build/run outside of the JUnit tests: diff --git a/framework/tests/reflection/ConstructorTest.java b/framework/tests/reflection/ConstructorTest.java index 224db49e24e..29900801fdb 100644 --- a/framework/tests/reflection/ConstructorTest.java +++ b/framework/tests/reflection/ConstructorTest.java @@ -1,9 +1,8 @@ +import java.lang.reflect.Constructor; import testlib.reflection.qual.Sibling1; import testlib.reflection.qual.Sibling2; import testlib.reflection.qual.Top; -import java.lang.reflect.Constructor; - class ConstructorTest { @Sibling1 int sibling1; @Sibling2 int sibling2; diff --git a/framework/tests/reflection/MethodTest.java b/framework/tests/reflection/MethodTest.java index 358be712ce3..426cba53e33 100644 --- a/framework/tests/reflection/MethodTest.java +++ b/framework/tests/reflection/MethodTest.java @@ -1,10 +1,9 @@ +import java.lang.reflect.Method; import testlib.reflection.qual.ReflectBottom; import testlib.reflection.qual.Sibling1; import testlib.reflection.qual.Sibling2; import testlib.reflection.qual.Top; -import java.lang.reflect.Method; - public class MethodTest { @Sibling1 int sibling1; diff --git a/framework/tests/returnsreceiverautovalue/Animal.java b/framework/tests/returnsreceiverautovalue/Animal.java index 7a6081a8298..525f9d3edd1 100644 --- a/framework/tests/returnsreceiverautovalue/Animal.java +++ b/framework/tests/returnsreceiverautovalue/Animal.java @@ -1,5 +1,4 @@ import com.google.auto.value.AutoValue; - import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.common.returnsreceiver.qual.*; diff --git a/framework/tests/returnsreceiverlombok/BuilderMethodRef.java b/framework/tests/returnsreceiverlombok/BuilderMethodRef.java index 8cdfd4c28a3..6fb9093dc1a 100644 --- a/framework/tests/returnsreceiverlombok/BuilderMethodRef.java +++ b/framework/tests/returnsreceiverlombok/BuilderMethodRef.java @@ -1,12 +1,10 @@ +import java.util.Optional; import lombok.Builder; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; - import org.checkerframework.common.returnsreceiver.qual.*; -import java.util.Optional; - @Builder @Accessors(fluent = true) public class BuilderMethodRef { diff --git a/framework/tests/returnsreceiverlombok/BuilderTest.java b/framework/tests/returnsreceiverlombok/BuilderTest.java index 3368d7de93e..c9c0dd1c0ff 100644 --- a/framework/tests/returnsreceiverlombok/BuilderTest.java +++ b/framework/tests/returnsreceiverlombok/BuilderTest.java @@ -3,7 +3,6 @@ import lombok.NonNull; import lombok.Setter; import lombok.experimental.Accessors; - import org.checkerframework.common.returnsreceiver.qual.*; @Builder diff --git a/framework/tests/subtyping/InvariantArrays.java b/framework/tests/subtyping/InvariantArrays.java index 76722a38f36..bd7090a5819 100644 --- a/framework/tests/subtyping/InvariantArrays.java +++ b/framework/tests/subtyping/InvariantArrays.java @@ -1,7 +1,6 @@ -import testlib.util.*; - import java.util.LinkedList; import java.util.List; +import testlib.util.*; class InvariantArrays { Object[] oa; diff --git a/framework/tests/subtyping/Poly.java b/framework/tests/subtyping/Poly.java index 26dc40352e9..32f7358abf8 100644 --- a/framework/tests/subtyping/Poly.java +++ b/framework/tests/subtyping/Poly.java @@ -1,8 +1,7 @@ -import testlib.util.*; - import java.util.HashMap; import java.util.List; import java.util.Map; +import testlib.util.*; class Poly { diff --git a/framework/tests/subtyping/Simple.java b/framework/tests/subtyping/Simple.java index 4f32ae4c5dd..ba999240abb 100644 --- a/framework/tests/subtyping/Simple.java +++ b/framework/tests/subtyping/Simple.java @@ -1,14 +1,12 @@ -import testlib.util.Encrypted; - import java.util.LinkedList; import java.util.List; +import testlib.util.Encrypted; abstract class BasicFunctionality { @Encrypted String encrypt(String s) { byte[] b = s.getBytes(); - for (int i = 0; i < b.length; b[i++]++) - ; + for (int i = 0; i < b.length; b[i++]++) ; // :: warning: (cast.unsafe) return (@Encrypted String) new String(b); } diff --git a/framework/tests/subtyping/UnusedTypes.java b/framework/tests/subtyping/UnusedTypes.java index 88ff425cd4d..ac4092ff161 100644 --- a/framework/tests/subtyping/UnusedTypes.java +++ b/framework/tests/subtyping/UnusedTypes.java @@ -1,8 +1,7 @@ -import org.checkerframework.framework.qual.SubtypeOf; -import org.checkerframework.framework.qual.Unused; - import java.lang.annotation.ElementType; import java.lang.annotation.Target; +import org.checkerframework.framework.qual.SubtypeOf; +import org.checkerframework.framework.qual.Unused; // This test case is quite meaningless, as it's not run with the // Nullness Checker. See nullness/UnusedNullness.java instead. diff --git a/framework/tests/testchecker/AnonymousClasses.java b/framework/tests/testchecker/AnonymousClasses.java index cbdfe1de96b..74316c8970d 100644 --- a/framework/tests/testchecker/AnonymousClasses.java +++ b/framework/tests/testchecker/AnonymousClasses.java @@ -1,8 +1,7 @@ +import java.util.Comparator; import testchecker.quals.H1S1; import testchecker.quals.H1S2; -import java.util.Comparator; - class AnonymousClasses { private <@H1S1 T extends @H1S1 Comparator> void testGenericAnonymous() { // :: error: (type.argument.type.incompatible) :: error: (constructor.invocation.invalid) diff --git a/framework/tests/testchecker/Defaulting.java b/framework/tests/testchecker/Defaulting.java index d63fa3499f3..354f56239cd 100644 --- a/framework/tests/testchecker/Defaulting.java +++ b/framework/tests/testchecker/Defaulting.java @@ -1,6 +1,5 @@ import org.checkerframework.framework.qual.DefaultQualifier; import org.checkerframework.framework.qual.TypeUseLocation; - import testchecker.quals.*; // Test defaulting behavior, e.g. that local variables, casts, and instanceof @@ -141,8 +140,7 @@ Object res3() { value = H1S1.class, locations = {TypeUseLocation.RECEIVER}) public class ReceiverDefaulting { - public ReceiverDefaulting() {} - ; + public ReceiverDefaulting() {}; public void m() {} } diff --git a/framework/tests/testchecker/IncompatibleBounds.java b/framework/tests/testchecker/IncompatibleBounds.java index d364e09c1b6..d33a492bc43 100644 --- a/framework/tests/testchecker/IncompatibleBounds.java +++ b/framework/tests/testchecker/IncompatibleBounds.java @@ -2,7 +2,6 @@ import org.checkerframework.framework.qual.DefaultQualifier; import org.checkerframework.framework.qual.TypeUseLocation; - import testchecker.quals.*; /** diff --git a/framework/tests/testchecker/InferTypeArgsPolyChecker.java b/framework/tests/testchecker/InferTypeArgsPolyChecker.java index d220cfdc489..7136f894797 100644 --- a/framework/tests/testchecker/InferTypeArgsPolyChecker.java +++ b/framework/tests/testchecker/InferTypeArgsPolyChecker.java @@ -1,8 +1,7 @@ -import testchecker.quals.*; - import java.util.ArrayList; import java.util.List; import java.util.Map; +import testchecker.quals.*; class InferTypeArgsPolyChecker { // ---------------------------------------------------------- diff --git a/framework/tests/typedecldefault/BoundsAndDefaults.java b/framework/tests/typedecldefault/BoundsAndDefaults.java index 1ceb6d78229..e038ca3e889 100644 --- a/framework/tests/typedecldefault/BoundsAndDefaults.java +++ b/framework/tests/typedecldefault/BoundsAndDefaults.java @@ -1,5 +1,4 @@ import org.checkerframework.framework.qual.*; - import typedecldefault.quals.*; // @TypeDeclDefaultBottom is the default qualifier in hierarchy. diff --git a/framework/tests/typedecldefault/TestDefaultForTypeDecl.java b/framework/tests/typedecldefault/TestDefaultForTypeDecl.java index ce95e034372..228d21ca229 100644 --- a/framework/tests/typedecldefault/TestDefaultForTypeDecl.java +++ b/framework/tests/typedecldefault/TestDefaultForTypeDecl.java @@ -1,5 +1,4 @@ import org.checkerframework.framework.qual.NoDefaultQualifierForUse; - import typedecldefault.quals.*; // @TypeDeclDefaultBottom is the default qualifier in hierarchy. diff --git a/framework/tests/value-handle-property-file/PropertyFileRead.java b/framework/tests/value-handle-property-file/PropertyFileRead.java new file mode 100644 index 00000000000..8fca4de158e --- /dev/null +++ b/framework/tests/value-handle-property-file/PropertyFileRead.java @@ -0,0 +1,48 @@ +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; +import org.checkerframework.common.value.qual.StringVal; + +class PropertyFileRead { + + public static final String propFile = "tests/value-handle-property-file/a.properties"; + + void a() throws IOException { + Properties prop = new Properties(); + InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFile); + prop.load(inputStream); + @StringVal("http://www.example.com") String url = prop.getProperty("URL"); + } + + void b() throws IOException { + Properties prop = new Properties(); + InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFile); + prop.load(inputStream); + @StringVal({"localhost", "127.0.0.1"}) String host = prop.getProperty("HOST", "127.0.0.1"); + } + + void c() throws IOException { + Properties prop = new Properties(); + InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFile); + prop.load(inputStream); + // :: warning: (key.not.exist.in.properties.file) + @StringVal("default value") String host = prop.getProperty("NOSUCHKEY", "default value"); + } + + void d() throws IOException { + Properties prop = new Properties(); + InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFile); + prop.load(inputStream); + // :: error: (assignment.type.incompatible) + @StringVal("8081") String port = prop.getProperty("PORT"); + } + + void e() throws IOException { + Properties prop = new Properties(); + InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFile); + prop.load(inputStream); + // :: error: (assignment.type.incompatible) + @StringVal("8081") String port = prop.getProperty("PORT"); + @StringVal("http://www.example.com") String url = prop.getProperty("URL"); + } +} diff --git a/framework/tests/value-handle-property-file/a.properties b/framework/tests/value-handle-property-file/a.properties new file mode 100644 index 00000000000..8ff0305fa72 --- /dev/null +++ b/framework/tests/value-handle-property-file/a.properties @@ -0,0 +1,3 @@ +URL=http://www.example.com +HOST=localhost +PORT=8080 diff --git a/framework/tests/value-non-null-strings-concatenation/Binaries.java b/framework/tests/value-non-null-strings-concatenation/Binaries.java index 0f74c80239f..5ae6dc1a0f5 100644 --- a/framework/tests/value-non-null-strings-concatenation/Binaries.java +++ b/framework/tests/value-non-null-strings-concatenation/Binaries.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.*; - import java.util.BitSet; +import org.checkerframework.common.value.qual.*; class Binaries { private BitSet bitmap; diff --git a/framework/tests/value/BigIntegerTest.java b/framework/tests/value/BigIntegerTest.java index 4bc59641569..547e8f86530 100644 --- a/framework/tests/value/BigIntegerTest.java +++ b/framework/tests/value/BigIntegerTest.java @@ -1,8 +1,7 @@ +import java.math.BigInteger; import org.checkerframework.common.value.qual.IntRange; import org.checkerframework.common.value.qual.PolyValue; -import java.math.BigInteger; - public class BigIntegerTest { void construct1(@IntRange(from = -1, to = 1) int signum, byte[] magnitude) { BigInteger val = new BigInteger(signum, magnitude); diff --git a/framework/tests/value/Binaries.java b/framework/tests/value/Binaries.java index ef381e8edb3..b5816058e2a 100644 --- a/framework/tests/value/Binaries.java +++ b/framework/tests/value/Binaries.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.*; - import java.util.BitSet; +import org.checkerframework.common.value.qual.*; class Binaries { private BitSet bitmap; diff --git a/framework/tests/value/Fields.java b/framework/tests/value/Fields.java index eba850056cf..54ea4b69ba0 100644 --- a/framework/tests/value/Fields.java +++ b/framework/tests/value/Fields.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.*; - import javax.swing.plaf.BorderUIResource; +import org.checkerframework.common.value.qual.*; class Fields { diff --git a/framework/tests/value/Issue1214.java b/framework/tests/value/Issue1214.java index 3875cdd27c7..3c14f7fbd89 100644 --- a/framework/tests/value/Issue1214.java +++ b/framework/tests/value/Issue1214.java @@ -37,8 +37,7 @@ static void arrayAccess(String[] array) { static void forArray(String[] array) { int n = 0; try { - for (String s : array) - ; + for (String s : array) ; } catch (NullPointerException e) { n = 1; } catch (ArrayIndexOutOfBoundsException e) { @@ -54,8 +53,7 @@ static void forArray(String[] array) { static void forIterable(Iterable itr) { int n = 0; try { - for (String s : itr) - ; + for (String s : itr) ; } catch (NullPointerException e) { n = 1; } catch (Exception e) { diff --git a/framework/tests/value/Issue1218.java b/framework/tests/value/Issue1218.java index 701570224f6..799e708fe7a 100644 --- a/framework/tests/value/Issue1218.java +++ b/framework/tests/value/Issue1218.java @@ -1,9 +1,8 @@ // Test case for Issue 1218: // https://github.com/typetools/checker-framework/issues/1218 -import org.checkerframework.common.value.qual.*; - import java.io.Serializable; +import org.checkerframework.common.value.qual.*; class Issue1218 { diff --git a/framework/tests/value/Loop.java b/framework/tests/value/Loop.java index 8f81799c0a1..6cb0b0daa84 100644 --- a/framework/tests/value/Loop.java +++ b/framework/tests/value/Loop.java @@ -1,10 +1,9 @@ +import java.util.Iterator; +import java.util.Set; import org.checkerframework.common.value.qual.ArrayLen; import org.checkerframework.common.value.qual.BottomVal; import org.checkerframework.common.value.qual.IntVal; -import java.util.Iterator; -import java.util.Set; - public class Loop { void test1(final double @ArrayLen(20) [] f2) { int x; diff --git a/framework/tests/value/Repo.java b/framework/tests/value/Repo.java index 55f6b14aa33..16dd993a16f 100644 --- a/framework/tests/value/Repo.java +++ b/framework/tests/value/Repo.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.*; - import java.util.BitSet; +import org.checkerframework.common.value.qual.*; class Repo { private BitSet bitmap; diff --git a/framework/tests/value/VarArgRe.java b/framework/tests/value/VarArgRe.java index 41b3f821c92..bbd684bbeb3 100644 --- a/framework/tests/value/VarArgRe.java +++ b/framework/tests/value/VarArgRe.java @@ -1,5 +1,4 @@ import org.checkerframework.common.value.qual.IntVal; - import testlib.lib.VarArgMethods; public class VarArgRe { diff --git a/framework/tests/value/loops/WidenedUpperBound.java b/framework/tests/value/loops/WidenedUpperBound.java index ebc257c7b6e..5f92f740071 100644 --- a/framework/tests/value/loops/WidenedUpperBound.java +++ b/framework/tests/value/loops/WidenedUpperBound.java @@ -1,6 +1,5 @@ -import org.checkerframework.common.value.qual.IntRange; - import java.util.List; +import org.checkerframework.common.value.qual.IntRange; // Because the analysis of loops isn't precise enough, the Value Checker issues // warnings on this test case. So, suppress those warnings, but run the tests diff --git a/framework/tests/whole-program-inference/non-annotated/ExpectedErrors.java b/framework/tests/whole-program-inference/non-annotated/ExpectedErrors.java index 96c00390573..f26cd258a2f 100644 --- a/framework/tests/whole-program-inference/non-annotated/ExpectedErrors.java +++ b/framework/tests/whole-program-inference/non-annotated/ExpectedErrors.java @@ -1,5 +1,5 @@ +import java.lang.reflect.Field; import org.checkerframework.framework.qual.IgnoreInWholeProgramInference; - import testlib.wholeprograminference.qual.Parent; import testlib.wholeprograminference.qual.Sibling1; import testlib.wholeprograminference.qual.Sibling2; @@ -7,8 +7,6 @@ import testlib.wholeprograminference.qual.Top; import testlib.wholeprograminference.qual.WholeProgramInferenceBottom; -import java.lang.reflect.Field; - /** * This file contains expected errors that should exist even after the jaif type inference occurs. */ diff --git a/framework/tests/whole-program-inference/non-annotated/MultiDimensionalArrays.java b/framework/tests/whole-program-inference/non-annotated/MultiDimensionalArrays.java index 259cd0300e1..44a3000b89c 100644 --- a/framework/tests/whole-program-inference/non-annotated/MultiDimensionalArrays.java +++ b/framework/tests/whole-program-inference/non-annotated/MultiDimensionalArrays.java @@ -1,16 +1,14 @@ // This test ensures that annotations on different component types of multidimensional arrays // are printed correctly. +import java.util.List; import org.checkerframework.common.aliasing.qual.MaybeAliased; import org.checkerframework.common.aliasing.qual.NonLeaked; import org.checkerframework.common.aliasing.qual.Unique; - import testlib.wholeprograminference.qual.Sibling1; import testlib.wholeprograminference.qual.Sibling2; import testlib.wholeprograminference.qual.SiblingWithFields; -import java.util.List; - class MultiDimensionalArrays { // two dimensional arrays diff --git a/framework/tests/whole-program-inference/non-annotated/OtherAnnotations.java b/framework/tests/whole-program-inference/non-annotated/OtherAnnotations.java index d7b8b729e26..9aa688afb64 100644 --- a/framework/tests/whole-program-inference/non-annotated/OtherAnnotations.java +++ b/framework/tests/whole-program-inference/non-annotated/OtherAnnotations.java @@ -1,7 +1,6 @@ // Test that having other, unrelated annotations on fields/methods/etc doesn't foul up inference. import org.checkerframework.common.aliasing.qual.Unique; - import testlib.wholeprograminference.qual.Sibling1; class OtherAnnotations { diff --git a/framework/tests/whole-program-inference/non-annotated/ValueCheck.java b/framework/tests/whole-program-inference/non-annotated/ValueCheck.java index 7a6c67a1373..cebf437cb8c 100644 --- a/framework/tests/whole-program-inference/non-annotated/ValueCheck.java +++ b/framework/tests/whole-program-inference/non-annotated/ValueCheck.java @@ -4,7 +4,6 @@ // an annotation from the main checker. import org.checkerframework.common.value.qual.IntVal; - import testlib.wholeprograminference.qual.Sibling1; class ValueCheck { diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/AbstractTypeProcessor.java b/javacutil/src/main/java/org/checkerframework/javacutil/AbstractTypeProcessor.java index 9cd3d14547a..80a16611778 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/AbstractTypeProcessor.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/AbstractTypeProcessor.java @@ -11,12 +11,8 @@ import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Log; - -import org.checkerframework.dataflow.qual.SideEffectFree; - import java.util.HashSet; import java.util.Set; - import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.ProcessingEnvironment; import javax.annotation.processing.Processor; @@ -24,6 +20,7 @@ import javax.lang.model.element.Name; import javax.lang.model.element.TypeElement; import javax.lang.model.util.ElementFilter; +import org.checkerframework.dataflow.qual.SideEffectFree; /** * This class is an abstract annotation processor designed to be a convenient superclass for diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationBuilder.java b/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationBuilder.java index 99d36cb9ab5..43cd11c64ce 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationBuilder.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationBuilder.java @@ -1,9 +1,5 @@ package org.checkerframework.javacutil; -import org.checkerframework.checker.interning.qual.Interned; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.qual.SideEffectFree; - import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.Arrays; @@ -14,7 +10,6 @@ import java.util.Map; import java.util.Objects; import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.AnnotationValue; @@ -33,6 +28,9 @@ import javax.lang.model.util.ElementFilter; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; +import org.checkerframework.checker.interning.qual.Interned; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.qual.SideEffectFree; /** * Builds an annotation mirror that may have some values. diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationProvider.java b/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationProvider.java index 548777dab80..12306ada607 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationProvider.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationProvider.java @@ -1,13 +1,10 @@ package org.checkerframework.javacutil; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.lang.annotation.Annotation; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; +import org.checkerframework.checker.nullness.qual.Nullable; // This class exists to break a circular dependency between the dataflow framework and // type-checkers. diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationUtils.java b/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationUtils.java index aec5b74335e..9e9ced60bb4 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationUtils.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/AnnotationUtils.java @@ -6,12 +6,6 @@ import com.sun.tools.javac.code.Symbol.VarSymbol; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.model.JavacElements; - -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; -import org.checkerframework.javacutil.AnnotationBuilder.CheckerFrameworkAnnotationMirror; - import java.lang.annotation.Annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; @@ -30,7 +24,6 @@ import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.AnnotationValue; import javax.lang.model.element.ElementKind; @@ -39,6 +32,10 @@ import javax.lang.model.element.TypeElement; import javax.lang.model.type.DeclaredType; import javax.lang.model.util.ElementFilter; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; +import org.checkerframework.javacutil.AnnotationBuilder.CheckerFrameworkAnnotationMirror; /** A utility class for working with annotations. */ public class AnnotationUtils { diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/BasicAnnotationProvider.java b/javacutil/src/main/java/org/checkerframework/javacutil/BasicAnnotationProvider.java index 6278813ebd0..f45271bf512 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/BasicAnnotationProvider.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/BasicAnnotationProvider.java @@ -1,14 +1,11 @@ package org.checkerframework.javacutil; import com.sun.source.tree.Tree; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.lang.annotation.Annotation; import java.util.List; - import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; +import org.checkerframework.checker.nullness.qual.Nullable; /** An AnnotationProvider that is independent of any type hierarchy. */ public class BasicAnnotationProvider implements AnnotationProvider { diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/BasicTypeProcessor.java b/javacutil/src/main/java/org/checkerframework/javacutil/BasicTypeProcessor.java index 0d14696f205..30f3dd0bc7e 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/BasicTypeProcessor.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/BasicTypeProcessor.java @@ -3,10 +3,8 @@ import com.sun.source.tree.CompilationUnitTree; import com.sun.source.util.TreePath; import com.sun.source.util.TreePathScanner; - -import org.checkerframework.checker.nullness.qual.MonotonicNonNull; - import javax.lang.model.element.TypeElement; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** * Process the types in an AST in a trivial manner, with hooks for derived classes to actually do diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/ElementUtils.java b/javacutil/src/main/java/org/checkerframework/javacutil/ElementUtils.java index 29c25be66b1..30e4959bb51 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/ElementUtils.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/ElementUtils.java @@ -2,9 +2,6 @@ import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.code.Symbol; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; @@ -15,7 +12,6 @@ import java.util.Iterator; import java.util.List; import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; @@ -33,6 +29,7 @@ import javax.lang.model.util.ElementFilter; import javax.lang.model.util.Elements; import javax.tools.JavaFileObject; +import org.checkerframework.checker.nullness.qual.Nullable; /** A Utility class for analyzing {@code Element}s. */ public class ElementUtils { diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/InternalUtils.java b/javacutil/src/main/java/org/checkerframework/javacutil/InternalUtils.java index 4bc340cc81c..2aaaad5cc13 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/InternalUtils.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/InternalUtils.java @@ -4,7 +4,6 @@ import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition; - import javax.annotation.processing.ProcessingEnvironment; /** Miscellaneous static utility methods. */ diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/Pair.java b/javacutil/src/main/java/org/checkerframework/javacutil/Pair.java index 407bab0cb9e..e083edce2bd 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/Pair.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/Pair.java @@ -1,11 +1,10 @@ package org.checkerframework.javacutil; +import java.util.Objects; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.SideEffectFree; -import java.util.Objects; - /** * Simple pair class for multiple returns. * diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/PluginUtil.java b/javacutil/src/main/java/org/checkerframework/javacutil/PluginUtil.java index 5680e499ecb..19a7988f981 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/PluginUtil.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/PluginUtil.java @@ -4,9 +4,6 @@ import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Options; - -import org.checkerframework.checker.nullness.qual.Nullable; - import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; @@ -23,8 +20,8 @@ import java.util.StringJoiner; import java.util.regex.Matcher; import java.util.regex.Pattern; - import javax.annotation.processing.ProcessingEnvironment; +import org.checkerframework.checker.nullness.qual.Nullable; /** * This file contains basic utility functions that should be reused to create a command-line call to diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/Resolver.java b/javacutil/src/main/java/org/checkerframework/javacutil/Resolver.java index 10ec91ef03a..8f040499b96 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/Resolver.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/Resolver.java @@ -20,21 +20,18 @@ import com.sun.tools.javac.util.Log; import com.sun.tools.javac.util.Name; import com.sun.tools.javac.util.Names; - -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Arrays; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; /** A Utility class to find symbols corresponding to string references. */ // This class reflectively accesses jdk.compiler/com.sun.tools.javac.comp. diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/SystemUtil.java b/javacutil/src/main/java/org/checkerframework/javacutil/SystemUtil.java index 42df7bc74a4..b0bf27b9558 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/SystemUtil.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/SystemUtil.java @@ -4,10 +4,6 @@ import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Options; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.plumelib.util.UtilPlume; - import java.io.BufferedReader; import java.io.File; import java.io.FileReader; @@ -16,8 +12,9 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; - import javax.annotation.processing.ProcessingEnvironment; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.plumelib.util.UtilPlume; /** This file contains basic utility functions. */ public class SystemUtil { diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/TreeUtils.java b/javacutil/src/main/java/org/checkerframework/javacutil/TreeUtils.java index ed44d28c6ff..104a6c1bfa9 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/TreeUtils.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/TreeUtils.java @@ -50,19 +50,12 @@ import com.sun.tools.javac.tree.JCTree.JCTypeParameter; import com.sun.tools.javac.tree.TreeInfo; import com.sun.tools.javac.util.Context; - -import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.dataflow.qual.Pure; - import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.EnumSet; import java.util.List; import java.util.Set; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; @@ -75,6 +68,10 @@ import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.util.ElementFilter; +import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.dataflow.qual.Pure; /** A utility class made for helping to analyze a given {@code Tree}. */ // TODO: This class needs significant restructuring diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/TypeAnnotationUtils.java b/javacutil/src/main/java/org/checkerframework/javacutil/TypeAnnotationUtils.java index c68117cb360..f3c833f0614 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/TypeAnnotationUtils.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/TypeAnnotationUtils.java @@ -10,11 +10,9 @@ import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.Name; import com.sun.tools.javac.util.Pair; - import java.nio.ByteBuffer; import java.util.Arrays; import java.util.Map; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.AnnotationValue; diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/TypesUtils.java b/javacutil/src/main/java/org/checkerframework/javacutil/TypesUtils.java index 065e257fb3a..21a6b461ce6 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/TypesUtils.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/TypesUtils.java @@ -8,11 +8,6 @@ import com.sun.tools.javac.model.JavacTypes; import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.util.Context; - -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; -import org.plumelib.util.ImmutableTypes; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.Element; import javax.lang.model.element.Name; @@ -27,6 +22,9 @@ import javax.lang.model.type.WildcardType; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers; +import org.plumelib.util.ImmutableTypes; /** A utility class that helps with {@link TypeMirror}s. */ // TODO: This class needs significant restructuring diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/trees/DetachedVarSymbol.java b/javacutil/src/main/java/org/checkerframework/javacutil/trees/DetachedVarSymbol.java index 2edcbed71fd..4a972d37572 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/trees/DetachedVarSymbol.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/trees/DetachedVarSymbol.java @@ -4,7 +4,6 @@ import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.util.Name; - import org.checkerframework.checker.nullness.qual.Nullable; /** diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/trees/TreeBuilder.java b/javacutil/src/main/java/org/checkerframework/javacutil/trees/TreeBuilder.java index 2d93efa2781..4c6d24d7dd0 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/trees/TreeBuilder.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/trees/TreeBuilder.java @@ -23,13 +23,8 @@ import com.sun.tools.javac.tree.TreeMaker; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Names; - -import org.checkerframework.javacutil.TreeUtils; -import org.checkerframework.javacutil.TypesUtils; - import java.util.ArrayList; import java.util.List; - import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; @@ -43,6 +38,8 @@ import javax.lang.model.util.ElementFilter; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; +import org.checkerframework.javacutil.TreeUtils; +import org.checkerframework.javacutil.TypesUtils; /** * The TreeBuilder permits the creation of new AST Trees using the non-public Java compiler API diff --git a/javacutil/src/main/java/org/checkerframework/javacutil/trees/TreeParser.java b/javacutil/src/main/java/org/checkerframework/javacutil/trees/TreeParser.java index a2e23d1e0ee..971e1351c17 100644 --- a/javacutil/src/main/java/org/checkerframework/javacutil/trees/TreeParser.java +++ b/javacutil/src/main/java/org/checkerframework/javacutil/trees/TreeParser.java @@ -8,12 +8,9 @@ import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.ListBuffer; import com.sun.tools.javac.util.Names; - -import org.checkerframework.javacutil.Pair; - import java.util.StringTokenizer; - import javax.annotation.processing.ProcessingEnvironment; +import org.checkerframework.javacutil.Pair; /** * A Utility class for parsing Java expression snippets, and converting them to proper Javac AST