Added support for reciever children in BoundMethodGroup and BoundPropertyGroup

上级 7ca74950
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Imports System.Collections.Immutable Imports System.Collections.Immutable
Imports Microsoft.CodeAnalysis.PooledObjects
Imports Microsoft.CodeAnalysis.Semantics
Imports Microsoft.CodeAnalysis.VisualBasic.Symbols
Namespace Microsoft.CodeAnalysis.VisualBasic Namespace Microsoft.CodeAnalysis.VisualBasic
Friend Partial Class BoundBadExpression Friend Partial Class BoundBadExpression
...@@ -22,6 +19,44 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -22,6 +19,44 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End Property End Property
End Class End Class
Partial Friend Class BoundAddressOfOperator
Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode)
Get
Return ImmutableArray.Create(Of BoundNode)(Me.MethodGroup)
End Get
End Property
End Class
Partial Friend Class BoundMethodGroup
Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode)
Get
Dim builder = ImmutableArray.CreateBuilder(Of BoundNode)
If Me.ReceiverOpt IsNot Nothing Then
builder.Add(Me.ReceiverOpt)
End If
If Me.TypeArgumentsOpt IsNot Nothing Then
builder.Add(Me.TypeArgumentsOpt)
End If
Return builder.ToImmutable()
End Get
End Property
End Class
Partial Friend Class BoundPropertyGroup
Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode)
Get
If Me.ReceiverOpt IsNot Nothing Then
Return ImmutableArray.Create(Of BoundNode)(Me.ReceiverOpt)
Else
Return ImmutableArray(Of BoundNode).Empty
End If
End Get
End Property
End Class
Friend Partial Class BoundNullableIsTrueOperator Friend Partial Class BoundNullableIsTrueOperator
Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode) Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode)
Get Get
......
...@@ -29,26 +29,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -29,26 +29,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End Property End Property
End Class End Class
Partial Friend Class BoundAddressOfOperator
Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode)
Get
Return ImmutableArray.Create(Of BoundNode)(Me.MethodGroup)
End Get
End Property
End Class
Partial Friend Class BoundMethodGroup
Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode)
Get
If Me.TypeArgumentsOpt IsNot Nothing Then
Return ImmutableArray.Create(Of BoundNode)(Me.TypeArgumentsOpt)
Else
Return ImmutableArray(Of BoundNode).Empty
End If
End Get
End Property
End Class
Partial Friend Class BoundCaseBlock Partial Friend Class BoundCaseBlock
Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode) Protected Overrides ReadOnly Property Children As ImmutableArray(Of BoundNode)
Get Get
......
...@@ -701,10 +701,14 @@ IObjectOrCollectionInitializerExpression (OperationKind.ObjectOrCollectionInitia ...@@ -701,10 +701,14 @@ IObjectOrCollectionInitializerExpression (OperationKind.ObjectOrCollectionInitia
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: '"Hello World!"') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: '"Hello World!"')
Children(2): Children(2):
IOperation: (OperationKind.None, IsInvalid) (Syntax: '"Hello World!"') IOperation: (OperationKind.None, IsInvalid) (Syntax: '"Hello World!"')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'New C2() Fr ... r element"}')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Hello World!", IsInvalid) (Syntax: '"Hello World!"') ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Hello World!", IsInvalid) (Syntax: '"Hello World!"')
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: '"Errors wil ... er element"') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: '"Errors wil ... er element"')
Children(2): Children(2):
IOperation: (OperationKind.None, IsInvalid) (Syntax: '"Errors wil ... er element"') IOperation: (OperationKind.None, IsInvalid) (Syntax: '"Errors wil ... er element"')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'New C2() Fr ... r element"}')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Errors will be shown for each initializer element", IsInvalid) (Syntax: '"Errors wil ... er element"') ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Errors will be shown for each initializer element", IsInvalid) (Syntax: '"Errors wil ... er element"')
]]>.Value ]]>.Value
...@@ -1107,6 +1111,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.Dictionar ...@@ -1107,6 +1111,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.Dictionar
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: '{1}') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: '{1}')
Children(2): Children(2):
IOperation: (OperationKind.None, IsInvalid) (Syntax: '{1}') IOperation: (OperationKind.None, IsInvalid) (Syntax: '{1}')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'New Diction ... From {{1}}')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1, IsInvalid) (Syntax: '1') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1, IsInvalid) (Syntax: '1')
]]>.Value ]]>.Value
......
...@@ -582,6 +582,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre ...@@ -582,6 +582,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre
Left: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '.Goo = "Hello World!"') Left: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '.Goo = "Hello World!"')
Children(1): Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'Goo') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'Goo')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'New C1() Wi ... lo World!"}')
Right: IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.ConversionExpression, Type: ?) (Syntax: '"Hello World!"') Right: IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.ConversionExpression, Type: ?) (Syntax: '"Hello World!"')
Conversion: CommonConversion (Exists: False, IsIdentity: False, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null) Conversion: CommonConversion (Exists: False, IsIdentity: False, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Hello World!") (Syntax: '"Hello World!"') Operand: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Hello World!") (Syntax: '"Hello World!"')
......
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Imports Microsoft.CodeAnalysis.Semantics Imports Microsoft.CodeAnalysis.Semantics
Imports Microsoft.CodeAnalysis.Test.Utilities Imports Microsoft.CodeAnalysis.Test.Utilities
...@@ -361,6 +361,8 @@ BC30581: 'AddressOf' expression cannot be converted to 'Integer' because 'Intege ...@@ -361,6 +361,8 @@ BC30581: 'AddressOf' expression cannot be converted to 'Integer' because 'Intege
"IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'Test2(New S ... ), Nothing)') "IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'Test2(New S ... ), Nothing)')
Children(3): Children(3):
IOperation: (OperationKind.None) (Syntax: 'Test2') IOperation: (OperationKind.None) (Syntax: 'Test2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Module1) (Syntax: 'Test2')
IObjectCreationExpression (Constructor: Sub System.Guid..ctor()) (OperationKind.ObjectCreationExpression, Type: System.Guid, IsInvalid) (Syntax: 'New System.Guid()') IObjectCreationExpression (Constructor: Sub System.Guid..ctor()) (OperationKind.ObjectCreationExpression, Type: System.Guid, IsInvalid) (Syntax: 'New System.Guid()')
Arguments(0) Arguments(0)
Initializer: null Initializer: null
...@@ -370,16 +372,69 @@ BC30581: 'AddressOf' expression cannot be converted to 'Integer' because 'Intege ...@@ -370,16 +372,69 @@ BC30581: 'AddressOf' expression cannot be converted to 'Integer' because 'Intege
"IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'Test1(AddressOf Main)') "IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'Test1(AddressOf Main)')
Children(2): Children(2):
IOperation: (OperationKind.None) (Syntax: 'Test1') IOperation: (OperationKind.None) (Syntax: 'Test1')
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf Main')") Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Module1) (Syntax: 'Test1')
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf Main')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'Main')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Module1, IsInvalid) (Syntax: 'Main')")
comp.VerifyOperationTree(nodes(3), expectedOperationTree:= comp.VerifyOperationTree(nodes(3), expectedOperationTree:=
"IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'Test2(New S ... essOf Main)') "IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'Test2(New S ... essOf Main)')
Children(3): Children(3):
IOperation: (OperationKind.None) (Syntax: 'Test2') IOperation: (OperationKind.None) (Syntax: 'Test2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Module1) (Syntax: 'Test2')
IObjectCreationExpression (Constructor: Sub System.Guid..ctor()) (OperationKind.ObjectCreationExpression, Type: System.Guid, IsInvalid) (Syntax: 'New System.Guid()') IObjectCreationExpression (Constructor: Sub System.Guid..ctor()) (OperationKind.ObjectCreationExpression, Type: System.Guid, IsInvalid) (Syntax: 'New System.Guid()')
Arguments(0) Arguments(0)
Initializer: null Initializer: null
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf Main')") IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf Main')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'Main')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Module1, IsInvalid) (Syntax: 'Main')")
End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()>
Public Sub AddressOf_BoundMethodOrPropertyGroup_ExposesReceiver()
Dim source = <![CDATA[
Imports System
Module Program
Sub Main(args As String())
Dim c1 As New C1
Console.WriteLine(New With {Key .a = AddressOf c1.S})'BIND:"New With {Key .a = AddressOf c1.S}"
End Sub
Class C1
Sub S()
End Sub
End Class
End Module]]>.Value
Dim expectedOperationTree = <![CDATA[
IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpression, Type: <anonymous type: Key a As ?>, IsInvalid) (Syntax: 'New With {K ... essOf c1.S}')
Initializers(1):
ISimpleAssignmentExpression (OperationKind.SimpleAssignmentExpression, Type: ?, IsInvalid) (Syntax: 'Key .a = AddressOf c1.S')
Left: IPropertyReferenceExpression: ReadOnly Property <anonymous type: Key a As ?>.a As ? (Static) (OperationKind.PropertyReferenceExpression, Type: ?) (Syntax: 'a')
Instance Receiver: null
Right: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'AddressOf c1.S')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf c1.S')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'c1.S')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'c1')
]]>.Value
Dim expectedDiagnostics = <![CDATA[
BC30491: Expression does not produce a value.
Console.WriteLine(New With {Key .a = AddressOf c1.S})'BIND:"New With {Key .a = AddressOf c1.S}"
~~~~~~~~~~~~~~
]]>.Value
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)> <CompilerTrait(CompilerFeature.IOperation)>
......
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
Imports Microsoft.CodeAnalysis.Test.Utilities Imports Microsoft.CodeAnalysis.Test.Utilities
...@@ -665,6 +665,8 @@ End Class]]>.Value ...@@ -665,6 +665,8 @@ End Class]]>.Value
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2()') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2()')
Children(1): Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M2') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: P, IsInvalid) (Syntax: 'M2')
]]>.Value ]]>.Value
Dim expectedDiagnostics = <![CDATA[ Dim expectedDiagnostics = <![CDATA[
...@@ -693,6 +695,8 @@ End Class]]>.Value ...@@ -693,6 +695,8 @@ End Class]]>.Value
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(1, 2)') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(1, 2)')
Children(3): Children(3):
IOperation: (OperationKind.None) (Syntax: 'M2') IOperation: (OperationKind.None) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: P) (Syntax: 'M2')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2, IsInvalid) (Syntax: '2') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2, IsInvalid) (Syntax: '2')
]]>.Value ]]>.Value
...@@ -723,6 +727,8 @@ End Class]]>.Value ...@@ -723,6 +727,8 @@ End Class]]>.Value
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(0,,,)') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(0,,,)')
Children(5): Children(5):
IOperation: (OperationKind.None) (Syntax: 'M2') IOperation: (OperationKind.None) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: P) (Syntax: 'M2')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0')
IOmittedArgumentExpression (OperationKind.OmittedArgumentExpression, Type: null) (Syntax: '') IOmittedArgumentExpression (OperationKind.OmittedArgumentExpression, Type: null) (Syntax: '')
IOmittedArgumentExpression (OperationKind.OmittedArgumentExpression, Type: null) (Syntax: '') IOmittedArgumentExpression (OperationKind.OmittedArgumentExpression, Type: null) (Syntax: '')
...@@ -755,6 +761,8 @@ End Class]]>.Value ...@@ -755,6 +761,8 @@ End Class]]>.Value
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(0, )') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(0, )')
Children(3): Children(3):
IOperation: (OperationKind.None) (Syntax: 'M2') IOperation: (OperationKind.None) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: P) (Syntax: 'M2')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0')
IOmittedArgumentExpression (OperationKind.OmittedArgumentExpression, Type: null, IsInvalid) (Syntax: '') IOmittedArgumentExpression (OperationKind.OmittedArgumentExpression, Type: null, IsInvalid) (Syntax: '')
]]>.Value ]]>.Value
...@@ -786,6 +794,8 @@ End Class]]>.Value ...@@ -786,6 +794,8 @@ End Class]]>.Value
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(x:=0, array:=a)') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(x:=0, array:=a)')
Children(3): Children(3):
IOperation: (OperationKind.None) (Syntax: 'M2') IOperation: (OperationKind.None) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: P) (Syntax: 'M2')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0')
ILocalReferenceExpression: a (OperationKind.LocalReferenceExpression, Type: System.Int32()) (Syntax: 'a') ILocalReferenceExpression: a (OperationKind.LocalReferenceExpression, Type: System.Int32()) (Syntax: 'a')
]]>.Value ]]>.Value
...@@ -816,6 +826,8 @@ End Class]]>.Value ...@@ -816,6 +826,8 @@ End Class]]>.Value
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(y:=1)') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(y:=1)')
Children(2): Children(2):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M2') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: P, IsInvalid) (Syntax: 'M2')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
]]>.Value ]]>.Value
...@@ -962,6 +974,8 @@ End Class]]>.Value ...@@ -962,6 +974,8 @@ End Class]]>.Value
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(x)') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'M2(x)')
Children(2): Children(2):
IOperation: (OperationKind.None) (Syntax: 'M2') IOperation: (OperationKind.None) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Program) (Syntax: 'M2')
ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: C, IsInvalid) (Syntax: 'x') ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: C, IsInvalid) (Syntax: 'x')
]]>.Value ]]>.Value
......
...@@ -1032,6 +1032,8 @@ IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclaratio ...@@ -1032,6 +1032,8 @@ IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclaratio
Operand: IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf M2') Operand: IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf M2')
Children(1): Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M2') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Program, IsInvalid) (Syntax: 'M2')
]]>.Value ]]>.Value
Dim expectedDiagnostics = <![CDATA[ Dim expectedDiagnostics = <![CDATA[
...@@ -1123,6 +1125,8 @@ IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclaratio ...@@ -1123,6 +1125,8 @@ IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclaratio
Operand: IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf M2') Operand: IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf M2')
Children(1): Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M2') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M2')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Program, IsInvalid) (Syntax: 'M2')
]]>.Value ]]>.Value
Dim expectedDiagnostics = <![CDATA[ Dim expectedDiagnostics = <![CDATA[
...@@ -1183,7 +1187,7 @@ Module Program ...@@ -1183,7 +1187,7 @@ Module Program
End Sub End Sub
End Module]]>.Value End Module]]>.Value
Dim expectedOperationTree = <![CDATA[ Dim expectedOperationTree = <![CDATA[
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Dim a As Ar ... teger(1) {}') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Dim a As Ar ... teger(1) {}')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'a') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'a')
Variables: Local_1: a As System.Array Variables: Local_1: a As System.Array
...@@ -1216,7 +1220,7 @@ Module Program ...@@ -1216,7 +1220,7 @@ Module Program
End Sub End Sub
End Module]]>.Value End Module]]>.Value
Dim expectedOperationTree = <![CDATA[ Dim expectedOperationTree = <![CDATA[
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Dim a As Ar ... ger(1)() {}') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Dim a As Ar ... ger(1)() {}')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'a') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'a')
Variables: Local_1: a As System.Array Variables: Local_1: a As System.Array
...@@ -1676,7 +1680,7 @@ Module Program ...@@ -1676,7 +1680,7 @@ Module Program
End Sub End Sub
End Module]]>.Value End Module]]>.Value
Dim expectedOperationTree = <![CDATA[ Dim expectedOperationTree = <![CDATA[
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Dim s1 As S ... Char(1) {}') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Dim s1 As S ... Char(1) {}')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 's1') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 's1')
Variables: Local_1: s1 As System.String Variables: Local_1: s1 As System.String
...@@ -2094,7 +2098,7 @@ Module Module1 ...@@ -2094,7 +2098,7 @@ Module Module1
End Module End Module
]]>.Value ]]>.Value
Dim expectedOperationTree = <![CDATA[ Dim expectedOperationTree = <![CDATA[
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Dim expr As ... um) num < 5') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Dim expr As ... um) num < 5')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'expr') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'expr')
Variables: Local_1: expr As System.Linq.Expressions.Expression(Of System.Func(Of System.Int32, System.Boolean)) Variables: Local_1: expr As System.Linq.Expressions.Expression(Of System.Func(Of System.Int32, System.Boolean))
...@@ -2368,6 +2372,14 @@ Module M1 ...@@ -2368,6 +2372,14 @@ Module M1
End Module]]>.Value End Module]]>.Value
Dim expectedOperationTree = <![CDATA[ Dim expectedOperationTree = <![CDATA[
IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.ConversionExpression, Type: System.Action(Of System.String), IsInvalid) (Syntax: 'AddressOf M ... (Of String)')
Conversion: CommonConversion (Exists: False, IsIdentity: False, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand: IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf M ... (Of String)')
Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'Method2(Of String)')
Children(2):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: M1, IsInvalid) (Syntax: 'Method2(Of String)')
IOperation: (OperationKind.None, IsInvalid) (Syntax: '(Of String)')
]]>.Value ]]>.Value
Dim expectedDiagnostics = <![CDATA[ Dim expectedDiagnostics = <![CDATA[
......
...@@ -169,6 +169,8 @@ IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: 'Re ...@@ -169,6 +169,8 @@ IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: 'Re
Operand: IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf M') Operand: IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf M')
Children(1): Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'M')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: TestClass, IsInvalid) (Syntax: 'M')
]]>.Value ]]>.Value
Dim expectedDiagnostics = <![CDATA[ Dim expectedDiagnostics = <![CDATA[
......
...@@ -873,9 +873,13 @@ IWhileUntilLoopStatement (IsTopTest: True, IsWhile: True) (LoopKind.WhileUntil) ...@@ -873,9 +873,13 @@ IWhileUntilLoopStatement (IsTopTest: True, IsWhile: True) (LoopKind.WhileUntil)
Left: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'System.Math ... (x), x + 1)') Left: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'System.Math ... (x), x + 1)')
Children(3): Children(3):
IOperation: (OperationKind.None) (Syntax: 'System.Math.Max') IOperation: (OperationKind.None) (Syntax: 'System.Math.Max')
Children(1):
IOperation: (OperationKind.None) (Syntax: 'System.Math')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'System.Thre ... ecrement(x)') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'System.Thre ... ecrement(x)')
Children(2): Children(2):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'System.Thre ... d.Decrement') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'System.Thre ... d.Decrement')
Children(1):
IOperation: (OperationKind.None) (Syntax: 'System.Thre ... Interlocked')
ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.SByte) (Syntax: 'x') ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.SByte) (Syntax: 'x')
IBinaryOperatorExpression (BinaryOperatorKind.Add, Checked) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: 'x + 1') IBinaryOperatorExpression (BinaryOperatorKind.Add, Checked) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: 'x + 1')
Left: IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.ConversionExpression, Type: System.Int32) (Syntax: 'x') Left: IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.ConversionExpression, Type: System.Int32) (Syntax: 'x')
......
...@@ -91,6 +91,8 @@ End Class]]>.Value ...@@ -91,6 +91,8 @@ End Class]]>.Value
IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'F(String.Empty)') IInvalidExpression (OperationKind.InvalidExpression, Type: System.Void, IsInvalid) (Syntax: 'F(String.Empty)')
Children(2): Children(2):
IOperation: (OperationKind.None) (Syntax: 'F') IOperation: (OperationKind.None) (Syntax: 'F')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Program) (Syntax: 'F')
IFieldReferenceExpression: System.String.Empty As System.String (Static) (OperationKind.FieldReferenceExpression, Type: System.String, IsInvalid) (Syntax: 'String.Empty') IFieldReferenceExpression: System.String.Empty As System.String (Static) (OperationKind.FieldReferenceExpression, Type: System.String, IsInvalid) (Syntax: 'String.Empty')
Instance Receiver: null Instance Receiver: null
]]>.Value ]]>.Value
......
...@@ -814,6 +814,8 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress ...@@ -814,6 +814,8 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf S') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'AddressOf S')
Children(1): Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'S') IOperation: (OperationKind.None, IsInvalid) (Syntax: 'S')
Children(1):
IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: Program, IsInvalid) (Syntax: 'S')
]]>.Value ]]>.Value
Dim expectedDiagnostics = <![CDATA[ Dim expectedDiagnostics = <![CDATA[
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册