Index: model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java,v retrieving revision 1.1.2.6 diff -u -r1.1.2.6 SourceTypeConverter.java --- model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java 11 Jun 2004 11:49:00 -0000 1.1.2.6 +++ model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java 25 Jun 2004 01:29:37 -0000 @@ -411,8 +411,7 @@ case '<' : if (fragments == null) fragments = new ArrayList(2); nameFragmentEnd = this.namePos-1; - int nameFragmentLength = nameFragmentEnd - nameFragmentStart + 1; - char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentLength); + char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentEnd + 1); fragments.add(identifiers); this.namePos++; TypeReference[] arguments = decodeTypeArguments(typeName, length, start, end); @@ -448,8 +447,7 @@ for (int i = 0; i < identCount; i++) { positions[i] = pos; } - int nameFragmentLength = nameFragmentEnd - nameFragmentStart + 1; - char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentLength); + char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentEnd + 1); if (dim == 0) { return new QualifiedTypeReference(identifiers, positions); } else { @@ -459,9 +457,8 @@ } else { // parameterized // rebuild type reference from available fragments: char[][], arguments, char[][], arguments... // check trailing qualified name - if (nameFragmentStart < length) { - int nameFragmentLength = nameFragmentEnd - nameFragmentStart + 1; - char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentLength); + if (nameFragmentStart < nameFragmentEnd) { + char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentEnd + 1); fragments.add(identifiers); } int fragmentLength = fragments.size();