Menu

Commit [r5196]  Maximize  Restore  History

This revision contains two "brute-force" fixes of LL bugs. First,

nested anonymous classes generated an internal error that caused the
LL conversion process to blow up. This revision replaced the internal
error with a convention syntax error stating that LLs does not support
nested anonymous classes.

In the process, I decided to eliminate duplicate error messages which forced
a number of small changes in unit tests.

A test consisting of 25 classes in individual files with random names
(Filexx.dj1) generated a null pointer exception in
ExpressionTypeChecker. This revision explictly checks for this null
value and generates a convention error message if it happens. After
this change, it appeared that a misplaced ' (or `) mark preceding an
import declaration might have caused the blowup. The compiler flagged
this error as the only error. Why? I need to rerun some tests. When
I eliminated this syntax error, the challenge program compiled without
any problems (but I did not try removing all class files).

The folowing files were modified:

M src/edu/rice/cs/javalanglevels/TypeChecker.java
M src/edu/rice/cs/javalanglevels/Data.java
M src/edu/rice/cs/javalanglevels/BodyBodyAdvancedVisitor.java
M src/edu/rice/cs/javalanglevels/BodyTypeChecker.java
M src/edu/rice/cs/javalanglevels/TryCatchBodyTypeChecker.java
M src/edu/rice/cs/javalanglevels/IntermediateVisitor.java
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/Pair.java

rcartwright 2010-03-16

changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/BodyBodyAdvancedVisitor.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/BodyBodyIntermediateVisitor.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/BodyTypeChecker.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/ClassBodyTypeChecker.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/Data.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/ExpressionTypeChecker.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/IntermediateVisitor.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/LanguageLevelVisitor.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/Pair.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/TryCatchBodyTypeChecker.java
changed /trunk/javalanglevels/src/edu/rice/cs/javalanglevels/TypeChecker.java
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/BodyBodyAdvancedVisitor.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/BodyBodyIntermediateVisitor.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/BodyTypeChecker.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/ClassBodyTypeChecker.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/Data.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/ExpressionTypeChecker.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/IntermediateVisitor.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/LanguageLevelVisitor.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/Pair.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/TryCatchBodyTypeChecker.java Diff Switch to side-by-side view
Loading...
/trunk/javalanglevels/src/edu/rice/cs/javalanglevels/TypeChecker.java Diff Switch to side-by-side view
Loading...
MongoDB Logo MongoDB