Skip to content

VB DIM: Class is required to implement a method representing a re-abstraction of an interface method from base interface #35823

@AlekseyTs

Description

@AlekseyTs
        <Fact>
        Public Sub MethodImplementation_06()

            Dim csSource =
"
public interface I1
{
    void M1();
}

public interface I2 : I1
{
    abstract void I1.M1();
}
"
            Dim csCompiation = GetCSharpCompiation(csSource).EmitToImageReference()

            Dim source1 =
<compilation>
    <file name="c.vb"><![CDATA[
Public Class C
    Implements I2

    Sub M1() Implements I1.M1
        System.Console.WriteLine("C.M1")
    End Sub

    Shared Sub Main()
        Dim i1 As I1 = new C()
        i1.M1()
    End Sub
End Class
]]></file>
</compilation>

            Dim comp1 = CreateCompilation(source1, options:=TestOptions.DebugExe, targetFramework:=TargetFramework.NetStandardLatest, references:={csCompiation})
            CompileAndVerify(comp1, expectedOutput:=If(ExecutionConditionUtil.IsMonoOrCoreClr, "C.M1", Nothing), verify:=VerifyOnMonoOrCoreClr)
        End Sub

Observed:

c.vb(2) : error BC30149: Class 'C' must implement 'Sub I1.M1()' for interface 'I2'.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions