public class Test1[Q]
where Q : struct
{
public mutable q : Q?;
}
не компилируется с ошибкой
typing constraint on T not satisfied, upon instantiation of System.Nullable: System.Object is not a subtype of System.ValueType [simple require]
А вот такой компилируется, хотя инстанцировать это шаблон невозможно
public class A {}
public class B {}
public class Test[P]
where P : A, B
{
public mutable t_ : P;
}
Первое, понятно, баг. А про второе не уверен — рефлектор, например, радостно показывает ограничение where P : A, B. Ildasm тоже. То есть .NET такое позволяет, но в чём смысл неясно.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, SergASh, Вы писали:
VD>Баги лучше в багтрекер складывать. Тогда их будут рано или поздно фиксить.
То, в чём я уверен, что это баг, сразу отписываю в багтрекер. Но тут вопрос. Если .NET позволяет с виду бессмысленные ограничения, то может это для чего-то нужно.
А на счёт рано или поздно, то это ещё вопрос когда оно произойдёт. Некоторые проблемы, например со значениями по умолчанию для nullable-типов и со сложными ограничениями на generic-параметры, висят чуть ли не с год уже в состоянии "new", то есть ими пока заниматься не планируют.
Здравствуйте, SergASh, Вы писали:
SAS>То, в чём я уверен, что это баг, сразу отписываю в багтрекер. Но тут вопрос. Если .NET позволяет с виду бессмысленные ограничения, то может это для чего-то нужно.
Баг однозначно. Пофиксил, смотри 1048, патч там же.
class Test3[T1] where T1 : RefTypeA, RefTypeB {} //generic parameter cannot be constrained by multiple non-interfaces : RefTypeB, RefTypeA
SAS>А на счёт рано или поздно, то это ещё вопрос когда оно произойдёт. Некоторые проблемы, например со значениями по умолчанию для nullable-типов и со сложными ограничениями на generic-параметры, висят чуть ли не с год уже в состоянии "new", то есть ими пока заниматься не планируют.
Примеры?
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Здравствуйте, SergASh, Вы писали:
SAS>Обнаружилось, что вот такой код SAS>... SAS>не компилируется с ошибкой SAS>
SAS>typing constraint on T not satisfied, upon instantiation of System.Nullable: System.Object is not a subtype of System.ValueType [simple require]
SAS>
SAS>>А на счёт рано или поздно, то это ещё вопрос когда оно произойдёт. Некоторые проблемы, например со значениями по умолчанию для nullable-типов и со сложными ограничениями на generic-параметры, висят чуть ли не с год уже в состоянии "new", то есть ими пока заниматься не планируют. BO>Примеры?
Вот один и вот второй. Насчёт года я загнул, но один из этих датируется январём.
Патч, конечно, хорошее дело, но почему бы его не применить к самому репозиторию? Это было б намного удобней, чем следить ещё и за багтрекером.
Здравствуйте, SergASh, Вы писали:
SAS>Патч, конечно, хорошее дело, но почему бы его не применить к самому репозиторию? Это было б намного удобней, чем следить ещё и за багтрекером.
Так примените (если есть пассворд).
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Здравствуйте, SergASh, Вы писали:
SAS>А! Вот оно в чём дело. Я думал те, кто может починить компилятор, такой пароль имеют
Я думаю, что дабы научиться чинить компилятор нужно сначала исправить пяток-другой багов.
А уж потом запрашивать пассворд.
SAS>не компилируется с той же ошибкой, что и раньше. Я что-то пропустил?
А про такой вариант речи не было. Но всё равно пофиксил и обновил патч.
Пообщался с nazgul'ом — в ближайшее время фиксы появятся в репозитории.
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Здравствуйте, BOleg, Вы писали:
BO>Здравствуйте, SergASh, Вы писали:
SAS>>А! Вот оно в чём дело. Я думал те, кто может починить компилятор, такой пароль имеют BO>Я думаю, что дабы научиться чинить компилятор нужно сначала исправить пяток-другой багов. BO>А уж потом запрашивать пассворд.
SAS>>не компилируется с той же ошибкой, что и раньше. Я что-то пропустил? BO>А про такой вариант речи не было. Но всё равно пофиксил и обновил патч. BO>Пообщался с nazgul'ом — в ближайшее время фиксы появятся в репозитории.
Один из твоих патчей сломал интеграцию. Ты у себя её не перекомпиливаешь чтоли? Или для неё патчи забыл отправить?
Здравствуйте, Сергей Туленцев, Вы писали:
СТ>Один из твоих патчей сломал интеграцию. Ты у себя её не перекомпиливаешь чтоли? Или для неё патчи забыл отправить?
Теперь буду перекомпилировать (именно по-этому и не лезу пока в SVN)
Замени, пож., в Engine.Completion.n, ln 307:
foreach (over in typer.ConstructMethodOverload(method, null, true))
на
foreach (over in typer.ConstructMethodOverload(null, method, null, true))
(это там, где не компилируется).
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.