public virtual bool IsUpdatedVersionOf(ISourceDocument sourceDocument) {
WeakReference/*?*/ previousDocument = this.previousVersion;
while (previousDocument != null) {
SourceDocument/*?*/ prev = previousDocument.Target as SourceDocument;
if (prev == null) return false;
if (prev == sourceDocument) return true;
previousDocument = prev.previousVersion;
}
return false;
}