Project Overview

EQ is a static analysis tool for checking problems related to the Object.equals(Object) method in Java. It works in two layers:
1. Low level error detection through path-sensitive data flow analyses
2. High level semantic errors through a constraint solver
The path-sensitive, inter-procedural analysis framework is built on top of Soot which forms the basis for high-level model generation in Alloy. Using this framework the checker detects programming errors such as NullPointerException and ClassCastException, and semantic problems related to equivalence relation (reflexivity, symmetry and transitivity) specified in java.lang.Object. EQ is implemented as an Eclipse Plugin and can be installed from the update site.


Chandan R. Rupakheti, Daqing Hou

Relevant Links

SERL’s Equals Checker Tool