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}