Нашел баг в компиляторе.
Код:
using System;
using System.Console;
using Nemerle.Utility;
module Program
{
class C['T]
{
public this()
{
M();
}
protected virtual M(): void
{
WriteLine("Generic C");
}
}
class Cint : C[int]
{
protected override M(): void
{
WriteLine("Int C");
}
}
Main() : void
{
_ = Cint(); // TypeLoadException
}
}
Получаем исключение
Необработанное исключение: System.TypeLoadException: Тип "Cint" из сборки "out, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" попытался переопределить метод "M", но он не реализует этот метод и не наследует его.
в Program.Main()
хотя в принципе должны просто получить экземпляр класса Cint.
Если баг воспроизведется, подскажите, куда багрепортить.
Здравствуйте, MatFiz, Вы писали:
MF>Если баг воспроизведется
Воспроизводится.
MF>, подскажите, куда багрепортить.
http://nemerle.org/bugs/... << RSDN@Home 1.2.0 alpha rev. 692>>
Здравствуйте, MatFiz, Вы писали:
MF>Нашел баг в компиляторе.
[skipped]
MF>Если баг воспроизведется, подскажите, куда багрепортить.
Куда уже подсказали. но данный баг уже там есть
N1018
Глючит System.Reflection.Emit, пока что выхода 2: либо компилировать в mono, либо использовать не protected/internal, а public.