-
-
Notifications
You must be signed in to change notification settings - Fork 67
TODOs
Markus Schmidt edited this page Nov 30, 2023
·
40 revisions
- .java
- .class
- .jar
- .jimple
- Multi-Release Jar files since Java 9
- .war
- .apk
- merge switch statement
- getters for def and use
- Java 7
- Annotation, not modeled yet.
- Java 8: Lambda expression
- Java 8: Method reference e.g. Object::toString
- Java 8: Default method in interfaces
- Java 9: Private methods in interfaces
- Java 9: Module
- Java 9: Annonymous Diamond Operator
- Java 9: Try with Resources Concise
- Minimal tests for all features
- Features in this list are supported: https://github.com/secure-software-engineering/soot-reloaded/wiki/Supported-constructs-of-the-Java-language
- Type Inference Algorithm / TypeAssigner
- Body Interceptors(Transformers) in jb phase
- ConditionalBranchFolder
- DeadAssignmentEliminator
- CopyPropagator
- ConstantPropagatorAndFolder
- LocalNameStandardizer
- UnusedLocalEliminator
- Aggregator
- LocalSplitter
- LocalPacker
- TrapTightener
- UnreachableCodeEliminator
- DuplicateCatchAllTrapRemover (is now handled directly in the StmtGraph)
- CastAndReturnInliner
- NopEliminator
- Body Interceptors not in jb phase
- Single Static Assignment
- Minimal tests for untyped Jimple
- Minimal tests for final Jimple after applying body interceptors
- Type Hierarchy Resolver
- CHA
- RTA
- VTA
- SPARK
- Tests for Type Hierarchy Resolver
- Class A extend Class B (ClassInheritanceTest.java)
- Class A extends abstract Class B (AbstractClassInheritanceTest.java)
- Class A implement interface B (InterfaceImplementationTest.java)
- Class A implement interface B and interface B extends another interface (InterfaceInheritanceTest.java)
- Class A override Class B methods (MethodOverridingTest.java)
- Transitivity (If A extends B and B extends C, then A extends C) (InheritanceTransitivityTest.java)
- Multiple interface implementation (MultiInterfaceImplementationTest.java)
- Class A access data in Class B directly (InheritPublicDataTest.java)
- Class A access data in Class B through public methods (InheritDataWithPublicMethodTest.java)
- Class A access data in Class B through protected methods (InheritDataWithProtectedMethodTest.java)
- Class A extends Class B and contains additional methods (which is not available in Class B)
- Class A and extended class B inherit from Object class
- JCG Tests for call graph soundness
- .jimple
- .class
- .jar
- .apk
- IFDS/IDE
- VASCO
-
Goals
-
Documentation
-
Coding Conventions