提交 24bd64fd 编写于 作者: G Gen Lu

Add missing IOperation trait and fix tests

上级 87dd6937
// 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.Semantics; using Microsoft.CodeAnalysis.Semantics;
...@@ -1625,6 +1625,7 @@ public void M() ...@@ -1625,6 +1625,7 @@ public void M()
VerifyOperationTreeAndDiagnosticsForTest<ElementAccessExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics, AdditionalOperationTreeVerifier: IndexerAccessArgumentVerifier.Verify); VerifyOperationTreeAndDiagnosticsForTest<ElementAccessExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics, AdditionalOperationTreeVerifier: IndexerAccessArgumentVerifier.Verify);
} }
[CompilerTrait(CompilerFeature.IOperation)]
[ClrOnlyFact(ClrOnlyReason.Ilasm)] [ClrOnlyFact(ClrOnlyReason.Ilasm)]
public void AssigningToIndexer_UsingDefaultArgumentFromSetter() public void AssigningToIndexer_UsingDefaultArgumentFromSetter()
{ {
...@@ -1725,13 +1726,12 @@ public static void Main(string[] args) ...@@ -1725,13 +1726,12 @@ public static void Main(string[] args)
Arguments(2): Arguments(2):
IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10') IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (Syntax: 'p[10]') IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (Syntax: 'p[10]')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 4) (Syntax: 'p[10]') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 4) (Syntax: 'p[10]')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
var expectedOutput = @"10 4 var expectedOutput = @"10 4
...@@ -1742,6 +1742,7 @@ public static void Main(string[] args) ...@@ -1742,6 +1742,7 @@ public static void Main(string[] args)
CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput); CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput);
} }
[CompilerTrait(CompilerFeature.IOperation)]
[ClrOnlyFact(ClrOnlyReason.Ilasm)] [ClrOnlyFact(ClrOnlyReason.Ilasm)]
public void ReadFromIndexer_UsingDefaultArgumentFromGetter() public void ReadFromIndexer_UsingDefaultArgumentFromGetter()
{ {
...@@ -1842,10 +1843,12 @@ public static void Main(string[] args) ...@@ -1842,10 +1843,12 @@ public static void Main(string[] args)
Arguments(2): Arguments(2):
IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10') IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (Syntax: 'p[10]') IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (Syntax: 'p[10]')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: 'p[10]') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: 'p[10]')
InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -1857,6 +1860,7 @@ public static void Main(string[] args) ...@@ -1857,6 +1860,7 @@ public static void Main(string[] args)
CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput); CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput);
} }
[CompilerTrait(CompilerFeature.IOperation)]
[ClrOnlyFact(ClrOnlyReason.Ilasm)] [ClrOnlyFact(ClrOnlyReason.Ilasm)]
public void IndexerAccess_LHSOfCompoundAssignment() public void IndexerAccess_LHSOfCompoundAssignment()
{ {
...@@ -1957,10 +1961,12 @@ public static void Main(string[] args) ...@@ -1957,10 +1961,12 @@ public static void Main(string[] args)
Arguments(2): Arguments(2):
IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10') IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (Syntax: 'p[10]') IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (Syntax: 'p[10]')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: 'p[10]') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: 'p[10]')
InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
...@@ -1973,6 +1979,7 @@ 10 2 ...@@ -1973,6 +1979,7 @@ 10 2
CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput); CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput);
} }
[CompilerTrait(CompilerFeature.IOperation)]
[ClrOnlyFact(ClrOnlyReason.Ilasm)] [ClrOnlyFact(ClrOnlyReason.Ilasm)]
public void InvalidConversionForDefaultArgument_InIL() public void InvalidConversionForDefaultArgument_InIL()
{ {
...@@ -2020,12 +2027,15 @@ public void M2() ...@@ -2020,12 +2027,15 @@ public void M2()
IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.ConversionExpression, Type: System.Int32) (Syntax: 'p.M1()') IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.ConversionExpression, Type: System.Int32) (Syntax: 'p.M1()')
Conversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null) Conversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: ""abc"") (Syntax: 'p.M1()') Operand: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: ""abc"") (Syntax: 'p.M1()')
InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
"; ";
var expectedDiagnostics = DiagnosticDescription.None; var expectedDiagnostics = DiagnosticDescription.None;
VerifyOperationTreeAndDiagnosticsForTestWithIL<InvocationExpressionSyntax>(csharp, il, expectedOperationTree, expectedDiagnostics); VerifyOperationTreeAndDiagnosticsForTestWithIL<InvocationExpressionSyntax>(csharp, il, expectedOperationTree, expectedDiagnostics);
} }
[CompilerTrait(CompilerFeature.IOperation)]
[Fact, WorkItem(20330, "https://github.com/dotnet/roslyn/issues/20330")] [Fact, WorkItem(20330, "https://github.com/dotnet/roslyn/issues/20330")]
public void DefaultValueNullForNullableTypeParameterWithMissingNullableReference() public void DefaultValueNullForNullableTypeParameterWithMissingNullableReference()
{ {
...@@ -2076,6 +2086,7 @@ static void M2(bool? x = null) ...@@ -2076,6 +2086,7 @@ static void M2(bool? x = null)
VerifyOperationTreeAndDiagnosticsForTest<InvocationExpressionSyntax>(compilation, expectedOperationTree, expectedDiagnostics); VerifyOperationTreeAndDiagnosticsForTest<InvocationExpressionSyntax>(compilation, expectedOperationTree, expectedDiagnostics);
} }
[CompilerTrait(CompilerFeature.IOperation)]
[Fact, WorkItem(20330, "https://github.com/dotnet/roslyn/issues/20330")] [Fact, WorkItem(20330, "https://github.com/dotnet/roslyn/issues/20330")]
public void DefaultValueWithParameterErrorType() public void DefaultValueWithParameterErrorType()
{ {
...@@ -2098,8 +2109,8 @@ static void M2(int x, S s = 0) ...@@ -2098,8 +2109,8 @@ static void M2(int x, S s = 0)
Arguments(1): Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: null) (OperationKind.Argument) (Syntax: '1') IArgument (ArgumentKind.Explicit, Matching Parameter: null) (OperationKind.Argument) (Syntax: '1')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
"; ";
var expectedDiagnostics = new DiagnosticDescription[] { var expectedDiagnostics = new DiagnosticDescription[] {
......
' 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 Imports Microsoft.CodeAnalysis
Imports Microsoft.CodeAnalysis.Test.Utilities Imports Microsoft.CodeAnalysis.Test.Utilities
...@@ -12,7 +12,8 @@ Imports Roslyn.Test.Utilities ...@@ -12,7 +12,8 @@ Imports Roslyn.Test.Utilities
Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests
Public Class BindingCollectionInitializerTests Public Class BindingCollectionInitializerTests
Inherits BasicTestBase Inherits BasicTestBase
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerList() Public Sub CollectionInitializerList()
Dim source = Dim source =
...@@ -48,7 +49,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.List(Of S ...@@ -48,7 +49,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.List(Of S
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerListEachElementAsCollectionInitializer() Public Sub CollectionInitializerListEachElementAsCollectionInitializer()
Dim source = Dim source =
...@@ -93,7 +95,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.List(Of S ...@@ -93,7 +95,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.List(Of S
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerDictionary() Public Sub CollectionInitializerDictionary()
Dim source = Dim source =
...@@ -141,7 +144,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.Dictionar ...@@ -141,7 +144,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.Dictionar
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerCustomCollection() Public Sub CollectionInitializerCustomCollection()
Dim source = Dim source =
...@@ -244,7 +248,8 @@ IObjectCreationExpression (Constructor: Sub Custom..ctor()) (OperationKind.Objec ...@@ -244,7 +248,8 @@ IObjectCreationExpression (Constructor: Sub Custom..ctor()) (OperationKind.Objec
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerEmptyInitializers() Public Sub CollectionInitializerEmptyInitializers()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -282,7 +287,8 @@ BC36721: An aggregate collection initializer entry must contain at least one ele ...@@ -282,7 +287,8 @@ BC36721: An aggregate collection initializer entry must contain at least one ele
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerNotACollection() Public Sub CollectionInitializerNotACollection()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -315,7 +321,8 @@ BC36718: Cannot initialize the type 'C1' with a collection initializer because i ...@@ -315,7 +321,8 @@ BC36718: Cannot initialize the type 'C1' with a collection initializer because i
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerCannotCombineBothInitializers() Public Sub CollectionInitializerCannotCombineBothInitializers()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -440,7 +447,8 @@ BC36720: An Object Initializer and a Collection Initializer cannot be combined i ...@@ -440,7 +447,8 @@ BC36720: An Object Initializer and a Collection Initializer cannot be combined i
VerifyOperationTreeAndDiagnosticsForTest(Of MethodBlockSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of MethodBlockSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerNoAddMethod() Public Sub CollectionInitializerNoAddMethod()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -535,7 +543,8 @@ BC36719: Cannot initialize the type 'C5' with a collection initializer because i ...@@ -535,7 +543,8 @@ BC36719: Cannot initialize the type 'C5' with a collection initializer because i
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerAddMethodIsFunction() Public Sub CollectionInitializerAddMethodIsFunction()
Dim source = Dim source =
...@@ -606,7 +615,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre ...@@ -606,7 +615,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerOverloadResolutionErrors() Public Sub CollectionInitializerOverloadResolutionErrors()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -718,7 +728,8 @@ BC30439: Constant expression not representable in type 'Byte'. ...@@ -718,7 +728,8 @@ BC30439: Constant expression not representable in type 'Byte'.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCollectionInitializerSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCollectionInitializerSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerWarningsWillBeKept() Public Sub CollectionInitializerWarningsWillBeKept()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1019,7 +1030,8 @@ End Class ...@@ -1019,7 +1030,8 @@ End Class
CompileAndVerify(source, "Hello World!") CompileAndVerify(source, "Hello World!")
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerTypeConstraintsAndAmbiguity() Public Sub CollectionInitializerTypeConstraintsAndAmbiguity()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1070,7 +1082,8 @@ BC30521: Overload resolution failed because no accessible 'Add' is most specific ...@@ -1070,7 +1082,8 @@ BC30521: Overload resolution failed because no accessible 'Add' is most specific
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<WorkItem(529265, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/529265")> <WorkItem(529265, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/529265")>
<Fact()> <Fact()>
Public Sub CollectionInitializerCollectionInitializerArityCheck() Public Sub CollectionInitializerCollectionInitializerArityCheck()
...@@ -1369,7 +1382,8 @@ BC42104: Variable 'd' is used before it has been assigned a value. A null refere ...@@ -1369,7 +1382,8 @@ BC42104: Variable 'd' is used before it has been assigned a value. A null refere
~ ~
</expected>) </expected>)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerReferencingItself_2() Public Sub CollectionInitializerReferencingItself_2()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1398,8 +1412,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.List(Of S ...@@ -1398,8 +1412,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.List(Of S
Arguments(1): Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: index) (OperationKind.Argument) (Syntax: '0') IArgument (ArgumentKind.Explicit, Matching Parameter: index) (OperationKind.Argument) (Syntax: '0')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
]]>.Value ]]>.Value
Dim expectedDiagnostics = <![CDATA[ Dim expectedDiagnostics = <![CDATA[
...@@ -1413,7 +1427,8 @@ BC42104: Variable 'z' is used before it has been assigned a value. A null refere ...@@ -1413,7 +1427,8 @@ BC42104: Variable 'z' is used before it has been assigned a value. A null refere
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub CollectionInitializerCustomCollectionOptionalParameter() Public Sub CollectionInitializerCustomCollectionOptionalParameter()
Dim source = Dim source =
......
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Imports System.Linq.Enumerable Imports System.Linq.Enumerable
Imports System.Xml.Linq Imports System.Xml.Linq
...@@ -15,7 +15,8 @@ Imports Roslyn.Test.Utilities ...@@ -15,7 +15,8 @@ Imports Roslyn.Test.Utilities
Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests
Public Class BindingMemberInitializerTests Public Class BindingMemberInitializerTests
Inherits BasicTestBase Inherits BasicTestBase
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub SimpleObjectInitialization() Public Sub SimpleObjectInitialization()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -49,7 +50,8 @@ IObjectCreationExpression (Constructor: Sub C2..ctor()) (OperationKind.ObjectCre ...@@ -49,7 +50,8 @@ IObjectCreationExpression (Constructor: Sub C2..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializationWithFieldOnRight() Public Sub ObjectInitializationWithFieldOnRight()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -85,7 +87,8 @@ IObjectCreationExpression (Constructor: Sub C2..ctor()) (OperationKind.ObjectCre ...@@ -85,7 +87,8 @@ IObjectCreationExpression (Constructor: Sub C2..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerEmptyInitializers() Public Sub ObjectInitializerEmptyInitializers()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -117,7 +120,8 @@ BC30996: Initializer expected. ...@@ -117,7 +120,8 @@ BC30996: Initializer expected.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerMissingIdentifierInInitializer() Public Sub ObjectInitializerMissingIdentifierInInitializer()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -173,7 +177,8 @@ BC30451: 'Unknown' is not declared. It may be inaccessible due to its protection ...@@ -173,7 +177,8 @@ BC30451: 'Unknown' is not declared. It may be inaccessible due to its protection
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerOnlyDotIdentifierInInitializer() Public Sub ObjectInitializerOnlyDotIdentifierInInitializer()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -216,7 +221,8 @@ BC30984: '=' expected (object initializer). ...@@ -216,7 +221,8 @@ BC30984: '=' expected (object initializer).
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerMissingExpressionInInitializer() Public Sub ObjectInitializerMissingExpressionInInitializer()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -256,7 +262,8 @@ BC30201: Expression expected. ...@@ -256,7 +262,8 @@ BC30201: Expression expected.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<WorkItem(529213, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/529213")> <WorkItem(529213, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/529213")>
<Fact()> <Fact()>
Public Sub ObjectInitializerKeyKeywordInInitializer() Public Sub ObjectInitializerKeyKeywordInInitializer()
...@@ -304,7 +311,8 @@ BC30451: 'Key' is not declared. It may be inaccessible due to its protection lev ...@@ -304,7 +311,8 @@ BC30451: 'Key' is not declared. It may be inaccessible due to its protection lev
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<WorkItem(544357, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544357")> <WorkItem(544357, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544357")>
<Fact()> <Fact()>
Public Sub ObjectInitializerMultipleInitializations() Public Sub ObjectInitializerMultipleInitializations()
...@@ -350,7 +358,8 @@ BC30989: Multiple initializations of 'Field'. Fields and properties can be init ...@@ -350,7 +358,8 @@ BC30989: Multiple initializations of 'Field'. Fields and properties can be init
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInitializingObject() Public Sub ObjectInitializerInitializingObject()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -416,7 +425,8 @@ End Class ...@@ -416,7 +425,8 @@ End Class
Hello World! Hello World!
]]>) ]]>)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInitializeSharedFieldOnNewInstance() Public Sub ObjectInitializerInitializeSharedFieldOnNewInstance()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -452,7 +462,8 @@ BC30991: Member 'Field1' cannot be initialized in an object initializer expressi ...@@ -452,7 +462,8 @@ BC30991: Member 'Field1' cannot be initialized in an object initializer expressi
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInitializeNonExistentField() Public Sub ObjectInitializerInitializeNonExistentField()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -502,7 +513,8 @@ BC30456: 'Field1' is not a member of 'C1'. ...@@ -502,7 +513,8 @@ BC30456: 'Field1' is not a member of 'C1'.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInitializeInaccessibleField() Public Sub ObjectInitializerInitializeInaccessibleField()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -546,7 +558,8 @@ BC30389: 'C2.Field' is not accessible in this context because it is 'Protected'. ...@@ -546,7 +558,8 @@ BC30389: 'C2.Field' is not accessible in this context because it is 'Protected'.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInitializeNonWriteableMember() Public Sub ObjectInitializerInitializeNonWriteableMember()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -586,7 +599,8 @@ BC30990: Member 'Goo' cannot be initialized in an object initializer expression ...@@ -586,7 +599,8 @@ BC30990: Member 'Goo' cannot be initialized in an object initializer expression
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInitializeReadOnlyProperty() Public Sub ObjectInitializerInitializeReadOnlyProperty()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -625,7 +639,8 @@ BC30526: Property 'X' is 'ReadOnly'. ...@@ -625,7 +639,8 @@ BC30526: Property 'X' is 'ReadOnly'.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInitializeReadOnlyField() Public Sub ObjectInitializerInitializeReadOnlyField()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -664,7 +679,8 @@ BC30064: 'ReadOnly' variable cannot be the target of an assignment. ...@@ -664,7 +679,8 @@ BC30064: 'ReadOnly' variable cannot be the target of an assignment.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerPropertyWithInaccessibleSet() Public Sub ObjectInitializerPropertyWithInaccessibleSet()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -705,7 +721,8 @@ BC31102: 'Set' accessor of property 'X' is not accessible. ...@@ -705,7 +721,8 @@ BC31102: 'Set' accessor of property 'X' is not accessible.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerTypeIsErrorType() Public Sub ObjectInitializerTypeIsErrorType()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -785,7 +802,8 @@ BC30451: 'Unknown' is not declared. It may be inaccessible due to its protection ...@@ -785,7 +802,8 @@ BC30451: 'Unknown' is not declared. It may be inaccessible due to its protection
VerifyOperationTreeAndDiagnosticsForTest(Of MethodBlockSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of MethodBlockSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerNewTWith() Public Sub ObjectInitializerNewTWith()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -822,7 +840,8 @@ ITypeParameterObjectCreationExpression (OperationKind.TypeParameterObjectCreatio ...@@ -822,7 +840,8 @@ ITypeParameterObjectCreationExpression (OperationKind.TypeParameterObjectCreatio
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerTypeParametersInInitializers() Public Sub ObjectInitializerTypeParametersInInitializers()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -862,7 +881,8 @@ IObjectCreationExpression (Constructor: Sub C1(Of T)..ctor()) (OperationKind.Obj ...@@ -862,7 +881,8 @@ IObjectCreationExpression (Constructor: Sub C1(Of T)..ctor()) (OperationKind.Obj
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerNestedInWithStatement_1() Public Sub ObjectInitializerNestedInWithStatement_1()
Dim source = Dim source =
...@@ -913,7 +933,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre ...@@ -913,7 +933,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerNestedInWithStatement_2() Public Sub ObjectInitializerNestedInWithStatement_2()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -962,7 +983,8 @@ BC30456: 'Field2' is not a member of 'C1'. ...@@ -962,7 +983,8 @@ BC30456: 'Field2' is not a member of 'C1'.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerNestedInitializers_1() Public Sub ObjectInitializerNestedInitializers_1()
Dim source = Dim source =
...@@ -1022,7 +1044,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre ...@@ -1022,7 +1044,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerNestedInitializers_2() Public Sub ObjectInitializerNestedInitializers_2()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1079,7 +1102,8 @@ BC30456: 'Field2' is not a member of 'C2'. ...@@ -1079,7 +1102,8 @@ BC30456: 'Field2' is not a member of 'C2'.
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerCaptureFieldForLambda() Public Sub ObjectInitializerCaptureFieldForLambda()
Dim source = Dim source =
...@@ -1141,7 +1165,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre ...@@ -1141,7 +1165,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerUsedInFieldInitializers() Public Sub ObjectInitializerUsedInFieldInitializers()
Dim source = Dim source =
...@@ -1214,7 +1239,8 @@ BC42104: Variable 'y' is used before it has been assigned a value. A null refere ...@@ -1214,7 +1239,8 @@ BC42104: Variable 'y' is used before it has been assigned a value. A null refere
</expected>) </expected>)
' Yeah! We did not have this in Dev10 :) ' Yeah! We did not have this in Dev10 :)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInitializePropertyWithOptionalParameters() Public Sub ObjectInitializerInitializePropertyWithOptionalParameters()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1244,8 +1270,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre ...@@ -1244,8 +1270,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre
Arguments(1): Arguments(1):
IArgument (ArgumentKind.DefaultValue, Matching Parameter: p) (OperationKind.Argument) (Syntax: 'X') IArgument (ArgumentKind.DefaultValue, Matching Parameter: p) (OperationKind.Argument) (Syntax: 'X')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 23) (Syntax: 'X') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 23) (Syntax: 'X')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Right: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Hello World!") (Syntax: '"Hello World!"') Right: ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Hello World!") (Syntax: '"Hello World!"')
]]>.Value ]]>.Value
...@@ -1253,7 +1279,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre ...@@ -1253,7 +1279,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerMemberAccessOnInitExpressionAllowsAllFields() Public Sub ObjectInitializerMemberAccessOnInitExpressionAllowsAllFields()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1293,23 +1320,24 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre ...@@ -1293,23 +1320,24 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre
Arguments(1): Arguments(1):
IArgument (ArgumentKind.DefaultValue, Matching Parameter: p) (OperationKind.Argument) (Syntax: 'X') IArgument (ArgumentKind.DefaultValue, Matching Parameter: p) (OperationKind.Argument) (Syntax: 'X')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 23) (Syntax: 'X') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 23) (Syntax: 'X')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Right: IInvocationExpression ( Function C1.InstanceFunction(p As System.String) As System.String) (OperationKind.InvocationExpression, Type: System.String) (Syntax: '.InstanceFu ... on(.ROProp)') Right: IInvocationExpression ( Function C1.InstanceFunction(p As System.String) As System.String) (OperationKind.InvocationExpression, Type: System.String) (Syntax: '.InstanceFu ... on(.ROProp)')
Instance Receiver: IOperation: (OperationKind.None) (Syntax: 'New C1() Wi ... n(.ROProp)}') Instance Receiver: IOperation: (OperationKind.None) (Syntax: 'New C1() Wi ... n(.ROProp)}')
Arguments(1): Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: p) (OperationKind.Argument) (Syntax: '.ROProp') IArgument (ArgumentKind.Explicit, Matching Parameter: p) (OperationKind.Argument) (Syntax: '.ROProp')
IPropertyReferenceExpression: ReadOnly Property C1.ROProp As System.String (OperationKind.PropertyReferenceExpression, Type: System.String) (Syntax: '.ROProp') IPropertyReferenceExpression: ReadOnly Property C1.ROProp As System.String (OperationKind.PropertyReferenceExpression, Type: System.String) (Syntax: '.ROProp')
Instance Receiver: IOperation: (OperationKind.None) (Syntax: 'New C1() Wi ... n(.ROProp)}') Instance Receiver: IOperation: (OperationKind.None) (Syntax: 'New C1() Wi ... n(.ROProp)}')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
]]>.Value ]]>.Value
Dim expectedDiagnostics = String.Empty Dim expectedDiagnostics = String.Empty
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerUsingInitializedTargetInInitializerValueType() Public Sub ObjectInitializerUsingInitializedTargetInInitializerValueType()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1357,7 +1385,8 @@ IObjectCreationExpression (Constructor: Sub s1..ctor()) (OperationKind.ObjectCre ...@@ -1357,7 +1385,8 @@ IObjectCreationExpression (Constructor: Sub s1..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerWithLifting_1() Public Sub ObjectInitializerWithLifting_1()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1430,7 +1459,8 @@ IObjectCreationExpression (Constructor: Sub C2..ctor()) (OperationKind.ObjectCre ...@@ -1430,7 +1459,8 @@ IObjectCreationExpression (Constructor: Sub C2..ctor()) (OperationKind.ObjectCre
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerDictionaryLookupOperatorSupported() Public Sub ObjectInitializerDictionaryLookupOperatorSupported()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1470,15 +1500,16 @@ IObjectCreationExpression (Constructor: Sub cust..ctor()) (OperationKind.ObjectC ...@@ -1470,15 +1500,16 @@ IObjectCreationExpression (Constructor: Sub cust..ctor()) (OperationKind.ObjectC
Arguments(1): Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: arg) (OperationKind.Argument) (Syntax: 'a') IArgument (ArgumentKind.Explicit, Matching Parameter: arg) (OperationKind.Argument) (Syntax: 'a')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "a") (Syntax: 'a') ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "a") (Syntax: 'a')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
]]>.Value ]]>.Value
Dim expectedDiagnostics = String.Empty Dim expectedDiagnostics = String.Empty
VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ObjectInitializerInField() Public Sub ObjectInitializerInField()
Dim source = <![CDATA[ Dim source = <![CDATA[
......
' 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.Test.Utilities
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.Semantics Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.Semantics
Partial Public Class IOperationTests Partial Public Class IOperationTests
Inherits SemanticModelTestBase Inherits SemanticModelTestBase
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub ILabelStatement_SimpleLabelTest() Public Sub ILabelStatement_SimpleLabelTest()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -30,8 +32,8 @@ IBlockStatement (5 statements) (OperationKind.BlockStatement) (Syntax: 'Public S ...@@ -30,8 +32,8 @@ IBlockStatement (5 statements) (OperationKind.BlockStatement) (Syntax: 'Public S
Arguments(1): Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: value) (OperationKind.Argument) (Syntax: '"Hello World!"') IArgument (ArgumentKind.Explicit, Matching Parameter: value) (OperationKind.Argument) (Syntax: '"Hello World!"')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Hello World!") (Syntax: '"Hello World!"') ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Hello World!") (Syntax: '"Hello World!"')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
ILabeledStatement (Label: exit) (OperationKind.LabeledStatement) (Syntax: 'End Sub') ILabeledStatement (Label: exit) (OperationKind.LabeledStatement) (Syntax: 'End Sub')
Statement: null Statement: null
IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'End Sub') IReturnStatement (OperationKind.ReturnStatement) (Syntax: 'End Sub')
......
' 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.Test.Utilities
Imports Microsoft.CodeAnalysis.VisualBasic.Symbols Imports Microsoft.CodeAnalysis.VisualBasic.Symbols
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
Imports Roslyn.Test.Utilities Imports Roslyn.Test.Utilities
...@@ -9,6 +10,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.ExtensionMethods ...@@ -9,6 +10,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.ExtensionMethods
Public Class AnonymousTypesTests Public Class AnonymousTypesTests
Inherits BasicTestBase Inherits BasicTestBase
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldsReferences() Public Sub AnonymousTypeFieldsReferences()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -46,7 +48,8 @@ IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.Conve ...@@ -46,7 +48,8 @@ IConversionExpression (Implicit, TryCast: False, Unchecked) (OperationKind.Conve
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeErrorInFieldReference() Public Sub AnonymousTypeErrorInFieldReference()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -81,7 +84,8 @@ BC30451: 'sss' is not declared. It may be inaccessible due to its protection lev ...@@ -81,7 +84,8 @@ BC30451: 'sss' is not declared. It may be inaccessible due to its protection lev
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldOfRestrictedType() Public Sub AnonymousTypeFieldOfRestrictedType()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -146,7 +150,8 @@ BC31396: 'TypedReference' cannot be made nullable, and cannot be used as the dat ...@@ -146,7 +150,8 @@ BC31396: 'TypedReference' cannot be made nullable, and cannot be used as the dat
VerifyOperationTreeAndDiagnosticsForTest(Of MethodBlockSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of MethodBlockSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeReferenceToOuterTypeField() Public Sub AnonymousTypeReferenceToOuterTypeField()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -183,7 +188,8 @@ BC36557: 'a' is not a member of '<anonymous type>'; it does not exist in the cur ...@@ -183,7 +188,8 @@ BC36557: 'a' is not a member of '<anonymous type>'; it does not exist in the cur
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldReferenceOutOfOrder01() Public Sub AnonymousTypeFieldReferenceOutOfOrder01()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -218,7 +224,8 @@ BC36559: Anonymous type member property 'c' cannot be used to infer the type of ...@@ -218,7 +224,8 @@ BC36559: Anonymous type member property 'c' cannot be used to infer the type of
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldReferenceOutOfOrder02() Public Sub AnonymousTypeFieldReferenceOutOfOrder02()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -252,7 +259,8 @@ BC36559: Anonymous type member property 'c' cannot be used to infer the type of ...@@ -252,7 +259,8 @@ BC36559: Anonymous type member property 'c' cannot be used to infer the type of
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithInstanceMethod() Public Sub AnonymousTypeFieldInitializedWithInstanceMethod()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -282,7 +290,8 @@ BC36557: 'ToString' is not a member of '<anonymous type>'; it does not exist in ...@@ -282,7 +290,8 @@ BC36557: 'ToString' is not a member of '<anonymous type>'; it does not exist in
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithSharedMethod() Public Sub AnonymousTypeFieldInitializedWithSharedMethod()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -314,7 +323,8 @@ BC36557: 'ReferenceEquals' is not a member of '<anonymous type>'; it does not ex ...@@ -314,7 +323,8 @@ BC36557: 'ReferenceEquals' is not a member of '<anonymous type>'; it does not ex
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithExtensionMethod() Public Sub AnonymousTypeFieldInitializedWithExtensionMethod()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -349,7 +359,8 @@ BC36557: 'EM' is not a member of '<anonymous type>'; it does not exist in the cu ...@@ -349,7 +359,8 @@ BC36557: 'EM' is not a member of '<anonymous type>'; it does not exist in the cu
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithConstructorCall() Public Sub AnonymousTypeFieldInitializedWithConstructorCall()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -379,7 +390,8 @@ BC36557: 'New' is not a member of '<anonymous type>'; it does not exist in the c ...@@ -379,7 +390,8 @@ BC36557: 'New' is not a member of '<anonymous type>'; it does not exist in the c
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldOfVoidType() Public Sub AnonymousTypeFieldOfVoidType()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -412,7 +424,8 @@ BC30491: Expression does not produce a value. ...@@ -412,7 +424,8 @@ BC30491: Expression does not produce a value.
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameWithGeneric() Public Sub AnonymousTypeFieldNameWithGeneric()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -444,7 +457,8 @@ BC32045: 'Public Property a As T0' has no type parameters and so cannot have typ ...@@ -444,7 +457,8 @@ BC32045: 'Public Property a As T0' has no type parameters and so cannot have typ
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldWithSyntaxError() Public Sub AnonymousTypeFieldWithSyntaxError()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -472,7 +486,8 @@ BC30203: Identifier expected. ...@@ -472,7 +486,8 @@ BC30203: Identifier expected.
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldWithNothingLiteral() Public Sub AnonymousTypeFieldWithNothingLiteral()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -497,7 +512,8 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress ...@@ -497,7 +512,8 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromGeneric01() Public Sub AnonymousTypeFieldNameInferenceFromGeneric01()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -531,7 +547,8 @@ BC36556: Anonymous type member name can be inferred only from a simple or qualif ...@@ -531,7 +547,8 @@ BC36556: Anonymous type member name can be inferred only from a simple or qualif
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromXml01() Public Sub AnonymousTypeFieldNameInferenceFromXml01()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -556,7 +573,8 @@ BC36556: Anonymous type member name can be inferred only from a simple or qualif ...@@ -556,7 +573,8 @@ BC36556: Anonymous type member name can be inferred only from a simple or qualif
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics, additionalReferences:=XmlReferences) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics, additionalReferences:=XmlReferences)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromXml02() Public Sub AnonymousTypeFieldNameInferenceFromXml02()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -576,7 +594,8 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress ...@@ -576,7 +594,8 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics, additionalReferences:=XmlReferences) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics, additionalReferences:=XmlReferences)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromXml03() Public Sub AnonymousTypeFieldNameInferenceFromXml03()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -600,7 +619,8 @@ BC36613: Anonymous type member name cannot be inferred from an XML identifier th ...@@ -600,7 +619,8 @@ BC36613: Anonymous type member name cannot be inferred from an XML identifier th
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics, additionalReferences:=XmlReferences) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics, additionalReferences:=XmlReferences)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<WorkItem(544370, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544370")> <WorkItem(544370, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544370")>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromXml04() Public Sub AnonymousTypeFieldNameInferenceFromXml04()
...@@ -642,7 +662,8 @@ BC36613: Anonymous type member name cannot be inferred from an XML identifier th ...@@ -642,7 +662,8 @@ BC36613: Anonymous type member name cannot be inferred from an XML identifier th
VerifyOperationTreeAndDiagnosticsForTest(Of MethodBlockSyntax)(source, expectedOperationTree, expectedDiagnostics, additionalReferences:=XmlReferences) VerifyOperationTreeAndDiagnosticsForTest(Of MethodBlockSyntax)(source, expectedOperationTree, expectedDiagnostics, additionalReferences:=XmlReferences)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromExpression01() Public Sub AnonymousTypeFieldNameInferenceFromExpression01()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -669,7 +690,8 @@ BC36556: Anonymous type member name can be inferred only from a simple or qualif ...@@ -669,7 +690,8 @@ BC36556: Anonymous type member name can be inferred only from a simple or qualif
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromExpression02() Public Sub AnonymousTypeFieldNameInferenceFromExpression02()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -698,7 +720,8 @@ BC36547: Anonymous type member or property 'a' is already declared. ...@@ -698,7 +720,8 @@ BC36547: Anonymous type member or property 'a' is already declared.
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromExpression03() Public Sub AnonymousTypeFieldNameInferenceFromExpression03()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -729,7 +752,8 @@ BC36547: Anonymous type member or property 'FLD' is already declared. ...@@ -729,7 +752,8 @@ BC36547: Anonymous type member or property 'FLD' is already declared.
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldNameInferenceFromExpression04() Public Sub AnonymousTypeFieldNameInferenceFromExpression04()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -753,8 +777,8 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress ...@@ -753,8 +777,8 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress
Arguments(1): Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: key) (OperationKind.Argument, IsInvalid) (Syntax: 'x') IArgument (ArgumentKind.Explicit, Matching Parameter: key) (OperationKind.Argument, IsInvalid) (Syntax: 'x')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "x", IsInvalid) (Syntax: 'x') ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "x", IsInvalid) (Syntax: 'x')
InConversion: null InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: null OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
]]>.Value ]]>.Value
Dim expectedDiagnostics = <![CDATA[ Dim expectedDiagnostics = <![CDATA[
...@@ -765,7 +789,8 @@ BC36547: Anonymous type member or property 'x' is already declared. ...@@ -765,7 +789,8 @@ BC36547: Anonymous type member or property 'x' is already declared.
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithAddressOf() Public Sub AnonymousTypeFieldInitializedWithAddressOf()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -797,7 +822,8 @@ BC30491: Expression does not produce a value. ...@@ -797,7 +822,8 @@ BC30491: Expression does not produce a value.
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithDelegate01() Public Sub AnonymousTypeFieldInitializedWithDelegate01()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -850,7 +876,8 @@ BC36549: Anonymous type property 'x' cannot be used in the definition of a lambd ...@@ -850,7 +876,8 @@ BC36549: Anonymous type property 'x' cannot be used in the definition of a lambd
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithDelegate02() Public Sub AnonymousTypeFieldInitializedWithDelegate02()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -904,7 +931,8 @@ BC36559: Anonymous type member property 'a' cannot be used to infer the type of ...@@ -904,7 +931,8 @@ BC36559: Anonymous type member property 'a' cannot be used to infer the type of
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithDelegate03() Public Sub AnonymousTypeFieldInitializedWithDelegate03()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -958,7 +986,8 @@ BC36557: 'x' is not a member of '<anonymous type>'; it does not exist in the cur ...@@ -958,7 +986,8 @@ BC36557: 'x' is not a member of '<anonymous type>'; it does not exist in the cur
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeFieldInitializedWithDelegate04() Public Sub AnonymousTypeFieldInitializedWithDelegate04()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -1026,7 +1055,8 @@ BC36557: 'x' is not a member of '<anonymous type>'; it does not exist in the cur ...@@ -1026,7 +1055,8 @@ BC36557: 'x' is not a member of '<anonymous type>'; it does not exist in the cur
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<WorkItem(542940, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/542940")> <WorkItem(542940, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/542940")>
<Fact> <Fact>
Public Sub LambdaReturningAnonymousType() Public Sub LambdaReturningAnonymousType()
...@@ -1051,7 +1081,7 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress ...@@ -1051,7 +1081,7 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress
VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub End Sub
<WorkItem(543286, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543286")> <WorkItem(543286, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543286")>
<Fact> <Fact>
Public Sub AnonymousTypeInALambdaInGenericMethod1() Public Sub AnonymousTypeInALambdaInGenericMethod1()
...@@ -1079,7 +1109,8 @@ End Module ...@@ -1079,7 +1109,8 @@ End Module
CompilationUtils.AssertTheseDiagnostics(compilation, <expected></expected>) CompilationUtils.AssertTheseDiagnostics(compilation, <expected></expected>)
Dim verifier = CompileAndVerify(compilation, expectedOutput:="{ x2 = 0 }") Dim verifier = CompileAndVerify(compilation, expectedOutput:="{ x2 = 0 }")
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact> <Fact>
Public Sub AnonymousTypeInALambdaInGenericMethod1_OperationTree() Public Sub AnonymousTypeInALambdaInGenericMethod1_OperationTree()
Dim source = <![CDATA[ Dim source = <![CDATA[
......
' 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.Test.Utilities
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
Imports Roslyn.Test.Utilities Imports Roslyn.Test.Utilities
...@@ -565,6 +566,7 @@ BC42016: Implicit conversion from 'Object' to 'Boolean'. ...@@ -565,6 +566,7 @@ BC42016: Implicit conversion from 'Object' to 'Boolean'.
</expected>) </expected>)
End Sub End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()> <Fact()>
Public Sub SelectCase_AnonymousLambda_OperationTree() Public Sub SelectCase_AnonymousLambda_OperationTree()
Dim source = <![CDATA[ Dim source = <![CDATA[
...@@ -609,6 +611,8 @@ ISwitchStatement (2 cases) (OperationKind.SwitchStatement) (Syntax: 'Select Case ...@@ -609,6 +611,8 @@ ISwitchStatement (2 cases) (OperationKind.SwitchStatement) (Syntax: 'Select Case
Arguments(1): Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: value) (OperationKind.Argument) (Syntax: '"Failed"') IArgument (ArgumentKind.Explicit, Matching Parameter: value) (OperationKind.Argument) (Syntax: '"Failed"')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Failed") (Syntax: '"Failed"') ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Failed") (Syntax: '"Failed"')
InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
ISwitchCase (1 case clauses, 1 statements) (OperationKind.SwitchCase) (Syntax: 'Case Else ... Succeeded")') ISwitchCase (1 case clauses, 1 statements) (OperationKind.SwitchCase) (Syntax: 'Case Else ... Succeeded")')
Clauses: Clauses:
IDefaultCaseClause (CaseKind.Default) (OperationKind.DefaultCaseClause) (Syntax: 'Case Else') IDefaultCaseClause (CaseKind.Default) (OperationKind.DefaultCaseClause) (Syntax: 'Case Else')
...@@ -620,6 +624,8 @@ ISwitchStatement (2 cases) (OperationKind.SwitchStatement) (Syntax: 'Select Case ...@@ -620,6 +624,8 @@ ISwitchStatement (2 cases) (OperationKind.SwitchStatement) (Syntax: 'Select Case
Arguments(1): Arguments(1):
IArgument (ArgumentKind.Explicit, Matching Parameter: value) (OperationKind.Argument) (Syntax: '"Succeeded"') IArgument (ArgumentKind.Explicit, Matching Parameter: value) (OperationKind.Argument) (Syntax: '"Succeeded"')
ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Succeeded") (Syntax: '"Succeeded"') ILiteralExpression (OperationKind.LiteralExpression, Type: System.String, Constant: "Succeeded") (Syntax: '"Succeeded"')
InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: 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.
先完成此消息的编辑!
想要评论请 注册