/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenInterfaceImplementation.vb
130 строк
5 KB
Tomáš Matoušek
Refactoring of extension methods in source packages (#78620) - take 2 (#78894)
26 июн 2025, 18:42
Не верифицирован
26 июн 2025, 18:42
05fc006
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports Roslyn.Test.Utilities Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests Public Class CodeGenInterfaceImplementationTests Inherits BasicTestBase <WorkItem(540794, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/540794")> <Fact> Public Sub TestInterfaceMembersSignature() Dim source = <compilation> <file name="a.vb"> Interface IFace Sub SubRoutine() Function Func() As Integer Property Prop As Integer End Interface </file> </compilation> Dim verifier = CompileAndVerify(source, expectedSignatures:= { Signature("IFace", "SubRoutine", ".method public newslot strict abstract virtual instance System.Void SubRoutine() cil managed"), Signature("IFace", "Func", ".method public newslot strict abstract virtual instance System.Int32 Func() cil managed"), Signature("IFace", "get_Prop", ".method public newslot strict specialname abstract virtual instance System.Int32 get_Prop() cil managed"), Signature("IFace", "set_Prop", ".method public newslot strict specialname abstract virtual instance System.Void set_Prop(System.Int32 Value) cil managed"), Signature("IFace", "Prop", ".property readwrite instance System.Int32 Prop") }) verifier.VerifyDiagnostics() End Sub <WorkItem(540794, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/540794")> <WorkItem(540805, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/540805")> <WorkItem(540861, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/540861")> <WorkItem(540807, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/540807")> <Fact> Public Sub TestNestedInterface() Dim source = <compilation> <file name="a.vb"> Class Class2 Implements Class2.InterfaceDerived Interface InterfaceDerived Inherits Class2.InterfaceBase Sub AbcDef() End Interface Public Interface InterfaceBase Property Bar As Integer End Interface Public Property Bar As Integer Implements InterfaceDerived.Bar Get Return 1 End Get Set(value As Integer) End Set End Property Public Sub AbcDef() Implements InterfaceDerived.AbcDef End Sub End Class Class Class1 Implements Class1.Interface1 Public Interface Interface1 Sub Goo() End Interface Public Sub Goo() Implements Interface1.Goo End Sub End Class </file> </compilation> Dim verifier = CompileAndVerify(source, expectedSignatures:= { Signature("Class2+InterfaceBase", "get_Bar", ".method public newslot strict specialname abstract virtual instance System.Int32 get_Bar() cil managed"), Signature("Class2+InterfaceBase", "set_Bar", ".method public newslot strict specialname abstract virtual instance System.Void set_Bar(System.Int32 Value) cil managed"), Signature("Class2+InterfaceBase", "Bar", ".property readwrite instance System.Int32 Bar"), Signature("Class2+InterfaceDerived", "AbcDef", ".method public newslot strict abstract virtual instance System.Void AbcDef() cil managed"), Signature("Class2", "get_Bar", ".method public newslot strict specialname virtual final instance System.Int32 get_Bar() cil managed"), Signature("Class2", "set_Bar", ".method public newslot strict specialname virtual final instance System.Void set_Bar(System.Int32 value) cil managed"), Signature("Class2", "AbcDef", ".method public newslot strict virtual final instance System.Void AbcDef() cil managed"), Signature("Class2", "Bar", ".property readwrite instance System.Int32 Bar"), Signature("Class1+Interface1", "Goo", ".method public newslot strict abstract virtual instance System.Void Goo() cil managed"), Signature("Class1", "Goo", ".method public newslot strict virtual final instance System.Void Goo() cil managed") }) verifier.VerifyDiagnostics() End Sub <WorkItem(543426, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543426")> <Fact()> Public Sub TestExplicitlyImplementInterfaceNestedInGenericType() Dim source = <compilation> <file name="a.vb"> Class Outer(Of T) Interface IInner Sub M(t As T) End Interface Class Inner Implements IInner Private Sub M(t As T) Implements Outer(Of T).IInner.M End Sub End Class End Class </file> </compilation> Dim verifier = CompileAndVerify(source, expectedSignatures:= { Signature("Outer`1+IInner", "M", ".method public newslot strict abstract virtual instance System.Void M(T t) cil managed"), Signature("Outer`1+Inner", "M", ".method private newslot strict virtual final instance System.Void M(T t) cil managed") }) verifier.VerifyDiagnostics() End Sub End Class End Namespace