View | Details | Raw Unified | Return to bug 68557 | Differences between
and this patch

Collapse All | Expand All

(-)model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java (-7 / +4 lines)
Lines 411-418 Link Here
411
				case '<' :
411
				case '<' :
412
					if (fragments == null) fragments = new ArrayList(2);
412
					if (fragments == null) fragments = new ArrayList(2);
413
					nameFragmentEnd = this.namePos-1;
413
					nameFragmentEnd = this.namePos-1;
414
					int nameFragmentLength = nameFragmentEnd - nameFragmentStart + 1;
414
					char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentEnd + 1);
415
					char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentLength);
416
					fragments.add(identifiers);
415
					fragments.add(identifiers);
417
					this.namePos++;
416
					this.namePos++;
418
					TypeReference[] arguments = decodeTypeArguments(typeName, length, start, end);
417
					TypeReference[] arguments = decodeTypeArguments(typeName, length, start, end);
Lines 448-455 Link Here
448
				for (int i = 0; i < identCount; i++) {
447
				for (int i = 0; i < identCount; i++) {
449
					positions[i] = pos;
448
					positions[i] = pos;
450
				}
449
				}
451
				int nameFragmentLength = nameFragmentEnd - nameFragmentStart + 1;
450
				char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentEnd + 1);
452
				char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentLength);
453
				if (dim == 0) {
451
				if (dim == 0) {
454
					return new QualifiedTypeReference(identifiers, positions);
452
					return new QualifiedTypeReference(identifiers, positions);
455
				} else {
453
				} else {
Lines 459-467 Link Here
459
		} else { // parameterized
457
		} else { // parameterized
460
			// rebuild type reference from available fragments: char[][], arguments, char[][], arguments...
458
			// rebuild type reference from available fragments: char[][], arguments, char[][], arguments...
461
			// check trailing qualified name
459
			// check trailing qualified name
462
			if (nameFragmentStart < length) {
460
			if (nameFragmentStart < nameFragmentEnd) {
463
				int nameFragmentLength = nameFragmentEnd - nameFragmentStart + 1;
461
				char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentEnd + 1);
464
				char[][] identifiers = CharOperation.splitOn('.', typeName, nameFragmentStart, nameFragmentLength);
465
				fragments.add(identifiers);
462
				fragments.add(identifiers);
466
			}
463
			}
467
			int fragmentLength = fragments.size();
464
			int fragmentLength = fragments.size();

Return to bug 68557