Fix regressions in
OTJavaTypeSearchTests.testRoleLiftingReferences3,testRoleReferenceInCallin1
- new hook, old one was bypassed by changes in JDT
diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
index c66d91d..df6750c 100644
--- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
+++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
@@ -5701,11 +5701,9 @@
 }
 //{ObjectTeams: OT completion
 @Override
-protected LiftingTypeReference completeLiftingTypeReference(int dims) {
-	LiftingTypeReference ltr = super.completeLiftingTypeReference(dims);
+protected void liftingTypeReferenceRecognized(LiftingTypeReference ltr) {
 	if (ltr.roleReference instanceof CompletionOnSingleTypeReference)
 		((CompletionOnSingleTypeReference)ltr.roleReference).isLiftingRoleType = true;
-	return ltr;
 }
 @Override
 protected MethodSpec newMethodSpec(char[] ident, long poss) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
index 6115d82..1455943 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
@@ -5178,6 +5178,7 @@
 //{ObjectTeams: LiftingTypeReference? Compose:  FIXME?!? jdt moved some to getTypeReference?
 	if (ltr != null) {
 		ltr.setReferences(type, roleRef);
+		liftingTypeReferenceRecognized(ltr);
 		type = ltr;
 	}
 // SH}
@@ -12837,8 +12838,12 @@
 	if (liftingType.hasIncompatibleArrayDimensions)
 		if(!this.statementRecoveryActivated)
 			problemReporter().syntaxErrorInDeclaredArrayLifting(liftingType);
+	liftingTypeReferenceRecognized(liftingType);
 	return liftingType;
 }
+protected void liftingTypeReferenceRecognized(LiftingTypeReference ltr) {
+	// nop, hookfor subclasses
+}
 //SH}
 protected TypeReference getTypeReferenceForGenericType(int dim, int identifierLength, int numberOfIdentifiers) {
 	Annotation[][] annotationsOnDimensions = dim == 0 ? null : getAnnotationsOnDimensions(dim);
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MatchLocatorParser.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MatchLocatorParser.java
index 23a4984..5d19510 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MatchLocatorParser.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MatchLocatorParser.java
@@ -635,13 +635,11 @@
 	}
 }
 @Override
-protected LiftingTypeReference completeLiftingTypeReference(int dims) {
-	LiftingTypeReference result = super.completeLiftingTypeReference(dims);
+protected void liftingTypeReferenceRecognized(LiftingTypeReference ltr) {
 	// patternFineGrain == 0 already handled in getTypeReference() from super.completeLiftingTypeReference()
 	if ((this.patternFineGrain & IJavaSearchConstants.CLASS_INSTANCE_CREATION_TYPE_REFERENCE) != 0) {
-		this.patternLocator.match(result.roleReference, this.nodeSet);
+		this.patternLocator.match(ltr.roleReference, this.nodeSet);
 	}
-	return result;
 }
 //carp}