public void deprecatedType(TypeBinding type, ASTNode location, int index) {
if (location == null) return;
final TypeBinding leafType = type.leafComponentType();
int sourceStart = -1;
if (location instanceof QualifiedTypeReference) {
QualifiedTypeReference ref = (QualifiedTypeReference) location;
if (index < Integer.MAX_VALUE) {
sourceStart = (int) (ref.sourcePositions[index] >> 32);
}
}
String sinceValue = deprecatedSinceValue(() -> leafType.getAnnotations());
if (sinceValue != null) {
this.handle(
((leafType.tagBits & TagBits.AnnotationTerminallyDeprecated) == 0) ? IProblem.UsingDeprecatedSinceVersionType : IProblem.UsingTerminallyDeprecatedSinceVersionType,
new String[] {new String(leafType.readableName()), sinceValue},
new String[] {new String(leafType.shortReadableName()), sinceValue},
(sourceStart == -1) ? location.sourceStart : sourceStart,
nodeSourceEnd(null, location, index));
} else {
this.handle(
((leafType.tagBits & TagBits.AnnotationTerminallyDeprecated) == 0) ? IProblem.UsingDeprecatedType : IProblem.UsingTerminallyDeprecatedType,
new String[] {new String(leafType.readableName())},
new String[] {new String(leafType.shortReadableName())},
(sourceStart == -1) ? location.sourceStart : sourceStart,
nodeSourceEnd(null, location, index));
}
}
public void deprecatedModule(ModuleReference moduleReference, ModuleBinding requiredModule) {