Support for generic (parametrized) types in source indexer.
--- a/tools/java/src/stx/libjava/tools/text/Highlighter.java Mon Oct 07 19:16:50 2013 +0100
+++ b/tools/java/src/stx/libjava/tools/text/Highlighter.java Tue Oct 08 09:28:45 2013 +0100
@@ -16,6 +16,8 @@
import org.eclipse.jdt.internal.compiler.ast.LocalDeclaration;
import org.eclipse.jdt.internal.compiler.ast.MessageSend;
import org.eclipse.jdt.internal.compiler.ast.MethodDeclaration;
+import org.eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference;
+import org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference;
import org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference;
import org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference;
import org.eclipse.jdt.internal.compiler.ast.SingleNameReference;
@@ -205,8 +207,9 @@
if (type.token == TypeBinding.LONG.simpleName) return;
marker.mark(Marker.MARK_CLASS, type.sourceStart, type.sourceEnd);
indexer.addTypeReference(type, type.sourceStart, type.sourceEnd);
-
}
+
+
public void endVisit(
SingleTypeReference type,
ClassScope scope) {
@@ -221,7 +224,21 @@
if (type.token == TypeBinding.LONG.simpleName) return;
marker.mark(Marker.MARK_CLASS, type.sourceStart, type.sourceEnd);
indexer.addTypeReference(type, type.sourceStart, type.sourceEnd);
+ }
+
+ public void endVisit(
+ ParameterizedSingleTypeReference type,
+ BlockScope scope) {
+ marker.mark(Marker.MARK_CLASS, type.sourceStart, type.sourceStart + type.token.length - 1);
+ indexer.addTypeReference(type, type.sourceStart, type.sourceStart + type.token.length - 1);
+ }
+ public void endVisit(
+ ParameterizedSingleTypeReference type,
+ ClassScope scope) {
+ marker.mark(Marker.MARK_CLASS, type.sourceStart, type.sourceStart + type.token.length - 1);
+ indexer.addTypeReference(type, type.sourceStart, type.sourceStart + type.token.length - 1);
+
}
public void endVisit(ArrayTypeReference type, BlockScope scope) {
@@ -322,6 +339,24 @@
indexer.addTypeReference(type, type.sourceStart, type.sourceEnd);
}
+ public void endVisit(
+ ParameterizedQualifiedTypeReference type,
+ BlockScope scope) {
+ int start = type.sourceEnd;
+ int stop = (int)(type.sourcePositions[type.sourcePositions.length - 1] & 0x0000FFFFFFFF);
+ marker.mark(Marker.MARK_CLASS, start, stop);
+ indexer.addTypeReference(type, start, stop);
+ }
+
+ public void endVisit(
+ ParameterizedQualifiedTypeReference type,
+ ClassScope scope) {
+ int start = type.sourceEnd;
+ int stop = (int)(type.sourcePositions[type.sourcePositions.length - 1] & 0x0000FFFFFFFF);
+ marker.mark(Marker.MARK_CLASS, start, stop);
+ indexer.addTypeReference(type, start, stop);
+ }
+
public boolean visit(
ConstructorDeclaration constructorDeclaration,
ClassScope scope) {