Ошибки компилятора PascalABC.Net

Можно использовать, я так перенес кое-что очень старое. Но лучше все же потом переписать на современный код. Заодно и практика…

Предположение о том, что после PascalABC.Net, возможно, будет осуществлен переход на C# - не является рекламой. Это личные предпочтения каждого. Тем более, это не единственный язык, который упоминался на просторах этого форума и не только мной.

@Gleb, перенесите эти два сообщения (моё и @Admin) в Болталку. Причина: оффтоп.

К сожалению, я вынужден, повторить свою просьбу:

Покажите мне доказательство на другом диалекте Pascal, где так можно.

. Хотя, на мой взгляд, это разрешение неправильно по следующим причинам:

  1. С точки зрения пользователя возникает неоднозначность: неясно требуется ли тело метода или нет. Абстрактные методы это подмножество виртуальных с тем отличием, что их реализация может быть отложена (могут реализовываться в классах потомках).
  2. В справке сказано:

Данные методы являются виртуальными, но ключевое слово virtual использовать не нужно.

.

Код взят из этой Issue. После исправления появился другой баг - Undefined FileName.

Автокласс не может иметь поля, являющиеся событиями [opened].

Замечу, что пространства имён ещё не готовы, официально их ещё не объявляли. Так что куча issue может привести к исключению их из релиза, а это ведь не очень хорошо :slight_smile:

Пишите в Issue. То, что это недокументированная пока возможность, не значит, что не надо писать явные баги

2 лайка

<личное мнение>Не очень, так как я активно использую namespace’ы. Думаю, что я не единственный такой.</личное мнение>

Вы и вправду не единственный. Я их использую, но боюсь за то, что поток сообщений об ошибках может привести к их исключению из релиза, как это произошло с тайпклассами.

CRT это модуль на пару сотен строчек, все его методы можно легко реализовать самому (большая часть уже готовые в System.Console).

Ну вот смотрите, зажимаем Ctrl и нажимаем на TextColor в редакторе, видим следующее:

procedure TextColor(c: integer);
begin
  Console.ForegroundColor := IntToConsoleColor(c);
end;

Значит на PABC.Net это будет выглядеть так:

//uses CRT;

begin
  System.Console.ForegroundColor := System.ConsoleColor.White;
end.

Можно написать в начале программы uses System чтоб не писать его везде, то есть без него будет Console.ForegroundColor и т.п.

1 лайк

22 сообщения перенесены в тему Болталка PascalABC.NET

И что? Как это мешает?

Причину почему это лучше запретить я указал в Issue. Также, хочу заметить, что:

Если Вы планируйте это исправить, не сейчас, а потом, то, прошу переоткрыть Issue, хотя бы по той причине, что открытая Issue будет о себе напоминать и Вы о ней не забудете.

, точнее смысл таков, что решать все-равно разработчикам.

Разработчики сказали - нет. Я с ними согласен.

В одном из сообщений @Admin сказал:

Впоследствии может быть расширю, а пока так.

, поэтому я и написал, что лучше оставить Issue, если они вдруг будут это исправлять. Следующее сообщение было:

Мы не планируем это исправлять.

, что однозначно отражало отрицательное мнение по поводу моёго предложения. В общем, снимаю вопрос.

Все-же, ради интереса, хотел бы узнать почему Вы с ними согласны?

Потому что размерные типы активно используются и ограничения, связанные с ними могут сильно осложнить работу, сделать код нечитабельным и, что самое главное, неэффективным. Если во всём следовать C#, язык будет безвозвратно испорчен.