Fix regression in ExtracTempTest18 (change in PSTR) and add missing type
annotations in more locations
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java
index 93fac3c..ce143f7 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java
@@ -457,7 +457,7 @@
 			return this.resolvedType;
 
 		// feed more parameters into createParameterizedType:
-		AnnotationBinding[] currentAnnotations = currentType.getAnnotations();
+		AnnotationBinding[] currentAnnotations = currentType.getTypeAnnotations();
 		ITeamAnchor anchor = null;
 		int valParPos = -1;
 		if (currentType instanceof DependentTypeBinding) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java
index 2e82bf9..f9881e0 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java
@@ -569,7 +569,7 @@
 						if (originalParameterizedType.isRoleType()) {
 							DependentTypeBinding originalRole = (DependentTypeBinding) originalParameterizedType;
 							return originalParameterizedType.environment.createParameterizedType(
-								originalParameterizedType.genericType(), substitutedArguments, originalRole._teamAnchor, originalRole._valueParamPosition, substitutedEnclosing, Binding.NO_ANNOTATIONS);
+								originalParameterizedType.genericType(), substitutedArguments, originalRole._teamAnchor, originalRole._valueParamPosition, substitutedEnclosing, originalRole.getTypeAnnotations());
 						}
 // SH}
 						return originalParameterizedType.environment.createParameterizedType(
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/model/TeamModel.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/model/TeamModel.java
index 645f29a..73c5d8a 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/model/TeamModel.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/model/TeamModel.java
@@ -611,9 +611,9 @@
 		}
 		VariableBinding anchor = enclosingTeam.getTeamModel().getTThis();
 		if (roleType.isParameterizedType()) {
-			// consult original role type for type arguments:
+			// consult original role type for type arguments & type annotations:
 			ParameterizedTypeBinding ptb = (ParameterizedTypeBinding)roleType;
-			TypeBinding parameterized = ptb.environment.createParameterizedType(roleRefType, ptb.arguments, anchor, -1, roleRefType.enclosingType(), Binding.NO_ANNOTATIONS);
+			TypeBinding parameterized = ptb.environment.createParameterizedType(roleRefType, ptb.arguments, anchor, -1, roleRefType.enclosingType(), ptb.getTypeAnnotations());
 			if (dimensions > 0)
 				return ptb.environment.createArrayType(parameterized, dimensions);
 			return parameterized;