dotnet/roslyn

VB: No compiler API to get built in-operator of AssignmentStatement

オープン

#6,366 opened on 2015/10/27

 (0 件のコメント) (0 件のリアクション) (0 人の担当者)C# (4,257 件のフォーク)batch import
Area-CompilersConcept-APIFeature Requesthelp wanted

Repository metrics

Stars
 (20,414 個のスター)
PR merge metrics
 (平均マージ 6d 17h) (30d で 256 merged PRs)

説明

While we can use GetSymbolInfo to retrieve the built-in operator used in an expression, we currently lack an API to retrieve the built-in operator used in a VB assignment statement. This results in analysis problems like the one causing #2560. Additionally, VB IDE features work inconsistently because built-in operators can't always be retrieved from the compiler APIs.

Module Program
    Sub Main()
        Dim x As Integer
        x = x + 1
        x += 1
    End Sub
End Module

In the code above, if the user hovers over + in the first assignment statement, they'll see the built-in operator in the Quick Info tooltip:

image

However, there's no tooltip if they hover over +=.

This is in contrast to C#. In C#, because assignments are expressions, GetSymbolInfo can return the built-in operator for each case:

image

image

コントリビューターガイド