Browse Source

fixed a bug that the compiler reports an error when "length" is used as a class or package name.

git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@583 30ef5769-5b8d-40dd-aea6-55b5d6557bb3
tags/rel_3_17_1_ga
chiba 13 years ago
parent
commit
0178370764
2 changed files with 8 additions and 2 deletions
  1. 1
    1
      .classpath
  2. 7
    1
      src/main/javassist/compiler/TypeChecker.java

+ 1
- 1
.classpath View File

@@ -2,7 +2,7 @@
<classpath>
<classpathentry excluding="javassist/util/HotSwapper.java" kind="src" path="src/main"/>
<classpathentry kind="src" path="src/test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/junit.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="eclipse-output/classes"/>
</classpath>

+ 7
- 1
src/main/javassist/compiler/TypeChecker.java View File

@@ -564,7 +564,13 @@ public class TypeChecker extends Visitor implements Opcode, TokenId {
if (token == '.') {
String member = ((Symbol)expr.oprand2()).get();
if (member.equals("length"))
atArrayLength(expr);
try {
atArrayLength(expr);
}
catch (NoFieldException nfe) {
// length might be a class or package name.
atFieldRead(expr);
}
else if (member.equals("class"))
atClassObject(expr); // .class
else

Loading…
Cancel
Save