Error: none of the overloads of Points is possible:
Error: property: ISchemeGlyph.Points : System.Collections.Generic.IEnumerable[SchemePointBase] { get; } was expected to have type list[SchemePoint]+, while it has got System.Collections.Generic.IEnumerable[SchemePointBase]
Тут прикол в том что в .NET нет преобразования из IEnumerable[SchemePoint] в IEnumerable[SchemePointBase].
Его выполняет метод расширение Cast.
Но как ты видишь все типы выведены.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, _nn_, Вы писали:
__>Если разобрать выражение по частям, то вообще не компилируется.
А оно и не должно.
Просто ICE это не ответ.
__>
__>Error: none of the overloads of Points is possible:
__>Error: property: ISchemeGlyph.Points : System.Collections.Generic.IEnumerable[SchemePointBase] { get; } was expected to have type list[SchemePoint]+, while it has got System.Collections.Generic.IEnumerable[SchemePointBase]
Вот примерно так оно и должно было выругаться.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, VladD2, Вы писали:
VD>Ну, так пиши баг-репорт.
Я забыл пароль к трекеру.
Вот когда оно переедет на googlecode буду писать сразу туда.
VD>А еще лучше за одно его и пофикси .
Я в типизаторе ничего не понимаю.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
VD>>Ну, так пиши баг-репорт. WH>Я забыл пароль к трекеру.
Восстанови.
WH>Вот когда оно переедет на googlecode буду писать сразу туда.
Вероятность что он туда переедет не очень велика, а того что это случится в ближайшее время и вовсе стремится к нулю.
VD>>А еще лучше за одно его и пофикси . WH>Я в типизаторе ничего не понимаю.
Ну, так и я не понимал когда-то.
Что касается багтрекера, то держать в голове сообщения в форуме содержащие описание багов очень не просто. Я баги для правки беру из багтрекера. Там есть полноценный интерфейс для их отслеживания.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
WH>Пытаемся компилировать вот такой код:... WH>И получаем: WH>... WH>ICE! (Internal Compiler Error) WH>unresolved expression: an error
Подправил процесс оверлоад-резолющен. Теперь на твой исходный пример выдаеются следующие сообщения о ошибках:
Main.n(34,52):Error: none of the overloads of Points is possible:
Main.n(34,52):Error: property: ISchemeGlyph.Points : System.Collections.Generic.IEnumerable[SchemePointBase] { get; } was expected to have type System.Collections.Generic.IEnumerable[SchemePoint]+, while it has got System.Collections.Generic.IEnumerable[SchemePointBase]
Сообщение выдается на участок кода выделенный жирным:
VD>Правильная реакция?
В целом да но было бы значительно понятнее если бы оно ругалось на Concat.
Хотя как компилятор поймет в каком случае на что ругаться не ясно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>В целом да но было бы значительно понятнее если бы оно ругалось на Concat. WH>Хотя как компилятор поймет в каком случае на что ругаться не ясно.
Ну, внутрях компилятор понимает что с Concat жопа, так как у него внутри (в списке параметров) есть объекты отложенной типизаци которые не не мгут разрешиться для заданных параметров типов.
В принципе можно добавить еще одно сообщение об ошибке.
Вопрос в том что при этом писать и надо ли делать остальные сообщения вложенными (видимо надо)?
Можно написать что-то вроде "при типизации Concat(сигнатура) возникли следующие ошибки: и тут список воложенных ошибок приведенных выше".
Вот только есть ли в этом смысл? Вложенность может быть очень большой...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
WH>В целом да но было бы значительно понятнее если бы оно ругалось на Concat. WH>Хотя как компилятор поймет в каком случае на что ругаться не ясно.
Советую посмореть на суть исправлений (закомиченых мной). Возможно ситуация будет более понятна.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Можно написать что-то вроде "при типизации Concat(сигнатура) возникли следующие ошибки: и тут список воложенных ошибок приведенных выше". VD>Вот только есть ли в этом смысл? Вложенность может быть очень большой...
Я думаю имеет.
Ибо в данном случае с точки зрения программиста жопа с Concat но компилятор ругается на совершенно другое место.
Тут примерно как с исключениями. Обычно достаточно знать где оно вылетело но иногда приходиться смотреть на весь стек вызовов.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Аноним, Вы писали:
А>Typer.n выглядит страшновато
Это ты просто еще в Typer-DelayedTyping.n Typer-CallTyper.n не пытался разобраться. Если бы попытался, то понял бы, что Typer.n — фигня. Он просто большой.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.