On Sat, Jul 14, 2012 at 9:23 PM, Benjamin Thaut <code@benjamin-thaut.de> wrote:
Am 14.07.2012 19:21, schrieb kenji hara:
2012/7/15 Benjamin Thaut <code@benjamin-thaut.de>:

The only problem about this is:

class Fruit
{
   class Seed {
     void SetFruit(Fruit fruit)
     {
       this.outer = fruit;

Setting to pseudo variable 'outer' should be rejected in compilation.
Please report it to bugzilla.

     }
   }
}

class Apple: Fruit
{
   void AppleOnlyMethod(){ ... }

   class AppleSeed: Fruit.Seed {
     void DoSomething()
     {
       AppleOnlyMethod();
     }
   }

   auto GetNewSeed() { return new AppleSeed(); }
}

auto apple = new Apple();
auto seed = apple.GetNewSeed();
seed.SetFruit(new Fruit());
seed.DoSomething(); //what happens here?

Kind Regards
Benjamin Thaut


Kenji Hara


I will not report this, beacuse it will break my custom new operator (template) for inner classes ;-)

Kind Regards
Benjamin Thaut


That's most unwise, because if it's not supposed to be like that it will get fixed anyway, so you better start replacing your custom new operator.

--
Bye,
Gor Gyolchanyan.