subsuming both the Elementary (.dj0) and Intermediate (.dj1) language
levels. It appears to type check static methods more accurately
distinguishing legal dynamic method invocations on object receivers
from illegal dynamic method invocations on "this".
The following files were modified:
M src/edu/rice/cs/javalanglevels/TypeChecker.java
M src/edu/rice/cs/javalanglevels/ArrayData.java
M src/edu/rice/cs/javalanglevels/MethodData.java
M src/edu/rice/cs/javalanglevels/LValueTypeChecker.java
M src/edu/rice/cs/javalanglevels/VariableData.java
M src/edu/rice/cs/javalanglevels/BodyTypeChecker.java
M src/edu/rice/cs/javalanglevels/IntermediateVisitor.java
M src/edu/rice/cs/javalanglevels/SymbolData.java
M src/edu/rice/cs/javalanglevels/Bob.java
M src/edu/rice/cs/javalanglevels/LValueWithValueTypeChecker.java
M src/edu/rice/cs/javalanglevels/jexpr.jj
M src/edu/rice/cs/javalanglevels/ClassBodyTypeChecker.java
M src/edu/rice/cs/javalanglevels/ExpressionTypeChecker.java
M src/edu/rice/cs/javalanglevels/BodyBodyIntermediateVisitor.java
M src/edu/rice/cs/javalanglevels/LanguageLevelVisitor.java
M src/edu/rice/cs/javalanglevels/ClassBodyIntermediateVisitor.java