Ах вот как, кажется @ibond невнимательно прочитал что я писал в #727 и не подумав исправил то что не надо было… Верните назад и исправьте то что я писал в той issue, пожалуйста))
При нажатии на кнопку “Форматировать код” срезы двоятся.
было a[2:], после форматирования становится a[22:]
было a[1::-1], после форматирования становится a[11::-1-1]
было a[::-1], после форматирования становится a[::-1::-1-1]
Пробовал на разных ОС Windows, везде одинаково.
На самом деле нужно просто поменять порядок атрибутов на sealed abstract, и никаких проблем не будет. А вообще, зачем убрали final? Ведь всяко удобнее писать final class, чем sealed abstract, да и код понятнее будет.
Версия ОС не влияет на работу автоформатирования кода.
final
на сколько я знаю и не было ключевым словом. Его отображал анализатор кода для стандартных sealed
классов.
-
Вы сначала пробуйте а потом уже говорите. Я вот попробовал когда писал и сейчас на всяк, не работает это.
-
Это всё равно костыль был бы, даже если бы работал.
Только в идеальном случае. И кроме версии ещё всё зависит от того как и что установлено.
это вы запостили неправильный issue. причем тут объявление переменной и абстрактный класс. и класс Math не абстрактный, а статический. public abstract sealed class в C# не работает, возвращать назад не буду.
Issue была про то что экземпляры abstract sealed
классов невозможно создать, поэтому и объявлять переменные с их типом надо запретить. Что из названия и содержания Issue было не понятно?
А вы сами проверьте перед тем как писать:
Ну да, в C# он называется статичным, но в паскале нет такого ключевого слова.
Зато в C# есть static
. Сейчас в паскале нету способа создать статичный класс, abstract sealed
был единственным. Вы решили переделать, чтоб было как в C#?))) Если так - я, лично, не имею ничего против, такая запись короче, но сначала добавьте static
, а потом уже убирайте abstract sealed
…
Кстати, в #526 вы сами сказали что в паскале это должно компилироваться.
@Admin, почему Value доступно из программы?
Первый модуль:
unit A;
type
T1 = class
internal
class Value: integer;
end;
end.
Второй модуль:
unit B;
uses A;
procedure SetValue(x: integer) := T1.Value := x;
end.
Программа:
uses A, B;
begin
T1.Value := 1;
end.
internal
значит что Value
доступно из всей сборки. То есть обычно это работает как public
, но, к примеру, если Value
будет в .dll библиотеке - во всей библиотеке будет к нему доступ, но уже в программе которая подключит эту библиотеку доступа не будет.
abstract sealed в таком виде это безусловно бред, потому что позволяет описывать экземплярные методы. надо вводить static, который бы разрешал только статические. и уже запрещать объявлять переменные статических классов как в C#.
@Admin, почему F виден из программы, если:
library A;
type
T1 = class
internal
class procedure F();begin end;
end;
end.
?
Я жду ответа от Вас, разработчики.
да ну глупости, не видит компилятор F.
Библиотека:
library A;
type
T1 = class
internal
class procedure F();begin end;
end;
end.
С полями - работает. С методами - нет. Уважаемые разработчики, прошу объяснений, без игнорирования, как одного из прошлых моих сообщений.
Да, увидели. Внесли в Issue
Когда исправите данное недоразумение? Можно ли рассчитывать на то, что произойдет это не позже чем через месяц?
Ну как же? Я так всегда писал и пишу, и всё работает. Может, вся проблема в версии?[quote=“Sun_Serega, post:1206, topic:126”] Зато в C# есть static. Сейчас в паскале нету способа создать статичный класс, abstract sealed был единственным. Вы решили переделать, чтоб было как в C#?))) Если так - я, лично, не имею ничего против, такая запись короче, но сначала добавьте static, а потом уже убирайте abstract sealed… [/quote]
Могу предложить ввести в Паскаль ключевое слово static
и сделать таким образом следующее:
- Объявление статического класса:
Type primer=static class
end;
- Заменить слово
class
для описания классовых (статических) полей, методов и конструкторов на static. В результате получим:
Type primer=class
public static procedure Body();
Begin
End;
end;
Думаю, это будет весьма полезно. P. S. : перепутал в начале темы final со static.
Всеми руками, носами и остальным за. class
совершенно не интуитивно, как и abstract sealed
.
@ibond может добавите issue с лейблом enhancement
для static
?
Будет ли улучшен IntelliSence, чтобы более стабильно работал? Наблюдаю явление, при котором он может часто работать только в части файла программы, но не во всей.