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