Баг: generics и наследование
От: MatFiz Россия  
Дата: 20.06.07 02:23
Оценка:
Нашел баг в компиляторе.
Код:


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.

Если баг воспроизведется, подскажите, куда багрепортить.
How are YOU doin'?
Re: Баг: generics и наследование
От: Блудов Павел Россия  
Дата: 20.06.07 03:07
Оценка: 4 (1)
Здравствуйте, MatFiz, Вы писали:

MF>Если баг воспроизведется

Воспроизводится.

MF>, подскажите, куда багрепортить.

http://nemerle.org/bugs/
... << RSDN@Home 1.2.0 alpha rev. 692>>
Re: Баг: generics и наследование
От: Иванков Дмитрий Россия  
Дата: 20.06.07 04:36
Оценка: 4 (1)
Здравствуйте, MatFiz, Вы писали:

MF>Нашел баг в компиляторе.

[skipped]

MF>Если баг воспроизведется, подскажите, куда багрепортить.


Куда уже подсказали. но данный баг уже там есть N1018
Глючит System.Reflection.Emit, пока что выхода 2: либо компилировать в mono, либо использовать не protected/internal, а public.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.