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

Раскрутил насколько мог старую Issue.

  var a := Arr(1, 2, 3);
  
  var g: Func<integer, boolean> := x -> x > 2;
  a.Find(g).Println;//тут все хорошо
  
  var g2: Predicate<integer> := x -> x > 2;
  g2(456).Println;//тут тоже
  a.Find(g2).Println;//а тут ошибка: Generic-функция Find не может быть вызвана 
                     //с данным набором фактических параметров
end.

Я сейчас в Issue опубликую. Да, странная ошибка

Не воспроизводится. У вас последняя версия?

Summary

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA

U1.pas:

unit U1;

function object.operator+(a,b:object): byte := 0;
//function operator+(a,b:object): byte; extensionmethod := 0;// так же

function f1 := 0;

end.

0.pas:

uses U1;

function object.operator+(a,b:object): byte := 0;//           Ошибка: Повторное объявление 
//function operator+(a,b:object): byte; extensionmethod := 0;// так же

function f1 := 0;//а тут ошибки нет

begin end.

То есть операторы нельзя так перекрывать, а обычные подпрограммы можно? Почему?

Подпрограммы всегда можно было перекрывать в Паскале, только в PascalABC разрешили при этом не писать override.

И ещё:

type
  t1=class
    
    class function GetP1:byte := 0;
    
    property P1: byte read GetP1;
    
  end;

begin end.

@RAlex в других паскалях это компилируется?

Я не работал с классами в FPC и Delphi, но думаю, что в таком именно виде - вряд ли )))

Я про то что статичный ацессор у не_статичного поля.

Это лучше к @Admin. Я экзотику предпочитаю стороной обходить. Или, иначе, просто не пишу подобные вещи, поэтому и не могу тут что-то сказать определенное. Ну вот такая у меня позиция: непонятно - не используй, тем более, что большого выигрыша от именно такой конструкции я не вижу. Должна работать - пусть работает, не должна - ну и бог с ней… )))

Ну, у вас же установлены старые паскали, разве нет?

Нет, конечно, зачем мне хлам?))) FPC можете попробовать сами: выберите Pascal FPC (3.0.0)

Но по-моему там все же иной синтаксис.

Добрый день. Наткнулся под ALT Linux на ошибку, идентичную описанной в исходной ветке обсуждения. Что до mono-full vs mono-complete: в Альте последнего нет, как нет и libmono-system-numerics. Кто-нибудь побеждал подобное? Поделитесь, пожалуйста, рецептом.

Use the source, Luke!

begin
  var s: Set of Integer;
  Include(s, ReadInteger);
end.

Ошибка времени выполнения: System.InvalidProgramException: Среда выполнения Common Language Runtime обнаружила недопустимую программу.
Стек:
   в Program4.Program.$Main()
   в Program4.Program.Main()

Да, исправим.

Пока пишите

begin
  var s: Set of Integer;
  Include(s, ReadInteger());
end.

Спасибо

begin
  var s := 1.2-[2,3];//Ошибка: Операция 'dunmin' не применима к типам real и set of integer
end.

Что за dunmin? Так и должно писать?

Напишите в Issue