Jlint has been restructured into several files to ease maintenance.
Synchronized blocks are now fully supported. The value of references is tracked
during their "life" on the stack and as static or instance variables. This
allowed several improvements. First, the wait/notify[All] calls are now truly
checked. Second, inter-method deadlocks from synchronized blocks are fully
checked. Third, assignments to locking variables (usually hazardous) are also
checked.