Find private readResolve methods in extensible classes

Proprietary

Marks a private readResolve() in a Serializable class that is not final. Serialization only calls an inherited readResolve when it is accessible from the deserialized class, so a subclass silently loses the logic its parent runs after deserialization. A class only extensible in its own file, such as a singleton with a private constructor, is marked only when that file extends it. Skips test sources.

io.moderne.staticanalysis.FindPrivateReadResolve
mod run . --recipe=io.moderne.staticanalysis.FindPrivateReadResolve

Install it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.