[typetools/checker-framework] 1014d0: Add the Modifiability Checker (#8234)

0 views
Skip to first unread message

Yuki Yang

unread,
Oct 1, 2026, 12:57:44 PM (3 days ago) Oct 1
to checker-fr...@googlegroups.com
Branch: refs/heads/master
Home: https://github.com/typetools/checker-framework
Commit: 1014d08ed22948b442b6f5e5f1dcad4be169a46a
https://github.com/typetools/checker-framework/commit/1014d08ed22948b442b6f5e5f1dcad4be169a46a
Author: Yuki Yang <106207451+...@users.noreply.github.com>
Date: 2026-10-01 (Thu, 01 Oct 2026)

Changed paths:
M annotation-file-utilities/src/main/java/org/checkerframework/afu/annotator/find/ConstructorInsertion.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/annotator/find/Criteria.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/annotator/find/Insertion.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/annotator/find/TypedInsertion.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/annotator/specification/IndexFileSpecification.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/Annotation.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/ABlock.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/AClass.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/ADeclaration.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/AElement.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/AExpression.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/AField.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/AMethod.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/AScene.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/el/ATypeElement.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/type/Type.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/util/coll/VivifyingMap.java
M annotation-file-utilities/src/main/java/org/checkerframework/afu/scenelib/util/coll/WrapperMap.java
M build.gradle
M buildSrc/src/main/groovy/cf-spotless.gradle
M checker-qual/src/main/java/module-info.java
M checker-qual/src/main/java/org/checkerframework/checker/formatter/qual/ConversionCategory.java
M checker-qual/src/main/java/org/checkerframework/checker/i18nformatter/qual/I18nConversionCategory.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/BottomGrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/BottomReplaceable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/BottomSeqGrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/BottomShrinkable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/Growable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/IteratorPolyMod.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/MaybeGrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/MaybeIteratorPolyMod.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/MaybeModifiable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/MaybeReplaceable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/MaybeSeqGrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/MaybeShrinkable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/Modifiable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/PolyGrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/PolyIteratorPolyMod.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/PolyModifiable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/PolyReplaceable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/PolySeqGrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/PolyShrinkable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/PreservesModifiability.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/Replaceable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/SeqGrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/SeqUngrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/Shrinkable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/ThrowsUnsupportedOperation.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/Ungrowable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/Unmodifiable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/UnmodifiableParam.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/Unreplaceable.java
A checker-qual/src/main/java/org/checkerframework/checker/modifiability/qual/Unshrinkable.java
M checker/src/main/java/org/checkerframework/checker/guieffect/GuiEffectTypeFactory.java
M checker/src/main/java/org/checkerframework/checker/index/searchindex/SearchIndexAnnotatedTypeFactory.java
A checker/src/main/java/org/checkerframework/checker/modifiability/ModifiabilityBaseAnnotatedTypeFactory.java
A checker/src/main/java/org/checkerframework/checker/modifiability/ModifiabilityBaseChecker.java
A checker/src/main/java/org/checkerframework/checker/modifiability/ModifiabilityBaseVisitor.java
A checker/src/main/java/org/checkerframework/checker/modifiability/ModifiabilityChecker.java
A checker/src/main/java/org/checkerframework/checker/modifiability/ModifiabilityVisitor.java
A checker/src/main/java/org/checkerframework/checker/modifiability/grow/GrowAnnotatedTypeFactory.java
A checker/src/main/java/org/checkerframework/checker/modifiability/grow/GrowChecker.java
A checker/src/main/java/org/checkerframework/checker/modifiability/ical4j.astub
A checker/src/main/java/org/checkerframework/checker/modifiability/iterator/IteratorAnnotatedTypeFactory.java
A checker/src/main/java/org/checkerframework/checker/modifiability/iterator/IteratorChecker.java
A checker/src/main/java/org/checkerframework/checker/modifiability/iterator/IteratorVisitor.java
A checker/src/main/java/org/checkerframework/checker/modifiability/iterator/javaparser.astub
A checker/src/main/java/org/checkerframework/checker/modifiability/javaparser.astub
A checker/src/main/java/org/checkerframework/checker/modifiability/jdk.astub
A checker/src/main/java/org/checkerframework/checker/modifiability/messages.properties
A checker/src/main/java/org/checkerframework/checker/modifiability/replace/ReplaceAnnotatedTypeFactory.java
A checker/src/main/java/org/checkerframework/checker/modifiability/replace/ReplaceChecker.java
A checker/src/main/java/org/checkerframework/checker/modifiability/seqgrow/SeqGrowAnnotatedTypeFactory.java
A checker/src/main/java/org/checkerframework/checker/modifiability/seqgrow/SeqGrowChecker.java
A checker/src/main/java/org/checkerframework/checker/modifiability/shrink/ShrinkAnnotatedTypeFactory.java
A checker/src/main/java/org/checkerframework/checker/modifiability/shrink/ShrinkChecker.java
A checker/src/test/java/org/checkerframework/checker/test/junit/ModifiabilityTest.java
A checker/tests/modifiability/AliasCanonicalizationTest.java
A checker/tests/modifiability/BasicModifiabilityTest.java
A checker/tests/modifiability/BasicModifiableTest3.java
A checker/tests/modifiability/ClassAnnosVSDefaultQualifierForUse.java
A checker/tests/modifiability/CollectionModifiableTest.java
A checker/tests/modifiability/CollectionsModifiableTest.java
A checker/tests/modifiability/ConcurrentHashMapModifiableTest.java
A checker/tests/modifiability/ConstructorResultTypeTest.java
A checker/tests/modifiability/CustomCollectionAnnotations.java
A checker/tests/modifiability/ExactReceiverOverrideTest.java
A checker/tests/modifiability/GenericCapabilityTest.java
A checker/tests/modifiability/GetOrDefaultTest.java
A checker/tests/modifiability/HierarchyTest.java
A checker/tests/modifiability/IdentityHashMapModifiableTest.java
A checker/tests/modifiability/ImplicitReceiverIteratorTest.java
A checker/tests/modifiability/InheritedImplementationTest.java
A checker/tests/modifiability/IntersectionBoundTest.java
A checker/tests/modifiability/IteratorCheckerTest.java
A checker/tests/modifiability/IteratorConflictingAnnosTypeTuple.java
A checker/tests/modifiability/IteratorConflictingAnnosUse.java
A checker/tests/modifiability/IteratorPrecisionTest.java
A checker/tests/modifiability/IteratorTypeVariableReceiverTest.java
A checker/tests/modifiability/ListQueueTest.java
A checker/tests/modifiability/MapModifiableTest.java
A checker/tests/modifiability/PolyIteratorResultTest.java
A checker/tests/modifiability/PolyModifiableTest.java
A checker/tests/modifiability/PolyShrinkableTest.java
A checker/tests/modifiability/PreservesModifiabilityPolyArgumentTest.java
A checker/tests/modifiability/PreservesModifiabilityTest.java
A checker/tests/modifiability/QueueModifiableTest.java
A checker/tests/modifiability/SeqGrowableMapTest.java
A checker/tests/modifiability/SeqGrowableTest.java
A checker/tests/modifiability/SeqGrowableTest2.java
A checker/tests/modifiability/SetModifiableTest.java
A checker/tests/modifiability/SetRefinementTest.java
A checker/tests/modifiability/SetTest.java
A checker/tests/modifiability/ShadowedUoeTest.java
A checker/tests/modifiability/SubtypeCapabilityPreservationTest.java
A checker/tests/modifiability/TypeVariableAliasTest.java
A checker/tests/modifiability/UnmodArrayListTest.java
A checker/tests/modifiability/UnmodParamLocationTest.java
A checker/tests/modifiability/UoeImplementationTest.java
M dataflow/src/main/java/org/checkerframework/dataflow/busyexpr/BusyExprStore.java
M docs/CHANGELOG.md
M docs/manual/advanced-features.tex
M docs/manual/introduction.tex
M docs/manual/manual.tex
A docs/manual/modifiability-checker.tex
M framework/tests/all-systems/DiamondLambda.java
M framework/tests/all-systems/GenericsCasts.java
M framework/tests/all-systems/GenericsEnclosing.java
M framework/tests/all-systems/Issue6810.java
M framework/tests/all-systems/Issue8053.java
M framework/tests/all-systems/RawTypeAssignment.java
M framework/tests/all-systems/java8inference/Issue3036.java

Log Message:
-----------
Add the Modifiability Checker (#8234)

Co-authored-by: Michael Ernst <mer...@cs.washington.edu>
Co-authored-by: Suzanne Millstein <smi...@cs.washington.edu>



To unsubscribe from these emails, change your notification settings at https://github.com/typetools/checker-framework/settings/notifications
Reply all
Reply to author
Forward
0 new messages