public static void check(CompilationUnitDeclaration cud) {
List<BinaryTypeReferenceSite> binaryTypeReferenceSites = findAllBinaryTypeReferenceSites(cud);
Set<BinaryTypeBinding> alreadySeenTypeBindings = new HashSet<BinaryTypeBinding>();
for (BinaryTypeReferenceSite binaryTypeReferenceSite : binaryTypeReferenceSites) {
BinaryTypeBinding binaryTypeBinding = binaryTypeReferenceSite.getBinaryTypeBinding();
if (alreadySeenTypeBindings.contains(binaryTypeBinding)) {
continue;
}
alreadySeenTypeBindings.add(binaryTypeBinding);
String fileName = String.valueOf(binaryTypeBinding.getFileName());
if (fileName.endsWith(".java")) {
// This binary name is valid; it is a reference to a unit that was
// compiled in a previous JDT run.
continue;
}
String qualifiedTypeName = binaryTypeBinding.debugName();
String error = formatBinaryTypeRefErrorMessage(qualifiedTypeName);
// TODO(mmendez): provide extra help info?
GWTProblem.recordError(binaryTypeReferenceSite.getExpression(), cud,
error, null);