Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

yield в методе статического класса выдает ошибку #1639

Closed
AIexandrKotov opened this issue Jan 8, 2019 · 1 comment

Comments

@AIexandrKotov
Copy link
Contributor

AIexandrKotov commented Jan 8, 2019

Код:

type
  T = static class
    public static function f(a: sequence of integer): sequence of integer;
    begin
      yield sequence a;
    end;
  end;
  
begin
  
end.
type
  T = static class
    public static function f(a: integer): sequence of integer;
    begin
      yield a;
    end;
  end;
  
begin
  
end.

В обоих случаях:
Undefined FileName(0) : Переменные, параметры, поля не могут иметь тип, являющийся статическим классом

@AIexandrKotov AIexandrKotov changed the title Потеря контекста в случае с yield в методе статичного класса Потеря контекста в случае с yield в методе статического класса Jun 27, 2019
@miks1965 miks1965 changed the title Потеря контекста в случае с yield в методе статического класса yield в методе статического класса выдает ошибку Jun 30, 2019
@miks1965
Copy link
Contributor

miks1965 commented Jul 8, 2019

Сейчас работает всё кроме этого:

type
  T = static class
    static r: integer := 3;
    public static function f(a: integer): sequence of integer;
    begin
      yield r;
    end;
  end;
  
begin
  T.f(5).Print; 
end.

Имя r перенсено в другой класс, но информация о том, что это статическое поле, - потеряна

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants