Баг + фича
От: SergASh  
Дата: 27.08.07 15:05
Оценка:
Привет всем!

Обнаружилось, что вот такой код
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 такое позволяет, но в чём смысл неясно.
Re: Баг + фича
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.08.07 11:54
Оценка:
Здравствуйте, SergASh, Вы писали:

Баги лучше в багтрекер складывать. Тогда их будут рано или поздно фиксить.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Баг + фича
От: SergASh  
Дата: 30.08.07 16:01
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, SergASh, Вы писали:


VD>Баги лучше в багтрекер складывать. Тогда их будут рано или поздно фиксить.


То, в чём я уверен, что это баг, сразу отписываю в багтрекер. Но тут вопрос. Если .NET позволяет с виду бессмысленные ограничения, то может это для чего-то нужно.

А на счёт рано или поздно, то это ещё вопрос когда оно произойдёт. Некоторые проблемы, например со значениями по умолчанию для nullable-типов и со сложными ограничениями на generic-параметры, висят чуть ли не с год уже в состоянии "new", то есть ими пока заниматься не планируют.
Re[3]: Баг + фича
От: BOleg Россия  
Дата: 01.09.07 10:10
Оценка:
Здравствуйте, 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", то есть ими пока заниматься не планируют.

Примеры?
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Re: Баг + фича
От: BOleg Россия  
Дата: 01.09.07 10:10
Оценка:
Здравствуйте, 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>


Пофиксил, смотри 1048, патч там же.
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Re[4]: Баг + фича
От: SergASh  
Дата: 03.09.07 19:06
Оценка:
SAS>>А на счёт рано или поздно, то это ещё вопрос когда оно произойдёт. Некоторые проблемы, например со значениями по умолчанию для nullable-типов и со сложными ограничениями на generic-параметры, висят чуть ли не с год уже в состоянии "new", то есть ими пока заниматься не планируют.
BO>Примеры?

Вот один и вот второй. Насчёт года я загнул, но один из этих датируется январём.

Патч, конечно, хорошее дело, но почему бы его не применить к самому репозиторию? Это было б намного удобней, чем следить ещё и за багтрекером.
Re[5]: Баг + фича
От: BOleg Россия  
Дата: 04.09.07 11:01
Оценка:
Здравствуйте, SergASh, Вы писали:

SAS>Патч, конечно, хорошее дело, но почему бы его не применить к самому репозиторию? Это было б намного удобней, чем следить ещё и за багтрекером.


Так примените (если есть пассворд).
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Re[6]: Баг + фича
От: SergASh  
Дата: 04.09.07 19:50
Оценка:
Здравствуйте, BOleg, Вы писали:

BO>Так примените (если есть пассворд).


А! Вот оно в чём дело. Я думал те, кто может починить компилятор, такой пароль имеют

Что-то с патчем не заладилось. Применил, пересобрал, но всё равно вот это
class Test[T]
  where T: struct
{
  private t: T?;
}

не компилируется с той же ошибкой, что и раньше. Я что-то пропустил?

Спасибо.
Re[7]: Баг + фича
От: BOleg Россия  
Дата: 05.09.07 09:33
Оценка:
Здравствуйте, SergASh, Вы писали:

SAS>А! Вот оно в чём дело. Я думал те, кто может починить компилятор, такой пароль имеют

Я думаю, что дабы научиться чинить компилятор нужно сначала исправить пяток-другой багов.
А уж потом запрашивать пассворд.

SAS>не компилируется с той же ошибкой, что и раньше. Я что-то пропустил?

А про такой вариант речи не было. Но всё равно пофиксил и обновил патч.
Пообщался с nazgul'ом — в ближайшее время фиксы появятся в репозитории.
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Re[8]: Баг + фича
От: SergASh  
Дата: 05.09.07 18:46
Оценка:
Здравствуйте, BOleg, Вы писали:

BO>Пообщался с nazgul'ом — в ближайшее время фиксы появятся в репозитории.


Спасибо за исправления, BOleg, очень помогло.

Вот бы теперь ещё с этим
Автор: SergASh
Дата: 28.08.07
кто помог справиться.
Re[8]: Баг + фича
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 07.09.07 08:57
Оценка:
Здравствуйте, BOleg, Вы писали:

BO>Здравствуйте, SergASh, Вы писали:


SAS>>А! Вот оно в чём дело. Я думал те, кто может починить компилятор, такой пароль имеют

BO>Я думаю, что дабы научиться чинить компилятор нужно сначала исправить пяток-другой багов.
BO>А уж потом запрашивать пассворд.

SAS>>не компилируется с той же ошибкой, что и раньше. Я что-то пропустил?

BO>А про такой вариант речи не было. Но всё равно пофиксил и обновил патч.
BO>Пообщался с nazgul'ом — в ближайшее время фиксы появятся в репозитории.

Один из твоих патчей сломал интеграцию. Ты у себя её не перекомпиливаешь чтоли? Или для неё патчи забыл отправить?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[9]: Баг + фича
От: BOleg Россия  
Дата: 07.09.07 09:06
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Один из твоих патчей сломал интеграцию. Ты у себя её не перекомпиливаешь чтоли? Или для неё патчи забыл отправить?

Теперь буду перекомпилировать (именно по-этому и не лезу пока в SVN)
Замени, пож., в Engine.Completion.n, ln 307:
foreach (over in typer.ConstructMethodOverload(method, null, true))
на
foreach (over in typer.ConstructMethodOverload(null, method, null, true))

(это там, где не компилируется).
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.