提交 9dfdf507 编写于 作者: J Jinu 提交者: GitHub

Change the IOperation unit test dump format for child nodes (#20716)

* Change the IOperation unit test dump format for child nodes

* fixing the newly merged tests.
上级 46ae2ae3
...@@ -44,17 +44,29 @@ static void Test2(int y, params int[] x) ...@@ -44,17 +44,29 @@ static void Test2(int y, params int[] x)
var nodes = tree.GetRoot().DescendantNodes().OfType<InvocationExpressionSyntax>().ToArray(); var nodes = tree.GetRoot().DescendantNodes().OfType<InvocationExpressionSyntax>().ToArray();
compilation.VerifyOperationTree(nodes[0], expectedOperationTree: compilation.VerifyOperationTree(nodes[0], expectedOperationTree:
@"IInvocationExpression (static void Cls.Test1(params System.Int32[] x)) (OperationKind.InvocationExpression, Type: System.Void) (Syntax: 'Test1(null)') @"IInvocationExpression (void Cls.Test1(params System.Int32[] x)) (OperationKind.InvocationExpression, Type: System.Void) (Syntax: 'Test1(null)')
Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: x) (OperationKind.Argument) (Syntax: 'null') Instance Receiver: null
Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: x) (OperationKind.Argument) (Syntax: 'null')
IConversionExpression (ConversionKind.Cast, Implicit) (OperationKind.ConversionExpression, Type: System.Int32[], Constant: null) (Syntax: 'null') IConversionExpression (ConversionKind.Cast, Implicit) (OperationKind.ConversionExpression, Type: System.Int32[], Constant: null) (Syntax: 'null')
ILiteralExpression (Text: null) (OperationKind.LiteralExpression, Type: null, Constant: null) (Syntax: 'null')"); ILiteralExpression (Text: null) (OperationKind.LiteralExpression, Type: null, Constant: null) (Syntax: 'null')
InConversion: null
OutConversion: null");
compilation.VerifyOperationTree(nodes[1], expectedOperationTree: compilation.VerifyOperationTree(nodes[1], expectedOperationTree:
@"IInvocationExpression (static void Cls.Test2(System.Int32 y, params System.Int32[] x)) (OperationKind.InvocationExpression, Type: System.Void, IsInvalid) (Syntax: 'Test2(new o ... ct(), null)') @"IInvocationExpression (void Cls.Test2(System.Int32 y, params System.Int32[] x)) (OperationKind.InvocationExpression, Type: System.Void, IsInvalid) (Syntax: 'Test2(new o ... ct(), null)')
Arguments(2): IArgument (ArgumentKind.Explicit, Matching Parameter: null) (OperationKind.Argument, IsInvalid) (Syntax: 'new object()') Instance Receiver: null
Arguments(2):
IArgument (ArgumentKind.Explicit, Matching Parameter: null) (OperationKind.Argument, IsInvalid) (Syntax: 'new object()')
IObjectCreationExpression (Constructor: System.Object..ctor()) (OperationKind.ObjectCreationExpression, Type: System.Object, IsInvalid) (Syntax: 'new object()') IObjectCreationExpression (Constructor: System.Object..ctor()) (OperationKind.ObjectCreationExpression, Type: System.Object, IsInvalid) (Syntax: 'new object()')
Arguments(0)
Initializer: null
InConversion: null
OutConversion: null
IArgument (ArgumentKind.Explicit, Matching Parameter: null) (OperationKind.Argument) (Syntax: 'null') IArgument (ArgumentKind.Explicit, Matching Parameter: null) (OperationKind.Argument) (Syntax: 'null')
ILiteralExpression (Text: null) (OperationKind.LiteralExpression, Type: null, Constant: null) (Syntax: 'null')"); ILiteralExpression (Text: null) (OperationKind.LiteralExpression, Type: null, Constant: null) (Syntax: 'null')
InConversion: null
OutConversion: null");
} }
[Fact] [Fact]
......
...@@ -27,7 +27,9 @@ void M() ...@@ -27,7 +27,9 @@ void M()
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IOperation: (OperationKind.None) (Syntax: 'Conditional(field)') IOperation: (OperationKind.None) (Syntax: 'Conditional(field)')
Children(1): IFieldReferenceExpression: System.String C.field (Static) (OperationKind.FieldReferenceExpression, Type: System.String, Constant: ""field"") (Syntax: 'field') Children(1):
IFieldReferenceExpression: System.String C.field (Static) (OperationKind.FieldReferenceExpression, Type: System.String, Constant: ""field"") (Syntax: 'field')
Instance Receiver: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
......
// 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.
using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Test.Utilities; using Microsoft.CodeAnalysis.Test.Utilities;
...@@ -23,8 +23,9 @@ public void M() ...@@ -23,8 +23,9 @@ public void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""""')
Parts(0)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -45,9 +46,10 @@ public void M() ...@@ -45,9 +46,10 @@ public void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""Only text part""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""Only text part""')
Parts(1): IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'Only text part') Parts(1):
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'Only text part')
Text: ILiteralExpression (Text: Only text part) (OperationKind.LiteralExpression, Type: System.String, Constant: ""Only text part"") (Syntax: 'Only text part') Text: ILiteralExpression (Text: Only text part) (OperationKind.LiteralExpression, Type: System.String, Constant: ""Only text part"") (Syntax: 'Only text part')
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -69,10 +71,13 @@ public void M() ...@@ -69,10 +71,13 @@ public void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""{1}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""{1}""')
Parts(1): IInterpolation (OperationKind.Interpolation) (Syntax: '{1}') Parts(1):
IInterpolation (OperationKind.Interpolation) (Syntax: '{1}')
Expression: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') Expression: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
Alignment: null
FormatString: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -93,10 +98,14 @@ public void M() ...@@ -93,10 +98,14 @@ public void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String, IsInvalid) (Syntax: '$""{}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String, IsInvalid) (Syntax: '$""{}""')
Parts(1): IInterpolation (OperationKind.Interpolation, IsInvalid) (Syntax: '{}') Parts(1):
IInterpolation (OperationKind.Interpolation, IsInvalid) (Syntax: '{}')
Expression: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') Expression: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
Alignment: null
FormatString: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1733: Expected expression // CS1733: Expected expression
...@@ -121,16 +130,21 @@ public void M(int x) ...@@ -121,16 +130,21 @@ public void M(int x)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {x ... nstant {1}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {x ... nstant {1}""')
Parts(4): IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ') Parts(4):
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ')
Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ') Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{x}') IInterpolation (OperationKind.Interpolation) (Syntax: '{x}')
Expression: IParameterReferenceExpression: x (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'x') Expression: IParameterReferenceExpression: x (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'x')
Alignment: null
FormatString: null
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and constant ') IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and constant ')
Text: ILiteralExpression (Text: and constant ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and constant "") (Syntax: ' and constant ') Text: ILiteralExpression (Text: and constant ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and constant "") (Syntax: ' and constant ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{1}') IInterpolation (OperationKind.Interpolation) (Syntax: '{1}')
Expression: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') Expression: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
Alignment: null
FormatString: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -154,24 +168,29 @@ public void M() ...@@ -154,24 +168,29 @@ public void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {x ... nstant {1}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {x ... nstant {1}""')
Parts(6): IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ') Parts(6):
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ')
Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ') Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{x,20}') IInterpolation (OperationKind.Interpolation) (Syntax: '{x,20}')
Expression: IFieldReferenceExpression: System.String Class.x (OperationKind.FieldReferenceExpression, Type: System.String) (Syntax: 'x') Expression: IFieldReferenceExpression: System.String Class.x (OperationKind.FieldReferenceExpression, Type: System.String) (Syntax: 'x')
Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'x') Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'x')
Alignment: ILiteralExpression (Text: 20) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 20) (Syntax: '20') Alignment: ILiteralExpression (Text: 20) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 20) (Syntax: '20')
FormatString: null
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and ') IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and ')
Text: ILiteralExpression (Text: and ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and "") (Syntax: ' and ') Text: ILiteralExpression (Text: and ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and "") (Syntax: ' and ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{y:D3}') IInterpolation (OperationKind.Interpolation) (Syntax: '{y:D3}')
Expression: IFieldReferenceExpression: System.Int32 Class.y (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: 'y') Expression: IFieldReferenceExpression: System.Int32 Class.y (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: 'y')
Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'y') Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'y')
Alignment: null
FormatString: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: ""D3"") (Syntax: ':D3') FormatString: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: ""D3"") (Syntax: ':D3')
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and constant ') IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and constant ')
Text: ILiteralExpression (Text: and constant ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and constant "") (Syntax: ' and constant ') Text: ILiteralExpression (Text: and constant ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and constant "") (Syntax: ' and constant ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{1}') IInterpolation (OperationKind.Interpolation) (Syntax: '{1}')
Expression: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') Expression: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
Alignment: null
FormatString: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -195,14 +214,16 @@ public void M() ...@@ -195,14 +214,16 @@ public void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {x,y:D3}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {x,y:D3}""')
Parts(2): IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ') Parts(2):
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ')
Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ') Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{x,y:D3}') IInterpolation (OperationKind.Interpolation) (Syntax: '{x,y:D3}')
Expression: IFieldReferenceExpression: System.String Class.x (OperationKind.FieldReferenceExpression, Type: System.String) (Syntax: 'x') Expression: IFieldReferenceExpression: System.String Class.x (OperationKind.FieldReferenceExpression, Type: System.String) (Syntax: 'x')
Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'x') Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'x')
Alignment: IFieldReferenceExpression: System.Int32 Class.y (Static) (OperationKind.FieldReferenceExpression, Type: System.Int32, Constant: 0) (Syntax: 'y') Alignment: IFieldReferenceExpression: System.Int32 Class.y (Static) (OperationKind.FieldReferenceExpression, Type: System.Int32, Constant: 0) (Syntax: 'y')
Instance Receiver: null
FormatString: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: ""D3"") (Syntax: ':D3') FormatString: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: ""D3"") (Syntax: ':D3')
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -228,23 +249,33 @@ public void M() ...@@ -228,23 +249,33 @@ public void M()
private string M2(int z) => z.ToString(); private string M2(int z) => z.ToString();
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {x ... nstant {1}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {x ... nstant {1}""')
Parts(6): IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ') Parts(6):
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ')
Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ') Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{x}') IInterpolation (OperationKind.Interpolation) (Syntax: '{x}')
Expression: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.String) (Syntax: 'x') Expression: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.String) (Syntax: 'x')
Alignment: null
FormatString: null
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and ') IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and ')
Text: ILiteralExpression (Text: and ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and "") (Syntax: ' and ') Text: ILiteralExpression (Text: and ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and "") (Syntax: ' and ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{M2(y)}') IInterpolation (OperationKind.Interpolation) (Syntax: '{M2(y)}')
Expression: IInvocationExpression ( System.String Class.M2(System.Int32 z)) (OperationKind.InvocationExpression, Type: System.String) (Syntax: 'M2(y)') Expression: IInvocationExpression ( System.String Class.M2(System.Int32 z)) (OperationKind.InvocationExpression, Type: System.String) (Syntax: 'M2(y)')
Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'M2') Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'M2')
Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: z) (OperationKind.Argument) (Syntax: 'y') Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: z) (OperationKind.Argument) (Syntax: 'y')
ILocalReferenceExpression: y (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'y') ILocalReferenceExpression: y (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'y')
InConversion: null
OutConversion: null
Alignment: null
FormatString: null
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and constant ') IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and constant ')
Text: ILiteralExpression (Text: and constant ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and constant "") (Syntax: ' and constant ') Text: ILiteralExpression (Text: and constant ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and constant "") (Syntax: ' and constant ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{1}') IInterpolation (OperationKind.Interpolation) (Syntax: '{1}')
Expression: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') Expression: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
Alignment: null
FormatString: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -269,17 +300,26 @@ public void M() ...@@ -269,17 +300,26 @@ public void M()
private int M2(string z) => Int32.Parse(z); private int M2(string z) => Int32.Parse(z);
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {M2($""{y}"")}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""String {M2($""{y}"")}""')
Parts(2): IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ') Parts(2):
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ')
Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ') Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ')
IInterpolation (OperationKind.Interpolation) (Syntax: '{M2($""{y}"")}') IInterpolation (OperationKind.Interpolation) (Syntax: '{M2($""{y}"")}')
Expression: IInvocationExpression ( System.Int32 Class.M2(System.String z)) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'M2($""{y}"")') Expression: IInvocationExpression ( System.Int32 Class.M2(System.String z)) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'M2($""{y}"")')
Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'M2') Instance Receiver: IInstanceReferenceExpression (InstanceReferenceKind.Implicit) (OperationKind.InstanceReferenceExpression, Type: Class) (Syntax: 'M2')
Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: z) (OperationKind.Argument) (Syntax: '$""{y}""') Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: z) (OperationKind.Argument) (Syntax: '$""{y}""')
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""{y}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String) (Syntax: '$""{y}""')
Parts(1): IInterpolation (OperationKind.Interpolation) (Syntax: '{y}') Parts(1):
IInterpolation (OperationKind.Interpolation) (Syntax: '{y}')
Expression: ILocalReferenceExpression: y (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'y') Expression: ILocalReferenceExpression: y (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'y')
Alignment: null
FormatString: null
InConversion: null
OutConversion: null
Alignment: null
FormatString: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -300,17 +340,24 @@ public void M(int x) ...@@ -300,17 +340,24 @@ public void M(int x)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String, IsInvalid) (Syntax: '$""String {x ... nt {Class}""') IInterpolatedStringExpression (OperationKind.InterpolatedStringExpression, Type: System.String, IsInvalid) (Syntax: '$""String {x ... nt {Class}""')
Parts(4): IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ') Parts(4):
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: 'String ')
Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ') Text: ILiteralExpression (Text: String ) (OperationKind.LiteralExpression, Type: System.String, Constant: ""String "") (Syntax: 'String ')
IInterpolation (OperationKind.Interpolation, IsInvalid) (Syntax: '{x1}') IInterpolation (OperationKind.Interpolation, IsInvalid) (Syntax: '{x1}')
Expression: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'x1') Expression: IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'x1')
Children(0)
Alignment: null
FormatString: null
IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and constant ') IInterpolatedStringText (OperationKind.InterpolatedStringText) (Syntax: ' and constant ')
Text: ILiteralExpression (Text: and constant ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and constant "") (Syntax: ' and constant ') Text: ILiteralExpression (Text: and constant ) (OperationKind.LiteralExpression, Type: System.String, Constant: "" and constant "") (Syntax: ' and constant ')
IInterpolation (OperationKind.Interpolation, IsInvalid) (Syntax: '{Class}') IInterpolation (OperationKind.Interpolation, IsInvalid) (Syntax: '{Class}')
Expression: IInvalidExpression (OperationKind.InvalidExpression, Type: Class, IsInvalid) (Syntax: 'Class') Expression: IInvalidExpression (OperationKind.InvalidExpression, Type: Class, IsInvalid) (Syntax: 'Class')
Children(1): IOperation: (OperationKind.None, IsInvalid) (Syntax: 'Class') Children(1):
IOperation: (OperationKind.None, IsInvalid) (Syntax: 'Class')
Alignment: null
FormatString: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0103: The name 'x1' does not exist in the current context // CS0103: The name 'x1' does not exist in the current context
......
...@@ -414,12 +414,13 @@ void M() ...@@ -414,12 +414,13 @@ void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IIsPatternExpression (OperationKind.IsPatternExpression, Type: System.Boolean, IsInvalid) (Syntax: 'x is /*</bind>*/') IIsPatternExpression (OperationKind.IsPatternExpression, Type: System.Boolean, IsInvalid) (Syntax: 'x is /*</bind>*/')
Expression: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'x') Expression: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'x')
Pattern: IConstantPattern (OperationKind.ConstantPattern, IsInvalid) (Syntax: '') Pattern: IConstantPattern (OperationKind.ConstantPattern, IsInvalid) (Syntax: '')
Value: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '') Value: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1525: Invalid expression term 'const' // CS1525: Invalid expression term 'const'
...@@ -463,9 +464,10 @@ void M(string x = /*<bind>*/string.Empty is string y/*</bind>*/) ...@@ -463,9 +464,10 @@ void M(string x = /*<bind>*/string.Empty is string y/*</bind>*/)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IIsPatternExpression (OperationKind.IsPatternExpression, Type: System.Boolean, IsInvalid) (Syntax: 'string.Empty is string y') IIsPatternExpression (OperationKind.IsPatternExpression, Type: System.Boolean, IsInvalid) (Syntax: 'string.Empty is string y')
Expression: IFieldReferenceExpression: System.String System.String.Empty (Static) (OperationKind.FieldReferenceExpression, Type: System.String, IsInvalid) (Syntax: 'string.Empty') Expression: IFieldReferenceExpression: System.String System.String.Empty (Static) (OperationKind.FieldReferenceExpression, Type: System.String, IsInvalid) (Syntax: 'string.Empty')
Instance Receiver: null
Pattern: IDeclarationPattern (Declared Symbol: System.String y) (OperationKind.DeclarationPattern, IsInvalid) (Syntax: 'string y') Pattern: IDeclarationPattern (Declared Symbol: System.String y) (OperationKind.DeclarationPattern, IsInvalid) (Syntax: 'string y')
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
...@@ -487,9 +489,10 @@ class C ...@@ -487,9 +489,10 @@ class C
private readonly bool b = /*<bind>*/o is int x/*</bind>*/ && x >= 5; private readonly bool b = /*<bind>*/o is int x/*</bind>*/ && x >= 5;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IIsPatternExpression (OperationKind.IsPatternExpression, Type: System.Boolean, IsInvalid) (Syntax: 'o is int x') IIsPatternExpression (OperationKind.IsPatternExpression, Type: System.Boolean, IsInvalid) (Syntax: 'o is int x')
Expression: IFieldReferenceExpression: System.Object C.o (Static) (OperationKind.FieldReferenceExpression, Type: System.Object) (Syntax: 'o') Expression: IFieldReferenceExpression: System.Object C.o (Static) (OperationKind.FieldReferenceExpression, Type: System.Object) (Syntax: 'o')
Instance Receiver: null
Pattern: IDeclarationPattern (Declared Symbol: System.Int32 x) (OperationKind.DeclarationPattern, IsInvalid) (Syntax: 'int x') Pattern: IDeclarationPattern (Declared Symbol: System.Int32 x) (OperationKind.DeclarationPattern, IsInvalid) (Syntax: 'int x')
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
...@@ -548,9 +551,10 @@ class C ...@@ -548,9 +551,10 @@ class C
private const object o = 1; private const object o = 1;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IIsPatternExpression (OperationKind.IsPatternExpression, Type: System.Boolean, IsInvalid) (Syntax: 'o is int x') IIsPatternExpression (OperationKind.IsPatternExpression, Type: System.Boolean, IsInvalid) (Syntax: 'o is int x')
Expression: IFieldReferenceExpression: System.Object C.o (Static) (OperationKind.FieldReferenceExpression, Type: System.Object, Constant: 1, IsInvalid) (Syntax: 'o') Expression: IFieldReferenceExpression: System.Object C.o (Static) (OperationKind.FieldReferenceExpression, Type: System.Object, Constant: 1, IsInvalid) (Syntax: 'o')
Instance Receiver: null
Pattern: IDeclarationPattern (Declared Symbol: System.Int32 x) (OperationKind.DeclarationPattern, IsInvalid) (Syntax: 'int x') Pattern: IDeclarationPattern (Declared Symbol: System.Int32 x) (OperationKind.DeclarationPattern, IsInvalid) (Syntax: 'int x')
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
......
...@@ -26,7 +26,7 @@ static void F() ...@@ -26,7 +26,7 @@ static void F()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Action x /* ... *</bind>*/;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'Action x /* ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'Action x /* ... *</bind>*/;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'Action x /* ... *</bind>*/;')
Variables: Local_1: System.Action x Variables: Local_1: System.Action x
...@@ -34,8 +34,11 @@ static void F() ...@@ -34,8 +34,11 @@ static void F()
ILambdaExpression (Signature: lambda expression) (OperationKind.LambdaExpression, Type: null) (Syntax: '() => F()') ILambdaExpression (Signature: lambda expression) (OperationKind.LambdaExpression, Type: null) (Syntax: '() => F()')
IBlockStatement (2 statements) (OperationKind.BlockStatement) (Syntax: 'F()') IBlockStatement (2 statements) (OperationKind.BlockStatement) (Syntax: 'F()')
IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'F()') IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'F()')
IInvocationExpression (static void Program.F()) (OperationKind.InvocationExpression, Type: System.Void) (Syntax: 'F()') IInvocationExpression (void Program.F()) (OperationKind.InvocationExpression, Type: System.Void) (Syntax: 'F()')
Instance Receiver: null
Arguments(0)
IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'F()') IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'F()')
null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -60,14 +63,16 @@ static void F() ...@@ -60,14 +63,16 @@ static void F()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'var x /*<bi ... *</bind>*/;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'var x /*<bi ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'var x /*<bi ... *</bind>*/;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'var x /*<bi ... *</bind>*/;')
Variables: Local_1: var x Variables: Local_1: var x
Initializer: ILambdaExpression (Signature: lambda expression) (OperationKind.LambdaExpression, Type: null, IsInvalid) (Syntax: '() => F()') Initializer: ILambdaExpression (Signature: lambda expression) (OperationKind.LambdaExpression, Type: null, IsInvalid) (Syntax: '() => F()')
IBlockStatement (1 statements) (OperationKind.BlockStatement, IsInvalid) (Syntax: 'F()') IBlockStatement (1 statements) (OperationKind.BlockStatement, IsInvalid) (Syntax: 'F()')
IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: 'F()') IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: 'F()')
IInvocationExpression (static void Program.F()) (OperationKind.InvocationExpression, Type: System.Void, IsInvalid) (Syntax: 'F()') IInvocationExpression (void Program.F()) (OperationKind.InvocationExpression, Type: System.Void, IsInvalid) (Syntax: 'F()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0815: Cannot assign lambda expression to an implicitly-typed variable // CS0815: Cannot assign lambda expression to an implicitly-typed variable
...@@ -96,7 +101,7 @@ static void F() ...@@ -96,7 +101,7 @@ static void F()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'Action<int> ... *</bind>*/;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'Action<int> ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'Action<int> ... *</bind>*/;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'Action<int> ... *</bind>*/;')
Variables: Local_1: System.Action<System.Int32> x Variables: Local_1: System.Action<System.Int32> x
...@@ -104,7 +109,9 @@ static void F() ...@@ -104,7 +109,9 @@ static void F()
ILambdaExpression (Signature: lambda expression) (OperationKind.LambdaExpression, Type: null, IsInvalid) (Syntax: '() => F()') ILambdaExpression (Signature: lambda expression) (OperationKind.LambdaExpression, Type: null, IsInvalid) (Syntax: '() => F()')
IBlockStatement (1 statements) (OperationKind.BlockStatement, IsInvalid) (Syntax: 'F()') IBlockStatement (1 statements) (OperationKind.BlockStatement, IsInvalid) (Syntax: 'F()')
IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: 'F()') IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: 'F()')
IInvocationExpression (static void Program.F()) (OperationKind.InvocationExpression, Type: System.Void, IsInvalid) (Syntax: 'F()') IInvocationExpression (void Program.F()) (OperationKind.InvocationExpression, Type: System.Void, IsInvalid) (Syntax: 'F()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1593: Delegate 'Action<int>' does not take 0 arguments // CS1593: Delegate 'Action<int>' does not take 0 arguments
......
...@@ -135,15 +135,19 @@ public void M() ...@@ -135,15 +135,19 @@ public void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
ILocalFunctionStatement (Local Function: System.Int32 Local3(System.Int32 p1)) (OperationKind.LocalFunctionStatement) (Syntax: 'int Local3( ... Local2(p1);') ILocalFunctionStatement (Local Function: System.Int32 Local3(System.Int32 p1)) (OperationKind.LocalFunctionStatement) (Syntax: 'int Local3( ... Local2(p1);')
IBlockStatement (1 statements) (OperationKind.BlockStatement) (Syntax: '=> x + Local2(p1)') IBlockStatement (1 statements) (OperationKind.BlockStatement) (Syntax: '=> x + Local2(p1)')
IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'x + Local2(p1)') IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'x + Local2(p1)')
IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: 'x + Local2(p1)') IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: 'x + Local2(p1)')
Left: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'x') Left: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'x')
Right: IInvocationExpression (static System.Int32 Local2(System.Int32 p1)) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'Local2(p1)') Right: IInvocationExpression (System.Int32 Local2(System.Int32 p1)) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'Local2(p1)')
Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: p1) (OperationKind.Argument) (Syntax: 'p1') Instance Receiver: null
Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: p1) (OperationKind.Argument) (Syntax: 'p1')
IParameterReferenceExpression: p1 (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'p1') IParameterReferenceExpression: p1 (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'p1')
InConversion: null
OutConversion: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -162,15 +166,19 @@ public void M(int x) ...@@ -162,15 +166,19 @@ public void M(int x)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
ILocalFunctionStatement (Local Function: System.Int32 Local(System.Int32 p1)) (OperationKind.LocalFunctionStatement) (Syntax: 'int Local(i ... al(x + p1);') ILocalFunctionStatement (Local Function: System.Int32 Local(System.Int32 p1)) (OperationKind.LocalFunctionStatement) (Syntax: 'int Local(i ... al(x + p1);')
IBlockStatement (1 statements) (OperationKind.BlockStatement) (Syntax: '=> Local(x + p1)') IBlockStatement (1 statements) (OperationKind.BlockStatement) (Syntax: '=> Local(x + p1)')
IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'Local(x + p1)') IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'Local(x + p1)')
IInvocationExpression (static System.Int32 Local(System.Int32 p1)) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'Local(x + p1)') IInvocationExpression (System.Int32 Local(System.Int32 p1)) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'Local(x + p1)')
Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: p1) (OperationKind.Argument) (Syntax: 'x + p1') Instance Receiver: null
Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: p1) (OperationKind.Argument) (Syntax: 'x + p1')
IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: 'x + p1') IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: 'x + p1')
Left: IParameterReferenceExpression: x (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'x') Left: IParameterReferenceExpression: x (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'x')
Right: IParameterReferenceExpression: p1 (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'p1') Right: IParameterReferenceExpression: p1 (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'p1')
InConversion: null
OutConversion: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -197,14 +205,18 @@ public void M(int x) ...@@ -197,14 +205,18 @@ public void M(int x)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
ILocalFunctionStatement (Local Function: System.Threading.Tasks.Task<System.Int32> LocalAsync(System.Int32 p1)) (OperationKind.LocalFunctionStatement) (Syntax: 'async Task< ... }') ILocalFunctionStatement (Local Function: System.Threading.Tasks.Task<System.Int32> LocalAsync(System.Int32 p1)) (OperationKind.LocalFunctionStatement) (Syntax: 'async Task< ... }')
IBlockStatement (2 statements) (OperationKind.BlockStatement) (Syntax: '{ ... }') IBlockStatement (2 statements) (OperationKind.BlockStatement) (Syntax: '{ ... }')
IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'await Task.Delay(0);') IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'await Task.Delay(0);')
IAwaitExpression (OperationKind.AwaitExpression, Type: System.Void) (Syntax: 'await Task.Delay(0)') IAwaitExpression (OperationKind.AwaitExpression, Type: System.Void) (Syntax: 'await Task.Delay(0)')
IInvocationExpression (static System.Threading.Tasks.Task System.Threading.Tasks.Task.Delay(System.Int32 millisecondsDelay)) (OperationKind.InvocationExpression, Type: System.Threading.Tasks.Task) (Syntax: 'Task.Delay(0)') IInvocationExpression (System.Threading.Tasks.Task System.Threading.Tasks.Task.Delay(System.Int32 millisecondsDelay)) (OperationKind.InvocationExpression, Type: System.Threading.Tasks.Task) (Syntax: 'Task.Delay(0)')
Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: millisecondsDelay) (OperationKind.Argument) (Syntax: '0') Instance Receiver: null
Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: millisecondsDelay) (OperationKind.Argument) (Syntax: '0')
ILiteralExpression (Text: 0) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') ILiteralExpression (Text: 0) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0')
InConversion: null
OutConversion: null
IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'return x + p1;') IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'return x + p1;')
IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: 'x + p1') IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: 'x + p1')
Left: IParameterReferenceExpression: x (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'x') Left: IParameterReferenceExpression: x (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'x')
...@@ -256,13 +268,14 @@ void M() ...@@ -256,13 +268,14 @@ void M()
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
ILocalFunctionStatement (Local Function: void Foo()) (OperationKind.LocalFunctionStatement) (Syntax: 'void Foo() => x++;') ILocalFunctionStatement (Local Function: void Foo()) (OperationKind.LocalFunctionStatement) (Syntax: 'void Foo() => x++;')
IBlockStatement (2 statements) (OperationKind.BlockStatement) (Syntax: '=> x++') IBlockStatement (2 statements) (OperationKind.BlockStatement) (Syntax: '=> x++')
IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'x++') IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'x++')
IIncrementExpression (UnaryOperandKind.IntegerPostfixIncrement) (OperationKind.IncrementExpression, Type: System.Int32) (Syntax: 'x++') IIncrementExpression (UnaryOperandKind.IntegerPostfixIncrement) (OperationKind.IncrementExpression, Type: System.Int32) (Syntax: 'x++')
Left: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'x') Left: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'x')
IReturnStatement (OperationKind.ReturnStatement) (Syntax: '=> x++') IReturnStatement (OperationKind.ReturnStatement) (Syntax: '=> x++')
null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0165: Use of unassigned local variable 'x' // CS0165: Use of unassigned local variable 'x'
...@@ -287,7 +300,7 @@ void M(int p) ...@@ -287,7 +300,7 @@ void M(int p)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
ILocalFunctionStatement (Local Function: void Foo(out System.Int32 y)) (OperationKind.LocalFunctionStatement) (Syntax: 'void Foo(ou ... ) => y = p;') ILocalFunctionStatement (Local Function: void Foo(out System.Int32 y)) (OperationKind.LocalFunctionStatement) (Syntax: 'void Foo(ou ... ) => y = p;')
IBlockStatement (2 statements) (OperationKind.BlockStatement) (Syntax: '=> y = p') IBlockStatement (2 statements) (OperationKind.BlockStatement) (Syntax: '=> y = p')
IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'y = p') IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'y = p')
...@@ -295,6 +308,7 @@ void M(int p) ...@@ -295,6 +308,7 @@ void M(int p)
Left: IParameterReferenceExpression: y (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'y') Left: IParameterReferenceExpression: y (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'y')
Right: IParameterReferenceExpression: p (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'p') Right: IParameterReferenceExpression: p (OperationKind.ParameterReferenceExpression, Type: System.Int32) (Syntax: 'p')
IReturnStatement (OperationKind.ReturnStatement) (Syntax: '=> y = p') IReturnStatement (OperationKind.ReturnStatement) (Syntax: '=> y = p')
null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -313,12 +327,14 @@ void M(int p) ...@@ -313,12 +327,14 @@ void M(int p)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
ILocalFunctionStatement (Local Function: void Foo(out System.Int32 y)) (OperationKind.LocalFunctionStatement, IsInvalid) (Syntax: 'void Foo(out int y) => ;') ILocalFunctionStatement (Local Function: void Foo(out System.Int32 y)) (OperationKind.LocalFunctionStatement, IsInvalid) (Syntax: 'void Foo(out int y) => ;')
IBlockStatement (2 statements) (OperationKind.BlockStatement, IsInvalid) (Syntax: '=> ') IBlockStatement (2 statements) (OperationKind.BlockStatement, IsInvalid) (Syntax: '=> ')
IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: '') IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
IReturnStatement (OperationKind.ReturnStatement, IsInvalid) (Syntax: '=> ') IReturnStatement (OperationKind.ReturnStatement, IsInvalid) (Syntax: '=> ')
null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1525: Invalid expression term ';' // CS1525: Invalid expression term ';'
...@@ -347,10 +363,11 @@ void M(int p) ...@@ -347,10 +363,11 @@ void M(int p)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
ILocalFunctionStatement (Local Function: void Foo()) (OperationKind.LocalFunctionStatement, IsInvalid) (Syntax: 'void Foo( { }') ILocalFunctionStatement (Local Function: void Foo()) (OperationKind.LocalFunctionStatement, IsInvalid) (Syntax: 'void Foo( { }')
IBlockStatement (1 statements) (OperationKind.BlockStatement, IsInvalid) (Syntax: '{ }') IBlockStatement (1 statements) (OperationKind.BlockStatement, IsInvalid) (Syntax: '{ }')
IReturnStatement (OperationKind.ReturnStatement, IsInvalid) (Syntax: '{ }') IReturnStatement (OperationKind.ReturnStatement, IsInvalid) (Syntax: '{ }')
null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1026: ) expected // CS1026: ) expected
......
// 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.
using System.Diagnostics; using System.Diagnostics;
using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.CSharp.Syntax;
...@@ -23,7 +23,9 @@ static void Method() ...@@ -23,7 +23,9 @@ static void Method()
} }
} }
"; ";
string expectedOperationTree = @"IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'return;')"; string expectedOperationTree = @"IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'return;')
null
";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
VerifyOperationTreeAndDiagnosticsForTest<ReturnStatementSyntax>(source, expectedOperationTree, expectedDiagnostics); VerifyOperationTreeAndDiagnosticsForTest<ReturnStatementSyntax>(source, expectedOperationTree, expectedDiagnostics);
} }
...@@ -85,7 +87,10 @@ static IEnumerable<int> Method() ...@@ -85,7 +87,10 @@ static IEnumerable<int> Method()
} }
} }
"; ";
string expectedOperationTree = @"IReturnStatement (OperationKind.YieldBreakStatement) (Syntax: 'yield break;')"; string expectedOperationTree = @"
IReturnStatement (OperationKind.YieldBreakStatement) (Syntax: 'yield break;')
null
";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
VerifyOperationTreeAndDiagnosticsForTest<YieldStatementSyntax>(source, expectedOperationTree, expectedDiagnostics); VerifyOperationTreeAndDiagnosticsForTest<YieldStatementSyntax>(source, expectedOperationTree, expectedDiagnostics);
......
...@@ -44,7 +44,7 @@ class C ...@@ -44,7 +44,7 @@ class C
static int s1 /*<bind>*/= 1/*</bind>*/; static int s1 /*<bind>*/= 1/*</bind>*/;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Int32 C.s1) (OperationKind.FieldInitializer) (Syntax: '= 1') IFieldInitializer (Field: System.Int32 C.s1) (OperationKind.FieldInitializer) (Syntax: '= 1')
ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
"; ";
...@@ -66,7 +66,7 @@ class C ...@@ -66,7 +66,7 @@ class C
int i1 = 1, i2 /*<bind>*/= 2/*</bind>*/; int i1 = 1, i2 /*<bind>*/= 2/*</bind>*/;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Int32 C.i2) (OperationKind.FieldInitializer) (Syntax: '= 2') IFieldInitializer (Field: System.Int32 C.i2) (OperationKind.FieldInitializer) (Syntax: '= 2')
ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2') ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2')
"; ";
...@@ -156,11 +156,13 @@ class C ...@@ -156,11 +156,13 @@ class C
static int F() { return 1; } static int F() { return 1; }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Int32 C.s1) (OperationKind.FieldInitializer) (Syntax: '= 1 + F()') IFieldInitializer (Field: System.Int32 C.s1) (OperationKind.FieldInitializer) (Syntax: '= 1 + F()')
IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: '1 + F()') IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: '1 + F()')
Left: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') Left: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
Right: IInvocationExpression (static System.Int32 C.F()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'F()') Right: IInvocationExpression (System.Int32 C.F()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'F()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -180,11 +182,13 @@ class C ...@@ -180,11 +182,13 @@ class C
static int F() { return 1; } static int F() { return 1; }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Int32 C.s1) (OperationKind.FieldInitializer) (Syntax: '= 1 + F()') IFieldInitializer (Field: System.Int32 C.s1) (OperationKind.FieldInitializer) (Syntax: '= 1 + F()')
IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: '1 + F()') IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: '1 + F()')
Left: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') Left: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
Right: IInvocationExpression (static System.Int32 C.F()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'F()') Right: IInvocationExpression (System.Int32 C.F()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'F()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -202,11 +206,13 @@ class C ...@@ -202,11 +206,13 @@ class C
static int F() { return 1; } static int F() { return 1; }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Int32 C.i1) (OperationKind.FieldInitializer) (Syntax: '= 1 + F()') IFieldInitializer (Field: System.Int32 C.i1) (OperationKind.FieldInitializer) (Syntax: '= 1 + F()')
IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: '1 + F()') IBinaryOperatorExpression (BinaryOperationKind.IntegerAdd) (OperationKind.BinaryOperatorExpression, Type: System.Int32) (Syntax: '1 + F()')
Left: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') Left: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
Right: IInvocationExpression (static System.Int32 C.F()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'F()') Right: IInvocationExpression (System.Int32 C.F()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'F()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -229,7 +235,7 @@ partial class C ...@@ -229,7 +235,7 @@ partial class C
int i2 = 2; int i2 = 2;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Int32 C.s1) (OperationKind.FieldInitializer) (Syntax: '= 1') IFieldInitializer (Field: System.Int32 C.s1) (OperationKind.FieldInitializer) (Syntax: '= 1')
ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
"; ";
...@@ -267,7 +273,7 @@ partial class C ...@@ -267,7 +273,7 @@ partial class C
int i2 /*<bind>*/= 2/*</bind>*/; int i2 /*<bind>*/= 2/*</bind>*/;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Int32 C.i2) (OperationKind.FieldInitializer) (Syntax: '= 2') IFieldInitializer (Field: System.Int32 C.i2) (OperationKind.FieldInitializer) (Syntax: '= 2')
ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2') ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2')
"; ";
...@@ -300,11 +306,15 @@ class C ...@@ -300,11 +306,15 @@ class C
static System.Action MakeAction(int x) { return null; } static System.Action MakeAction(int x) { return null; }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Action C.e) (OperationKind.FieldInitializer) (Syntax: '= MakeAction(1)') IFieldInitializer (Field: System.Action C.e) (OperationKind.FieldInitializer) (Syntax: '= MakeAction(1)')
IInvocationExpression (static System.Action C.MakeAction(System.Int32 x)) (OperationKind.InvocationExpression, Type: System.Action) (Syntax: 'MakeAction(1)') IInvocationExpression (System.Action C.MakeAction(System.Int32 x)) (OperationKind.InvocationExpression, Type: System.Action) (Syntax: 'MakeAction(1)')
Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: x) (OperationKind.Argument) (Syntax: '1') Instance Receiver: null
Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: x) (OperationKind.Argument) (Syntax: '1')
ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
InConversion: null
OutConversion: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -322,11 +332,15 @@ class C ...@@ -322,11 +332,15 @@ class C
static System.Action MakeAction(int x) { return null; } static System.Action MakeAction(int x) { return null; }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IFieldInitializer (Field: System.Action C.f) (OperationKind.FieldInitializer) (Syntax: '= MakeAction(2)') IFieldInitializer (Field: System.Action C.f) (OperationKind.FieldInitializer) (Syntax: '= MakeAction(2)')
IInvocationExpression (static System.Action C.MakeAction(System.Int32 x)) (OperationKind.InvocationExpression, Type: System.Action) (Syntax: 'MakeAction(2)') IInvocationExpression (System.Action C.MakeAction(System.Int32 x)) (OperationKind.InvocationExpression, Type: System.Action) (Syntax: 'MakeAction(2)')
Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: x) (OperationKind.Argument) (Syntax: '2') Instance Receiver: null
Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: x) (OperationKind.Argument) (Syntax: '2')
ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2') ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2')
InConversion: null
OutConversion: null
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
......
// 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.
using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Test.Utilities; using Microsoft.CodeAnalysis.Test.Utilities;
...@@ -23,10 +23,11 @@ static void Main(string[] args) ...@@ -23,10 +23,11 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'int i1;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'int i1;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'int i1;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'int i1;')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0168: The variable 'i1' is declared but never used // CS0168: The variable 'i1' is declared but never used
...@@ -76,12 +77,13 @@ static void Main(string[] args) ...@@ -76,12 +77,13 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int i1 = ;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int i1 = ;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'int i1 = ;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'int i1 = ;')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '') Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1525: Invalid expression term ';' // CS1525: Invalid expression term ';'
...@@ -104,12 +106,14 @@ static void Main(string[] args) ...@@ -104,12 +106,14 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'int i1, i2;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'int i1, i2;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i1') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i1')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: null
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i2') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i2')
Variables: Local_1: System.Int32 i2 Variables: Local_1: System.Int32 i2
Initializer: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0168: The variable 'i1' is declared but never used // CS0168: The variable 'i1' is declared but never used
...@@ -168,12 +172,13 @@ static void Main(string[] args) ...@@ -168,12 +172,13 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int i1 = , ... *</bind>*/;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int i1 = , ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1 = ') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1 = ')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '') Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i2 = 2') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i2 = 2')
Variables: Local_1: System.Int32 i2 Variables: Local_1: System.Int32 i2
Initializer: ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2') Initializer: ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2')
...@@ -202,12 +207,14 @@ static void Main(string[] args) ...@@ -202,12 +207,14 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int i,/*</bind>*/;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int i,/*</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i')
Variables: Local_1: System.Int32 i Variables: Local_1: System.Int32 i
Initializer: null
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: '') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: '')
Variables: Local_1: System.Int32 Variables: Local_1: System.Int32
Initializer: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1001: Identifier expected // CS1001: Identifier expected
...@@ -235,11 +242,13 @@ static void Main(string[] args) ...@@ -235,11 +242,13 @@ static void Main(string[] args)
static int GetInt() => 1; static int GetInt() => 1;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'int i = Get ... *</bind>*/;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'int i = Get ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'int i = Get ... *</bind>*/;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'int i = Get ... *</bind>*/;')
Variables: Local_1: System.Int32 i Variables: Local_1: System.Int32 i
Initializer: IInvocationExpression (static System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'GetInt()') Initializer: IInvocationExpression (System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'GetInt()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -260,14 +269,18 @@ static void Main(string[] args) ...@@ -260,14 +269,18 @@ static void Main(string[] args)
static int GetInt() => 1; static int GetInt() => 1;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'int i = Get ... *</bind>*/;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'int i = Get ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i = GetInt()') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'i = GetInt()')
Variables: Local_1: System.Int32 i Variables: Local_1: System.Int32 i
Initializer: IInvocationExpression (static System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'GetInt()') Initializer: IInvocationExpression (System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'GetInt()')
Instance Receiver: null
Arguments(0)
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'j = GetInt()') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'j = GetInt()')
Variables: Local_1: System.Int32 j Variables: Local_1: System.Int32 j
Initializer: IInvocationExpression (static System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'GetInt()') Initializer: IInvocationExpression (System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32) (Syntax: 'GetInt()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -341,10 +354,11 @@ static void Main(string[] args) ...@@ -341,10 +354,11 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int[2, 3] a/*</bind>*/;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int[2, 3] a/*</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'int[2, 3] a/*</bind>*/;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'int[2, 3] a/*</bind>*/;')
Variables: Local_1: System.Int32[,] a Variables: Local_1: System.Int32[,] a
Initializer: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0270: Array size cannot be specified in a variable declaration (try initializing with a 'new' expression) // CS0270: Array size cannot be specified in a variable declaration (try initializing with a 'new' expression)
...@@ -373,12 +387,14 @@ static void Main(string[] args) ...@@ -373,12 +387,14 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int[2, 3] a ... *</bind>*/;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'int[2, 3] a ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'a') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'a')
Variables: Local_1: System.Int32[,] a Variables: Local_1: System.Int32[,] a
Initializer: null
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'b') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'b')
Variables: Local_1: System.Int32[,] b Variables: Local_1: System.Int32[,] b
Initializer: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0270: Array size cannot be specified in a variable declaration (try initializing with a 'new' expression) // CS0270: Array size cannot be specified in a variable declaration (try initializing with a 'new' expression)
...@@ -1456,12 +1472,13 @@ static void Main(string[] args) ...@@ -1456,12 +1472,13 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '') Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1525: Invalid expression term ';' // CS1525: Invalid expression term ';'
...@@ -1484,16 +1501,18 @@ static void Main(string[] args) ...@@ -1484,16 +1501,18 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1 = ') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1 = ')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '') Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i2 = /*</bind>*/') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i2 = /*</bind>*/')
Variables: Local_1: System.Int32 i2 Variables: Local_1: System.Int32 i2
Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '') Initializer: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Int32, IsInvalid) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1525: Invalid expression term ',' // CS1525: Invalid expression term ','
...@@ -1519,10 +1538,11 @@ static void Main(string[] args) ...@@ -1519,10 +1538,11 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0145: A const field requires a value to be provided // CS0145: A const field requires a value to be provided
...@@ -1548,12 +1568,14 @@ static void Main(string[] args) ...@@ -1548,12 +1568,14 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: null
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i2') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i2')
Variables: Local_1: System.Int32 i2 Variables: Local_1: System.Int32 i2
Initializer: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0145: A const field requires a value to be provided // CS0145: A const field requires a value to be provided
...@@ -1585,12 +1607,14 @@ static void Main(string[] args) ...@@ -1585,12 +1607,14 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: null
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: '') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: '')
Variables: Local_1: System.Int32 Variables: Local_1: System.Int32
Initializer: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0145: A const field requires a value to be provided // CS0145: A const field requires a value to be provided
...@@ -1624,11 +1648,13 @@ static void Main(string[] args) ...@@ -1624,11 +1648,13 @@ static void Main(string[] args)
static int GetInt() => 1; static int GetInt() => 1;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: IInvocationExpression (static System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32, IsInvalid) (Syntax: 'GetInt()') Initializer: IInvocationExpression (System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32, IsInvalid) (Syntax: 'GetInt()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0133: The expression being assigned to 'i1' must be constant // CS0133: The expression being assigned to 'i1' must be constant
...@@ -1653,14 +1679,18 @@ static void Main(string[] args) ...@@ -1653,14 +1679,18 @@ static void Main(string[] args)
static int GetInt() => 1; static int GetInt() => 1;
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;') IVariableDeclarationStatement (2 declarations) (OperationKind.VariableDeclarationStatement, IsInvalid) (Syntax: 'const /*<bi ... *</bind>*/;')
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1 = GetInt()') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i1 = GetInt()')
Variables: Local_1: System.Int32 i1 Variables: Local_1: System.Int32 i1
Initializer: IInvocationExpression (static System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32, IsInvalid) (Syntax: 'GetInt()') Initializer: IInvocationExpression (System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32, IsInvalid) (Syntax: 'GetInt()')
Instance Receiver: null
Arguments(0)
IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i2 = GetInt()') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration, IsInvalid) (Syntax: 'i2 = GetInt()')
Variables: Local_1: System.Int32 i2 Variables: Local_1: System.Int32 i2
Initializer: IInvocationExpression (static System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32, IsInvalid) (Syntax: 'GetInt()') Initializer: IInvocationExpression (System.Int32 Program.GetInt()) (OperationKind.InvocationExpression, Type: System.Int32, IsInvalid) (Syntax: 'GetInt()')
Instance Receiver: null
Arguments(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0133: The expression being assigned to 'i1' must be constant // CS0133: The expression being assigned to 'i1' must be constant
......
...@@ -103,15 +103,19 @@ static void Main(string[] args) ...@@ -103,15 +103,19 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
ISwitchStatement (1 cases) (OperationKind.SwitchStatement, IsInvalid) (Syntax: 'switch (x.T ... }') ISwitchStatement (1 cases) (OperationKind.SwitchStatement, IsInvalid) (Syntax: 'switch (x.T ... }')
Switch expression: IInvocationExpression (virtual System.String System.Object.ToString()) (OperationKind.InvocationExpression, Type: System.String) (Syntax: 'x.ToString()') Switch expression: IInvocationExpression (virtual System.String System.Object.ToString()) (OperationKind.InvocationExpression, Type: System.String) (Syntax: 'x.ToString()')
Instance Receiver: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: Program) (Syntax: 'x') Instance Receiver: ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: Program) (Syntax: 'x')
Sections: ISwitchCase (1 case clauses, 1 statements) (OperationKind.SwitchCase, IsInvalid) (Syntax: 'case 1: ... break;') Arguments(0)
Clauses: ISingleValueCaseClause (Equality operator kind: BinaryOperationKind.StringEquals) (CaseKind.SingleValue) (OperationKind.SingleValueCaseClause, IsInvalid) (Syntax: 'case 1:') Sections:
ISwitchCase (1 case clauses, 1 statements) (OperationKind.SwitchCase, IsInvalid) (Syntax: 'case 1: ... break;')
Clauses:
ISingleValueCaseClause (Equality operator kind: BinaryOperationKind.StringEquals) (CaseKind.SingleValue) (OperationKind.SingleValueCaseClause, IsInvalid) (Syntax: 'case 1:')
IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.String, IsInvalid) (Syntax: '1') IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.String, IsInvalid) (Syntax: '1')
ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1, IsInvalid) (Syntax: '1') ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1, IsInvalid) (Syntax: '1')
Body: IBranchStatement (BranchKind.Break) (OperationKind.BranchStatement) (Syntax: 'break;') Body:
IBranchStatement (BranchKind.Break) (OperationKind.BranchStatement) (Syntax: 'break;')
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0029: Cannot implicitly convert type 'int' to 'string' // CS0029: Cannot implicitly convert type 'int' to 'string'
...@@ -139,7 +143,7 @@ static void Main(string[] args) ...@@ -139,7 +143,7 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IIfStatement (OperationKind.IfStatement, IsInvalid) (Syntax: 'if (x = nul ... }') IIfStatement (OperationKind.IfStatement, IsInvalid) (Syntax: 'if (x = nul ... }')
Condition: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Boolean, IsInvalid) (Syntax: 'x = null') Condition: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Boolean, IsInvalid) (Syntax: 'x = null')
ISimpleAssignmentExpression (OperationKind.SimpleAssignmentExpression, Type: Program, IsInvalid) (Syntax: 'x = null') ISimpleAssignmentExpression (OperationKind.SimpleAssignmentExpression, Type: Program, IsInvalid) (Syntax: 'x = null')
...@@ -147,6 +151,7 @@ static void Main(string[] args) ...@@ -147,6 +151,7 @@ static void Main(string[] args)
Right: IConversionExpression (ConversionKind.Cast, Implicit) (OperationKind.ConversionExpression, Type: Program, Constant: null, IsInvalid) (Syntax: 'null') Right: IConversionExpression (ConversionKind.Cast, Implicit) (OperationKind.ConversionExpression, Type: Program, Constant: null, IsInvalid) (Syntax: 'null')
ILiteralExpression (Text: null) (OperationKind.LiteralExpression, Type: null, Constant: null, IsInvalid) (Syntax: 'null') ILiteralExpression (Text: null) (OperationKind.LiteralExpression, Type: null, Constant: null, IsInvalid) (Syntax: 'null')
IfTrue: IBlockStatement (0 statements) (OperationKind.BlockStatement) (Syntax: '{ ... }') IfTrue: IBlockStatement (0 statements) (OperationKind.BlockStatement) (Syntax: '{ ... }')
IfFalse: null
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0029: Cannot implicitly convert type 'Program' to 'bool' // CS0029: Cannot implicitly convert type 'Program' to 'bool'
...@@ -176,10 +181,11 @@ static void Main(string[] args) ...@@ -176,10 +181,11 @@ static void Main(string[] args)
/*</bind>*/ } /*</bind>*/ }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IIfStatement (OperationKind.IfStatement, IsInvalid) (Syntax: 'if () ... else') IIfStatement (OperationKind.IfStatement, IsInvalid) (Syntax: 'if () ... else')
Condition: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Boolean, IsInvalid) (Syntax: '') Condition: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Boolean, IsInvalid) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: '')
Children(0)
IfTrue: IBlockStatement (0 statements) (OperationKind.BlockStatement) (Syntax: '{ ... }') IfTrue: IBlockStatement (0 statements) (OperationKind.BlockStatement) (Syntax: '{ ... }')
IfFalse: IIfStatement (OperationKind.IfStatement, IsInvalid) (Syntax: 'if (x) x; ... else') IfFalse: IIfStatement (OperationKind.IfStatement, IsInvalid) (Syntax: 'if (x) x; ... else')
Condition: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Boolean, IsInvalid) (Syntax: 'x') Condition: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Boolean, IsInvalid) (Syntax: 'x')
...@@ -188,6 +194,7 @@ static void Main(string[] args) ...@@ -188,6 +194,7 @@ static void Main(string[] args)
ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: Program, IsInvalid) (Syntax: 'x') ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: Program, IsInvalid) (Syntax: 'x')
IfFalse: IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: '') IfFalse: IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: '')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?) (Syntax: '') IInvalidExpression (OperationKind.InvalidExpression, Type: ?) (Syntax: '')
Children(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS1525: Invalid expression term ')' // CS1525: Invalid expression term ')'
...@@ -227,12 +234,15 @@ static void Main(string[] args) ...@@ -227,12 +234,15 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IForLoopStatement (LoopKind.For) (OperationKind.LoopStatement, IsInvalid) (Syntax: 'for (P; x;) ... }') IForLoopStatement (LoopKind.For) (OperationKind.LoopStatement, IsInvalid) (Syntax: 'for (P; x;) ... }')
Condition: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Boolean, IsInvalid) (Syntax: 'x') Condition: IConversionExpression (ConversionKind.Invalid, Implicit) (OperationKind.ConversionExpression, Type: System.Boolean, IsInvalid) (Syntax: 'x')
ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: Program, IsInvalid) (Syntax: 'x') ILocalReferenceExpression: x (OperationKind.LocalReferenceExpression, Type: Program, IsInvalid) (Syntax: 'x')
Before: IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: 'P') Before:
IExpressionStatement (OperationKind.ExpressionStatement, IsInvalid) (Syntax: 'P')
IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'P') IInvalidExpression (OperationKind.InvalidExpression, Type: ?, IsInvalid) (Syntax: 'P')
Children(0)
AtLoopBottom(0)
Body: IBlockStatement (0 statements) (OperationKind.BlockStatement) (Syntax: '{ ... }') Body: IBlockStatement (0 statements) (OperationKind.BlockStatement) (Syntax: '{ ... }')
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
...@@ -269,9 +279,10 @@ static void Main(string[] args) ...@@ -269,9 +279,10 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInvalidStatement (OperationKind.InvalidStatement, IsInvalid) (Syntax: 'goto case 1;') IInvalidStatement (OperationKind.InvalidStatement, IsInvalid) (Syntax: 'goto case 1;')
Children(1): ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1, IsInvalid) (Syntax: '1') Children(1):
ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1, IsInvalid) (Syntax: '1')
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0159: No such label 'case 1:' within the scope of the goto statement // CS0159: No such label 'case 1:' within the scope of the goto statement
...@@ -323,8 +334,9 @@ static void Main(string[] args) ...@@ -323,8 +334,9 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInvalidStatement (OperationKind.InvalidStatement, IsInvalid) (Syntax: 'break;') IInvalidStatement (OperationKind.InvalidStatement, IsInvalid) (Syntax: 'break;')
Children(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0139: No enclosing loop out of which to break or continue // CS0139: No enclosing loop out of which to break or continue
...@@ -349,8 +361,9 @@ static void Main(string[] args) ...@@ -349,8 +361,9 @@ static void Main(string[] args)
} }
} }
"; ";
string expectedOperationTree = @" string expectedOperationTree = @"
IInvalidStatement (OperationKind.InvalidStatement, IsInvalid) (Syntax: 'continue;') IInvalidStatement (OperationKind.InvalidStatement, IsInvalid) (Syntax: 'continue;')
Children(0)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
// CS0139: No enclosing loop out of which to break or continue // CS0139: No enclosing loop out of which to break or continue
......
' 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
...@@ -23,9 +23,11 @@ Class C ...@@ -23,9 +23,11 @@ Class C
End Sub End Sub
End Class]]>.Value End Class]]>.Value
Dim expectedOperationTree = <![CDATA[ Dim expectedOperationTree = <![CDATA[
IOperation: (OperationKind.None) (Syntax: 'Conditional(field)') IOperation: (OperationKind.None) (Syntax: 'Conditional(field)')
Children(1): IFieldReferenceExpression: C.field As System.String (Static) (OperationKind.FieldReferenceExpression, Type: System.String, Constant: "field") (Syntax: 'field') Children(1):
IFieldReferenceExpression: C.field As System.String (Static) (OperationKind.FieldReferenceExpression, Type: System.String, Constant: "field") (Syntax: 'field')
Instance Receiver: null
]]>.Value ]]>.Value
Dim expectedDiagnostics = String.Empty Dim expectedDiagnostics = String.Empty
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册