Releases
5.0.0
we are now using sbt 1.6.2
we are now using Scala 2.13
Scala 2.13 changes:
replace Unicode arrows (⇒,→,←) by ASCII arrows (=>,->,<-)
replace Traversable by scala.collection.Iterable
replace TraversableOnce by scala.collection.IterableOnce
changes to OPAL's custom data structures:
replace RefIterator by scala.collection.iterator
replace Chain by scala.collection.immutable.List
replace RefArray and IntArray by scala.collection.immutable.ArraySeq
replace RefArrayStack by scala.collection.immutable.Stack
replace RefAppendChain by scala.collection.mutable.ArrayDeque
replace RefArrayBuffer by scala.collection.mutable.ArrayBuffer
full support for Java 17 up to 19
support for Java 17 Sealed Classes
added isStrict attribute to classes
ignore isStrict attribute on classes and methods for Java >= 17
completed framework for call graph analyses
introduced TypeIterator to uniformly access type information
using contexts instead of methods to enable context-sensitive analysis (0-1-CFA, 1-1-CFA)
support library analysis with CFA
introduced new immutability analyses
replaced FieldMutabilityAnalysis with FieldAssignabilityAnalysis
support for thread-safe and unsafe lazy initialization
support for clone pattern
introduced new FieldImmutabilityAnalysis to integrate field assignability with mutability of values
support for transitive and non-transitive immutability
support for immutability dependent on generic type parameters
updated ClassImmutabilityAnalysis and TypeImmutabilityAnalysis to use new FieldImmutability properties
added EntrypointsFinder for Android apps
allow flushing caches for ObjectTypes/ArrayTypes to free memory when creating many projects in a row
You can’t perform that action at this time.