Народ, выскажетесь по поводу поведения Nemele....
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.02.07 16:51
Оценка:
Народ, выскажетесь по поводу поведения Nemele при перегрузке и реализации интерфейсов.
Примеры и обсуждение тут:
http://nemerle.org/bugs/view.php?id=833
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Народ, выскажетесь по поводу поведения Nemele....
От: nikov США http://www.linkedin.com/in/nikov
Дата: 04.02.07 19:40
Оценка: +2
Здравствуйте, VladD2, Вы писали:

VD>Народ, выскажетесь по поводу поведения Nemele при перегрузке и реализации интерфейсов.

VD>Примеры и обсуждение тут:
VD>http://nemerle.org/bugs/view.php?id=833

На мой взгляд, в случае, когда есть несколько членов — кандитатов на неявную реализацию интерфейса, надо выбирать тот, который подходит без учета ковариантности.
Re: Народ, выскажетесь по поводу поведения Nemele....
От: Aen Sidhe Россия Просто блог
Дата: 04.02.07 20:32
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Народ, выскажетесь по поводу поведения Nemele при перегрузке и реализации интерфейсов.

VD>Примеры и обсуждение тут:
VD>http://nemerle.org/bugs/view.php?id=833

ИМХО, реализация интерфейса должна быть сделана вообще без вывода типов.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[2]: Народ, выскажетесь по поводу поведения Nemele....
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.02.07 20:51
Оценка:
Здравствуйте, Aen Sidhe, Вы писали:

AS>ИМХО, реализация интерфейса должна быть сделана вообще без вывода типов.


О выводе типов там речь не идет. Ты не верно понял. Там идет речь о ковариантности.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Народ, выскажетесь по поводу поведения Nemele....
От: ie Россия http://ziez.blogspot.com/
Дата: 05.02.07 05:56
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Народ, выскажетесь по поводу поведения Nemele при перегрузке и реализации интерфейсов.

VD>Примеры и обсуждение тут:
VD>http://nemerle.org/bugs/view.php?id=833

Я согласен с nikov. Однако, смутно себе представляю, как это грамотно разрулить.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re: Народ, выскажетесь по поводу поведения Nemele....
От: nikov США http://www.linkedin.com/in/nikov
Дата: 05.02.07 09:11
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Народ, выскажетесь по поводу поведения Nemele при перегрузке и реализации интерфейсов.


Кстати, вот еще интересный пример на C# и Nemerle.
Меня не устраивает поведение ни в том, ни в другом языке.

// C#
class Base<T,S>
{
    public void Foo(S x) {}
    public void Foo(T x) {}
}

interface IFace
{
    void Foo(int x);
}

class Derived : Base<int,int>, IFace { }

class Program
{
    static void Main()
    {
        IFace f = new Derived();
        f.Foo(1);
    }
}


// Nemerle
class Base[T,S]
{
    public Foo(x : S) : void {}
    public Foo(x : T) : void {}
}

interface IFace
{
    Foo(x : int) : void;
}

class Derived : Base[int,int], IFace { }

def f : IFace = Derived();
f.Foo(1);
Re[2]: Народ, выскажетесь по поводу поведения Nemele....
От: nikov США http://www.linkedin.com/in/nikov
Дата: 05.02.07 13:00
Оценка:
Здравствуйте, nikov, Вы писали:

N>Меня не устраивает поведение ни в том, ни в другом языке.


C# выбирает реализацию наугад, не выдавая даже предупреждения (в специкации языка также не описано, как такой конфликт должен решаться).
А Nemerle считает, что интерфейс не реализован, даже если мы оставим в коде только один из методов Base.Foo
Re[3]: Народ, выскажетесь по поводу поведения Nemele....
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.02.07 13:37
Оценка: +1
Здравствуйте, nikov, Вы писали:

N>C# выбирает реализацию наугад, не выдавая даже предупреждения (в специкации языка также не описано, как такой конфликт должен решаться).

N>А Nemerle считает, что интерфейс не реализован, даже если мы оставим в коде только один из методов Base.Foo

Это (выделенное) баг. Что касается поведения, то я бы выдвал сообщение о неоднозначности.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.