public abstract class Limit[T]
...
public abstract class Fuzzy[T] : Limit[T]
...
public class LowEq[T]: Fuzzy[T] where T: IComparable[T]
public override suit(par: Limit[T]) : double //ошибка: CheckSTV for System.IComparable[System.IComparable[System.IComparable[System.IComparable[...]]]] failed: cyclic type found
...
кто неправ, я или компилятор?
на всякий случай — готовый пример, демонстрирующий ошибку
#pragma indent
using Nemerle;
using System
using System.Collections.Generic
using System.Linq
namespace xlib
public abstract class Limit[T]
public value: T
public virtual suit(par: Limit[T]) : bool
false
public abstract class Fuzzy[T] : Limit[T] {}
public class LowEq[T]: Fuzzy[T] where T: IComparable[T]
public override suit(par: Limit[T]) : bool
| BigEq => (value.CompareTo(par.value) >= 0)
| _ => true
public class BigEq[T]: Fuzzy[T] where T: IComparable[T]
public override suit(par: Limit[T]) : bool
| LowEq => par.suit(this)
| _ => true
module Test
Main() : void
{}
Здравствуйте, _Claus_, Вы писали:
_C_>на всякий случай — готовый пример, демонстрирующий ошибку
Похоже на баг в типизации сравнения с образцом.
В качестве временной меры можно так.
| _ is BigEq[T] => (value.CompareTo(par.value) >= 0)
Кстати почему в сравнении нельзя указать тип генерика явно?
Ни так:
| BigEq[T] =>
Ни так:
| BigEq.[T] =>
Не работает.
error : invalid pattern
говорит.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, _Claus_, Вы писали:
_C_>>на всякий случай — готовый пример, демонстрирующий ошибку
WH>Похоже на баг в типизации сравнения с образцом.
WH>Кстати почему в сравнении нельзя указать тип генерика явно?
WH>Ни так:
WH>WH>| BigEq[T] =>
WH>
WH>Ни так:
WH>WH>| BigEq.[T] =>
WH>
WH>Не работает.
WH>error : invalid pattern
WH>говорит.
Интересно это работало когда то? Или это вызвано моими изменениями?
Здравствуйте, CodingUnit, Вы писали:
CU>Интересно это работало когда то? Или это вызвано моими изменениями?
Не знаю. Скорей всего нет.
Следи за тем сколько цитируешь. Это я как модератор говорю.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>