Added simple base tests for C# and VB

上级 f1a5c845
// 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.Test.Utilities;
using Xunit;
namespace Microsoft.CodeAnalysis.CSharp.UnitTests
{
public partial class IOperationTests : SemanticModelTestBase
{
[CompilerTrait(CompilerFeature.IOperation)]
[Fact]
public void IInstanceReferenceExpression_SimpleBaseReference()
{
string source = @"
using System;
public class C1
{
public virtual void M1() { }
}
public class C2 : C1
{
public override void M1()
{
/*<bind>*/base/*</bind>*/.M1();
}
}
";
string expectedOperationTree = @"
IInstanceReferenceExpression (IsBaseReference: True) (OperationKind.InstanceReferenceExpression, Type: C1) (Syntax: 'base')
";
var expectedDiagnostics = DiagnosticDescription.None;
VerifyOperationTreeAndDiagnosticsForTest<BaseExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics);
}
[CompilerTrait(CompilerFeature.IOperation)]
[Fact]
public void IInstanceReferenceExpression_BaseNoMemberReference()
{
string source = @"
using System;
public class C1
{
public virtual void M1()
{
/*<bind>*/base/*</bind>*/.M1();
}
}
";
string expectedOperationTree = @"
IInstanceReferenceExpression (IsBaseReference: True) (OperationKind.InstanceReferenceExpression, Type: System.Object) (Syntax: 'base')
";
var expectedDiagnostics = new DiagnosticDescription[] {
// CS0117: 'object' does not contain a definition for 'M1'
// /*<bind>*/base/*</bind>*/.M1();
Diagnostic(ErrorCode.ERR_NoSuchMember, "M1").WithArguments("object", "M1").WithLocation(8, 35)
};
VerifyOperationTreeAndDiagnosticsForTest<BaseExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics);
}
}
}
' 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
Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.Semantics
Partial Public Class IOperationTests
Inherits SemanticModelTestBase
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()>
Public Sub IInstanceReferenceExpression_SimpleBaseReference()
Dim source = <![CDATA[
Option Strict On
Public Class C1
Public Overridable Sub M1()
End Sub
End Class
Public Class C2
Inherits C1
Public Overrides Sub M1()
MyBase.M1()'BIND:"MyBase"
End Sub
End Class]]>.Value
Dim expectedOperationTree = <![CDATA[
IInstanceReferenceExpression (IsBaseReference: True) (OperationKind.InstanceReferenceExpression, Type: C1) (Syntax: 'MyBase')
]]>.Value
Dim expectedDiagnostics = String.Empty
VerifyOperationTreeAndDiagnosticsForTest(Of MyBaseExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub
<CompilerTrait(CompilerFeature.IOperation)>
<Fact()>
Public Sub IInstanceReferenceExpression_BaseNoMemberReferene()
Dim source = <![CDATA[
Option Strict On
Public Class C1
Public Overridable Sub M1()
MyBase.M1()'BIND:"MyBase"
End Sub
End Class]]>.Value
Dim expectedOperationTree = <![CDATA[
IInstanceReferenceExpression (IsBaseReference: True) (OperationKind.InstanceReferenceExpression, Type: System.Object, IsInvalid) (Syntax: 'MyBase')
]]>.Value
Dim expectedDiagnostics = <![CDATA[
BC30456: 'M1' is not a member of 'Object'.
MyBase.M1()'BIND:"MyBase"
~~~~~~~~~
]]>.Value
VerifyOperationTreeAndDiagnosticsForTest(Of MyBaseExpressionSyntax)(source, expectedOperationTree, expectedDiagnostics)
End Sub
End Class
End Namespace
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册