Skip to content

Commit

Permalink
Merge branch 'master' into fix-4823-general-traits-bug-extends
Browse files Browse the repository at this point in the history
  • Loading branch information
RustanLeino authored Apr 1, 2024
2 parents f673fb3 + 5babf7c commit 3c2d789
Showing 2 changed files with 9 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -176,7 +176,7 @@ protected async Task<FileVerificationStatus> WaitUntilAllStatusAreCompleted(Text
bool allowStale = false) {
cancellationToken ??= CancellationToken;

if ((!await WaitUntilResolutionFinished(documentId, cancellationToken))) {
if ((!await WaitUntilResolutionFinished(documentId, cancellationToken.Value))) {
return null;
}

@@ -198,11 +198,13 @@ bool FinishedStatus(NamedVerifiableStatus method) {
}
}

public async Task<bool> WaitUntilResolutionFinished(TextDocumentItem documentId, CancellationToken? cancellationToken) {
public async Task<bool> WaitUntilResolutionFinished(TextDocumentItem documentId,
CancellationToken cancellationToken = default) {

CompilationStatusParams compilationStatusParams = compilationStatusReceiver.GetLast(s => s.Uri == documentId.Uri);
while (compilationStatusParams == null || compilationStatusParams.Version != documentId.Version || compilationStatusParams.Uri != documentId.Uri ||
compilationStatusParams.Status is CompilationStatus.Parsing or CompilationStatus.ResolutionStarted) {
compilationStatusParams = await compilationStatusReceiver.AwaitNextNotificationAsync(cancellationToken.Value);
compilationStatusParams = await compilationStatusReceiver.AwaitNextNotificationAsync(cancellationToken);
}

return compilationStatusParams.Status == CompilationStatus.ResolutionSucceeded;
Original file line number Diff line number Diff line change
@@ -55,13 +55,15 @@ public async Task<TNotification> AwaitNextNotificationAsync(CancellationToken ca
try {
await availableNotifications.WaitAsync(cancellationToken);
} catch (OperationCanceledException) {
logger.LogInformation($"Waited for {(DateTime.Now - start).Seconds} seconds");
var last = History.Any() ? History[-1].Stringify() : "none";
logger.LogInformation($"Waited for {(DateTime.Now - start).Seconds} seconds for new notification.\n" +
$"Last received notification was {last}");
throw;
}
if (notifications.TryDequeue(out var notification)) {
return notification;
}
throw new System.InvalidOperationException("got a signal for a received notification but it was not present in the queue");
throw new InvalidOperationException("got a signal for a received notification but it was not present in the queue");
}
}
}

0 comments on commit 3c2d789

Please sign in to comment.