Delphi XE2 - 嵌套类函数无法编译

Jas*_*son 4 delphi delphi-xe2

我正在将一些传统的第三方组件从Delphi 6源升级到XE2.

第三方源在类过程中具有嵌套的类函数.模拟将失败的确切工作副本:

type
  TMyClass1 = class
  public
    class procedure DoSomething;
  end;

{ TMyClass1 }

class procedure TMyClass1.DoSomething;
  class function DoSomethingelse: boolean;
  begin
    result := false;
  end;
begin

end;
Run Code Online (Sandbox Code Playgroud)

尝试编译这会给出一个关于doSomethingelse是未声明的标识符的错误.现在我可以(大概)通过将嵌套函数拉出到同一级别来解决这个问题,但是我可以设置一个编译器选项来防止这种情况吗?这是最近改变了吗?还有其他人遇到过这个问题吗?

谢谢

RRU*_*RUZ 6

为了在XE2中编译你的代码,只需删除定义的class关键字DoSomethingelse,即使这段代码在旧版本的delphi中编译(我在Delphi 5,7和2007中测试了你的代码)我没有看到这一点(或区别)使用class关键字声明嵌入(内部)过程或函数