[Регрессия] Nemerle не приводит ламбды в делегаты
От: Аноним  
Дата: 22.04.10 15:38
Оценка:
Не знаю, сохранился ли в новых версиях беты следующий баг.

using System;
using System.Console;
using Nemerle.Utility;

[Record] class GEventArgs[T] { [Accessor] _value : T }
delegate GEventHandler[T](sender : object, ea : GEventArgs[T]) : void;
delegate StringEventHandler(sender : object, ea : GEventArgs[string]) : void;

module Program
{
    event Foo : GEventHandler[string];
    event Bar : StringEventHandler;
    
    public Main() : void
    {
        Foo += (_, ea) => { WriteLine(ea.Value) };
        Bar += (_, ea) => { WriteLine(ea.Value) };
    }
}


Вторую анонимную функцию компилятор неявно преобразовывает в делегат. Первую, с генериком — в бете не хочет, при этом в декабрьском CTP всё работало нормально.

Если сохранился, то я могу запостить на баг-трекер.
Re: [Регрессия] Nemerle не приводит ламбды в делегаты
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.04.10 19:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Если сохранился, то я могу запостить на баг-трекер.


Добавляй баг.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Регрессия] Nemerle не приводит ламбды в делегаты
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.04.10 19:30
Оценка:
Здравствуйте, Аноним, Вы писали:

Упрощенный тест:
delegate GEventHandler[T]  (ea : list[T])      : void;
delegate StringEventHandler(ea : list[string]) : void;

module Program
{
    public Main() : void
    {
      def x : StringEventHandler    = fun(_ : list[string]) {  };
      def x : GEventHandler[string] = fun(_ : list[string]) {  }; //E: expected GEventHandler[string], got list[string] -> void in type-enforced expression: list
    }
}


Вот его в багрепорт и стоит добавить. (чем проще тест, тем проще выявить ошибку)
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Регрессия] Nemerle не приводит ламбды в делегаты
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.04.10 02:10
Оценка:
Здравствуйте, Аноним, Вы писали:

Fix bug #1235. http://nemerle.org/bugs/view.php?id=1213
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.