diff --git a/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IArgument.cs b/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IArgument.cs index 37efd932053dd90d94aabef377da8f2ba55fbb51..ca9e3afbea43da76c77c9012640d3bf6b62076e5 100644 --- a/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IArgument.cs +++ b/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IArgument.cs @@ -1,4 +1,4 @@ -// 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.Semantics; @@ -1625,6 +1625,7 @@ public void M() VerifyOperationTreeAndDiagnosticsForTest(source, expectedOperationTree, expectedDiagnostics, AdditionalOperationTreeVerifier: IndexerAccessArgumentVerifier.Verify); } + [CompilerTrait(CompilerFeature.IOperation)] [ClrOnlyFact(ClrOnlyReason.Ilasm)] public void AssigningToIndexer_UsingDefaultArgumentFromSetter() { @@ -1725,13 +1726,12 @@ public static void Main(string[] args) Arguments(2): IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10') - InConversion: null - OutConversion: null + 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) IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (Syntax: 'p[10]') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 4) (Syntax: 'p[10]') - InConversion: null - OutConversion: null - + 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 expectedOutput = @"10 4 @@ -1742,6 +1742,7 @@ public static void Main(string[] args) CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput); } + [CompilerTrait(CompilerFeature.IOperation)] [ClrOnlyFact(ClrOnlyReason.Ilasm)] public void ReadFromIndexer_UsingDefaultArgumentFromGetter() { @@ -1842,10 +1843,12 @@ public static void Main(string[] args) Arguments(2): IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10') - InConversion: null - OutConversion: null + 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) IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (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; @@ -1857,6 +1860,7 @@ public static void Main(string[] args) CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput); } + [CompilerTrait(CompilerFeature.IOperation)] [ClrOnlyFact(ClrOnlyReason.Ilasm)] public void IndexerAccess_LHSOfCompoundAssignment() { @@ -1957,10 +1961,12 @@ public static void Main(string[] args) Arguments(2): IArgument (ArgumentKind.Explicit, Matching Parameter: i) (OperationKind.Argument) (Syntax: '10') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 10) (Syntax: '10') - InConversion: null - OutConversion: null + 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) IArgument (ArgumentKind.DefaultValue, Matching Parameter: j) (OperationKind.Argument) (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; @@ -1973,6 +1979,7 @@ 10 2 CompileAndVerify(new[] { csharp }, new[] { SystemRef, ilReference }, expectedOutput: expectedOutput); } + [CompilerTrait(CompilerFeature.IOperation)] [ClrOnlyFact(ClrOnlyReason.Ilasm)] public void InvalidConversionForDefaultArgument_InIL() { @@ -2020,12 +2027,15 @@ public void M2() 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) 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; VerifyOperationTreeAndDiagnosticsForTestWithIL(csharp, il, expectedOperationTree, expectedDiagnostics); } + [CompilerTrait(CompilerFeature.IOperation)] [Fact, WorkItem(20330, "https://github.com/dotnet/roslyn/issues/20330")] public void DefaultValueNullForNullableTypeParameterWithMissingNullableReference() { @@ -2076,6 +2086,7 @@ static void M2(bool? x = null) VerifyOperationTreeAndDiagnosticsForTest(compilation, expectedOperationTree, expectedDiagnostics); } + [CompilerTrait(CompilerFeature.IOperation)] [Fact, WorkItem(20330, "https://github.com/dotnet/roslyn/issues/20330")] public void DefaultValueWithParameterErrorType() { @@ -2098,8 +2109,8 @@ static void M2(int x, S s = 0) Arguments(1): IArgument (ArgumentKind.Explicit, Matching Parameter: null) (OperationKind.Argument) (Syntax: '1') ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') - InConversion: null - OutConversion: null + 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 = new DiagnosticDescription[] { diff --git a/src/Compilers/VisualBasic/Test/Semantic/Binding/BindingCollectionInitializerTests.vb b/src/Compilers/VisualBasic/Test/Semantic/Binding/BindingCollectionInitializerTests.vb index fa52921e1cc44c244e70baf93cb7c2a154613234..074d195acbe4a611cc82b7c61df6981b6fddab46 100644 --- a/src/Compilers/VisualBasic/Test/Semantic/Binding/BindingCollectionInitializerTests.vb +++ b/src/Compilers/VisualBasic/Test/Semantic/Binding/BindingCollectionInitializerTests.vb @@ -1,4 +1,4 @@ -' 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.Test.Utilities @@ -12,7 +12,8 @@ Imports Roslyn.Test.Utilities Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests Public Class BindingCollectionInitializerTests Inherits BasicTestBase - + + Public Sub CollectionInitializerList() Dim source = @@ -48,7 +49,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.List(Of S VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub CollectionInitializerListEachElementAsCollectionInitializer() Dim source = @@ -93,7 +95,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.List(Of S VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub CollectionInitializerDictionary() Dim source = @@ -141,7 +144,8 @@ IObjectCreationExpression (Constructor: Sub System.Collections.Generic.Dictionar VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub CollectionInitializerCustomCollection() Dim source = @@ -244,7 +248,8 @@ IObjectCreationExpression (Constructor: Sub Custom..ctor()) (OperationKind.Objec VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub CollectionInitializerEmptyInitializers() Dim source = Public Sub CollectionInitializerNotACollection() Dim source = Public Sub CollectionInitializerCannotCombineBothInitializers() Dim source = Public Sub CollectionInitializerNoAddMethod() Dim source = Public Sub CollectionInitializerAddMethodIsFunction() Dim source = @@ -606,7 +615,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub CollectionInitializerOverloadResolutionErrors() Dim source = Public Sub CollectionInitializerWarningsWillBeKept() Dim source = Public Sub CollectionInitializerTypeConstraintsAndAmbiguity() Dim source = Public Sub CollectionInitializerCollectionInitializerArityCheck() @@ -1369,7 +1382,8 @@ BC42104: Variable 'd' is used before it has been assigned a value. A null refere ~ ) End Sub - + + Public Sub CollectionInitializerReferencingItself_2() Dim source = .Value Dim expectedDiagnostics = Public Sub CollectionInitializerCustomCollectionOptionalParameter() Dim source = diff --git a/src/Compilers/VisualBasic/Test/Semantic/Binding/BindingObjectInitializerTests.vb b/src/Compilers/VisualBasic/Test/Semantic/Binding/BindingObjectInitializerTests.vb index 6884c6ca98e992840cea6e5b245b9f30aca616fd..35c7413232d7edb2b7fe0bd59dcf7df8582fc3f6 100644 --- a/src/Compilers/VisualBasic/Test/Semantic/Binding/BindingObjectInitializerTests.vb +++ b/src/Compilers/VisualBasic/Test/Semantic/Binding/BindingObjectInitializerTests.vb @@ -1,4 +1,4 @@ -' 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.Xml.Linq @@ -15,7 +15,8 @@ Imports Roslyn.Test.Utilities Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests Public Class BindingMemberInitializerTests Inherits BasicTestBase - + + Public Sub SimpleObjectInitialization() Dim source = Public Sub ObjectInitializationWithFieldOnRight() Dim source = Public Sub ObjectInitializerEmptyInitializers() Dim source = Public Sub ObjectInitializerMissingIdentifierInInitializer() Dim source = Public Sub ObjectInitializerOnlyDotIdentifierInInitializer() Dim source = Public Sub ObjectInitializerMissingExpressionInInitializer() Dim source = Public Sub ObjectInitializerKeyKeywordInInitializer() @@ -304,7 +311,8 @@ BC30451: 'Key' is not declared. It may be inaccessible due to its protection lev VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub ObjectInitializerMultipleInitializations() @@ -350,7 +358,8 @@ BC30989: Multiple initializations of 'Field'. Fields and properties can be init VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub ObjectInitializerInitializingObject() Dim source = ) End Sub - + + Public Sub ObjectInitializerInitializeSharedFieldOnNewInstance() Dim source = Public Sub ObjectInitializerInitializeNonExistentField() Dim source = Public Sub ObjectInitializerInitializeInaccessibleField() Dim source = Public Sub ObjectInitializerInitializeNonWriteableMember() Dim source = Public Sub ObjectInitializerInitializeReadOnlyProperty() Dim source = Public Sub ObjectInitializerInitializeReadOnlyField() Dim source = Public Sub ObjectInitializerPropertyWithInaccessibleSet() Dim source = Public Sub ObjectInitializerTypeIsErrorType() Dim source = Public Sub ObjectInitializerNewTWith() Dim source = Public Sub ObjectInitializerTypeParametersInInitializers() Dim source = Public Sub ObjectInitializerNestedInWithStatement_1() Dim source = @@ -913,7 +933,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub ObjectInitializerNestedInWithStatement_2() Dim source = Public Sub ObjectInitializerNestedInitializers_1() Dim source = @@ -1022,7 +1044,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub ObjectInitializerNestedInitializers_2() Dim source = Public Sub ObjectInitializerCaptureFieldForLambda() Dim source = @@ -1141,7 +1165,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source.Value, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub ObjectInitializerUsedInFieldInitializers() Dim source = @@ -1214,7 +1239,8 @@ BC42104: Variable 'y' is used before it has been assigned a value. A null refere ) ' Yeah! We did not have this in Dev10 :) End Sub - + + Public Sub ObjectInitializerInitializePropertyWithOptionalParameters() Dim source = .Value @@ -1253,7 +1279,8 @@ IObjectCreationExpression (Constructor: Sub C1..ctor()) (OperationKind.ObjectCre VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub ObjectInitializerMemberAccessOnInitExpressionAllowsAllFields() Dim source = .Value Dim expectedDiagnostics = String.Empty VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub ObjectInitializerUsingInitializedTargetInInitializerValueType() Dim source = Public Sub ObjectInitializerWithLifting_1() Dim source = Public Sub ObjectInitializerDictionaryLookupOperatorSupported() Dim source = .Value Dim expectedDiagnostics = String.Empty VerifyOperationTreeAndDiagnosticsForTest(Of ObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub ObjectInitializerInField() Dim source = Public Sub ILabelStatement_SimpleLabelTest() Dim source = Public Sub AnonymousTypeFieldsReferences() Dim source = Public Sub AnonymousTypeErrorInFieldReference() Dim source = Public Sub AnonymousTypeFieldOfRestrictedType() Dim source = Public Sub AnonymousTypeReferenceToOuterTypeField() Dim source = '; it does not exist in the cur VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub AnonymousTypeFieldReferenceOutOfOrder01() Dim source = Public Sub AnonymousTypeFieldReferenceOutOfOrder02() Dim source = Public Sub AnonymousTypeFieldInitializedWithInstanceMethod() Dim source = '; it does not exist in VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub AnonymousTypeFieldInitializedWithSharedMethod() Dim source = '; it does not ex VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub AnonymousTypeFieldInitializedWithExtensionMethod() Dim source = '; it does not exist in the cu VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub AnonymousTypeFieldInitializedWithConstructorCall() Dim source = '; it does not exist in the c VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub AnonymousTypeFieldOfVoidType() Dim source = Public Sub AnonymousTypeFieldNameWithGeneric() Dim source = Public Sub AnonymousTypeFieldWithSyntaxError() Dim source = Public Sub AnonymousTypeFieldWithNothingLiteral() Dim source = Public Sub AnonymousTypeFieldNameInferenceFromGeneric01() Dim source = Public Sub AnonymousTypeFieldNameInferenceFromXml01() Dim source = Public Sub AnonymousTypeFieldNameInferenceFromXml02() Dim source = Public Sub AnonymousTypeFieldNameInferenceFromXml03() Dim source = Public Sub AnonymousTypeFieldNameInferenceFromXml04() @@ -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) End Sub - + + Public Sub AnonymousTypeFieldNameInferenceFromExpression01() Dim source = Public Sub AnonymousTypeFieldNameInferenceFromExpression02() Dim source = Public Sub AnonymousTypeFieldNameInferenceFromExpression03() Dim source = Public Sub AnonymousTypeFieldNameInferenceFromExpression04() Dim source = .Value Dim expectedDiagnostics = Public Sub AnonymousTypeFieldInitializedWithAddressOf() Dim source = Public Sub AnonymousTypeFieldInitializedWithDelegate01() Dim source = Public Sub AnonymousTypeFieldInitializedWithDelegate02() Dim source = Public Sub AnonymousTypeFieldInitializedWithDelegate03() Dim source = '; it does not exist in the cur VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub AnonymousTypeFieldInitializedWithDelegate04() Dim source = '; it does not exist in the cur VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + + Public Sub LambdaReturningAnonymousType() @@ -1051,7 +1081,7 @@ IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpress VerifyOperationTreeAndDiagnosticsForTest(Of AnonymousObjectCreationExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics) End Sub - + Public Sub AnonymousTypeInALambdaInGenericMethod1() @@ -1079,7 +1109,8 @@ End Module CompilationUtils.AssertTheseDiagnostics(compilation, ) Dim verifier = CompileAndVerify(compilation, expectedOutput:="{ x2 = 0 }") End Sub - + + Public Sub AnonymousTypeInALambdaInGenericMethod1_OperationTree() Dim source = ) End Sub + Public Sub SelectCase_AnonymousLambda_OperationTree() Dim source = .Value Dim expectedDiagnostics = String.Empty