Skip to content

Commit 4653402

Browse files
Consistent impl
1 parent f0ebe68 commit 4653402

File tree

2 files changed

+13
-24
lines changed

2 files changed

+13
-24
lines changed

src/Features/CSharp/Portable/Completion/CompletionProviders/AwaitCompletionProvider.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,8 @@ protected override int GetSpanStart(SyntaxNode declaration)
9696
// In cases like Task.$$ semanticModel.GetTypeInfo returns Task, but
9797
// we don't want to suggest await here. We look up the symbol of the "Task" part
9898
// and return null if it is a NamedType.
99-
if (memberAccessExpression.IsKind(SyntaxKind.IdentifierName))
100-
{
101-
var symbol = semanticModel.GetSymbolInfo(memberAccessExpression, cancellationToken).Symbol;
102-
if (symbol is ITypeSymbol)
103-
return null;
104-
}
105-
106-
return semanticModel.GetTypeInfo(memberAccessExpression, cancellationToken).Type;
99+
var symbol = semanticModel.GetSymbolInfo(memberAccessExpression, cancellationToken).Symbol;
100+
return symbol is ITypeSymbol ? null : semanticModel.GetTypeInfo(memberAccessExpression, cancellationToken).Type;
107101
}
108102
else if (potentialAwaitableExpression is ExpressionSyntax expression &&
109103
expression.ShouldNameExpressionBeTreatedAsExpressionInsteadOfType(semanticModel, out _, out var container))

src/Features/VisualBasic/Portable/Completion/CompletionProviders/AwaitCompletionProvider.vb

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
4747

4848
Protected Overrides Function GetTypeSymbolOfExpression(semanticModel As SemanticModel, potentialAwaitableExpression As SyntaxNode, cancellationToken As CancellationToken) As ITypeSymbol
4949
Dim memberAccessExpression = TryCast(potentialAwaitableExpression, MemberAccessExpressionSyntax)?.Expression
50-
If memberAccessExpression IsNot Nothing Then
51-
Dim symbolInfo = semanticModel.GetSymbolInfo(memberAccessExpression.WalkDownParentheses(), cancellationToken)
52-
Dim symbol = symbolInfo.Symbol
53-
If TypeOf symbol Is ITypeSymbol Then ' e.g. Task.$$
54-
Return Nothing
55-
End If
56-
57-
Return If(symbol?.GetSymbolType(),
58-
If(symbol?.GetMemberType(),
59-
semanticModel.GetTypeInfo(memberAccessExpression, cancellationToken).Type))
50+
If memberAccessExpression Is Nothing Then
51+
Return Nothing
6052
End If
6153

62-
Return Nothing
54+
Dim symbol = semanticModel.GetSymbolInfo(memberAccessExpression.WalkDownParentheses(), cancellationToken).Symbol
55+
Return If(TypeOf symbol Is ITypeSymbol, Nothing, semanticModel.GetTypeInfo(memberAccessExpression, cancellationToken).Type)
6356
End Function
6457

6558
Protected Overrides Function GetExpressionToPlaceAwaitInFrontOf(syntaxTree As SyntaxTree, position As Integer, cancellationToken As CancellationToken) As SyntaxNode
@@ -69,13 +62,15 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
6962
End If
7063

7164
Dim memberAccess = TryCast(dotToken.Value.Parent, MemberAccessExpressionSyntax)
72-
If memberAccess IsNot Nothing Then
73-
If memberAccess.Expression.GetParentConditionalAccessExpression() Is Nothing Then
74-
Return memberAccess
75-
End If
65+
If memberAccess Is Nothing Then
66+
Return Nothing
67+
End If
68+
69+
If memberAccess.Expression.GetParentConditionalAccessExpression() IsNot Nothing Then
70+
Return Nothing
7671
End If
7772

78-
Return Nothing
73+
Return memberAccess
7974
End Function
8075

8176
Protected Overrides Function GetDotTokenLeftOfPosition(syntaxTree As SyntaxTree, position As Integer, cancellationToken As CancellationToken) As SyntaxToken?

0 commit comments

Comments
 (0)