It is kind of weird, though, when Bar is not static, since you can't create a Bar without having a Foo in hand, and you can't create a Foo without a Bar.  You could cheat and do this:

    Foo f = new Foo(null);
    Bar b = f.new Bar(...);
    Foo ff = new Foo(b);

but I doubt anyone will find this technique useful for anything other than a puzzler...

On 3/24/2020 4:57 PM, Remi Forax wrote:
Hi all,
a record component can use as type a type declared inside the record itself,
in term of scoping it's like if the record component is part of the internal 
scope of the record.

record Foo(Bar bar) {
   class Bar {

   }
}

I think it's the right behaviour but i was not able to find any reference to 
that in the spec.

regards,
Rémi

Reply via email to