Баг компилятора: класс, определённый внутри функции, не видит свой родительский класс

 

Билд 1881.  Баг компилятора.  Не видит родительский класс.

void F()
{
  struct A
  {
    void a() { };
  };
  
  struct B : A
  {
    void b()
    { 
      a(); //'a' - function not defined
    }
  };
}
 
internal error #112
void OnStart()
{
    struct A { int i;
            void f() {}
    }; 
    struct B : A {
            void g() { B::f(); }
    } b;
    b.g();
}
 

По факту имеем трудноуловимую ошибку при выполнении

Stack overflow

void f()
{
    struct A { int i;
            void f() {}
    }; 
    struct B : A {
            void g() { f(); }
    } b;
    b.g();
}
void OnStart() { f(); }
 
void F()
{
  struct A
  {
    void a() { };
  };
  
  struct B : A
  {
    void b()
    { 
      this.a(); //'a' - function not defined
    }
  };
}
 
fxsaber:

Ну а дальше то что? Где пример работающего вызова B::b(), а не internal error #112

 
A100:

Ну а дальше то что? Где пример работающего вызова B::b() ???

void F()
{
  struct A
  {
    void a() { };
  };
  
  struct B : A
  {
    int i;
    void b()
    { 
      this.a(); //'a' - function not defined
    }
  };
  
  B Tmp;
  
  Tmp.b();
}
 
fxsaber:

Результат выполнения (а не только компиляции) какой? Где

void OnStart() { F(); }
?
 
Компиляция
internal error #112
 

У меня такая ошибка без указания на строку вылезала когда забыл скобки поставить при вызове функции

if(IsNewBar)  - вот так выдавала ошибку 112

if(IsNewBar()) - все ОК

Причина обращения: