As of October 2025, this project has been archived. CodeLaser's maddi (Modification Analysis for Duplication Detection and Immutability) project is now the reference implementation. Its parser is stable, has been extended to include Kotlin, its modification analysis is now stable as well. The concepts of the Road to Immutability remain.
Devops: e2immu-devops.
Source code:
| main | sub | subsub | description |
|---|---|---|---|
| analyzer | modification | common | Common analyzer classes |
| analyzer | modification | io | Reading and writing AnalyzedPackage files |
| analyzer | modification | prepwork | First steps in modification analysis (hidden content, variable info) |
| analyzer | modification | linkedvariables | Variable linking analysis, @Modified, @Independent |
| analyzer | run | config | Configuration |
| analyzer | run | main | command line options, main method |
| analyzer | run | gradleplugin | Gradle plugin |
| analyzer | runmvn | mvnplugin | Maven plugin |
| analyzer | aapi | archive | Annotated APIs for JDK and common libraries, and their AnalyzedPackage files |
| analyzer | aapi | parser | Annotated API parser and writer |
| language | cst | analysis | Analysis property-value definitions |
| language | cst | api | Primary interfaces of the Common Syntax Tree |
| language | cst | impl | Primary implementation of the Common Syntax Tree |
| language | cst | io | JSON I/O for CST analysis objects |
| language | cst | Formatter for the CST | |
| language | inspection | api | Common API for language inspection/resolution/path management |
| language | inspection | parser | Implementation of the parsing and resolution aspects of the API |
| language | inspection | resource | Implementation of the resource/input/path aspects of the API |
| language | inspection | integration | Integration of inspection system. |
| language | java | bytecode | Byte code inspection using ASM |
| language | java | parser | Source parsing using CongoCC |
| util | external | support | Annotations, support classes, and support for Annotated APIs. JDK 8 project! |
| util | internal | graph | A graph library that uses jgraph as a dependency. Support for linearization of dependency graphs. |
| util | internal | util | Utility classes shared by multiple projects. |
main sub subsub, where the combinations sub-subsub must also be unique.
Github repositories: main-sub
Gradle projects inside a repository: e2immu-sub-subsub, test projects testsubsub
Gradle project publishing IDs: org.e2immu.main : e2immu-sub-subsub : version
Java packages: org.e2immu.main.sub.subsub